diff --git a/bundles/org.eclipse.jdt.doc.isv/.project b/bundles/org.eclipse.jdt.doc.isv/.project
deleted file mode 100644
index 22a4808..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jdt.doc.isv</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.jdt.doc.isv/about.html b/bundles/org.eclipse.jdt.doc.isv/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/about.ini b/bundles/org.eclipse.jdt.doc.isv/about.ini
deleted file mode 100644
index 56c7a70..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
diff --git a/bundles/org.eclipse.jdt.doc.isv/about.mappings b/bundles/org.eclipse.jdt.doc.isv/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/about.properties b/bundles/org.eclipse.jdt.doc.isv/about.properties
deleted file mode 100644
index b3ff3ee..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Eclipse Java Development Tooling Plug-in Developers Guide\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright IBM Corp. and others 2000, 2003.  All rights reserved.\n\
-Visit http://www.eclipse.org/jdt
-
diff --git a/bundles/org.eclipse.jdt.doc.isv/book.css b/bundles/org.eclipse.jdt.doc.isv/book.css
deleted file mode 100644
index 139eb28..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/book.css
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/build.properties b/bundles/org.eclipse.jdt.doc.isv/build.properties
deleted file mode 100644
index 75fb4a7..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# use provided build.xml
-custom=true
diff --git a/bundles/org.eclipse.jdt.doc.isv/build.xml b/bundles/org.eclipse.jdt.doc.isv/build.xml
deleted file mode 100644
index 4827e28..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/build.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.jdt.doc.isv" default="build.jars" basedir=".">
-
-
-	<target name="init">
-		<property name="plugin" value="org.eclipse.jdt.doc.isv"/>
-		<property name="version.suffix" value="_3.0.0"/>
-		<property name="full.name" value="${plugin}${version.suffix}"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-		<available file="${basedir}/doc.zip" property="doc.zip.present"/>
-	</target>
-
-	<target name="build.update.jar" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<zip zipfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
-		<antcall target="buildDocZip" />
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<copy todir="${destination.temp.folder}/${full.name}">
-			<fileset dir="${basedir}" includes="*.properties,*.xml,*.zip,*.html,*.htm,*.gif,*.css" excludes="build.properties,build.xml,buildDoc.xml"/>
-		</copy>
-	</target>
-
-	<target name="buildDocZip" depends="init" unless="doc.zip.present">
-		<ant antfile="buildDoc.xml" />
-	</target>
-
-	<target name="build.jars" depends="init">
-	</target>
-
-	<target name="gather.sources" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="build.sources" depends="init">
-	</target>
-
-	<target name="gather.logs" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${plugin.destination}/${full.name}.jar"/>
-		<delete file="${plugin.destination}/${full.name}.zip"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running">
-		<eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
-	</target>
-
-	<target name="zip.plugin" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="build.sources"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<antcall target="gather.sources">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<delete>
-			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
-		</delete>
-		<zip zipfile="${plugin.destination}/${full.name}.zip" basedir="${temp.folder}" filesonly="true"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/buildDoc.xml b/bundles/org.eclipse.jdt.doc.isv/buildDoc.xml
deleted file mode 100644
index df3d617..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/buildDoc.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<project name="Jdt Doc Isv Build" default="all"  basedir="." >
-
-<target name="all">
-	<antcall target="convertSchemaToHtml" />
-	<antcall target="examplesDocCopy" />
-	<antcall target="generateJavadoc" />
-	<antcall target="createDocZip" />
-</target>
-
-
-
-<target name="convertSchemaToHtml" if="eclipse.running">
-	<property name="dest" value="reference/extension-points" />
-	    <record name="jdtconvert.txt" action="start"/>
-   
-   	    <pde.convertSchemaToHTML manifest="../org.eclipse.jdt.debug.ui/plugin.xml" destination="${dest}" />
-	    <pde.convertSchemaToHTML manifest="../org.eclipse.jdt.launching/plugin.xml" destination="${dest}" />
-	    <pde.convertSchemaToHTML manifest="../org.eclipse.jdt.ui/plugin.xml" destination="${dest}" />
-	    <pde.convertSchemaToHTML manifest="../org.eclipse.jdt.core/plugin.xml" destination="${dest}" />
-	    <pde.convertSchemaToHTML manifest="../org.eclipse.jdt.junit/plugin.xml" destination="${dest}" />
-	
-	    <record name="jdtconvert.txt" action="stop"/>
-</target>
-
-<target name="examplesDocCopy" >
-	 <copy todir="samples">
-    	<fileset dir="..">
-    		<include name="org.eclipse.jdt.ui.examples.projects/doc-html/"/>
-	    </fileset>
-	  </copy>
-</target>
-
-
-<target name="getJavadocPath">
-	<available file="${java.home}/../bin/javadoc.exe" property="javadoc" value="${java.home}/../bin/javadoc.exe"/>
-	<available file="${java.home}/../bin/javadoc" property="javadoc" value="${java.home}/../bin/javadoc" />
-</target>
-
-
-<target name="generateJavadoc" depends="getJavadocPath" if="javadoc">
-
-	<!--HACK to ensure the platform doc is built before JDT - call to this script should be moved to build.jars target-->
-	<available file="../org.eclipse.platform.doc.isv/doc.zip" property="platform.doc.zip.present"/>
-	<antcall target="buildPlatformDoc" />
-
-	<condition property="optionsFile" value="jdtOptions">
-	      <os family="unix" />
-    </condition>
-    <condition property="optionsFile" value="jdtOptions.txt">
-	      <os family="windows" />
-    </condition>
-
-	<replace file="${basedir}/${optionsFile}" token="@rt@" value="${bootclasspath}" />
-
-		
-	<!--scrub isv plugin directories of any preexisting api doc content-->
-	<delete dir="reference/api"/>
-	<mkdir dir="reference/api"/>
-
-	<exec dir="." executable="${javadoc}" output="doc.bin.log">
-		<arg line="@${basedir}/${optionsFile} -J-Xmx180m" />
-	</exec>
-</target>
-
-<target name="buildPlatformDoc" unless="platform.doc.zip.present">
-	<ant antfile="buildDoc.xml" dir="../org.eclipse.platform.doc.isv" />
-</target>
-
-<target name="createDocZip">
-	<zip zipfile="${basedir}/doc.zip"
-		basedir="${basedir}"
-		includes="book.css, hglegal.htm, hglegal2002.htm, ngibmcpy.gif, ngibmcpy2002.gif, no_help_exists.htm, concepts/**, gettingStarted/**, images/**, reference/**, tasks/**,samples/**,guide/**,questions/**"
-	/>
-</target>
-
-</project>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.eclipse.jdt.doc.isv/eclipse32.gif b/bundles/org.eclipse.jdt.doc.isv/eclipse32.gif
deleted file mode 100644
index fa12d1f..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/images/javanavigator.gif b/bundles/org.eclipse.jdt.doc.isv/guide/images/javanavigator.gif
deleted file mode 100644
index 91c86c6..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/images/javanavigator.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/images/openables.gif b/bundles/org.eclipse.jdt.doc.isv/guide/images/openables.gif
deleted file mode 100644
index df172c7..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/images/openables.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/images/sourceelements.gif b/bundles/org.eclipse.jdt.doc.isv/guide/images/sourceelements.gif
deleted file mode 100644
index b22aaf0..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/images/sourceelements.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api.htm
deleted file mode 100644
index 7a16012..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Using the JDT API</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h1> JDT structure and API</h1>
-<p>Given that the JDT supplies a full featured Java IDE, why would you need to 
-  use the JDT API?</p>
-<p>If you are building a plug-in that interacts with Java programs or resources 
-  as part of its function, you may need to do one or more of the following things:</p>
-<ul>
-  <li> Programmatically manipulate Java resources, such as creating projects, 
-    generating Java source code, performing builds, or detecting problems in code.</li>
-  <li> Programmatically launch a Java program from the platform</li>
-  <li> Provide a new type of VM launcher to support a new family of Java runtimes</li>
-  <li> Add new functions and extensions to the Java IDE itself</li>
-</ul>
-<p>If you want to use JDT API in your plug-in, you must include the JDT plug-ins 
-  as prerequisites in your plug-in.xml.</p>
-<ul>
-  <li><b>org.eclipse.jdt.core</b> is the plug-in that defines the core Java elements 
-    and API. You should always list this plug-in as a prerequisite.</li>
-  <li><b>org.eclipse.jdt.ui</b> is the plug-in that defines the Java UI API. You 
-    should list this plug-in as a prerequisite if you are using the JDT UI classes.</li>
-  <li><b>org.eclipse.jdt.junit</b> is the plug-in that defines the JUnit integration API. You 
-    should list this plug-in as a prerequisite if you are using the JUnit integration classes.</li>
-  <li><b>org.eclipse.jdt.launching</b> is the plug-in that defines the Java launching 
-    and runtime support. You should list this plug-in as a prerequisite if you 
-    need to launch Java virtual machines programmatically.</li>
-  <li><b>org.eclipse.jdt.debug</b> is the plug-in that defines the Java debug 
-    model. You should list this plug-in as a prerequisite if you need to programmatically 
-    access objects in a program being debugged.</li>
-  <li><b>org.eclipse.jdt.debug.ui</b> is the plug-in that defines the Java debug 
-    UI extensions. You should list this plug-in as a prerequisite if you need 
-    to programmatically access the prompting source locator or Java launch configuration 
-    tabs.</li>
-</ul>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_classpath.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_classpath.htm
deleted file mode 100644
index 2f6c677..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_classpath.htm
+++ /dev/null
@@ -1,226 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Setting the Java classpath</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY>
-<H2>
-Setting the Java build path</H2>
-<P>
-
-This section describes how to set the Java build path.&nbsp; The build path is
-the classpath that is used for building a Java project (<b><a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html">IJavaProject</a></b>).&nbsp;<P>
-A classpath is simply an array of classpath entries (<b><a href="../reference/api/org/eclipse/jdt/core/IClasspathEntry.html">IClassPathEntry</a></b>)
-that describe the types that are available.&nbsp; The types can appear in source
-or binary form and the ordering of the entries on the path defines the lookup
-order for resolving types during a build.
-
-<P>
-The Java build path is reflected in the structure of a Java project
-element.&nbsp; You can query a project for its package fragment roots (<b><a href="../reference/api/org/eclipse/jdt/core/IPackageFragmentRoot.html">IPackageFragmentRoot</a></b>).&nbsp;
-Each classpath entry maps to one or more package fragment roots, each of which
-further contains a set of package fragments.&nbsp;<P>This discussion of the
-build path does not involve the Java runtime path, which can be defined
-separately from the build path.&nbsp; (See <b><a href="../guide/jdt_api_run.htm">Running
-Java code</a></b> for a discussion of the runtime classpath.
-
-<h3>
-Changing the build path</h3>
-<P>
-You can programmatically change a project's build path using <b><a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html#setRawClasspath(org.eclipse.jdt.core.IClasspathEntry[], org.eclipse.core.runtime.IProgressMonitor)">
-setRawClasspath</a></b> on the corresponding project's Java element.&nbsp; The
-following code sets the classpath for a project resource:
-
-	<font color='#4444CC'><pre>
-	IProject project = ... // get some project resource
-	IJavaProject javaProject = JavaCore.create(project);
-	IClasspathEntry[] newClasspath = ...;
-	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
-	</pre></font>
-	
-<P>(Note:&nbsp; The use of the term &quot;raw&quot; classpath is used to
-emphasize the fact that any variables used to describe entry locations have not
-been resolved.)
-
-<P>
-The Java build path is persisted into a file named '.classpath' in the project's
-file structure.&nbsp; The purpose of this file is to provide a way to share Java build path settings with others through 
-some source code repository. In particular, this file should not be manually edited, since it may get corrupted.
- 
-<H3>
-Classpath entries</H3>
-<P>
-Classpath entries can be defined using factory methods defined on <b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html">JavaCore</a></b>.&nbsp;
-Classpath entries can reference any of the following:
-
-<ul>
-<li><b>a source folder</b> - 
-a folder containing source compilation units organized under their corresponding package directory structure. Source folders are used to better structure 
-source files in large projects, and may only be referenced within the containing project.
-  The corresponding factory method is 
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#newSourceEntry(org.eclipse.core.runtime.IPath)">newSourceEntry</a></b>.
-Inside a given source folder, each compilation unit is expected to be nested in the appropriate folder structure according to its package
-  statement.&nbsp; For example, compilation unit 'X.java' in package 'p1' 
-must be located inside sub-folder 'p1' of a source folder.
-It is possible to use multiple source folders, as long as they don't overlap. A
-  source folder may be assigned its own output location which determines where
-  generated class files should be placed.&nbsp; If none is specified, then class
-  files will be placed in the containing project's output location
-  (see <b><a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html#setOutputLocation(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)">IJavaProject.setOutputLocation</a></b>).<P>The
-  following is an example classpath entry that denotes the source folder 'src' of project
-  'MyProject':
-	<font color='#4444CC'><pre>   IClassPathEntry srcEntry = JavaCore.newSourceEntry(new Path(&quot;/MyProject/src&quot;);</pre></font>
-</li>
-<li><b>a binary library</b> - either a class file folder (contained inside the workspace) or a class file archive file (contained inside or outside the workspace).
-Archive libraries can have attached source archives, which are extracted when asking a class file element  for
-  its source (<b><a href="../reference/api/org/eclipse/jdt/core/ISourceReference.html#getSource()">getSource</a></b>).
-The factory method for libraries is 
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#newLibraryEntry(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, boolean)">newLibraryEntry</a></b>.
-<P>
-The following is an example classpath entry that denotes the class file folder 'lib' of  'MyProject':
-	<font color='#4444CC'><pre>
-  IClassPathEntry libEntry = JavaCore.newLibraryEntry(
-    new Path(&quot;/MyProject/lib&quot;), 
-    null, //no source
-    null, //no source
-    false); //not exported
-	</pre></font>
-  The following classpath entry has a source attachment:
-	<font color='#4444CC'><pre>
-  IClassPathEntry libEntry = JavaCore.newLibraryEntry(
-    new Path(&quot;d:/lib/foo.jar&quot;), // library location
-    new Path(&quot;d:/lib/foo_src.zip&quot;), //source archive location
-    new Path(&quot;src&quot;), //source archive root path
-    true); //exported
-	</pre></font><p>The source archive root path describes the location of the
-  root within the source archive.&nbsp; If set to null, the root of the archive
-  will be inferred dynamically.</p>
-  </li>
-<li><b>a prerequisite project</b> - another Java project.&nbsp; A prerequisite project always contributes its source folders to dependent projects.
-It can also optionally contribute any of its classpath entries which are tagged as exported (see factory methods supporting
-  the extra boolean argument 'isExported').
-This means that in addition to contributing its source to its dependents, a project will also export all classpath entries tagged as
-  such.&nbsp; This allows prerequisite projects to better hide their own
-  structure changes.&nbsp; For example, a given project may choose to switch from using a source folder to exporting a library.&nbsp;
-  This can be done without requiring its dependent projects to change their classpath.
-The factory method for a project prerequisite is 
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#newProjectEntry(org.eclipse.core.runtime.IPath, boolean)">newProjectEntry</a></b>.
-<P>
-The following classpath entry denotes a prerequisite project 'MyFramework'.
-	<font color='#4444CC'><pre>
-  IClassPathEntry prjEntry = JavaCore.newProjectEntry(new Path(&quot;/MyFramework&quot;), true); //exported
-	</pre></font>
-</li>
-<li><b>an indirect reference to a project or library, using some classpath variable</b> -
-  The location of projects or libraries can be dynamically resolved relative to a
-classpath variable, which is specified as the first segment of the entry path. The rest of the entry path is then appended to the resolved variable path.
-The factory method for a classpath variable is 
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#newVariableEntry(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath)">newVariableEntry</a></b>.
-Classpath variables are global to the workspace, and can be manipulated through JavaCore methods 
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#getClasspathVariable(java.lang.String)">getClasspathVariable</a></b> and
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#setClasspathVariable(java.lang.String, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)">setClasspathVariable</a></b>.&nbsp;
-  <p>
-It is possible to register an automatic <b><a href="../reference/api/org/eclipse/jdt/core/ClasspathVariableInitializer.html">classpath variable initializer</a></b>
-which is invoked through the extension point <b><a href="../reference/extension-points/org_eclipse_jdt_core_classpathVariableInitializer.html">org.eclipse.jdt.core.classpathVariableInitializer</a></b> 
-when the workspace is started.</p>
-<P>
-The following classpath entry denotes a library whose location is kept in the
-variable 'HOME'.&nbsp; The source attachment is defined using the
-variables&nbsp; 'SRC_HOME' and 'SRC_ROOT' :
-	<font color='#4444CC'><pre>
-  IClassPathEntry varEntry = JavaCore.newVariableEntry(
-    new Path(&quot;HOME/foo.jar&quot;), // library location
-    new Path(&quot;SRC_HOME/foo_src.zip&quot;), //source archive location
-    new Path(&quot;SRC_ROOT&quot;), //source archive root path
-    true); //exported	
-  JavaCore.setClasspathVariable(&quot;HOME&quot;, new Path(&quot;d:/myInstall&quot;), null); // no progress
-	 </pre></font>
-</li>
-<li><b>entry denoting a classpath container</b> - an indirect reference to a structured set of project or libraries.
-  Classpath containers are used to refer to a set of classpath entries that
-  describe a complex library structure.&nbsp; Like classpath variables,
-  classpath containers <b><a href="../reference/api/org/eclipse/jdt/core/IClasspathContainer.html">(IClasspathContainer)</a></b>
-are dynamically resolved.&nbsp; Classpath containers may be used by different
-  projects, causing them their path entries to resolve to distinct values per
-  project.&nbsp; They also provide meta information about the library that they
-  represent (name, kind, description of library.)&nbsp; Classpath containers can be manipulated through JavaCore methods 
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#getClasspathContainer(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject)">getClasspathContainer</a></b> and
-<b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#setClasspathContainer(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject[], org.eclipse.jdt.core.IClasspathContainer[], org.eclipse.core.runtime.IProgressMonitor)">setClasspathContainer</a></b>.&nbsp;
-  <p>
-It is possible to register an automatic <b><a href="../reference/api/org/eclipse/jdt/core/ClasspathContainerInitializer.html">classpath container initializer</a></b>
-which is lazily invoked through the extension point <b><a href="../reference/extension-points/org_eclipse_jdt_core_classpathContainerInitializer.html">org.eclipse.jdt.core.classpathContainerInitializer</a></b>
-when the container needs to be bound.</p>
-  <P>The following classpath entry denotes a system class library container:
-	<font color='#4444CC'><pre>
-  IClassPathEntry varEntry = JavaCore.newContainerEntry(
-    new Path(&quot;JDKLIB/default&quot;), // container 'JDKLIB' + hint 'default'
-    false); //not exported	
-	                             
-  JavaCore.setClasspathContainer(
-    new Path(&quot;JDKLIB/default&quot;), 
-    new IJavaProject[]{ myProject }, // value for 'myProject'
-    new IClasspathContainer[] {
-      new IClasspathContainer() {
-        public IClasspathEntry[] getClasspathEntries() {
-          return new IClasspathEntry[]{ 
-            JavaCore.newLibraryEntry(new Path(&quot;d:/rt.jar&quot;), null, null, false);
-          }; 
-        }
-        public String getDescription() { return &quot;Basic JDK library container&quot;; }
-        public int getKind() { return IClasspathContainer.K_SYSTEM; }
-        public IPath getPath() { return new Path(&quot;JDKLIB/basic&quot;); }
-      }			
-    }, 
-    null);	                             
-</pre>
-</li>
-</ul>
-
-</font>
-
-<h3>
-Exclusion patterns</h3>
-
-<p>A classpath source entry may be assigned an exclusion pattern, which prevents
-certain resources in a source folder from being visible on the classpath.&nbsp;
-Using a pattern allows
-specified portions of the resource tree to be filtered out.&nbsp; Each exclusion
-pattern path is relative to the classpath entry and uses a pattern mechanism
-similar to Ant.&nbsp; Exclusion patterns can be used to specify nested source
-folders as long as the outer pattern excludes the inner pattern.</p>
-
-<p> See <b><a href="../reference/api/org/eclipse/jdt/core/IClasspathEntry.html#getExclusionPatterns()">getExclusionPatterns()</b></a> for
-more detail on exclusion patterns.</p>
-
-<p>
-The Java project API <b><a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html#isOnClasspath(IResource)">isOnClasspath</a>
-</b> checks the exclusion patterns before determining
-whether a particular resource is on the classpath.</p>
-
-<H2>
-Classpath resolution</H2>
-
-Since classpath variables and containers allow you to define dynamically bound
-classpath entries, the classpath API distinguishes between a raw and a resolved
-classpath.&nbsp;&nbsp; The raw classpath is the one originally
-set on the Java project using 
-<b><a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html#setRawClasspath(org.eclipse.jdt.core.IClasspathEntry[], org.eclipse.core.runtime.IProgressMonitor)">setRawClasspath</a></b>,
-and can be further queried by asking the project for
-<b><a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html#getRawClasspath()">getRawClasspath</a></b>.&nbsp;
-The resolved classpath can be queried using 
-<b><a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html#getResolvedClasspath(boolean)">getResolvedClasspath</a></b>. 
-This operation triggers initialization of any variables and containers necessary
-to resolve the classpath.&nbsp; Many Java Model operations
-implicitly cause the Java build path to be resolved.&nbsp; For example,
-computing a project's package fragment roots requires the build path to be
-resolved.
-
-<P><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"></a>
-</P>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_codeassist.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_codeassist.htm
deleted file mode 100644
index 959c9d7..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_codeassist.htm
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Performing CodeAssist on Java code</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY>
-<H2>
-Performing code assist on Java code</H2>
-<P>
-The JDT API allows other plug-ins to perform code assist or code select on some Java elements. 
-Elements that allow this manipulation should implement <b><a href="../reference/api/org/eclipse/jdt/core/ICodeAssist.html"> ICodeAssist</a></b>.&nbsp;
-<P>
-There are two kinds of manipulation:
-<ul>
-<li>Code completion - compute the completion of a Java token.</li>
-<li>Code selection - answer the Java element indicated by the selected text of a
-  given offset and length.</li>
-</ul>
-<p>
-In the Java model there are two elements that implement this interface: <b><a href="../reference/api/org/eclipse/jdt/core/IClassFile.html"> IClassFile</a></b> and <b><a href="../reference/api/org/eclipse/jdt/core/ICompilationUnit.html"> ICompilationUnit</a></b>.&nbsp;
-Code completion and code selection only answer results for a class file if it has attached source.</p>
-<H3>
-Code completion</h3>
-
-<H4>
-Performing a code completion
-</h4>
-<P>
-The only way to programmatically perform code completion is to invoke <b><a href="../reference/api/org/eclipse/jdt/core/ICodeAssist.html#codeComplete(int, org.eclipse.jdt.core.ICompletionRequestor)">ICodeAssist.codeComplete</a></b>.
-You specify the offset in the compilation unit after which the code completion
-is desired.&nbsp; You must also supply an instance of <b><a href="../reference/api/org/eclipse/jdt/core/ICompletionRequestor.html"> ICompletionRequestor</a></b> to accept the possible completions.</P>
-
-<P>Each method in <b><a href="../reference/api/org/eclipse/jdt/core/ICompletionRequestor.html"> ICompletionRequestor</a>
-</b>accepts a different kind of proposal for code completion.&nbsp; The
-parameters of each method include text that describes the proposed element (its
-name, declaring type, etc.), its proposed position for insertion in the
-compilation unit, and its relevance.&nbsp;&nbsp;</P>
-
-<P>A completion requestor can accept many different types
-of completions including the insertion of the following elements:</P>
-
-<ul>
-  <li>anonymous types</li>
-  <li>classes</li>
-  <li>fields</li>
-  <li>interfaces</li>
-  <li>keywords</li>
-  <li>labels</li>
-  <li>local variables</li>
-  <li>method call</li>
-  <li>method declaration</li>
-  <li>modifier</li>
-  <li>package import or reference</li>
-  <li>type</li>
-  <li>variable name</li>
-</ul>
-<p>The completion requestor must also be able to accept compilation
-errors.&nbsp;&nbsp;</p>
-<p>If your plug-in is not interested in every kind of code completion, a <b><a href="../reference/api/org/eclipse/jdt/core/CompletionRequestorAdapter.html">CompletionRequestorAdapter</a></b>
-can be used so that you need only implement the kinds of completions you are
-interested in.&nbsp; The following example shows an adapter that is only used to
-accept class completions.</p>
-<font color='#4444CC'><pre>
-   // Get the compilation unit
-   ICompilationUnit unit = ...;
-   
-   // Get the offset
-   int offset = ...;
-   
-   // Create the requestor
-   ICompletionRequestor requestor = new CompletionRequestorAdapter() {
-      public void acceptClass(
-         char[] packageName,
-         char[] className,
-         char[] completionName,
-         int modifiers,
-         int completionStart,
-         int completionEnd,
-         int relevance) {
-         System.out.println(&quot;propose a class named &quot; + new String(className));
-      }
-   };
-   
-   // Compute proposals
-   unit.codeComplete(offset, requestor);</font>
-</pre><h4>Completion relevance
-</h4>
-
-<p>Because there may be many different possible completions, the notion of
-relevance is used to compare the relevance of a suggested completion to other
-proposals.&nbsp; Relevance is represented by a positive integer.&nbsp; The value
-has no implicit meaning except to be used relative to the value for other
-proposals.&nbsp; The relevance of a code completion candidate can be affected by
-the expected type of the expression, as it relates to the types in the
-surrounding code, such as variable types, cast types, return types, etc.&nbsp;
-The presence of an expected prefix or suffix in a completion also affects its
-relevance.
-</p>
-
-<H4>
-Code completion options
-</h4>
-
-<P>
-The JDT Core plug-in defines options that control the behavior of code
-completion.&nbsp; These options can be changed by other plug-ins.&nbsp;&nbsp;</P>
-<ul>
-<li>Activate Visibility Sensitive Completion<br>
-  When this option is active, code completion will not answer elements that are
-  not visible in the current context.&nbsp; (For example, it will not answer
-  private methods of a super class.)</li>
-<li>Automatic Qualification of Implicit Members<br>
-  When this option is active, completion automatically qualifies completion on implicit field references and message expressions.</li>
-</ul>
-
-<p>Additional options allow you to specify prefixes and suffixes for the
-proposed completion names for fields, static fields, local variables, and method
-arguments.&nbsp;&nbsp;</p>
-
-<p> See&nbsp;<a href="jdt_api_options.htm##codeassist"> JDT Core Code Assist
-Options</a>
-for more information about the code assist options and their defaults.</p>
-
-<H3>
-Code selection</h3>
-
-<H4>
-Performing a code selection
-</h4>
-<P>Code selection is used to find the Java element represented by a range of
-text (typically the selected text) in a compilation unit.&nbsp; To programmatically perform code selection,
-you must invoke <b><a href="../reference/api/org/eclipse/jdt/core/ICodeAssist.html#codeSelect(int, int)">ICodeAssist.codeSelect</a></b>.
-You must supply the starting index location of the selection and its
-length.&nbsp; The result is an array of Java elements.&nbsp; Most of the time there is only one element in the array, but if the selection is ambiguous then all the possible elements are returned.<P>In
-the following example, code select is invoked for a compilation unit.
-
-<font color='#4444CC'><pre>   // Get the compilation unit
-   ICompilationUnit unit = ...;
-   
-   // Get the offset and length
-   int offset = ...;
-   int length = ...;
-   
-   // perform selection
-   IJavaElement[] elements = unit.codeSelect(offset, length);
-   System.out.println(&quot;the selected element is &quot; + element[0].getElementName());
-</pre></font>
-
-<H4>
-Selection at cursor location
-</h4>
-<P>
-When the selection length is specified as 0, a selection will be computed by
-finding the complete token that encloses the specified offset.&nbsp; Consider
-the following example method:</P>
-
-<P>
-
-<code>&nbsp;&nbsp; public void fooMethod(Object) {<br>
-&nbsp;&nbsp; }<br>
-</P>
-
-</code>
-If you specify an offset after the first character of <i>fooMethod</i>, and you
-specify a length of 0,&nbsp; then the selection will be computed to include the
-entire token <i>fooMethod</i>. If instead, you specify a length of 5, the
-selection will considered as <i>ooMet</i>.
-
-
-<P><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"></a></P>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm
deleted file mode 100644
index 7b75c9a..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm
+++ /dev/null
@@ -1,164 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-  <title>Compiling Java code</title>
-          
-  <link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2> Compiling Java code</h2>
-<p> The JDT plug-ins include an incremental and batch Java compiler for building 
-Java .class files from source code. There is no direct API provided by the 
-compiler. It is installed as a builder on Java projects. Compilation is triggered 
-using standard platform build mechanisms.</p>
-<p> The platform build mechanism is described in detail in <a href="../../org.eclipse.platform.doc.isv/guide/resAdv_builders.htm" class="XRef">
- Incremental project builders</a> .</p>
-<h3> Compiling code</h3>
-<p> You can programmatically compile the Java source files in a project using 
-the build API.</p>
-<font color="#4444cc"><pre>
-   IProject myProject;
-   IProgressMonitor myProgressMonitor;
-   myProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, myProgressMonitor);
-</pre></font>
-<p> For a Java project, this invokes the Java incremental project builder
- (along with any other incremental project builders that have been added
-to  the project's build spec). The generated .class files are written to
-the designated output folder. Additional resource files are also copied to the output folder.&nbsp;</p>
-<p> In the case of a full batch build, all the
-.class files in the output folder may be 'scrubbed' to ensure that no stale
-files are found. This is controlled using a JDT Core Builder Option (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER">CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER</a>).&nbsp;
-The default for this option is to clean output folders.&nbsp; Unless this option
-is reset, you must ensure that you place all .class files for which
-you do not have corresponding source files in a separate class file folder
-on the classpath  instead of the output folder.</p>
-<p>The
-incremental and batch builders can be configured with other options that
-control which resources are copied to the output folder.&nbsp; The following sample shows how to set up a resource filter so that files ending with '.ignore' and folders named 'META-INF',
-are not copied to the output folder:
-<font color="#4444cc">
-<pre>   Hashtable options = JavaCore.getOptions();
-   options.put(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, &quot;*.ignore,META-INF/&quot;);
-   JavaCore.setOptions(options);
-</pre>
-</font>
-<p> Filenames are filtered if they match one of the supplied patterns. Entire 
-folders are filtered if their name matches one of the supplied folder names 
-which end in a path separator.</p>
-<p> The incremental and batch builders can also be configured to only generate
- a single error when the .classpath file has errors. This option is set by
- default and eliminates numerous errors.&nbsp; See <a href="jdt_api_options.htm##builder">JDT
-Core Builder Options</a> for a complete list of builder-related options and
-their defaults. </p>
-<p>The compiler can also be configured using <a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b>JavaCore</b></a>
-options.&nbsp; For example, you can define the severity that should be used for
-different kinds of problems that are found during compilation.&nbsp; See <a href="jdt_api_options.htm##compiler">JDT
-Core Compiler Options </a>for a complete list of compiler-related options and t
-heir defaults. </p>
-<p>When programmatically configuring options for the builder or compiler, you
-should determine the scope of the option.&nbsp; For example, setting up a
-resource filter may only apply to a particular project.&nbsp; The following example sets up
-the same resource filter shown earlier, but sets it only the individual
-project. </p>
-<font color="#4444cc">
-<pre>   
-   Hashtable options = myProject.getOptions(false);  // get only the options set up in this project
-   options.put(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, &quot;*.ignore,META-INF/&quot;);
-   myProject.setOptions(options);
-</pre>
-</font>
-
-<h3>Using the ant javac adapter</h3>
-  The Eclipse compiler can be used inside an Ant script using the javac adapter. 
-In order to use the Eclipse compiler, you simply need to define the <b>build.compiler</b>
-  property in your script. Here is a small example. <font color="#4444cc">
-<pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;project name=&quot;compile&quot; default=&quot;main&quot; basedir=&quot;../.&quot;&gt;
-
-	<b>&lt;property name=&quot;build.compiler&quot; value=&quot;org.eclipse.jdt.core.JDTCompilerAdapter&quot;/&gt;</b>
-
-	&lt;property name=&quot;root&quot; value=&quot;${basedir}/src&quot;/&gt;
-
-	&lt;property name=&quot;destdir&quot; value=&quot;d:/temp/bin&quot; /&gt;
-
-	&lt;target name=&quot;main&quot;&gt;
-		&lt;javac srcdir=&quot;${root}&quot; destdir=&quot;${destdir}&quot; debug=&quot;on&quot; nowarn=&quot;on&quot; extdirs=&quot;d:/extdirs&quot; source=&quot;1.4&quot;&gt;
-		    &lt;classpath&gt;
-		      &lt;pathelement location=&quot;${basedir}/../org.eclipse.jdt.core/bin&quot;/&gt;
-		    &lt;/classpath&gt;
-		&lt;/javac&gt;		
-	&lt;/target&gt;
-&lt;/project&gt;
-</pre>
-</font> The syntax used for the javac Ant task can be found in the <a href="http://jakarta.apache.org/ant/manual/CoreTasks/javac.html">
- Ant javac task documentation</a>
- . The current adapter supports the Javac Ant task 1.4.1 and 1.5.3 versions.  
-<h3> Problem determination</h3>
-<p> JDT Core defines a specialized marker (marker type "<b>org.eclipse.jdt.core.problem</b>
-  ") to denote compilation problems. To programmatically discover problems
- detected by the compiler, the standard platform marker protocol should be
- used. See <a href="../../org.eclipse.platform.doc.isv/guide/resAdv_markers.htm" class="XRef">
- Resource Markers</a>
-  for an overview of using markers.</p>
-<p> The following snippet finds all Java problem markers in a compilation 
-unit.</p>
-<font color="#4444cc">
-<pre>   public IMarker[] findJavaProblemMarkers(ICompilationUnit cu) 
-      throws CoreException {
-      IResource javaSourceFile = cu.getUnderlyingResource();
-      IMarker[] markers = 
-         javaSourceFile.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER,
-            true, IResource.DEPTH_INFINITE);
-   }
-</pre>
-</font>
-<p> Java problem markers are maintained by the Java project builder and are 
-removed automatically as problems are resolved and the Java source is recompiled.</p>
-<p>The problem id value is set by one of the constants in <b><a href="../reference/api/org/eclipse/jdt/core/compiler/IProblem.html">
- IProblem</a>
-</b>. The problem's id is reliable, but the message is localized and therefore 
-can be changed according to the default locale. The constants defined in <b><a href="../reference/api/org/eclipse/jdt/core/compiler/IProblem.html">
- IProblem</a>
-</b> are self-descriptive. </p>
-<p>An implementation of <b><a href="../reference/api/org/eclipse/jdt/core/IProblemRequestor.html">
- IProblemRequestor</a>
-</b> should be defined to collect the problems discovered during a Java operation. 
-  Working copies can be reconciled with problem detection if a <b><a href="../reference/api/org/eclipse/jdt/core/IProblemRequestor.html">
- IProblemRequestor</a>
-</b> has been supplied for the working copy creation. To achieve this, you 
-can use the <b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#reconcile(boolean, org.eclipse.core.runtime.IProgressMonitor)">
- reconcile</a></b> method. Here is an example: <font color="#4444cc">
-<pre>
-  ICompilationUnit unit = ..; // get some compilation unit
-			
-  // create requestor for accumulating discovered problems
-  IProblemRequestor problemRequestor = new IProblemRequestor() {
-    public void acceptProblem(IProblem problem) {
-      System.out.println(problem.getID() + &quot;: &quot; + problem.getMessage());
-    }
-    public void beginReporting() {}
-    public void endReporting() {}
-    public boolean isActive() {	return true; } // will detect problems if active
-  };
-    
-  // use working copy to hold source with error
-  IWorkingCopy workingCopy = (IWorkingCopy)unit.getWorkingCopy(null, null, problemRequestor);
-  ((IOpenable)workingCopy).getBuffer().setContents(&quot;public class X extends Zork {}&quot;);
-
-  // trigger reconciliation			
-  workingCopy.reconcile(true, null);
-</pre></font> You can add an action on the reported problems in the acceptProblem(IProblem) 
-method. In this example, the reported problem will be that <b>Zork cannot 
-be resolved or is not a valid superclass</b> and its id is <b>IProblem.SuperclassNotFound</b>
- . <p></p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.">
-</a>
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_editors.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_editors.htm
deleted file mode 100644
index 22e1518..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_editors.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Customizing Java editors</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2> Customizing Java editors</h2>
-<p>The JDT tools implement a fully-functioning Java editor.&nbsp; They also
-define API so you can assign Java text editing features to your own editors or
-enhance the Java editor with your plug-in specific features.</p>
-<h3> Java text editing</h3>
-<p><a href="../reference/api/org/eclipse/jdt/ui/text/JavaSourceViewerConfiguration.html"><b>JavaSourceViewerConfiguration</b></a>
-describes the configuration for a viewer that displays Java code.&nbsp; Given a
-source code viewer, this class provides access to the instances of the utility
-classes that add Java specific behavior to the viewer, such as coloring,
-scanning of tokens, content assist, etc.&nbsp; The viewer configuration depends
-on <a href="../reference/api/org/eclipse/jdt/ui/text/JavaTextTools.html"><b> 
-    JavaTextTools</b></a>  to provide this information.&nbsp;&nbsp; <a href="../reference/api/org/eclipse/jdt/ui/text/JavaTextTools.html"><b>JavaTextTools</b></a>
-is a utility class that provides the scanners and managers for Java text and
-ensures that these classes are configured appropriately when the Java editor
-preferences change.</p>
-<h3> Java text hovers</h3>
-<p>When you implement a plug-in that provides additional capabilities associated
-with Java code, you may want to implement new hover behavior in the editor, so
-that information about your model elements will be shown as the user hovers over
-Java code.&nbsp; For example, the debugger uses a customized hover to show
-variable values when the user hovers over variable names in the editor.</p>
-<p>The extension point <a href="../reference/extension-points/org_eclipse_jdt_ui_javaEditorTextHovers.html"> 
-    <b> 
-    org.eclipse.jdt.ui.javaEditorTextHovers</b></a>  allows you to register your
-own hover implementation.&nbsp; You are responsible for implementing the <a href="../reference/api/org/eclipse/jdt/ui/text/java/hover/IJavaEditorTextHover.html"><b>IJavaEditorTextHover</b></a> 
-and registering your implementation class in the extension definition.&nbsp; You
-also provide a label for your hover type so that the user can enable and disable
-the different types of hovers from the editor preferences page.</p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_junit.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_junit.htm
deleted file mode 100644
index 97b174b..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_junit.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Observing JUnit test runs</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2>Observing JUnit test runs</h2>
-<p>The JDT JUnit plug-in defines an extension point that allows you to observe
-JUnit test runs and implement a reporting scheme in your plug-in. This extension point is useful if you are
-implementing test or build tools that must report the results of automated test
-runs. </p>
-<p>To observe test runs, you must implement <a href="../reference/api/org/eclipse/jdt/junit/ITestRunListener.html"><b>ITestRunListener</b></a>.&nbsp;
-This listener is notified when test runs are started and ended, and as
-individual tests are started and ended.&nbsp; Failures are reported individually
-along with the stack trace at failure time. </p>
-<p>Your listener is registered using the <b><a href="../reference/extension-points/org_eclipse_jdt_junit_testRunListener.html">org.eclipse.jdt.junit.testRunListeners</a></b>
-extension point.&nbsp; Your plug-in's markup should supply the name of the
-listener class that implements <a href="../reference/api/org/eclipse/jdt/junit/ITestRunListener.html"><b>ITestRunListener</b></a><b>.</b> </p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_manip.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_manip.htm
deleted file mode 100644
index b176a0a..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_manip.htm
+++ /dev/null
@@ -1,452 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Manipulating Java code</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY>
-<H2>
-Manipulating Java code</H2>
-<P>
-Your plug-in can use the JDT API to create classes or interfaces, add methods to existing types, or alter the methods for types. </P>
-<P>
-The simplest way to alter Java objects is to use the Java element API. More general techniques can be used to work with the raw source code for a Java element.</P>
-
-<H3>
-Code modification using Java elements</h3>
-
-<H4>
-Generating a compilation unit
-</h4>
-<P>
-The easiest way to programmatically generate a compilation unit is to use 
-<b><a href="../reference/api/org/eclipse/jdt/core/IPackageFragment.html#createCompilationUnit(java.lang.String, java.lang.String, boolean, org.eclipse.core.runtime.IProgressMonitor)">IPackageFragment.createCompilationUnit</a></b>. 
-You specify the name and contents of the compilation unit. The compilation unit is created inside the package and the new
-<b><a href="../reference/api/org/eclipse/jdt/core/ICompilationUnit.html"> ICompilationUnit</a></b> is returned. </P>
-<P>
-A compilation unit can be created generically by creating a file resource whose extension is &quot;<b>.java&quot;</b> in the appropriate folder that corresponds to the package directory. Using the generic resource API is a back door to the Java tooling, so the Java model is not updated until the generic resource change listeners are
-notified and the JDT listeners update the Java model with the new compilation unit.</P>
-
-
-<H4>
-Modifying a compilation unit
-</h4>
-<P>
-Most simple modifications of Java source can be done using the Java element API.</P>
-<P>
-For example, you can query a type from a compilation unit. Once you have the <a href="../reference/api/org/eclipse/jdt/core/IType.html"><b>IType</b></a>, you can use protocols such as
-<a href="../reference/api/org/eclipse/jdt/core/IType.html#createField(java.lang.String, org.eclipse.jdt.core.IJavaElement, boolean, org.eclipse.core.runtime.IProgressMonitor)"><b>createField</b></a>, 
-<a href="../reference/api/org/eclipse/jdt/core/IType.html#createInitializer(java.lang.String, org.eclipse.jdt.core.IJavaElement, org.eclipse.core.runtime.IProgressMonitor)"><b>createInitializer</b></a>,
-<a href="../reference/api/org/eclipse/jdt/core/IType.html#createMethod(java.lang.String, org.eclipse.jdt.core.IJavaElement, boolean, org.eclipse.core.runtime.IProgressMonitor)"><b>createMethod</b></a>, 
-or <a href="../reference/api/org/eclipse/jdt/core/IType.html#createType(java.lang.String, org.eclipse.jdt.core.IJavaElement, boolean, org.eclipse.core.runtime.IProgressMonitor)"><b>createType</b></a> 
-to add source code members to the type. The source code and information about the location of the member is supplied in these methods.</P>
-<P>
-The <b><a href="../reference/api/org/eclipse/jdt/core/ISourceManipulation.html"> ISourceManipulation</a></b> interface defines common source manipulations for Java elements. This includes methods for renaming, moving, copying, or deleting a type's member. </P>
-
-
-<H4>
-Working copies
-</h4>
-<P>
-Code can be modified by manipulating the compilation unit (and thus the underlying 
-<a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IFile.html"><b>IFile</b></a> is modified) or
-one can modify an in-memory copy of the compilation unit called a working copy. </P>
-<P>
-A working copy is obtained from a compilation unit using the 
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#getWorkingCopy()">getWorkingCopy</a></b>
-method. (Note that the compilation unit does not need to exist in the Java model
-in order for a working copy to be created.)&nbsp; Whoever creates such a working copy is responsible for destroying it when not needed any longer using the
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#destroy()">destroy</a></b>
-method. </P>
-<P>
-Working copies modify an in-memory buffer. The <b>getWorkingCopy()</b> method creates a default buffer, but
-clients can provide their own buffer implementation using the
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#getWorkingCopy(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.jdt.core.IBufferFactory, org.eclipse.jdt.core.IProblemRequestor)">getWorkingCopy(IProgressMonitor, IBufferFactory, IProblemRequestor)</a></b>
-method. Clients can manipulate the text of this buffer directly. If they do so, they must synchronize the working copy with
-the buffer from time to time using either the
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#reconcile()">reconcile()</a></b>
-method or the
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#reconcile(boolean, org.eclipse.core.runtime.IProgressMonitor)">reconcile(boolean,IProgressMonitor)</a></b>
-method.  </P>
-<P>
-Finally a working copy can be saved to disk (replacing the original compilation unit) using the
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#commit(boolean, org.eclipse.core.runtime.IProgressMonitor)">commit</a></b>
-method.&nbsp;&nbsp; </P>
-<P>
-For example the following code snippet creates a working copy on a compilation unit using a custom buffer factory. The snippet
-modifies the buffer, reconciles the changes, commits the changes to disk and finally destroys the working copy. </P>
-<font color='#4444CC'><pre>
-    // Get original compilation unit
-    ICompilationUnit originalUnit = ...;
-    
-    // Get buffer factory
-    IBufferFactory factory = ...;
-    
-    // Create working copy
-    IWorkingCopy workingCopy = (IWorkingCopy)originalUnit.getWorkingCopy(null, factory, null);
-    
-    // Modify buffer and reconcile
-    IBuffer buffer = ((IOpenable)workingCopy).getBuffer();
-    buffer.append(&quot;class X {}&quot;);
-    workingCopy.reconcile();
-    
-    // Commit changes
-    workingCopy.commit(false, null);
-    
-    // Destroy working copy
-    workingCopy.destroy();
-</pre></font>
-<P>
-Working copies can also be shared by several clients. A shared working copy is created using the
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#getSharedWorkingCopy(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.jdt.core.IBufferFactory, org.eclipse.jdt.core.IProblemRequestor)">getSharedWorkingCopy</a></b>
-method and it can be later retrieved using the
-<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#findSharedWorkingCopy(org.eclipse.jdt.core.IBufferFactory)">findSharedWorkingCopy</a></b>
-method. A shared working copy is thus keyed on the original compilation unit and on a buffer factory.</P>
-<P>
-The following shows how client 1 creates a shared working copy, client 2 retrieves this working copy, client 1 destroys the
-working copy, and client 2 trying to retrieve the shared working copy notices it does not exist any longer: </P>
-<font color='#4444CC'><pre>
-    // Client 1 &amp; 2: Get original compilation unit
-    ICompilationUnit originalUnit = ...;
-    
-    // Client 1 &amp; 2: Get buffer factory
-    IBufferFactory factory = ...;
-    
-    // Client 1: Create shared working copy
-    IWorkingCopy workingCopyForClient1 = (IWorkingCopy)originalUnit.getSharedWorkingCopy(null, factory, null);
-    
-    // Client 2: Retrieve shared working copy
-    IWorkingCopy workingCopyForClient2 = (IWorkingCopy)originalUnit.findSharedWorkingCopy(factory);
-     
-    // This is the same working copy
-    assert workingCopyForClient1 == workingCopyForClient2;
-    
-    // Client 1: Destroy shared working copy
-    workingCopyForClient1.destroy();
-    
-    // Client 2: Attempt to retrieve shared working copy and find out it's null
-    workingCopyForClient2 = (IWorkingCopy)originalUnit.findSharedWorkingCopy(factory);
-    assert workingCopyForClient2 == null;
-</pre></font>
-
-<H3>Code modification using the DOM/AST API</h3>
-
-There are three ways to create a <b><a href="../reference/api/org/eclipse/jdt/core/dom/CompilationUnit.html">CompilationUnit</a></b>. The first one is to use an existing compilation unit. The second is 
-to use an existing class file. The third is to start from scratch using the factory methods on <b><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html">AST</a></b> (Abstract Syntax Tree).
-<h4>
-Creating an AST from an existing compilation unit
-</h4>
-This is achieved with the parse methods on <b><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html">AST</a></b>:
-<ul>
-<li><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html#parseCompilationUnit(char[])">parseCompilationUnit(char[])</a> This method should be used if you simply
-want to create a <b><a href="../reference/api/org/eclipse/jdt/core/dom/CompilationUnit.html">CompilationUnit</a></b> without any binding resolution. Only syntax errors are
-reported using this method.
-</li>
-<li><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html#parseCompilationUnit(char[], java.lang.String, org.eclipse.jdt.core.IJavaProject)">parseCompilationUnit(char[] source, String unitName, IJavaProject project)</a>. This method can be used to create a
-<b><a href="../reference/api/org/eclipse/jdt/core/dom/CompilationUnit.html">CompilationUnit</a></b> from a byte array. If the IJavaProject is specified, the bindings can be resolved. In this case, the name of the compilation unit is used for
-the binding resolution. 
-</li>
-<li><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html#parseCompilationUnit(org.eclipse.jdt.core.ICompilationUnit, boolean)">parseCompilationUnit(ICompilationUnit unit, boolean resolveBindings)</a>. This method can be used to create a
-<b><a href="../reference/api/org/eclipse/jdt/core/dom/CompilationUnit.html">CompilationUnit</a></b> from an existing <b><a href="../reference/api/org/eclipse/jdt/core/ICompilationUnit.html">ICompilationUnit</a></b>.
-</li>
-</ul>
-All these methods will properly set the positions for each node in the resulting tree. The resolution of bindings has to be requested
-before the creation of the tree. Resolving the bindings is a costly operation and should be done only when necessary. As soon as the tree has been modified, all positions and
-bindings are lost.
-
-<h4>
-Creating an AST from an existing class file
-</h4>
-This is achieved with the parse method on <b><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html">AST</a></b>:
-<ul>
-<li><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html#parseCompilationUnit(org.eclipse.jdt.core.IClassFile, boolean)">parseCompilationUnit(IClassFile classFile, boolean resolveBindings)</a>. This method can be used to create a
-<b><a href="../reference/api/org/eclipse/jdt/core/dom/CompilationUnit.html">CompilationUnit</a></b> from an existing <b><a href="../reference/api/org/eclipse/jdt/core/IClassFile.html">IClassFile</a></b>.
-</li>
-</ul>
-This method will properly set the positions for each node in the resulting tree. The resolution of bindings has to be requested
-before the creation of the tree. Resolving the bindings is a costly operation and should be done only when necessary. As soon as the tree has been modified, all positions and
-bindings are lost.
-
-<h4>
-From scratch
-</h4>
-<P>It is possible to create a <b><a href="../reference/api/org/eclipse/jdt/core/dom/CompilationUnit.html">CompilationUnit</a></b> from scratch using the factory methods on <b><a href="../reference/api/org/eclipse/jdt/core/dom/AST.html">AST</a></b>.
-These method names start with <b>new...</b>. The following is an example that creates a <b>HelloWorld</b> class.
-</P>
-<P>The first snippet is the generated output:
-<font color='#4444CC'><pre>
-	package example;
-	import java.util.*;
-	public class HelloWorld {
-		public static void main(String[] args) {
-			System.out.println(&quot;Hello&quot; + &quot; world&quot;);
-		}
-	}
-</pre></font>
-<p></P>
-<P>The following snippet is the corresponding code that generates the output.
-<font color='#4444CC'><pre>
-		AST ast = new AST();
-		CompilationUnit unit = ast.newCompilationUnit();
-		PackageDeclaration packageDeclaration = ast.newPackageDeclaration();
-		packageDeclaration.setName(ast.newSimpleName(&quot;example&quot;));
-		unit.setPackage(packageDeclaration);
-		ImportDeclaration importDeclaration = ast.newImportDeclaration();
-		QualifiedName name = 
-			ast.newQualifiedName(
-				ast.newSimpleName(&quot;java&quot;),
-				ast.newSimpleName(&quot;util&quot;));
-		importDeclaration.setName(name);
-		importDeclaration.setOnDemand(true);
-		unit.imports().add(importDeclaration);
-		TypeDeclaration type = ast.newTypeDeclaration();
-		type.setInterface(false);
-		type.setModifiers(Modifier.PUBLIC);
-		type.setName(ast.newSimpleName(&quot;HelloWorld&quot;));
-		MethodDeclaration methodDeclaration = ast.newMethodDeclaration();
-		methodDeclaration.setConstructor(false);
-		methodDeclaration.setModifiers(Modifier.PUBLIC | Modifier.STATIC);
-		methodDeclaration.setName(ast.newSimpleName(&quot;main&quot;));
-		methodDeclaration.setReturnType(ast.newPrimitiveType(PrimitiveType.VOID));
-		SingleVariableDeclaration variableDeclaration = ast.newSingleVariableDeclaration();
-		variableDeclaration.setModifiers(Modifier.NONE);
-		variableDeclaration.setType(ast.newArrayType(ast.newSimpleType(ast.newSimpleName(&quot;String&quot;))));
-		variableDeclaration.setName(ast.newSimpleName(&quot;args&quot;));
-		methodDeclaration.parameters().add(variableDeclaration);
-		org.eclipse.jdt.core.dom.Block block = ast.newBlock();
-		MethodInvocation methodInvocation = ast.newMethodInvocation();
-		name = 
-			ast.newQualifiedName(
-				ast.newSimpleName(&quot;System&quot;),
-				ast.newSimpleName(&quot;out&quot;));
-		methodInvocation.setExpression(name);
-		methodInvocation.setName(ast.newSimpleName(&quot;println&quot;)); 
-		InfixExpression infixExpression = ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = ast.newStringLiteral();
-		literal.setLiteralValue(&quot;Hello&quot;);
-		infixExpression.setLeftOperand(literal);
-		literal = ast.newStringLiteral();
-		literal.setLiteralValue(&quot; world&quot;);
-		infixExpression.setRightOperand(literal);
-		methodInvocation.arguments().add(infixExpression);
-		ExpressionStatement expressionStatement = ast.newExpressionStatement(methodInvocation);
-		block.statements().add(expressionStatement);
-		methodDeclaration.setBody(block);
-		type.bodyDeclarations().add(methodDeclaration);
-		unit.types().add(type);
-</pre></font>
-<p></P>
-<h4>Retrieving extra positions</h4>
-The DOM/AST node contains only a pair of positions (the starting position and the length of the node). This is not always
-sufficient. In order to retrieve intermediate positions, the <b><a href="../reference/api/org/eclipse/jdt/core/compiler/IScanner.html">IScanner</a></b> API should be used. For example,
-we have an <b><a href="../reference/api/org/eclipse/jdt/core/dom/InstanceofExpression.html">InstanceofExpression</a></b> for which we want to know the 
-positions of the <i>instanceof</i> operator.
-We could write the following method to achieve this:
-<font color='#4444CC'><pre>
-	private int[] getOperatorPosition(Expression expression, char[] source) {
-		if (expression instanceof InstanceofExpression) {
-			IScanner scanner = ToolFactory.createScanner(false, false, false, false);
-			scanner.setSource(source);
-			int start = expression.getStartPosition();
-			int end = start + expression.getLength();
-			scanner.resetTo(start, end);
-			int token;
-			try {
-				while ((token = scanner.getNextToken()) != ITerminalSymbols.TokenNameEOF) {
-					switch(token) {
-						case ITerminalSymbols.TokenNameinstanceof:
-							return new int[] {scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition()};
-					}
-				}
-			} catch (InvalidInputException e) {
-			}
-		}
-		return null;
-	}
-</pre></font>
-The <b><a href="../reference/api/org/eclipse/jdt/core/compiler/IScanner.html">IScanner</a></b> is used to divide the input source into tokens.
-Each token has a specific value that is defined in the <b><a href="../reference/api/org/eclipse/jdt/core/compiler/ITerminalSymbols.html">ITerminalSymbols</a></b> interface. It is 
-fairly simple to iterate and retrieve the right token. We also recommend that you use the scanner if you want to find the 
-position of the <i>super</i> keyword in a 
-<b><a href="../reference/api/org/eclipse/jdt/core/dom/SuperMethodInvocation.html">SuperMethodInvocation</a></b>.
-<H3>
-Generic source code modification</h3>
-<P>
-Some source code modifications are not provided via the Java element API. A more general way to edit source code (such as changing the source code for existing elements) is accomplished using the compilation unit's raw source code and the Java DOM.</P>
-<P>
-These techniques include the following:</P>
-<font color='#4444CC'><pre>
-   // get the source for a compilation unit
-   String contents = myCompilationUnit.getBuffer().getContents();
-
-   // Create an editable JDOM
-   myJDOM = new DOMFactory();
-   myDOMCompilationUnit = myJDOM.createCompilationUnit(contents, &quot;MyClass&quot;);
-
-   // Navigate and edit the compilation unit structure using 
-   // JDOM node protocol. 
-   ...
-   // Once modififications have been made to all of the nodes 
-   // get the source back from the compilation unit DOM node.
-   String newContents = myDOMCompilationUnit.getContents();
-
-   // Set this code back into the compilation unit element
-   myCompilationUnit.getBuffer().setContents(newContents);
-
-   // Save the buffer to the file.
-   myCompilationUnit.save(null, false);
-</pre></font>
-<P>
-This technique can result in problem markers being associated with incorrect line numbers, since the Java elements were not updated directly.</P>
-<P>
-The Java element model does not go any finer than methods and fields. The abstract syntax tree used by the compiler is not available as API, so the techniques used by the JDT to parse source into programmatic structures are not currently available as API.</P>
-
-
-<H3>
-<a name="javadeltas">
-Responding to changes in Java elements</a></h3>
-<P>
-If your plug-in needs to know about changes to Java elements after the fact, you can register a Java
-<a href="../reference/api/org/eclipse/jdt/core/IElementChangedListener.html"><b> IElementChangedListener</b></a> with
-<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b>JavaCore</b></a>.</P>
-<font color='#4444CC'><pre>
-   JavaCore.addElementChangedListener(new MyJavaElementChangeReporter());
-</pre></font>
-<P>
-You can be more specific and specify the type of events you're interested in using 
-<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#addElementChangedListener(org.eclipse.jdt.core.IElementChangedListener, int)"><b> addElementChangedListener(IElementChangedListener, int)</b></a>. </P>
-<P>
-For example, if you're only interested in listening for events before the builders run: </P>
-<font color='#4444CC'><pre>
-   JavaCore.addElementChangedListener(new MyJavaElementChangeReporter(), ElementChangedEvent.PRE_AUTO_BUILD);
-</pre></font>
-<P>
-There are three kinds of events that are supported by <b>JavaCore</b>:
-<ul>
-<li><a href="../reference/api/org/eclipse/jdt/core/ElementChangedEvent.html#POST_CHANGE"><b>POST_CHANGE</b></a>: 
-      Listeners of this event kind will get notified during the corresponding 
-      <a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IResourceChangeEvent.html#POST_CHANGE"><b>POST_CHANGE</b></a> 
-      resource change notification.</li>
-<li><a href="../reference/api/org/eclipse/jdt/core/ElementChangedEvent.html#PRE_AUTO_BUILD"><b>PRE_AUTO_BUILD</b></a>: 
-      Listeners of this event kind will get notified during the corresponding 
-      <a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IResourceChangeEvent.html#PRE_AUTO_BUILD"><b>PRE_AUTO_BUILD</b></a> 
-      resource change notification.</li>
-<li><a href="../reference/api/org/eclipse/jdt/core/ElementChangedEvent.html#POST_RECONCILE"><b>POST_RECONCILE</b></a>: 
-      Listeners of this event kind will get notified at the end of a reconcile operation on a working copy
-      (see <a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#reconcile()"><b>IWorkingCopy.reconcile()</b></a>).</li>
-</ul> <p></P>
-<P>
-Java element change listeners are similar conceptually to resource change listeners
-(described in
-<a HREF="../../org.eclipse.platform.doc.isv/guide/resAdv_events.htm" CLASS="XRef">tracking resource changes</a>). The following snippet implements a Java element change reporter that prints the element deltas to the system console.</P>
-<font color='#4444CC'><pre>
-   public class MyJavaElementChangeReporter implements IElementChangedListener {
-      public void elementChanged(ElementChangedEvent event) {
-         IJavaElementDelta delta= event.getDelta();
-         if (delta != null) {
-            System.out.println(&quot;delta received: &quot;);
-            System.out.print(delta);
-         }
-      }
-   }
-</pre></font>
-<P>
-The <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html"><b> IJavaElementDelta</b></a> includes the 
-<a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#getElement()">element</a> that was
-changed and <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#getFlags()">flags</a> describing 
-the kind of change that occurred. Most of the time the delta tree is rooted at the Java Model level. Clients must then navigate
-this delta using <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#getAffectedChildren()"><b>getAffectedChildren</b></a> 
-to find out what projects have changed. </P>
-<P>
-The following example method traverses a delta and prints the elements that have been added, removed and changed:</P>
-<font color='#4444CC'><pre>
-    void traverseAndPrint(IJavaElementDelta delta) {
-        switch (delta.getKind()) {
-            case IJavaElementDelta.ADDED:
-                System.out.println(delta.getElement() + &quot; was added&quot;);
-                break;
-            case IJavaElementDelta.REMOVED:
-                System.out.println(delta.getElement() + &quot; was removed&quot;);
-                break;
-            case IJavaElementDelta.CHANGED:
-                System.out.println(delta.getElement() + &quot; was changed&quot;);
-                if ((delta.getFlags() &amp; IJavaElementDelta.F_CHILDREN) != 0) {
-                    System.out.println(&quot;The change was in its children&quot;);
-                }
-                if ((delta.getFlags() &amp; IJavaElementDelta.F_CONTENT) != 0) {
-                    System.out.println(&quot;The change was in its content&quot;);
-                }
-                /* Others flags can also be checked */
-                break;
-        }
-        IJavaElementDelta[] children = delta.getAffectedChildren();
-        for (int i = 0; i &lt; children.length; i++) {
-            traverseAndPrint(children[i]);
-        }
-    }
-</pre></font>
-
-<P>
-Several kinds of operations can trigger a Java element change notification. Here are some examples:
-<ul>
-<li>Creating a resource, e.g. <a href="../reference/api/org/eclipse/jdt/core/IPackageFragment.html#createCompilationUnit(java.lang.String, java.lang.String, boolean, org.eclipse.core.runtime.IProgressMonitor)"><b>IPackageFragment.createCompilationUnit</b></a> 
-      (the delta indicates the <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#ADDED">addition</a> of the compilation unit)</li>
-<li>Modifying a resource, e.g. <a href="../reference/api/org/eclipse/jdt/core/ICompilationUnit.html#createType(java.lang.String, org.eclipse.jdt.core.IJavaElement, boolean, org.eclipse.core.runtime.IProgressMonitor)"><b>ICompilationUnit.createType</b></a> 
-     (the delta indicates that the compilation unit has <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#CHANGED">changed</a> and that a type was 
-     <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#getAddedChildren()"> added as a child</a> of this compilation unit)</li>
-<li>Modifying a project's classpath, e.g. <a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html#setRawClasspath(org.eclipse.jdt.core.IClasspathEntry[], org.eclipse.core.runtime.IProgressMonitor)"><b>IJavaProject.setRawClasspath</b></a>
-     (the delta indicates that package fragment roots have been <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#F_ADDED_TO_CLASSPATH">added to the classpath</a>, 
-     <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#F_REMOVED_FROM_CLASSPATH">removed from the classpath</a>, or
-     <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#F_CLASSPATH_REORDER">reordered on the classpath</a>)</li>
-<li>Modifying a classpath variable value, e.g. <a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#setClasspathVariable(java.lang.String, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)"><b>JavaCore.setClasspathVariable</b></a>
-     (the delta also indicates that package fragment roots have been affected)</li>
-<li>Changing the source attachment of a .jar file, e.g. <a href="../reference/api/org/eclipse/jdt/core/IPackageFragmentRoot.html#attachSource(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)"><b>IPackageFragmentRoot.attachSource</b></a>
-     (the delta indicates that the source was <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#F_SOURCEDETACHED">detached</a>
-     then <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#F_SOURCEATTACHED">attached</a>)</li>
-<li>Reconciling a working copy with its buffer, e.g. <a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html#reconcile()"><b>IWorkingCopy.reconcile</b></a></li>
-<li>Modifying an <a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IFile.html"><b>IFile</b></a> that ends with ".java" and that is on the
-      project's classpath, e.g. using <b>IFile.setContents</b> (the delta indicates that a compilation unit was changed, but 
-      <a href="../reference/api/org/eclipse/jdt/core/IJavaElementDelta.html#F_FINE_GRAINED">no finer-grained information</a>
-      is provided as this was not done through a Java Model operation)</li>
-</ul><P>Similar to <a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IResourceDelta.html"><b>IResourceDelta</b></a> 
-the Java element deltas can be batched using an 
-<a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IWorkspaceRunnable.html"><b>IWorkspaceRunnable</b></a>. 
-The deltas resulting from several Java Model operations that are run inside a <b>IWorkspaceRunnable</b> are merged and reported at once.&nbsp;&nbsp; </P>
-<P><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b>JavaCore</b></a><b>
-</b>provides a <b>run</b> method for batching Java element changes. </P>
-<P>
-For example, the following code fragment will trigger 2 Java element change events: </P>
-<font color='#4444CC'><pre>
-    // Get package
-    IPackageFragment pkg = ...;
-    
-    // Create 2 compilation units
-    ICompilationUnit unitA = pkg.createCompilationUnit(&quot;A.java&quot;, &quot;public class A {}&quot;, false, null);
-    ICompilationUnit unitB = pkg.createCompilationUnit(&quot;B.java&quot;, &quot;public class B {}&quot;, false, null);
-</pre></font>
-<P>
-Whereas the following code fragment will trigger 1 Java element change event: </P>
-<font color='#4444CC'><pre>
-    // Get package
-    IPackageFragment pkg = ...;
-    
-    // Create 2 compilation units
-    JavaCore.run(
-        new IWorkspaceRunnable() {
- 	        public void run(IProgressMonitor monitor) throws CoreException {
- 	            ICompilationUnit unitA = pkg.createCompilationUnit(&quot;A.java&quot;, &quot;public class A {}&quot;, false, null);
- 	            ICompilationUnit unitB = pkg.createCompilationUnit(&quot;B.java&quot;, &quot;public class B {}&quot;, false, null);
- 	        }
-        },
-        null);
-</pre></font>
-
-<P><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"></a>
-</P>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_open_editor.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_open_editor.htm
deleted file mode 100644
index c08bdc9..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_open_editor.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Programmatically launching a Java editor</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h3>Opening a Java editor</h3>
-<p>The following snippet shows how <b><a href="../reference/api/org/eclipse/jdt/ui/JavaUI.html"> 
-  JavaUI</a></b> can be used to open a Java editor and display a specific member of a 
-  Java compilation unit.</p>
-<pre><font color="#4444cc">    void showMethod(IMember member) {
-        ICompilationUnit cu = member.getCompilationUnit();
-        IEditorPart javaEditor = JavaUI.openInEditor(cu);
-        JavaUI.revealInEditor(javaEditor, member);
-    }
-</font></pre>
-<p> The methods <code>openInEditor</code> and <code>revealInEditor</code> also 
-  work for class files and for members contained in class files. </p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_options.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_options.htm
deleted file mode 100644
index 775ab73..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_options.htm
+++ /dev/null
@@ -1,855 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Manipulating JDT Core options</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY>
-<H2>
- JDT Core options</H2>
-<P>
-JDT Core options control the behavior of core features such as the Java
-compiler, code formatter, code assist, and other core behaviors.&nbsp; The APIs
-for accessing the options are defined in <a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b>JavaCore</b></a>.&nbsp;
-Options can be accessed as a group as follows:
-<ul>
-<li><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#getDefaultOptions()">JavaCore.getDefaultOptions()</a> - Answers the default value of the options.</li>
-<li><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#getOptions()">JavaCore.getOptions()</a> - Answers the current values of the options.</li>
-<li><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#setOptions(java.util.Hashtable)">JavaCore.setOptions(Hashtable newOptions)</a> - Replaces the options values by new values.</li>
-</ul>
-<p>Options can also be accessed individually by a string name.</P>
-
-<ul>
-<li><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#getOption(java.lang.String)">JavaCore.getOption(String optionName)</a> - Answers the value of a specific option.</li>
-</ul>
-<p>Options are stored as a hashtable of all known configurable options with their values.
-Helper constants have been defined on <a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b>JavaCore</b></a> for each option ID and its possible constant values.</P>
-
-<P>
-The following code fragment restores the value of all core options to their
-defaults except for one (<code>COMPILER_PB_DEPRECATION</code>), which is set specifically.
-<font color='#4444CC'><pre>
-   // Get the current options
-   Hashtable options = JavaCore.getDefaultOptions();
-   
-   // Change the value of an option
-   options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
-   
-   // Set the new options
-   JavaCore.setOptions(options);
-</pre></font>
-
-The following code fragment keeps the value of the current options and modifies
-only one (<code>COMPILER_PB_DEPRECATION</code>):
-
-<font color='#4444CC'><pre>
-   // Get the current options
-   Hashtable options = JavaCore.getOptions();
-   
-   // Change the value of an option
-   options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
-   
-   // Set the new options
-   JavaCore.setOptions(options);
-</pre></font>
-
-<H3>Project specific options</h3>
-
-<p>The values of options can be overridden per project using protocol in <a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html"><b>IJavaProject</b></a>.</p>
-
-<p>The following code fragment retrieves the value of an option (<code>COMPILER_PB_DEPRECATION</code>)
-for a specific project in two different ways.&nbsp; The boolean parameter
-controls whether only the project-specific options should be returned in a query
-or whether the project's option values should be merged with the values in
-JavaCore.</p>
-
-<font color="#4444CC"><pre>
-   // Get the project
-   IJavaProject project = ...;
-
-   // See if the value of an option has been set in this project
-   String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, <b>false</b>);
-   if (value == null) {
-     // no specific option was set on the project
-     ...
-   }
-   
-   // Get the value of an option from this project.  Use the value from 
-   // JavaCore value if none is specified for the project
-   String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, <b>true</b>);</pre></font>
-
-<H3>JDT Core options descriptions</h3>
-
-<P>
-The following tables describe the available JDT Core options.&nbsp; The option
-id is shown in parentheses and the default value is shown in bold italics. </P>
-
-<H4>Options categories</h4>
-<ul>
-<li><a href="#compiler">Compiler options</a></li>
-<li><a href="#builder">Builder options</a></li>
-<li><a href="#javacore">JavaCore options</a></li>
-<li><a href="#formatter">Formatter options</a></li>
-<li><a href="#codeassist">CodeAssist options</a></li>
-</ul>
-
-<H4><a name="#compiler">Compiler options</a></h4>
-
-<table BORDER="1" CELLSPACING=2 CELLPADDING=2 COLS=2 WIDTH="100%" >
-<tr>
-<th>Description</th>
-<th width=140>Values</th>
-</tr>
-
-<tr>
-<td colspan=2><b>Generating Local Variable Debug Attribute</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_LOCAL_VARIABLE_ATTR">COMPILER_LOCAL_VARIABLE_ATTR</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When generated, this attribute will enable local variable names to be displayed in the debugger, only in places where variables are definitely assigned (.class file is then bigger)</td>
-<td><i><b><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#GENERATE">GENERATE</a></b></i></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_GENERATE">DO_NOT_GENERATE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Generating Line Number Debug Attribute</b>  (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_LINE_NUMBER_ATTR">COMPILER_LINE_NUMBER_ATTR</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When generated, this attribute will enable source code highlighting in the debugger (.class file is then bigger).</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#GENERATE">GENERATE</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_GENERATE">DO_NOT_GENERATE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Generating Source Debug Attribute</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_SOURCE_FILE_ATTR">COMPILER_SOURCE_FILE_ATTR</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When generated, this attribute will enable the debugger to present the corresponding source code.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#GENERATE">GENERATE</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_GENERATE">DO_NOT_GENERATE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Preserving Unused Local Variables</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_CODEGEN_UNUSED_LOCAL">COMPILER_CODEGEN_UNUSED_LOCAL</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Unless requested to preserve unused local variables (i.e. never read), the compiler will optimize them out, potentially altering debugging.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#PRESERVE">PRESERVE</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#OPTIMIZE_OUT">OPTIMIZE_OUT</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Defining Target Java Platform</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_CODEGEN_TARGET_PLATFORM">COMPILER_CODEGEN_TARGET_PLATFORM</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=4>For binary compatibility reason, .class files can be tagged with certain VM versions and later.
-Note that the "1.4" target requires you to toggle the compliance mode to "1.4" also.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_1">VERSION_1_1</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_2">VERSION_1_2</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_3">VERSION_1_3</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_4">VERSION_1_4</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Unreachable Code</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_UNREACHABLE_CODE">COMPILER_PB_UNREACHABLE_CODE</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>Unreachable code can optionally be reported as an error, warning or simply ignored.
-The bytecode generation will always optimize it out.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Invalid Import</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_INVALID_IMPORT">COMPILER_PB_INVALID_IMPORT</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>An import statement that cannot be resolved might optionally be reported as an error, as a warning or ignored.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Attempt to Override Package-Default Method</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD">COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>A package default method is not visible in a different package, and thus cannot be overridden. When enabling this option, the compiler will signal such scenarii either as an error or a warning.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Method With Constructor Name</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME">COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>Naming a method with a constructor name is generally considered poor style programming. When enabling this option, the compiler will signal such scenarii either as an error or a warning.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Deprecation</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_DEPRECATION">COMPILER_PB_DEPRECATION</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>When enabled, the compiler will signal use of deprecated API either as an error or a warning.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Deprecation Inside Deprecated Code</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE">COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE</a>)</td>
-</tr>
-<tr>
-<td rowspan=2>When enabled, the compiler will signal use of deprecated API either as an error or a warning.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ENABLED">ENABLED</a></td>
-</tr>
-<tr>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DISABLED">DISABLED</a></i></b></td>
-</tr>
-<tr>
-<td colspan=2><b>Reporting Hidden Catch Block</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_HIDDEN_CATCH_BLOCK">COMPILER_PB_HIDDEN_CATCH_BLOCK</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>Local to a try statement, some catch blocks may hide others , e.g.
-<pre>
-   try {
-      throw new java.io.CharConversionException();
-   } catch (java.io.CharConversionException e) {
-   } catch (java.io.IOException e) {}.
-</pre>
-When enabling this option, the compiler will issue an error or a warning for hidden catch blocks corresponding to checked exceptions</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Unused Local</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_UNUSED_LOCAL">COMPILER_PB_UNUSED_LOCAL</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>When enabled, the compiler will issue an error or a warning for unused local variables (i.e. variables never read from)</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Unused Parameter</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_UNUSED_PARAMETER">COMPILER_PB_UNUSED_PARAMETER</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>When enabled, the compiler will issue an error or a warning for unused method parameters (i.e. parameters never read from)</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Unused Parameter if Implementing Abstract Method</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT">COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT</a>)</td>
-</tr>
-<tr>
-<td rowspan=2>When enabled, the compiler will signal unused parameters in
-  abstract method implementations.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ENABLED">ENABLED</a></td>
-</tr>
-<tr>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DISABLED">DISABLED</a></i></b></td>
-</tr>
-<tr>
-<td colspan=2><b>Reporting Unused Parameter if Overriding Concrete Method</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE">COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE</a>)</td>
-</tr>
-<tr>
-<td rowspan=2>When enabled, the compiler will signal unused parameters in
-  methods overriding concrete ones.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ENABLED">ENABLED</a></td>
-</tr>
-<tr>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DISABLED">DISABLED</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Unused Import</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_UNUSED_IMPORT">COMPILER_PB_UNUSED_IMPORT</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>When enabled, the compiler will issue an error or a warning for unused import reference </td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING"><i><b>WARNING</b></i></a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Unused Private Members </b>(<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_UNUSED_PRIVATE_MEMBER">COMPILER_PB_UNUSED_PRIVATE_MEMBER</a>)</td>
-</tr>
-<tr>
-<td rowspan=3>When enabled, the compiler will issue an error or a warning
-  whenever a private method or field is declared but never used within the same
-  unit. </td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Synthetic Access Emulation</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_SYNTHETIC_ACCESS_EMULATION">COMPILER_PB_SYNTHETIC_ACCESS_EMULATION</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>When enabled, the compiler will issue an error or a warning whenever it emulates access to a non-accessible member of an enclosing type. Such access can have performance implications.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Non-Externalized String Literal</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_NON_NLS_STRING_LITERAL">COMPILER_PB_NON_NLS_STRING_LITERAL</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>When enabled, the compiler will issue an error or a warning for non externalized String literal (i.e. non tagged with //$NON-NLS-&lt;n&gt;$)</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Usage of 'assert' Identifier</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_ASSERT_IDENTIFIER">COMPILER_PB_ASSERT_IDENTIFIER</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=3>When enabled, the compiler will issue an error or a warning whenever 'assert' is used as an identifier (reserved keyword in 1.4)</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Non-Static Reference to a Static Member</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_STATIC_ACCESS_RECEIVER">COMPILER_PB_STATIC_ACCESS_RECEIVER</a>)</td>
-</tr>
-<tr>
-<td rowspan=3>When enabled, the compiler will issue an error or a warning
-  whenever a static field or method is accessed with an expression receiver.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING"><b><i>WARNING</i></b></a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-<tr>
-<td colspan=2><b>Reporting Assignment with No Effect</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_NO_EFFECT_ASSIGNMENT">COMPILER_PB_NO_EFFECT_ASSIGNMENT</a>)</td>
-</tr>
-<tr>
-<td rowspan=3>When enabled, the compiler will issue an error or a warning
-  whenever an assignment has no effect (e.g. 'x = x').</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING"><b><i>WARNING</i></b></a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-<tr>
-<td colspan=2><b>Reporting Interface Method not Compatible with non-Inherited
-  Methods</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD">COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD</a>)</td>
-</tr>
-<tr>
-<td rowspan=3>When enabled, the compiler will issue an error or a warning
-  whenever an interface defines a method incompatible with a non-inherited
-  Object one.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING"><b><i>WARNING</i></b></a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-<tr>
-<td colspan=2><b>Reporting Usage of char[] Expressions in String Concatenations</b>
-  (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION">COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION</a>)</td>
-</tr>
-<tr>
-<td rowspan=3>When enabled, the compiler will issue an error or a warning
-  whenever a char[] expression is used in String concatenations (e.g.
-  &quot;hello&quot; + new char[]{'w','o','r','l','d'}),</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR">ERROR</a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING"><b><i>WARNING</i></b></a></td>
-</tr>
-<tr>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Setting Source Compatibility Mode</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_SOURCE">COMPILER_SOURCE</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Specify whether source is 1.3 or 1.4 compatible. From 1.4 on, 'assert' is a keyword reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM level should be set to "1.4" and the compliance mode should be "1.4".</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_3">VERSION_1_3</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_4">VERSION_1_4</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Setting Compliance Level</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_COMPLIANCE">COMPILER_COMPLIANCE</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Select the compliance level for the compiler. In "1.3" mode, source and target settings should not go beyond "1.3" level.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_3">VERSION_1_3</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#VERSION_1_4">VERSION_1_4</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Maximum number of problems reported per compilation unit</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_PB_MAX_PER_UNIT">COMPILER_PB_MAX_PER_UNIT</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>Specify the maximum number of problems reported on each compilation unit (if the maximum is zero then all problems are reported).</td>
-<td>a positive integer. <br><b><i>Default value is 100</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Automatic Task Tags</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_TASK_TAGS">COMPILER_TASK_TAGS</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the tag is non empty, the compiler will issue a task marker
-  whenever it encounters one of the corresponding tag inside any comment in Java
-  source code.&nbsp; Generated task messages will include the tag, and range
-  until the next line separator or comment ending, and will be trimmed.</td>
-<td>{&lt;tag&gt;[,&lt;tag&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-<tr>
-<td colspan=2><b>Define the Automatic Task Priorities</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPILER_TASK_PRIORITIES">COMPILER_TASK_PRIORITIES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>In parallel with the Automatic Task Tags, this list defines the
-  priorities (high, normal or low) of the task markers issued by the
-  compiler.&nbsp; If the default is specified, the priority of each task marker
-  is &quot;NORMAL&quot;.</td>
-<td>{&lt;priority&gt;[,&lt;priority&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-</table>
-
-<H4><a name="#builder">Builder options</a></h4>
-
-<table BORDER CELLSPACING=2 CELLPADDING=2 COLS=2 WIDTH="100%" >
-
-<tr>
-<th>Description</th>
-<th width=150>Values</th>
-</tr>
-
-<tr>
-<td colspan=2><b>Specifying Filters for Resource Copying Control</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_JAVA_BUILD_RESOURCE_COPY_FILTER">CORE_JAVA_BUILD_RESOURCE_COPY_FILTER</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>Specify filters to control the resource copy process. (&lt;name&gt; is a file name pattern (only * wild-cards allowed) or the name of a folder which ends with '/')</td>
-<td>{&lt;name&gt;[,&lt;name&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-
-<tr>
-<td colspan=2><b>Abort if Invalid Classpath</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_JAVA_BUILD_INVALID_CLASSPATH">CORE_JAVA_BUILD_INVALID_CLASSPATH</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Instruct the builder to abort if the classpath is invalid</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ABORT">ABORT</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Cleaning Output Folder(s)</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER">CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Indicate whether the JavaBuilder is allowed to clean the output
-  folders when performing full build operations.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CLEAN"><b><i>CLEAN</i></b></a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></td>
-</tr>
-
-</table>
-
-<H4><a name="#javacore">JavaCore options</a></h4>
-
-<table BORDER CELLSPACING=2 CELLPADDING=2 COLS=2 WIDTH="100%" >
-
-<tr>
-<th>Description</th>
-<th width=120>Values</th>
-</tr>
-
-<tr>
-<td colspan=2><b>Computing Project Build Order</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_JAVA_BUILD_ORDER">CORE_JAVA_BUILD_ORDER</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Indicate whether JavaCore should enforce the project build order to be based on the classpath prerequisite chain. When requesting to compute, this takes over the platform default order (based on project references).</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPUTE">COMPUTE</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#IGNORE">IGNORE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Specify Default Source Encoding Format</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_ENCODING">CORE_ENCODING</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>Get the encoding format for compiled sources. This setting is read-only, it is equivalent to <a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/ResourcesPlugin.html#getEncoding()">ResourcesPlugin.getEncoding()</a>.</td>
-<td>any of the supported encoding name. <br><b><i>Default value is platform default</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Incomplete Classpath</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_INCOMPLETE_CLASSPATH">CORE_INCOMPLETE_CLASSPATH</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Indicate the severity of the problem reported when an entry on the
-  classpath doesn't exist, is not legitimate, or is not visible (e.g. a
-  referenced project is closed).</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR"><b><i>ERROR</i></b></a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Reporting Classpath Cycle</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_CIRCULAR_CLASSPATH">CORE_CIRCULAR_CLASSPATH</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Indicate the severity of the problem reported when a project is
-  involved in a cycle.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ERROR"><b><i>ERROR</i></b></a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#WARNING">WARNING</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Enabling Usage of Classpath Exclusion Patterns</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS">CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When set to &quot;disabled&quot;, no entry on a project classpath
-  can be associated with an exclusion pattern.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ENABLED"><b><i>ENABLED</i></b></a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DISABLED">DISABLED</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Enabling Usage of Classpath Multiple Output Locations</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS">CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When set to &quot;disabled&quot;, no entry on a project classpath
-  can be associated with a specific output location, preventing thus usage of
-  multiple output locations</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ENABLED"><b><i>ENABLED</i></b></a></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DISABLED">DISABLED</a></td>
-</tr>
-
-</table>
-
-<H4><a name="#formatter">Formatter options</a></h4>
-
-<table BORDER CELLSPACING=2 CELLPADDING=2 COLS=2 WIDTH="100%" >
-
-<tr>
-<th>Description</th>
-<th width=120>Values</th>
-</tr>
-
-<tr>
-<td colspan=2><b>Inserting New Line Before Opening Brace</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_NEWLINE_OPENING_BRACE">FORMATTER_NEWLINE_OPENING_BRACE</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When Insert, a new line is inserted before an opening brace, otherwise nothing is inserted</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#INSERT">INSERT</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_INSERT">DO_NOT_INSERT</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Inserting New Line Inside Control Statement</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_NEWLINE_CONTROL">FORMATTER_NEWLINE_CONTROL</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When Insert, a new line is inserted between } and following else, catch, finally</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#INSERT">INSERT</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_INSERT">DO_NOT_INSERT</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Clearing Blank Lines</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_CLEAR_BLANK_LINES">FORMATTER_CLEAR_BLANK_LINES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When Clear all, all blank lines are removed. When Preserve one, only one is kept and all others removed.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CLEAR_ALL">CLEAR_ALL</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#PRESERVE_ONE">PRESERVE_ONE</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Inserting New Line Between Else/If</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_NEWLINE_ELSE_IF">FORMATTER_NEWLINE_ELSE_IF</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When Insert, a blank line is inserted between an else and an if when they are contiguous. When choosing to not insert, else-if will be kept on the same line when possible.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#INSERT">INSERT</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_INSERT">DO_NOT_INSERT</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Inserting New Line In Empty Block</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_NEWLINE_EMPTY_BLOCK">FORMATTER_NEWLINE_EMPTY_BLOCK</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When insert, a line break is inserted between contiguous { and }, if } is not followed by a keyword.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#INSERT">INSERT</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_INSERT">DO_NOT_INSERT</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Splitting Lines Exceeding Length</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_LINE_SPLIT">FORMATTER_LINE_SPLIT</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>Enable splitting of long lines (exceeding the configurable length). Length of 0 will disable line splitting</td>
-<td>a positive integer. <br><b><i>Default value is 80</i></b></td>
-</tr>
-
-
-<tr>
-<td colspan=2><b>Compacting Assignment</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_COMPACT_ASSIGNMENT">FORMATTER_COMPACT_ASSIGNMENT</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Assignments can be formatted asymmetrically, e.g. 'int x= 2;', when Normal, a space is inserted before the assignment operator</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#COMPACT">COMPACT</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#NORMAL">NORMAL</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Defining Indentation Character</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_TAB_CHAR">FORMATTER_TAB_CHAR</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>Either choose to indent with tab characters or spaces</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#TAB">TAB</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#SPACE">SPACE</a></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Defining Space Indentation Length</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_TAB_SIZE">FORMATTER_TAB_SIZE</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When using spaces, set the amount of space characters to use for each indentation mark.</td>
-<td>a positive integer. <br><b><i>Default value is 4</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Inserting space in cast expression</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#FORMATTER_SPACE_CASTEXPRESSION">FORMATTER_SPACE_CASTEXPRESSION</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When Insert, a space is added between the type and the expression
-  in a cast expression.</td>
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#INSERT">INSERT</a></i></b></td>
-</tr>
-<tr valign="top">
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DO_NOT_INSERT">DO_NOT_INSERT</a></td>
-</tr>
-
-</table>
-
-<H4><a name="#codeassist">CodeAssist options</a></h4>
-
-<table BORDER CELLSPACING=2 CELLPADDING=2 COLS=2 WIDTH="100%" >
-<tr>
-<th>Description</th>
-<th width=80>Values</th>
-</tr>
-
-<tr>
-<td colspan=2><b>Activate Visibility Sensitive Completion</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_VISIBILITY_CHECK">CODEASSIST_VISIBILITY_CHECK</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When active, completion doesn't show that you can not see (e.g. you can not see private methods of a super class).</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ENABLED">ENABLED</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DISABLED">DISABLED</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Automatic Qualification of Implicit Members</b>   (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_IMPLICIT_QUALIFICATION">CODEASSIST_IMPLICIT_QUALIFICATION</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=2>When active, completion automatically qualifies completion on implicit field references and message expressions.</td>
-<td><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#ENABLED">ENABLED</a></td>
-</tr>
-<tr valign="top">
-<td><b><i><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#DISABLED">DISABLED</a></i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Prefixes for Field Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_FIELD_PREFIXES">CODEASSIST_FIELD_PREFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the prefixes is non empty, completion for field name will
-  begin with one of the proposed prefixes.</td>
-<td>{&lt;prefix&gt;[,&lt;prefix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Prefixes for Static Field Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_STATIC_FIELD_PREFIXES">CODEASSIST_STATIC_FIELD_PREFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the prefixes is non empty, completion for static field name will
-  begin with one of the proposed prefixes.</td>
-<td>{&lt;prefix&gt;[,&lt;prefix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Prefixes for Local Variable Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_LOCAL_PREFIXES">CODEASSIST_LOCAL_PREFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the prefixes is non empty, completion for local variable name will
-  begin with one of the proposed prefixes.</td>
-<td>{&lt;prefix&gt;[,&lt;prefix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Prefixes for Argument Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_ARGUMENT_PREFIXES">CODEASSIST_ARGUMENT_PREFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the prefixes is non empty, completion for argument name will
-  begin with one of the proposed prefixes.</td>
-<td>{&lt;prefix&gt;[,&lt;prefix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Suffixes for Field Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_FIELD_SUFFIXES">CODEASSIST_FIELD_SUFFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the suffixes is non empty, completion for field name will end
-  with one of the proposed suffixes.</td>
-<td>{&lt;suffix&gt;[,&lt;suffix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Suffixes for Static Field Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_STATIC_FIELD_SUFFIXES">CODEASSIST_STATIC_FIELD_SUFFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the suffixes is non empty, completion for static field name will end
-  with one of the proposed suffixes.</td>
-<td>{&lt;suffix&gt;[,&lt;suffix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Suffixes for Local Variable Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_LOCAL_SUFFIXES">CODEASSIST_LOCAL_SUFFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the suffixes is non empty, completion for local variable name will end
-  with one of the proposed suffixes.</td>
-<td>{&lt;suffix&gt;[,&lt;suffix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-<tr>
-<td colspan=2><b>Define the Suffixes for Argument Name</b> (<a href="../reference/api/org/eclipse/jdt/core/JavaCore.html#CODEASSIST_ARGUMENT_SUFFIXES">CODEASSIST_ARGUMENT_SUFFIXES</a>)</td>
-</tr>
-<tr valign="top">
-<td rowspan=1>When the suffixes is non empty, completion for argument name will end
-  with one of the proposed suffixes.</td>
-<td>{&lt;suffix&gt;[,&lt;suffix&gt;]*}.<br><b><i>Default value is ""</i></b></td>
-</tr>
-
-</table>
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"></a></P>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_preview_manip.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_preview_manip.htm
deleted file mode 100644
index 8a81611..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_preview_manip.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Using working copies in an editor</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2>Using working copies in an editor</h2>
-<p>The JDT Core plug-in provides API that allows you to programmatically create, 
-  delete and modify Java elements. See <a href="jdt_api_manip.htm">manipulating 
-  Java code</a> for an introduction to the API provided by JDT Core.&nbsp;&nbsp; </p>
-<p>An important concept in the Java model is the use of an in-memory copy of a
-compilation unit, called a &quot;working copy&quot; (<b><a href="../reference/api/org/eclipse/jdt/core/IWorkingCopy.html">IWorkingCopy</a></b>).&nbsp;
-Using a working copy allows you to programmatically change a compilation
-unit before committing the changes to the underlying resource. </p>
-<p>In the Java user interface, a parallel concept is to allow the user to
-extensively edit a resource before committing the working copy to the file
-system.&nbsp; By using a copy, your UI implementation can allow the user to either save the Java editor's content 
-  to disk or revert it back to its original content.&nbsp; </p>
-<p> <a href="../reference/api/org/eclipse/jdt/ui/IWorkingCopyManager.html"> 
-    <b>IWorkingCopyManager</b></a> manages the working copies of Java compilation
-units used inside an editor.&nbsp; When you want to modify a compilation unit in
-an editor, you should obtain a working copy by connecting your editor's input
-element to the working copy manager. Edits are performed on the working
-copy.&nbsp;</p>
-<p> Below is a code snippet that demonstrates the use of a working copy manager
-with a compilation unit editor: </p>
-<pre><font color="#4444CC">    void modifyCompilationUnit(ICompilationUnit cunit) throws PartInitException, CoreException {
-        IEditorPart editor= JavaUI.openInEditor(cunit);
-        IEditorInput input= editor.getEditorInput();
-        IWorkingCopyManager manager= JavaUI.getWorkingCopyManager();
-        manager.connect(input);
-        try {
-            ICompilationUnit workingCopy= manager.getWorkingCopy(input);
-            // do the modifications on workingCopy using the normal JDT Core API.
-        } finally {
-            manager.disconnect(input);
-        }
-        // either keep the editor dirty or use editor.doSave(IProgressMonitor monitor)
-        // to save the changes programmatically.
-    }
-</font></pre>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_prompter.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_prompter.htm
deleted file mode 100644
index 539f337..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_prompter.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Creating Java specific prompter dialogs</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h3>Creating Java specific prompter dialogs</h3>
-<p> The following snippet uses the <b><a href="../reference/api/org/eclipse/jdt/ui/JavaUI.html">JavaUI</a> </b>class to open the Open Type dialog:</p>
-<pre><font color="#4444cc">    public IType selectType() throws JavaModelException {
-        SelectionDialog dialog= JavaUI.createTypeDialog(
-            parent, new ProgressMonitorDialog(parent),
-            SearchEngine.createWorkspaceScope(),
-            IJavaElementSearchConstants.CONSIDER_TYPES, false);
-        dialog.setTitle(&quot;My Dialog Title&quot;);
-        dialog.setMessage(&quot;My Dialog Message&quot;);
-        if (dialog.open() == IDialogConstants.CANCEL_ID)
-            return null;
-
-        Object[] types= dialog.getResult();
-        if (types == null || types.length == 0)
-            return null;
-        return (IType)types[0];
-    }</font></pre>
-<p> <a href="../reference/api/org/eclipse/jdt/ui/JavaUI.html"><b>JavaUI</b></a> 
-  provides additional methods for creating Open Package and Open Main Type dialogs. 
-</p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_render.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_render.htm
deleted file mode 100644
index 78a54f2..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_render.htm
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>How to render Java elements in a tree or table viewer</title>
-</head>
-<body>
-<h2>Presenting Java elements in a JFace viewer</h2>
-<p> The JDT UI API provides classes that allow you to present the Java model or parts 
-  of it in a standard JFace viewer. This functionality is provided primarily by: 
-</p>
-<ul>
-  <li><a href="../reference/api/org/eclipse/jdt/ui/StandardJavaElementContentProvider.html"> 
-    <b> 
-    StandardJavaElementContentProvider</b></a>  - translates the Java element hierarchy 
-    into a data structure accessible by a tree, table or list viewer</li>
-  <li><a href="../reference/api/org/eclipse/jdt/ui/JavaElementLabelProvider.html"> 
-    <b> 
-    JavaElementLabelProvider</b></a>  - provides corresponding images and labels 
-    for a standard JFace viewer</li>
-</ul>
-<p>Content and label providers for JFace viewers are described in detail in <a href="../../org.eclipse.platform.doc.isv/guide/jface_viewers.htm" class="XRef">JFace
-viewers</a>.</p>
-If you understand the basic platform mechanism, then putting the Java content
-and label providers together is quite simple:
-<pre><font color="#4444cc">    ...
-    TreeViewer viewer= new TreeViewer(parent);
-    // Provide members of a compilation unit or class file, but no working copy elements
-    ITreeContentProvider contentProvider= new StandardJavaElementContentProvider(true, false);
-    viewer.setContentProvider(contentProvider);
-    // There are more flags defined in class JavaElementLabelProvider
-    ILabelProvider labelProvider= new JavaElementLabelProvider(
-        JavaElementLabelProvider.SHOW_DEFAULT |
-        JavaElementLabelProvider.SHOW_QUALIFIED |
-        JavaElementLabelProvider.SHOW_ROOT);
-    viewer.setLabelProvider(labelProvider);
-    // Using the Java model as the viewers input present Java projects on the first level.
-    viewer.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()));
-    ...</font></pre>
-<p>The example above uses aJava model (<a href="../reference/api/org/eclipse/jdt/core/IJavaModel.html"><b>IJavaModel</b></a>)
-as the input element for the viewer.&nbsp; The <a href="../reference/api/org/eclipse/jdt/ui/StandardJavaElementContentProvider.html"><b>StandardJavaElementContentProvider</b></a>
-also supports <a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html"><b> 
-      IJavaProject</b></a>, <a href="../reference/api/org/eclipse/jdt/core/IPackageFragmentRoot.html"><b> 
-      IPackageFragmentRoot</b></a>, <a href="../reference/api/org/eclipse/jdt/core/IPackageFragment.html"><b> 
-      IPackageFragment</b></a>, and <b>IFolder</b> as input elements: 
-</p>
-<h3>Overlaying images with Java information</h3>
-        <p><a href="../reference/api/org/eclipse/jdt/ui/JavaElementImageDescriptor.html"><b> 
-    JavaElementImageDescriptor</b></a> can be used to create an image based on an 
-    arbitrary base image descriptor and a set of flags specifying which Java specific 
-    adornments (e.g. static, final, synchronized, ....) are to be superimposed 
-    on the image.</p>
-<h3>Adding problem and override decorators</h3>
-When a viewer is supposed to include problem annotations, the JFace <b>DecoratingLabelProvider</b> 
-together with the <a href="../reference/api/org/eclipse/jdt/ui/ProblemsLabelDecorator.html"> 
-<b> 
-ProblemsLabelDecorator</b></a> is used. The snippet below illustrates the use of
-a problem label decorator.
-<pre><font color="#4444cc">    ...
-    DecoratingLabelProvider decorator= new DecoratingLabelProvider(labelProvider, new ProblemsLabelDecorator());
-    viewer.setLabelProvider(decorator);
-    ...</font></pre>
-<p> In the same way the <a href="../reference/api/org/eclipse/jdt/ui/OverrideIndicatorLabelDecorator.html"> 
-  <b> 
-  OverrideIndicatorLabelDecorator</b></a> can be used to decorate a normal label provider 
-  to show the implement and override indicators for methods. </p>
-<h3>Updating the presentation on model changes</h3>
-<p> Neither the <a href="../reference/api/org/eclipse/jdt/ui/OverrideIndicatorLabelDecorator.html"><b> 
-  OverrideIndicatorLabelDecorator</b></a><b> </b>nor the <a href="../reference/api/org/eclipse/jdt/ui/ProblemsLabelDecorator.html"><b> 
-ProblemsLabelDecorator</b></a><b> </b>listen to model changes. Hence, the viewer doesn't update its presentation if 
-  the Java or resource marker model changes. The reason for pushing the update 
-  onto the client for these classes is that there isn't yet a generic implementation 
-  that fulfills all performance concerns. Handling Java model delta inspection 
-  and viewer refreshing in each label decorator or provider would lead to multiple 
-  delta inspections and unnecessary viewer updates.</p>
-<p> So what does the client need to do in order to update their viewers ?</p>
-<ul>
-  <li><a href="../reference/api/org/eclipse/jdt/ui/OverrideIndicatorLabelDecorator.html"><b> 
-  OverrideIndicatorLabelDecorator</b></a>: the client must listen to 
-    Java model changes (see <a href="jdt_api_manip.htm#javadeltas">Responding to
-    changes in Java elements</a>) 
-    and decide if the change(s) described by the delta invalidates the override 
-    indicator of elements presented in the viewer. If so, the class inspecting 
-    the delta should trigger a repaint of the corresponding Java elements using 
-    the standard JFace viewer API (see update methods on StructuredViewer).</li>
-  <li><a href="../reference/api/org/eclipse/jdt/ui/ProblemsLabelDecorator.html"><b> 
-ProblemsLabelDecorator</b></a>: the client should listen to changes 
-    notified by the decorator via a <a href="../reference/api/org/eclipse/jdt/ui/ProblemsLabelDecorator.ProblemsLabelChangedEvent.html"> 
-    <b> 
-    ProblemsLabelChangedEvent</b></a> (see also <a href="../reference/api/org/eclipse/jdt/ui/ProblemsLabelDecorator.html#addListener(org.eclipse.jface.viewers.ILabelProviderListener)"> 
-    <b> 
-    ProblemsLabelDecorator.addListener</b></a> ). Since the marker model is resource 
-    based, the listener has to map the resource notifications to its underlying 
-    data model. For an example showing how to do this for viewers presenting Java 
-    elements see the internal classes <code>ProblemTreeViewer.handleLabelProviderChanged.</code></li>
-</ul>
-<p> For the same reasons enumerated for label decorators the <a href="../reference/api/org/eclipse/jdt/ui/StandardJavaElementContentProvider.html"><b>StandardJavaElementContentProvider</b></a><b>
-</b>doesn't listen to model changes. If the viewer needs to update its presentation 
-  according to Java model changes, then the client should add a corresponding 
-  listener to JavaCore. If the change described by the delta invalidates the structure 
-  of the elements presented in the viewer then the client should update the viewer 
-  using the standard JFace API (see refresh methods on StructuredViewer, and the 
-  add and remove methods on TableViewer and AbstractTreeViewer). </p>
-<h3>Sorting the viewer</h3>
-<p> <a href="../reference/api/org/eclipse/jdt/ui/JavaElementSorter.html"><b> 
-    JavaElementSorter</b></a> can be plugged into a JFace viewer to sort Java elements 
-    according to the Java UI sorting style. </p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_run.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_run.htm
deleted file mode 100644
index a7f298b..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_run.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-  <title>Running a Java program</title>
-          
-  <link rel="stylesheet" type="text/css" href="../book.css">
-</head>
- <body>
-<h2> Running a Java program</h2>
-<p> The JDT Debug component includes facilities for launching a Java program using the 
-VM install that is currently configured by the user for a Java project.&nbsp;&nbsp;</p>
-<h3> Launching a compiled Java program</h3>
-<p> Java programs that have been compiled in a Java project can be run by 
-getting the appropriate <a href="../reference/api/org/eclipse/jdt/launching/IVMRunner.html"><b>
- IVMRunner</b></a>
-  for the Java project and running the class by name. The following code
-snippet shows how the class <b>MyClass</b> inside <b>myJavaProject</b> can
-be launched.</p>
-<font color="#4444cc">
-<pre>   IVMInstall vmInstall = JavaRuntime.getVMInstall(myJavaProject);
-   if (vmInstall == null)
-      vmInstall = JavaRuntime.getDefaultVMInstall();
-   if (vmInstall != null) {
-      IVMRunner vmRunner = vmInstall.getVMRunner(ILaunchManager.RUN_MODE);
-      if (vmRunner != null) {
-         String[] classPath = null;
-         try {
-            classPath = JavaRuntime.computeDefaultRuntimeClassPath(myJavaProject);
-         } catch (CoreException e) { }
-         if (classPath != null) {
-            VMRunnerConfiguration vmConfig = 
-               new VMRunnerConfiguration(&quot;MyClass&quot;, classPath);
-            ILaunch launch = new Launch(null, ILaunchManager.RUN_MODE, null);
-            vmRunner.run(vmConfig, launch, null);
-         }
-      }
-   }
-</pre>
-</font>
-<p> Another way to launch a Java program is to create a <b>Java application</b>
-  launch configuration, and launch it. The following snippet shows how the 
-class <b>MyClass</b> inside <b> myJavaProject</b> can be launched using a 
-simple launch configuration. By default, the resulting running application
- uses the JRE and classpath associated with <b>myJavaProject</b>. </p>
-<font color="#4444cc">
-<pre>   ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-   ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
-   ILaunchConfigurationWorkingCopy wc = type.newInstance(null, &quot;SampleConfig&quot;);
-   wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, &quot;myJavaProject&quot;);
-   wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, &quot;myClass&quot;);
-   ILaunchConfiguration config = wc.doSave();	
-   config.launch(ILaunchManager.RUN_MODE, null);
-</pre>
-</font>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.">
-</a>
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_search.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_search.htm
deleted file mode 100644
index 1380a75..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_search.htm
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"><title>Using the Java search engine</title>
-
-
-<link rel="stylesheet" type="text/css" href="../book.css"></head>
-<body>
-<h2>
-Using the Java search engine</h2>
-<p> Your plug-in can use the JDT API to search Java projects in the workspace
-for Java elements, such as method references, field declarations, implementors
-of an interface, etc. </p>
-<p>
-The entry point for Java search is the <b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html">SearchEngine</a></b> class. You can search for particular
-patterns inside a Java element and scope the search to specific elements.&nbsp;
-Search patterns can be created using <b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#createSearchPattern(org.eclipse.jdt.core.IJavaElement, int)">createSearchPattern</a></b>.&nbsp;
-A pattern is scoped using <b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#createJavaSearchScope(org.eclipse.jdt.core.IJavaElement[])">createJavaSearchScope</a></b>.&nbsp;
-Once a pattern and scope are defined, the <b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#search(org.eclipse.core.resources.IWorkspace, org.eclipse.jdt.core.search.ISearchPattern, org.eclipse.jdt.core.search.IJavaSearchScope, org.eclipse.jdt.core.search.IJavaSearchResultCollector)">search</a></b>
- method is used to collect the results. </p>
-
-<p>
-Search results are reported to an  <b><a href="../reference/api/org/eclipse/jdt/core/search/IJavaSearchResultCollector.html">IJavaSearchResultCollector</a></b> which you must
-implement in order to access the results. </p>
-
-<h3>
-Preparing for search</h3>
-<p> A search operation will use both a pattern for describing the nature
-of the search, and a scope for restraining the range of investigation. </p>
-
-<h4>
-Creating a Java search pattern
-</h4>
-<p>
-A search pattern defines how search results are found. You can either create a search pattern from a Java element (see
-<b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#createSearchPattern(org.eclipse.jdt.core.IJavaElement, int)">createSearchPattern(IJavaElement, int)</a></b>) 
-or from a string (see <b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#createSearchPattern(java.lang.String, int, int, boolean)">createSearchPattern(String, int, int, boolean)</a></b>.)
-The last method supports wildcards (i.e. '*') and can be used to widen the search results.</p>
-<p>
-For example, creating a search pattern for searching for references to a given method is done as follows:</p>
-<font color="#4444cc"><pre>
-    // Get the method
-    IMethod method = ...;
-    
-    // Create search pattern
-    ISearchPattern pattern = SearchEngine.createSearchPattern(method, IJavaSearchConstants.REFERENCES);
-</pre></font>
-<p>
-Or creating a search pattern for searching for declarations of all types starting with "Obj":</p>
-<font color="#4444cc"><pre>
-    // Create search pattern
-    ISearchPattern pattern = SearchEngine.createSearchPattern(&quot;Obj*&quot;, IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, true);
-</pre></font>
-<p>
-The following search patterns are supported:
-</p><ul>
-<li>Package declarations</li>
-<li>Type declarations</li>
-<li>Field declarations</li>
-<li>Method (and constructor) declarations</li>
-<li>Package references</li>
-<li>Type references</li>
-<li>Interface implementors</li>
-<li>Field references</li>
-<li>Field write accesses</li>
-<li>Field read accesses</li>
-<li>Method (and constructor) references</li>
-<li>Combinations of the above patterns using the OR pattern (see
-<b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#createOrSearchPattern(org.eclipse.jdt.core.search.ISearchPattern, org.eclipse.jdt.core.search.ISearchPattern)">createOrSearchPattern</a></b>)</li>
-</ul>
-
-
-<h4>
-Creating a Java search scope
-</h4>
-<p>
-If you are interested in search results in a given project or even in a given package, or if you know that search results
-can be only in a hierarchy of a given type, you can create the appropriate search scope using 
-<b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#createJavaSearchScope(org.eclipse.jdt.core.IJavaElement[])">createJavaSearchScope(IJavaElement[])</a></b>
-or <b><a href="../reference/api/org/eclipse/jdt/core/search/SearchEngine.html#createHierarchyScope(org.eclipse.jdt.core.IType)">createHierarchyScope(IType)</a></b>.</p>
-<p>
-For example, creating a search scope on a given package is done as follows:</p>
-<font color="#4444cc"><pre>
-    // Get the package
-    IPackageFragment pkg = ...;
-
-    // Create search scope
-    IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] {pkg});
-</pre></font>
-<p>
-Or creating a search scope on the hierarchy of a given type is:</p>
-<font color="#4444cc"><pre>
-    // Get the type
-    IType type = ...;
-
-    // Create search scope
-    IJavaSearchScope scope = SearchEngine.createHierarchyScope(type);
-</pre></font>
-<p>
-Finally, you can create a search scope on the entire workspace:</p>
-<font color="#4444cc"><pre>
-    // Create search scope
-    IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
-</pre></font>
-
-<h3>
-Searching</h3>
-<p>
-Once you have created a search pattern and a search scope, and you have implemented 
-<b><a href="../reference/api/org/eclipse/jdt/core/search/IJavaSearchResultCollector.html">IJavaSearchResultCollector</a></b>,
-you can start a search query as follows: </p>
-<font color="#4444cc"><pre>
-    // Get the search pattern
-    ISearchPattern pattern = ...;
-
-    // Get the search scope
-    IJavaSearchScope scope = ...;
-
-    // Get the search result collector
-    IJavaSearchResultCollector collector = ...;
-
-    // Search
-    SearchEngine searchEngine = new SearchEngine();
-    searchEngine.search(ResourcesPlugin.getWorkspace(), pattern, scope, collector);
-</pre></font>
-<p>
-A notification that the search starts is sent to your search result collector using the
-<b><a href="../reference/api/org/eclipse/jdt/core/search/IJavaSearchResultCollector.html#aboutToStart()">aboutToStart</a></b>
-method. &nbsp;Then, each search result is reported using the 
-<b><a href="../reference/api/org/eclipse/jdt/core/search/IJavaSearchResultCollector.html#accept(org.eclipse.core.resources.IResource, int, int, org.eclipse.jdt.core.IJavaElement, int)">accept</a></b>
-method. Finally 
-<b><a href="../reference/api/org/eclipse/jdt/core/search/IJavaSearchResultCollector.html#done()">done</a></b>
-indicates that the search has ended.</p>
-
-<h3>
-Collecting search results</h3>
-<p>
-Search results are reported using the 
-<b><a href="../reference/api/org/eclipse/jdt/core/search/IJavaSearchResultCollector.html#accept(org.eclipse.core.resources.IResource, int, int, org.eclipse.jdt.core.IJavaElement, int)">accept</a></b>
-method. Paragraphs below detail each argument to this method. </p>
-
-<h4>
-Resources and Java elements</h4>
-<p>
-A search result can correspond to a Java element (e.g. a type declaration) or it can be contained in a Java element
-(e.g. a reference to a type inside a method). The search engine always tries to find the innermost Java element that
-corresponds to or that contains the search result. For example, searching for type declarations by name could find
-a local type declaration. Since the Java model doesn't represent local types, the method that contains this local type 
-declaration is given to the result collector. </p>
-<p>
-The search engine also tries to give the resource that contains the Java element to the result collector. So if the Java
-element is a method in a compilation unit, the resource is the corresponding 
-<a HREF="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IFile.html"><b>IFile</b></a>. 
-If the element is contained in a .jar file, the resource is the .jar file, if this .jar file is in the workspace. If it is an external 
-.jar file, then the resource is <b>null</b>. </p>
-
-<h4>
-Source positions</h4>
-<p> Source positions are given relative to the compilation unit that contains
-the search result. If the search result is contained in  a .jar file, the
-source positions are relative to the attached source. They are (-1, -1) if
-there is no source attached to  the .jar file. </p>
-
-<h4>
-Accurate versus inaccurate search results</h4>
-<p>
-In most cases search results are accurate, meaning that the search engine was able to determine that the given
-match is what was asked for. However in some cases the search engine is unable to do so, in such cases the match is
-inaccurate. Some possible reasons why a match could be inaccurate are:
-</p><ul>
-<li>The classpath on the project that contains the result is not properly set. For example, it refers to a project that is
-      not accesible, a jar on the classpath requires another jar that is not on the classpath, etc.</li>
-<li>The user code would not compile. For example, it refers to a class that is not yet defined.</li>
-</ul> 
-
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"></a>
-</p>
-
-</body></html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_utility.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_utility.htm
deleted file mode 100644
index 18bc968..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_utility.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Programmatically launching a Java editor</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2>JavaUI utilities</h2>
-<p><a href="../reference/api/org/eclipse/jdt/ui/JavaUI.html"><b>JavaUI</b></a> 
-    is the main access point to the Java user interface components. It allows 
-    you to programmatically open editors on Java elements, open a Java or Java 
-    Browsing perspective,&nbsp; and open package and type prompter dialogs. </p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_wizards.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_wizards.htm
deleted file mode 100644
index 01a2207..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_wizards.htm
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Java wizard pages</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2> Java wizard pages</h2>
-<p> The <a href="../reference/api/org/eclipse/jdt/ui/wizards/package-summary.html"><b>org.eclipse.jdt.ui.wizards</b></a> 
-  package provides wizard pages for creating and configuring Java
-elements.&nbsp; Several
-prefabricated pages are provided for your use.</p>
-<h3> Configuring Java build settings</h3>
-<p><a href="../reference/api/org/eclipse/jdt/ui/wizards/JavaCapabilityConfigurationPage.html"><b>JavaCapabilityConfigurationPage</b></a> supports editing the Java build settings 
-    (source folder setup, referenced projects and, referenced and exported libraries).&nbsp;&nbsp;</p>
-<p>If you need to provide a wizard that configures a project for your plug-in
-while also configuring it with the Java nature and other Java project
-capabilities, you should use this page (rather than subclassing <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPage.html"><b>NewJavaProjectWizardPage</b></a>).</p>
-<h3><b>Creating new Java elements</b></h3>
-<p>A hierarchy of wizard pages support the creation of new Java
-elements.&nbsp;&nbsp;</p>
-<p><a href="../reference/api/org/eclipse/jdt/ui/wizards/NewElementWizardPage.html"><b>NewElementWizardPage</b></a>
-is the abstract class that defines the basic operation of the wizard.&nbsp;
-Additional abstract classes are provided in the hierarchy for making
-customizations to the functionality provided by the concrete wizards.</p>
-<p>The concrete creation wizards can be used directly and generally are not
-intended to be subclassed.&nbsp;</p>
-<ul>
-  <li> 
-    <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewClassWizardPage.html"><b>NewClassWizardPage</b></a>
-    allows users to define a new Java class.&nbsp; To customize the behavior for
-    this wizard, you should subclass <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewTypeWizardPage.html"><b>NewTypeWizardPage</b></a>.</li>
-  <li> 
-    <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewInterfaceWizardPage.html"><b>NewInterfaceWizardPage</b></a>
-    allows users to define a new Java interface.&nbsp; To customize the behavior
-    for this wizard, you should subclass <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewTypeWizardPage.html"><b>NewTypeWizardPage</b></a>.</li>
-  <li> 
-    <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPage.html"><b>NewJavaProjectWizardPage</b></a>
-    allows users to create a new Java project.&nbsp; To create a different kind
-    of project with Java capabilities, you should use <a href="../reference/api/org/eclipse/jdt/ui/wizards/JavaCapabilityConfigurationPage.html"><b>JavaCapabilityConfigurationPage</b></a> <b>
-    </b>where possible rather than subclassing this class.</li>
-  <li> 
-    <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewPackageWizardPage.html"><b>NewPackageWizardPage</b></a>
-    allows users to create a new Java package. To customize the behavior for
-    this wizard, you should subclass <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewContainerWizardPage.html"><b>NewContainerWizardPage</b></a>
-    rather than this class.&nbsp;</li>
-</ul>
-<h3>Contributing a classpath container wizard page</h3>
-<p>The interface <a href="../reference/api/org/eclipse/jdt/ui/wizards/IClasspathContainerPage.html"><b>IClasspathContainerPage</b></a>
-defines a structure for contributing a wizard page that allows a user to define
-a new classpath container entry or edit an existing one.&nbsp; If your plug-in
-has defined its own type of classpath container using the JDT Core <b><a href="../reference/extension-points/org_eclipse_jdt_core_classpathContainerInitializer.html">org.eclipse.jdt.core.classpathContainerInitializer</a></b>
- extension point, then you will probably want to define a corresponding wizard
-page for editing and creating classpath containers of this type.</p>
-<p>Your plug-in's markup should provide an extension <b><a href="../reference/extension-points/org_eclipse_jdt_core_classpathContainerInitializer.html">org.eclipse.jdt.ui.classpathContainerPage</a>.&nbsp;
-</b>In the extension markup, you provide the name of your class that implements <a href="../reference/api/org/eclipse/jdt/ui/wizards/IClasspathContainerPage.html"><b>IClasspathContainerPage</b></a>.&nbsp;
-If you want to provide additional information in your wizard page about a
-classpath's context when it is selected, you can implement <a href="../reference/api/org/eclipse/jdt/ui/wizards/IClasspathContainerPageExtension.html"><b>IClasspathContainerPageExtension</b></a><b>
-</b>to initialize any state that depends on the entries selected in the current
-classpath.</p>
-<h3> Customizing a wizard page</h3>
-<p> Besides using 
-  prefabricated pages, you can subclass the wizard pages to 
-  add your own input fields or to influence the code generation.&nbsp; You
-should use the abstract classes in the <a href="../reference/api/org/eclipse/jdt/ui/wizards/NewElementWizardPage.html"><b>NewElementWizardPage</b></a><b>
-</b>hierarchy to customize a wizard rather than subclassing the concrete
-classes.</p>
-<p> Below is a sample 
-  of a new type wizard page that is customized to create JUnit test case classes. 
-  The page initializes the super class field with &quot;junit.framework.TestCase&quot; 
-  and adds a checkbox that controls whether method stubs for the <code>setUp()</code> and <code>tearDown()</code>
-  method are to be created.</p>
-<pre><font color="#4444CC">public class TestCaseWizardPage extends NewTypeWizardPage {
-    private Button fCreateStubs;
-
-    public TestCaseWizardPage() {
-        super(true, &quot;TestCaseWizardPage&quot;);
-    }
-
-    /**
-     * The wizard managing this wizard page must call this method
-     * during initialization with a corresponding selection.
-     */   
-    public void init(IStructuredSelection selection) {
-        IJavaElement jelem= getInitialJavaElement(selection);
-        initContainerPage(jelem);
-        initTypePage(jelem);
-        doStatusUpdate();
-    }
-
-    private void doStatusUpdate() {
-        // define the components for which a status is desired
-        IStatus[] status= new IStatus[] {
-            fContainerStatus,
-            isEnclosingTypeSelected() ? fEnclosingTypeStatus : fPackageStatus,
-            fTypeNameStatus,
-        };
-        updateStatus(status);
-    }
-
-
-    protected void handleFieldChanged(String fieldName) {
-        super.handleFieldChanged(fieldName);
-
-        doStatusUpdate();
-    }
-	
-    public void createControl(Composite parent) {
-        initializeDialogUnits(parent);
-        Composite composite= new Composite(parent, SWT.NONE);
-        int nColumns= 4;
-        GridLayout layout= new GridLayout();
-        layout.numColumns= nColumns;
-        composite.setLayout(layout);
-
-        // Create the standard input fields
-        createContainerControls(composite, nColumns);
-        createPackageControls(composite, nColumns);
-        createSeparator(composite, nColumns);
-        createTypeNameControls(composite, nColumns);
-        createSuperClassControls(composite, nColumns);
-
-        // Create the checkbox controlling whether we want stubs
-        fCreateStubs= new Button(composite, SWT.CHECK);
-        fCreateStubs.setText(&quot;Add 'setUp()' and 'tearDown()' to new class&quot;);
-        GridData gd= new GridData();
-        gd.horizontalSpan= nColumns;
-        fCreateStubs.setLayoutData(gd);
-
-        setControl(composite);
-
-        // Initialize the super type field and mark it as read-only
-        setSuperClass(&quot;junit.framework.TestCase&quot;, false);
-    }
-
-    protected void createTypeMembers(IType newType, ImportsManager imports, IProgressMonitor monitor) throws CoreException {
-        if (fCreateStubs.getSelection()) {
-            String setUpMathod= &quot;public void setUp() {}&quot;;
-            newType.createMethod(setUpMathod, null, false, null);
-
-            String tearDownMathod= &quot;public void setUp() {}&quot;
-            newType.createMethod(tearDownMathod, null, false, null); 
-        }
-   }
-}</font></pre>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_write_jar_file.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_write_jar_file.htm
deleted file mode 100644
index 34c9225..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_api_write_jar_file.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Programmatically Writing a Jar file</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2>Writing Jar files</h2>
-<p> The <a href="../reference/api/org/eclipse/jdt/ui/jarpackager/package-summary.html"> 
-  <b> 
-  org.eclipse.ui.jarpackager</b></a> package provides utility classes to programmatically 
-  export files to a Jar file. Below is a code snippet that outlines the use of 
-  the <a href="../reference/api/org/eclipse/jdt/ui/jarpackager/JarPackageData.html"><b>JarPackageData</b></a> 
-  class:</p>
-<pre><font color="#4444cc">    void createJar(IType mainType, IFile[] filestoExport) {
-        Shell parentShell= ...;
-        JarPackageData description= new JarPackageData();
-        IPath location= new Path(&quot;C:/tmp/myjar.jar&quot;);
-        description.setJarLocation(location);
-        description.setSaveManifest(true);
-        description.setManifestMainClass(mainType);
-        description.setElements(filestoExport);
-        IJarExportRunnable runnable= description.createJarExportRunnable(parentShell);
-        try {
-            new ProgressMonitorDialog(parentShell).run(true,true, runnable);
-        } catch (InvocationTargetException e) {
-            // An error has occurred while executing the operation
-        } catch (InterruptedException e) {
-            // operation has been canceled.
-        }
-    }</font></pre>
-<p> Additional API is provided to create a plug-in specific subclass of <a href="../reference/api/org/eclipse/jdt/ui/jarpackager/JarPackageData.html"><b>JarPackageData</b></a>. 
-  This allows other plug-ins to implement their own Jar export/import wizards 
-  and to save the content of the <a href="../reference/api/org/eclipse/jdt/ui/jarpackager/JarPackageData.html"><b>JarPackageData</b></a>
-object to a corresponding Jar 
-  description file.</p>
-<p> Once the JAR is described by a <a href="../reference/api/org/eclipse/jdt/ui/jarpackager/JarPackageData.html"><b>JarPackageData</b></a>,
-it can be programmatically written using a <a href="../reference/api/org/eclipse/jdt/ui/jarpackager/JarWriter.html"><b>JarWriter</b></a>.</p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int.htm
deleted file mode 100644
index 6f576a0..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Java Development Tooling overview</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h1> JDT Programmer's Guide</h1>
-<p>The Eclipse platform is delivered with a full featured Java integrated development 
-  environment (IDE). Java development tooling (JDT) allows users to write, compile, 
-  test, debug, and edit programs written in the Java programming language.</p>
-<p>The JDT makes use of many of the platform extension points and frameworks described 
-  in the Platform Plug-in Developer Guide.&nbsp; It's easiest to think of 
-  the JDT as a set of plug-ins that add Java specific behavior to the generic 
-  platform resource model and contribute Java specific views, editors, and actions 
-  to the workbench.</p>
-<p> This guide discusses the extension points and API provided by the JDT. 
-  We assume that you already understand the concepts of plug-ins, extension points, 
-  workspace resources, and the workbench UI.&nbsp; </p>
-<p>Given that the JDT supplies a full featured Java IDE, why would you need to 
-  use the JDT API?&nbsp; If you are building a plug-in that interacts with Java programs or resources 
-  as part of its function, you may need to do one or more of the following things:</p>
-<ul>
-  <li> Programmatically manipulate Java resources, such as creating projects, 
-    generating Java source code, performing builds, or detecting problems in code.</li>
-  <li> Programmatically launch a Java program from the platform</li>
-  <li> Provide a new type of VM launcher to support a new family of Java runtimes</li>
-  <li> Add new functions and extensions to the Java IDE itself</li>
-</ul>
-<p> The JDT is structured into three major components:</p>
-<ul>
-  <li><a href="jdt_int_core.htm">JDT Core</a> - the headless infrastructure for compiling and manipulating Java
-    code.</li>
-  <li><a href="jdt_int_ui.htm">JDT UI</a> - the user interface extensions that provide the IDE.</li>
-  <li><a href="jdt_int_debug.htm">JDT Debug</a> - program launching and debug support specific to the Java programming language.</li>
-</ul>
-<p>We'll examine each component's structure and the API it provides.</p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_core.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_core.htm
deleted file mode 100644
index 72e1a3e..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_core.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Java development process</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2> JDT Core&nbsp;</h2>
-<p> JDT Core (<b>org.eclipse.jdt.core</b>) is the plug-in that defines the core Java elements 
-    and API. You should always list this plug-in as a prerequisite when you are
-developing Java specific features.</p>
-<p> JDT Core packages give you access to the Java model objects and headless
-Java IDE infrastructure.&nbsp; The JDT Core packages include:</p>
-<ul>
-  <li><b><a href="../reference/api/org/eclipse/jdt/core/package-summary.html">org.eclipse.jdt.core</a></b>
-    - defines the classes that describe the Java model.
-  </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/core/compiler/package-summary.html">org.eclipse.jdt.core.compiler</a>
-    </b> - defines API for the compiler infrastructure.
-  </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/core/dom/package-summary.html">org.eclipse.jdt.core.dom</a> </b>
-    - supports Abstract Syntax Trees (AST) that 
-    can be used for examining the structure of a compilation unit down to the 
-    statement level.
-  </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/core/eval/package-summary.html">org.eclipse.jdt.core.eval</a></b>
-    - supports
-    the evaluation of code snippets in a scrapbook or inside the debugger.
-  </li>
-  <li><a href="../reference/api/org/eclipse/jdt/core/jdom/package-summary.html"><b> 
-    org.eclipse.jdt.core.jdom</b></a> - supports a Java Document Object Model (DOM) 
-    that can be used for walking the structure of a Java compilation unit.
-  </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/core/search/package-summary.html"> 
-    org.eclipse.jdt.core.search</a></b> - supports searching the workspace's Java
-    model for Java elements match a particular description.&nbsp;&nbsp;
-  </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/core/util/package-summary.html">org.eclipse.jdt.core.util</a>
-    </b>- provides
-    utility classes for manipulating .class files and Java model elements.
-  </li>
-</ul>
-<p>Manipulation of the structure of a compilation unit should be done using <code>org.eclipse.jdt.core.dom</code> instead of <code>org.eclipse.jdt.core.jdom</code>.
-<code>org.eclipse.jdt.core.jdom</code> will be deprecated in the 2.2. stream and replaced with <code>org.eclipse.jdt.core.dom</code>.
-</p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_debug.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_debug.htm
deleted file mode 100644
index 4b37275..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_debug.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Java development process</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2> JDT Debug</h2>
-<p> JDT Debug is comprised of several plug-ins that support the running and
-debugging of Java code.</p>
-<ul>
-  <li><b>org.eclipse.jdt.launching</b> is the plug-in that defines the Java launching 
-    and runtime support. You will require this plug-in if you 
-    need to launch Java virtual machines programmatically.&nbsp; The JDT
-    launching is closely tied to the platform launching facility, which is
-    described in <a href="../../org.eclipse.platform.doc.isv/guide/debug_launch.htm">Launching
-    a program</a>.
-    <p>The package <a href="../reference/api/org/eclipse/jdt/launching/package-summary.html"><b>org.eclipse.jdt.launching </b></a> provides classes for launching Java runtimes 
-    from the platform.&nbsp; <b><a href="../reference/api/org/eclipse/jdt/launching/JavaRuntime.html">JavaRuntime</a> </b> implements static methods to access registered VMs and 
-    compute runtime classpaths and source lookup paths.&nbsp; A family of VM's 
-    (such as the JDK) is represented by the <a href="../reference/api/org/eclipse/jdt/launching/IVMInstallType.html"><b> 
-    IVMInstallType</b></a> class. <a href="../reference/api/org/eclipse/jdt/launching/IVMInstall.html"><b> 
-    IVMInstall</b></a> represents particular installations within a family.&nbsp; 
-    The <a href="../reference/api/org/eclipse/jdt/launching/IVMRunner.html"><b> 
-    IVMRunner</b></a> is used to start a particular Java VM and register its processes 
-    with the debug plug-in.
-    <p>The package <a href="../reference/api/org/eclipse/jdt/launching/sourcelookup/package-summary.html"><b>org.eclipse.jdt.launching.sourcelookup </b></a>defines classes for locating
-    source code elements in the file system.<br>
-  </li>
-  <li><b>org.eclipse.jdt.debug</b> is the plug-in that defines the Java debug 
-    model. You will require this plug-in if you need to programmatically 
-    access objects in a program being debugged.&nbsp; The JDT debug model is
-    closely tied to the platform debug model, which is described in <a href="../../org.eclipse.platform.doc.isv/guide/debug_model.htm">Platform
-    debug model</a>.
-    <p>The package <a href="../reference/api/org/eclipse/jdt/debug/core/package-summary.html"><b>org.eclipse.jdt.debug.core</b></a> supports a Java debug model based on
-    JDI/JDWP 
-    that can be used for controlling a Java program under debug.
-    <p>The package <a href="../reference/api/org/eclipse/jdt/debug/eval/package-summary.html"><b>org.eclipse.jdt.debug.eval</b></a> provides infrastructure for evaluating
-    Java expressions and reporting results.<br>
-  </li>
-  <li><b>org.eclipse.jdt.debug.ui</b> is the plug-in that defines the Java debug 
-    UI extensions. Most of the debugger API is provided by the platform debugger
-    infrastructure described in <a href="../../org.eclipse.platform.doc.isv/guide/debug_presentation.htm">Debug
-    model presentation</a> and <a href="../../org.eclipse.platform.doc.isv/guide/debug_ui.htm">Debug
-    UI utility classes</a>.&nbsp; The Java debug UI API focuses on accessing the prompting source locator
-    and Java launch configuration 
-    tabs.&nbsp;&nbsp;
-    <p>The package <a href="../reference/api/org/eclipse/jdt/debug/ui/launchConfigurations/package-summary.html"><b> 
-    org.eclipse.jdt.debug.ui.launchConfigurations</b></a> defines the launch
-    configuration tabs for local and remote Java applications.</p>
-    <p>The package <a href="../reference/api/org/eclipse/jdt/debug/ui/package-summary.html"><b> 
-    org.eclipse.jdt.debug.ui</b></a> implements a simple UI for locating source
-    code by prompting the user.</li>
-</ul>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_junit.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_junit.htm
deleted file mode 100644
index d453a43..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_junit.htm
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>JDT JUnit integration</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2>JDT JUnit integration</h2>
-<p><a href="http://www.junit.org">JUnit</a> is a simple test framework used to
-write repeatable tests.&nbsp; </p>
-<p>The JDT tools include a plug-in that integrates JUnit into the Java
-IDE.&nbsp; The JUnit plug-in allows you to define regression tests for your code
-and run them from the Java IDE. </p>
-<p>To learn how to use JUnit in the Java IDE, see <a href="../../org.eclipse.jdt.doc.user/tasks/tasks-208.htm">Creating
-JUnit tests</a>.&nbsp; The topics in this guide discuss how to interact
-programmatically with the JUnit IDE plug-in. </p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm
deleted file mode 100644
index 7d8a7ba..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm
+++ /dev/null
@@ -1,195 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Java elements and resources</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2> Java model</h2>
-<p> The Java model is the set of classes that model the objects associated with 
-  creating, editing, and building a Java program. The Java model classes are defined 
-  in <b><a href="../reference/api/org/eclipse/jdt/core/package-summary.html"> 
-  org.eclipse.jdt.core</a></b>.&nbsp; These classes implement Java specific 
-  behavior for resources and further decompose Java resources into model elements.</p>
-<h3> Java elements</h3>
-<p> The package <a href="../reference/api/org/eclipse/jdt/core/package-summary.html"><b> 
-  org.eclipse.jdt.core</b></a> defines the classes that model the elements that 
-  compose a Java program. The JDT uses an in-memory object model to represent 
-  the structure of a Java program. This structure is derived from the project's class path.
-  The model is hierarchical. Elements of a program can be decomposed into child elements.</p>
-<p> Manipulating Java elements is similar to manipulating resource objects.&nbsp; When you work with a Java 
-  element, you are actually working with a <b>handle</b> to some underlying model 
-  object.&nbsp; You must use the <b>exists()</b> protocol to determine whether 
-  the element is actually present in the workspace.&nbsp;</p>
-<p> The following table summarizes the different kinds of Java elements.</p>
-<table border="1">
-  <tbody> 
-  <tr> 
-    <th rowspan="1" colspan="1"> Element </th>
-    <th rowspan="1" colspan="1"> Description </th>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IJavaModel.html"><b> IJavaModel</b></a> 
-    </td>
-    <td> Represents the root Java element, corresponding to the workspace. The 
-      parent of all projects with the Java nature. It also gives you access to the projects without the java nature.</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html"><b> 
-      IJavaProject</b></a> </td>
-    <td> Represents a Java project in the workspace. (Child of <a href="../reference/api/org/eclipse/jdt/core/IJavaModel.html"><b> 
-      IJavaModel</b></a>) </td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IPackageFragmentRoot.html"><b> 
-      IPackageFragmentRoot</b></a> </td>
-    <td> Represents a set of package fragments, and maps the fragments to an underlying 
-      resource which is either a folder, JAR, or ZIP file. (Child of <a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html"><b> 
-      IJavaProject</b></a>) </td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IPackageFragment.html"><b> 
-      IPackageFragment</b></a> </td>
-    <td> Represents the portion of the workspace that corresponds to an entire 
-      package, or a portion of the package. (Child of <a href="../reference/api/org/eclipse/jdt/core/IPackageFragmentRoot.html"><b> 
-      IPackageFragmentRoot</b></a> )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/ICompilationUnit.html"><b> 
-      ICompilationUnit</b></a> </td>
-    <td> Represents a Java source (<b>.java</b>) file. (Child of <a href="../reference/api/org/eclipse/jdt/core/IPackageFragment.html"><b> 
-      IPackageFragment</b></a> )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IPackageDeclaration.html"><b> 
-      IPackageDeclaration</b></a> </td>
-    <td> Represents a package declaration in a compilation unit. (Child of <a href="../reference/api/org/eclipse/jdt/core/ICompilationUnit.html"><b> 
-      ICompilationUnit</b></a> )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IImportContainer.html"><b> 
-      IImportContainer</b></a> </td>
-    <td> Represents the collection of package import declarations in a compilation 
-      unit. (Child of <a href="../reference/api/org/eclipse/jdt/core/ICompilationUnit.html"><b> 
-      ICompilationUnit</b></a> )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IImportDeclaration.html"><b> 
-      IImportDeclaration</b></a> </td>
-    <td> Represents a single package import declaration. (Child of <a href="../reference/api/org/eclipse/jdt/core/IImportContainer.html"><b> 
-      IImportContainer</b></a> )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IType.html"><b> IType</b></a> 
-    </td>
-    <td> Represents either a source type inside a compilation unit, or a binary 
-      type inside a class file. </td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IField.html"><b> IField</b></a> 
-    </td>
-    <td> Represents a field inside a type. (Child of <a href="../reference/api/org/eclipse/jdt/core/IType.html"><b> 
-      IType</b></a> )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IMethod.html"><b> IMethod</b></a> 
-    </td>
-    <td> Represents a method or constructor inside a type. (Child of <a href="../reference/api/org/eclipse/jdt/core/IType.html"><b> 
-      IType</b></a> )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IInitializer.html"><b> 
-      IInitializer</b></a> </td>
-    <td> Represents a static or instance initializer inside a type. (Child of 
-      <a href="../reference/api/org/eclipse/jdt/core/IType.html"><b> IType</b></a> 
-      )</td>
-  </tr>
-  <tr> 
-    <td> <a href="../reference/api/org/eclipse/jdt/core/IClassFile.html"><b> IClassFile</b></a> 
-    </td>
-    <td> Represents a compiled (binary) type.&nbsp; (Child of <a href="../reference/api/org/eclipse/jdt/core/IPackageFragment.html"><b> 
-      IPackageFragment</b></a> )</td>
-  </tr>
-  </tbody> 
-</table>
-<p> All Java elements support the <a href="../reference/api/org/eclipse/jdt/core/IJavaElement.html"><b> 
-  IJavaElement</b></a> interface. </p>
-<p> Some of the elements are shown in the Packages view.&nbsp; These elements 
-  implement the <b><a href="../reference/api/org/eclipse/jdt/core/IOpenable.html"> 
-  IOpenable</a> </b> interface, since they must be opened before they can be navigated. 
-  The figure below shows how these elements are represented in the Packages view.</p>
-<p><img src="images/openables.gif" width=438 height=365 border="0" alt="Packages View showing elements implementing the IOpenable interface"> 
-</p>
-<p>The Java elements that implement <b><a href="../reference/api/org/eclipse/jdt/core/IOpenable.html"> 
-  IOpenable</a> </b> are created primarily from information found in the underlying 
-  resource files.&nbsp; The same elements are represented generically in the resource 
-  navigator view.</p>
-<p><img src="images/javanavigator.gif" width=237 height=224 border="0" alt="Resource Navigator showing elements implementing the IOpenable interface"> 
-</p>
-<p> Other elements correspond to the items that make up a Java compilation unit. 
-  The figure below shows a Java compilation unit and a content outliner that displays 
-  the source elements in the compilation unit.</p>
-<img src="images/sourceelements.gif" width=529 height=450 border="0" alt="An editor and a content outliner illustrating the relation between corresponding source elements"> 
-<p> These elements implement the <a href="../reference/api/org/eclipse/jdt/core/ISourceReference.html"><b> 
-  ISourceReference</b></a> interface, since they can provide corresponding source 
-  code. (As these elements are selected in the content outliner, their corresponding 
-  source code is shown in the Java editor).</p>
-<h3> Java elements and their resources</h3>
-<p> Many of the Java elements correspond to generic resources in the workspace.&nbsp; 
-  When you want to create Java elements from a generic resource the class <a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b> 
-  JavaCore</b></a> is the best starting point. The following code snippet shows 
-  how to get Java elements from their corresponding resources.</p>
-<font color="#4444cc"> <pre>    
-        private void createJavaElementsFrom(IProject myProject, IFolder myFolder, IFile myFile) {
-        IJavaProject myJavaProject= JavaCore.create(myProject);
-        if (myJavaProject == null)
-            // the project is not configured for Java (has no Java nature)
-            return;
-            
-        // get a package fragment or package fragment root
-        IJavaElement myPackageFragment= JavaCore.create(myFolder);
-        
-        // get a .java (compilation unit), .class (class file), or
-        // .jar (package fragment root)
-        IJavaElement myJavaFile = JavaCore.create(myFile);
-    }</pre></font> 
-<p>Once you have a Java element, you can use the JDT API to traverse and query
-the model.&nbsp; You may also query the non-Java resources contained in a Java
-element.&nbsp;</p>
-<font color="#4444cc"><pre>         private void createJavaElementsFrom(IProject myProject, IFolder myFolder, IFile myFile) {
-        ...
-        // get the non Java resources contained in my project.
-        Object[] nonJavaChildren = myJavaProject.getNonJavaResources();
-        ...
-            </font></pre> 
-<h3> Java projects</h3>
-<p>When you create a Java project from a simple project, <a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b> 
-  JavaCore</b></a> will check to see if the project is configured with the Java 
-  nature.&nbsp; The JDT plug-in uses a project nature to designate a project as 
-  having Java behavior.&nbsp; This nature (<b>org.eclipse.jdt.core.JavaCore#NATURE_ID</b> 
-  ) is assigned to a project when the "New Java project" wizard creates a project.&nbsp; 
-  If the Java nature is not configured on a project, <a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b> 
-  JavaCore</b></a> will return null when asked to create the project.</p>
-<p><a href="../reference/api/org/eclipse/jdt/core/JavaCore.html"><b>JavaCore</b></a> 
-  is also used to maintain the Java class path, including locations for finding 
-  source code and libraries, and locations for generating output binary (<b>.class</b>) 
-  files.</p>
-<p> What are the unique characteristics of Java projects? They record their classpath 
-  in a "<b>.classpath</b>" file and add the Java incremental project builder to 
-  the project's build spec.&nbsp; Otherwise, they are just regular projects and 
-  can be configured with other natures (and other incremental builders) by plug-ins. 
-  Plug-ins that want to configure projects with Java behavior in addition to their 
-  own behavior typically use the <b><a href="../reference/api/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPage.html"> 
-  NewJavaProjectWizardPage</a> </b> to assign the Java nature to the project in 
-  addition to their own custom natures or behavior.</p>
-<p><a href="../reference/api/org/eclipse/jdt/core/IJavaModel.html"><b> IJavaModel</b></a> 
-  can be considered the parent of all projects in the workspace that have the 
-  Java project nature (and therefore can be treated as an <a href="../reference/api/org/eclipse/jdt/core/IJavaProject.html"><b> 
-  IJavaProject</b></a>).</p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_ui.htm b/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_ui.htm
deleted file mode 100644
index 306e2c1..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/guide/jdt_int_ui.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>JDT User interface</title>
-<link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body>
-<h2>JDT UI</h2>
-<p>JDT UI (<b>org.eclipse.jdt.ui</b>) is the plug-in implements the Java specific user interface 
-  classes that manipulate Java elements. The packages in the JDT UI implement
-the Java-specific extensions to the workbench.&nbsp;&nbsp;&nbsp; The JDT UI
-packages include:</p>
-<ul>
-  <li> <b><a href="../reference/api/org/eclipse/jdt/ui/package-summary.html"> 
-    org.eclipse.jdt.ui</a> </b> - provides support classes for presenting Java 
-    elements in the user interface.&nbsp; This package exposes constants for retrieving 
-    Java user interface parts from the workbench registry and for retrieving preference 
-    settings from the Java preferences.&nbsp; Programming interfaces <a href="../reference/api/org/eclipse/jdt/ui/ITypeHierarchyViewPart.html"><b>ITypeHierarchyViewPart</b></a> 
-    and <a href="../reference/api/org/eclipse/jdt/ui/IPackagesViewPart.html"> 
-    <b> IPackagesViewPart</b></a> are provided for interacting with Java views. 
-  </li>
-  <li> <b><a href="../reference/api/org/eclipse/jdt/ui/actions/package-summary.html">org.eclipse.jdt.ui.actions</a> 
-    </b>- provides actions and action groups to populate tool bars, global menu 
-    bars and context menus with JDT specific functionality. You should use action 
-    groups to populate menus and tool bars instead of adding actions directly. 
-    This shields you from missing newly added actions or from using outdated menu 
-    structures. </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/ui/jarpackager/package-summary.html"> 
-    org.eclipse.jdt.ui.jarpackager</a> </b> - provides classes and interfaces 
-    to generate a JAR file. </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/ui/refactoring/package-summary.html">org.eclipse.jdt.ui.refactoring</a></b> 
-    - provides support for running rename refactorings</li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/ui/text/package-summary.html"> 
-    org.eclipse.jdt.ui.text</a> </b> - provides support classes for presenting 
-    Java text.&nbsp; </li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/ui/text/java/package-summary.html">org.eclipse.jdt.ui.text.java</a></b> - provides interfaces to implement code completion processors.</li>
-  <li><b><a href="../reference/api/org/eclipse/jdt/ui/text/java/hover/package-summary.html"> 
-    org.eclipse.jdt.ui.text.java.hover</a> </b> - provides implementations for 
-    presenting text hovers in Java editors.&nbsp; </li>
-  <li><a href="../reference/api/org/eclipse/jdt/ui/wizards/package-summary.html"> 
-    <b> org.eclipse.jdt.ui.wizards</b></a> - provides wizard pages for creating 
-    and configuring Java elements. </li>
-</ul>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/hglegal.htm b/bundles/org.eclipse.jdt.doc.isv/hglegal.htm
deleted file mode 100644
index c598113..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/hglegal2002.htm b/bundles/org.eclipse.jdt.doc.isv/hglegal2002.htm
deleted file mode 100644
index 19c4fa7..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/hglegal2002.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. and others 2000, 2002. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/hglegal2003.htm b/bundles/org.eclipse.jdt.doc.isv/hglegal2003.htm
deleted file mode 100644
index 47c8540..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/hglegal2003.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/jdtOptions b/bundles/org.eclipse.jdt.doc.isv/jdtOptions
deleted file mode 100644
index 38c587f..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/jdtOptions
+++ /dev/null
@@ -1,36 +0,0 @@
--charset "iso-8859-1"
--sourcepath "../org.eclipse.jdt.debug.ui/ui:../org.eclipse.jdt.core/model:../org.eclipse.jdt.core/ant:../org.eclipse.jdt.core/batch:../org.eclipse.jdt.core/codeassist:../org.eclipse.jdt.core/compiler:../org.eclipse.jdt.core/eval:../org.eclipse.jdt.core/formatter:../org.eclipse.jdt.core/dom:../org.eclipse.jdt.core/search:../org.eclipse.jdt.launching/launching:../org.eclipse.jdt.debug/model:../org.eclipse.jdt.debug/jdi:../org.eclipse.jdt.debug/eval:../org.eclipse.jdt.ui/ui:../org.eclipse.jdt.ui/core refactoring:../org.eclipse.jdt.ui/ui refactoring:../org.eclipse.jdt.ui/core extension:../org.eclipse.jdt.junit/src"
--d reference/api
--classpath @rt@:../org.eclipse.core.boot/boot.jar:../org.eclipse.debug.core/dtcore.jar:../org.eclipse.compare/compare.jar:../org.eclipse.help/help.jar:../org.eclipse.help.ui/helpworkbench.jar:../org.eclipse.core.resources/resources.jar:../org.eclipse.core.runtime/runtime.jar:../org.eclipse.swt.motif/ws/motif/swt.jar:../org.eclipse.swt.win32/ws/win32/swt.jar:../org.eclipse.ui/ui.jar:../org.eclipse.jdt.debug/jdi.jar:../org.eclipse.debug.ui/dtui.jar:../org.eclipse.search/search.jar:../org.eclipse.jface/jface.jar:../org.eclipse.jface.text/jfacetext.jar:../org.eclipse.text/text.jar:../org.eclipse.ui.editors/editors.jar:../org.eclipse.ui.views/views.jar:../org.eclipse.ui.workbench/workbench.jar:../org.eclipse.ui.workbench.texteditor/texteditor.jar:../org.eclipse.core.variables/variables.jar:../org.eclipse.ui.ide/ide.jar:../org.eclipse.jdt.junit/junitsupport.jar
--use
--splitIndex
--windowtitle "Eclipse JDT API Specification"
--doctitle "Eclipse JDT API Specification"
--header "<b>Eclipse JDT</b><br>Pre-release 3.0"
--bottom "Copyright (c) IBM Corp. and others 2000, 2003.  All Rights Reserved."
--group "Java Development Tools Core Plug-in Packages" "org.eclipse.jdt.core:org.eclipse.jdt.core.*"
--group "Java Development Tools UI Plug-in Packages" "org.eclipse.jdt.ui:org.eclipse.jdt.ui.*"
--link http://java.sun.com/j2se/1.4/docs/api
--linkoffline ./../../../org.eclipse.platform.doc.isv/reference/api ../org.eclipse.platform.doc.isv/reference/api
-
-org.eclipse.jdt.core
-org.eclipse.jdt.core.compiler
-org.eclipse.jdt.core.dom
-org.eclipse.jdt.core.eval
-org.eclipse.jdt.core.jdom
-org.eclipse.jdt.core.util
-org.eclipse.jdt.core.search
-org.eclipse.jdt.debug.core
-org.eclipse.jdt.debug.eval
-org.eclipse.jdt.debug.ui
-org.eclipse.jdt.debug.ui.launchConfigurations
-org.eclipse.jdt.launching
-org.eclipse.jdt.launching.sourcelookup
-org.eclipse.jdt.ui
-org.eclipse.jdt.ui.actions
-org.eclipse.jdt.ui.jarpackager
-org.eclipse.jdt.ui.refactoring
-org.eclipse.jdt.ui.text
-org.eclipse.jdt.ui.text.java.hover
-org.eclipse.jdt.ui.wizards
-org.eclipse.jdt.junit
diff --git a/bundles/org.eclipse.jdt.doc.isv/jdtOptions.txt b/bundles/org.eclipse.jdt.doc.isv/jdtOptions.txt
deleted file mode 100644
index f05e2c9..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/jdtOptions.txt
+++ /dev/null
@@ -1,36 +0,0 @@
--charset "iso-8859-1"
--sourcepath "../org.eclipse.jdt.debug.ui/ui;../org.eclipse.jdt.core/model;../org.eclipse.jdt.core/ant;../org.eclipse.jdt.core/batch;../org.eclipse.jdt.core/codeassist;../org.eclipse.jdt.core/compiler;../org.eclipse.jdt.core/eval;../org.eclipse.jdt.core/formatter;../org.eclipse.jdt.core/dom;../org.eclipse.jdt.core/search;../org.eclipse.jdt.launching/launching;../org.eclipse.jdt.debug/model;../org.eclipse.jdt.debug/jdi;../org.eclipse.jdt.debug/eval;../org.eclipse.jdt.ui/ui;../org.eclipse.jdt.ui/core refactoring;../org.eclipse.jdt.ui/ui refactoring;../org.eclipse.jdt.ui/core extension;../org.eclipse.jdt.junit/src"
--d reference/api
--classpath  @rt@;../org.eclipse.core.boot/boot.jar;../org.eclipse.debug.core/dtcore.jar;../org.eclipse.compare/compare.jar;../org.eclipse.help/help.jar;../org.eclipse.help.ui/helpworkbench.jar;../org.eclipse.core.resources/resources.jar;../org.eclipse.core.runtime/runtime.jar;../org.eclipse.swt.win32/ws/win32/swt.jar;../org.eclipse.swt.motif/ws/motif/swt.jar;../org.eclipse.ui/ui.jar;../org.eclipse.jdt.debug/jdi.jar;../org.eclipse.debug.ui/dtui.jar;../org.eclipse.search/search.jar;../org.eclipse.jface/jface.jar;../org.eclipse.jface.text/jfacetext.jar;../org.eclipse.text/text.jar;../org.eclipse.ui.editors/editors.jar;../org.eclipse.ui.views/views.jar;../org.eclipse.ui.workbench/workbench.jar;../org.eclipse.ui.workbench.texteditor/texteditor.jar;../org.eclipse.core.variables/variables.jar;../org.eclipse.ui.ide/ide.jar;../org.eclipse.jdt.junit/junitsupport.jar
--use
--splitIndex
--windowtitle "Eclipse JDT API Specification"
--doctitle "Eclipse JDT API Specification"
--header "<b>Eclipse JDT</b><br>Pre-release 3.0"
--bottom "Copyright (c) IBM Corp. and others 2000, 2003.  All Rights Reserved."
--group "Java Development Tools Core Plug-in Packages" "org.eclipse.jdt.core;org.eclipse.jdt.core.*"
--group "Java Development Tools UI Plug-in Packages" "org.eclipse.jdt.ui;org.eclipse.jdt.ui.*"
--link http://java.sun.com/j2se/1.4/docs/api
--linkoffline ./../../../org.eclipse.platform.doc.isv/reference/api ../org.eclipse.platform.doc.isv/reference/api
-
-org.eclipse.jdt.core
-org.eclipse.jdt.core.compiler
-org.eclipse.jdt.core.dom
-org.eclipse.jdt.core.eval
-org.eclipse.jdt.core.jdom
-org.eclipse.jdt.core.util
-org.eclipse.jdt.core.search
-org.eclipse.jdt.debug.core
-org.eclipse.jdt.debug.eval
-org.eclipse.jdt.debug.ui
-org.eclipse.jdt.debug.ui.launchConfigurations
-org.eclipse.jdt.launching
-org.eclipse.jdt.launching.sourcelookup
-org.eclipse.jdt.ui
-org.eclipse.jdt.ui.actions
-org.eclipse.jdt.ui.jarpackager
-org.eclipse.jdt.ui.refactoring
-org.eclipse.jdt.ui.text
-org.eclipse.jdt.ui.text.java.hover
-org.eclipse.jdt.ui.wizards
-org.eclipse.jdt.junit
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/ngibmcpy.gif b/bundles/org.eclipse.jdt.doc.isv/ngibmcpy.gif
deleted file mode 100644
index 360f8e9..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/ngibmcpy2002.gif b/bundles/org.eclipse.jdt.doc.isv/ngibmcpy2002.gif
deleted file mode 100644
index 61cef48..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/ngibmcpy2002.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/ngibmcpy2003.gif b/bundles/org.eclipse.jdt.doc.isv/ngibmcpy2003.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/plugin.properties b/bundles/org.eclipse.jdt.doc.isv/plugin.properties
deleted file mode 100644
index d09e35c..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Eclipse JDT Plug-in Developer Guide
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.jdt.doc.isv/plugin.xml b/bundles/org.eclipse.jdt.doc.isv/plugin.xml
deleted file mode 100644
index 51bd72d..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/plugin.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!-- ===================================================== -->
-<!-- Declare the documentation for the JDT ISV Guide       -->
-<!-- We will declare only one infoset (book)               -->
-<!-- ===================================================== -->
-
-<plugin
-   name = "%pluginName"
-   id = "org.eclipse.jdt.doc.isv"
-   version = "3.0.0"
-   provider-name = "%providerName">
-
-
-<!-- ============================================================================= -->
-<!-- Define primary TOC                                                            -->
-<!-- ============================================================================= -->
-
-   <extension point="org.eclipse.help.toc"> 
-       <toc file="toc.xml" primary="true" />
-   </extension>
-
-<!-- ============================================================================= -->
-<!-- Define TOCs                                                                   -->
-<!-- ============================================================================= -->
-
-   <extension point="org.eclipse.help.toc"> 
-       <toc file="topics_Guide.xml" />   
-       <toc file="topics_Reference.xml" />   
-       <toc file="topics_Questions.xml" />   
-       <toc file="topics_Samples.xml" />   
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.jdt.doc.isv/questions/index.html b/bundles/org.eclipse.jdt.doc.isv/questions/index.html
deleted file mode 100644
index 09179fe..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/questions/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Author" content="OTI">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>JDT Questions Index</title>
-</head>
-<body>
-<h1> JDT Questions Index</h1>
-<h2> JDT Core</h2>
-<ul>
-  <li><a href="../guide/jdt_int_core.htm">What is available in the JDT Core 
-    API Packages?</a> </li>
-  <li><a href="../guide/jdt_api_run.htm">How do I launch a Java program from the 
-    platform?</a> </li>
-  <li><a href="../guide/jdt_api_compile.htm">How do I programmatically compile 
-    a Java program?</a> </li>
-  <li><a href="../guide/jdt_api_classpath.htm">How do I setup a project's classpath?</a> 
-  </li>
-  <li><a href="../guide/jdt_api_manip.htm">How do I manipulate Java code?</a> 
-  </li>
-  <li><a href="../guide/jdt_api_search.htm">How do I use the Java search engine?</a> 
-  </li>
-  <li><a href="../guide/jdt_api_options.htm">What are the JDT Core options? </a> 
-  </li>
-  <li><a href="../guide/jdt_api_codeassist.htm">How do I programmatically use 
-    CodeAssist and CodeSelect?</a> </li>
-  <li><a href="../guide/jdt_int_model.htm">How are Java projects, folders, 
-    and files different from regular resources?</a> </li>
-</ul>
-<h2> JDT UI</h2>
-<ul>
-  <li><a href="../guide/jdt_int_ui.htm">What is available in the JDT UI packages?</a> 
-  </li>
-  <li><a href="../guide/jdt_api_open_editor.htm">How do I programmatically open 
-    a Java editor and display a specific Java element in the editor?</a> </li>
-  <li><a href="../guide/jdt_api_prompter.htm">How do I programatically open 
-    the Open Type dialog?</a> <br>
-  </li>
-  <li><a href="../guide/jdt_api_render.htm">How do I present Java elements in 
-    a standard JFace viewer?</a></li>
-  <li><a href="../guide/jdt_api_write_jar_file.htm">How do I write a Jar file?</a></li>
-  <li><a href="../guide/jdt_api_wizards.htm">How do I create a customized 
-    new Java element wizard page?</a></li>
-  <li><a href="../guide/jdt_api_preview_manip.htm">How do I manipulate Java code 
-    with a preview in a Java editor?</a><br>
-  </li>
-</ul>
-<p>
-<a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"> 
-</a> 
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/hglegal.htm b/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/hglegal.htm
deleted file mode 100644
index 04b6478..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/index.html b/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/index.html
deleted file mode 100644
index 78da1cd..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>JDT Extension Points</title>
-<link rel="stylesheet" type="text/css" HREF="../../book.css">
-</head>
-<body>
-<h1> JDT Extension Points </h1>
-<p>The following extension points can be used to extend the capabilities of the 
-  JDT infrastructure: </p>
-<ul>
-  <li><a href="org_eclipse_jdt_core_classpathVariableInitializer.html">org.eclipse.jdt.core.classpathVariableInitializer</a> 
-  </li>
-  <li><a href="org_eclipse_jdt_core_classpathContainerInitializer.html">org.eclipse.jdt.core.classpathContainerInitializer</a> 
-  </li>
-  <li><a href="org_eclipse_jdt_core_codeFormatter.html">org.eclipse.jdt.core.codeFormatter</a> 
-  </li>
-  <li><a href="org_eclipse_jdt_debug_ui_vmInstallTypePage.html">org.eclipse.jdt.debug.ui.vmInstallTypePage</a> </li>
-  <li><a href="org_eclipse_jdt_launching_classpathProviders.html">org.eclipse.jdt.launching.classpathProviders</a></li>
-  <li><a href="org_eclipse_jdt_launching_runtimeClasspathEntryResolvers.html">org.eclipse.jdt.launching.runtimeClasspathEntryResolvers</a> </li>
-  <li><a href="org_eclipse_jdt_launching_vmConnectors.html">org.eclipse.jdt.launching.vmConnectors</a></li>
-  <li><a href="org_eclipse_jdt_launching_vmInstallTypes.html">org.eclipse.jdt.launching.vmInstallTypes</a></li>
-  <li><a href="org_eclipse_jdt_ui_classpathContainerPage.html">org.eclipse.jdt.ui.classpathContainerPage</a></li>
-  <li><a href="org_eclipse_jdt_ui_javadocCompletionProcessor.html">org.eclipse.jdt.ui.javadocCompletionProcessor</a></li>
-  <li><a href="org_eclipse_jdt_ui_javaEditorTextHovers.html">org.eclipse.jdt.ui.javaEditorTextHover</a></li>
-  <li><a href="org_eclipse_jdt_ui_javaElementFilters.html">org.eclipse.jdt.ui.javaElementFilters</a></li>
-  <li><a href="org_eclipse_jdt_ui_quickAssistProcessors.html">org.eclipse.jdt.ui.quickAssistProcessors</a></li>
-  <li><a href="org_eclipse_jdt_ui_quickFixProcessors.html">org.eclipse.jdt.ui.quickFixProcessors</a></li>
-
-</ul>
-<P><a href="../../hglegal2003.htm"><img src="../../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"></a> 
-</P>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/ngibmcpy.gif b/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/ngibmcpy.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/reference/extension-points/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.isv/reference/misc/index.html b/bundles/org.eclipse.jdt.doc.isv/reference/misc/index.html
deleted file mode 100644
index 4c34f16..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/reference/misc/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Author" content="OTI">
-<link rel="STYLESHEET" href="../../book.css" charset="ISO-8859-1" type="text/css">
-<title>Eclipse Platform Release Notes</title>
-</head>
-<body>
-<h1> Other Reference Information</h1>
-<p>The following specifications, white papers, and design notes describe various 
-  aspects of the Java development tooling. </p>
-<ul>
-  <li><a href="overview-jdt.html">Map of Eclipse Java Development Tooling Plug-ins</a> 
-  </li>
-</ul>
-<p>
-<a href="../../hglegal2003.htm"><img src="../../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved. " border="0"> 
-</a> 
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/reference/misc/overview-jdt.html b/bundles/org.eclipse.jdt.doc.isv/reference/misc/overview-jdt.html
deleted file mode 100644
index 4c2e846..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/reference/misc/overview-jdt.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Author" content="OTI">
-<title>JDT Overview</title>
-<link rel="STYLESHEET" href="../../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-<body>
-<h1>Map of Java Development Tooling Plug-ins</h1>
-<p>The Eclipse Java development tooling provides a comprehensive Java development 
-  environment. </p>
-<p>The Java development tooling itself is divided up into a number of separate 
-  plug-ins. The following table shows which API packages are found in which plug-ins 
-  (the most commonly referenced API packages are highlighted). This table is useful 
-  for determining which plug-ins a given plug-in should include as prerequisites. 
-</p>
-<table border="1" width="80%" align="center">
-  <tbody> 
-  <tr> 
-    <td><b>API Package</b></td>
-    <td><b>Plug-in id</b></td>
-  </tr>
-  <tr> 
-    <td><tt>com.sun.jdi[.*]<br>
-      org.eclipse.jdi[.*]<br>
-      org.eclipse.jdt.debug[.*]</tt></td>
-    <td><tt>org.eclipse.jdt.debug</tt></td>
-  </tr>
-  <tr> 
-    <td><tt>org.eclipse.jdt.debug.ui[.*]</tt></td>
-    <td><tt>org.eclipse.jdt.debug.ui</tt><br>
-    </td>
-  </tr>
-  <tr> 
-    <td><tt>org.eclipse.jdt.core[.*]</tt></td>
-    <td><tt>org.eclipse.jdt.core</tt></td>
-  </tr>
-  <tr> 
-    <td><tt>org.eclipse.jdt.launching[.*]</tt></td>
-    <td><tt>org.eclipse.jdt.launching</tt></td>
-  </tr>
-  <tr> 
-    <td><tt>org.eclipse.jdt.ui[.*]</tt></td>
-    <td><tt>org.eclipse.jdt.ui</tt></td>
-  </tr>
-  <tr> 
-    <td><tt>org.eclipse.jdt.junit[.*]</tt></td>
-    <td><tt>org.eclipse.jdt.junit</tt></td>
-  </tr>
-  </tbody> 
-</table>
-<p><a href="../../hglegal2003.htm"><img src="../../ngibmcpy2003.gif" width=324 height=14 alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0"> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/samples/samples.html b/bundles/org.eclipse.jdt.doc.isv/samples/samples.html
deleted file mode 100644
index efd9a16..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/samples/samples.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Installation of Examples</title>
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-<body>
-<h1>Installing the examples</h1>
-To install the examples, download the zip file containing the examples.&nbsp; 
-<p> The workbench should not be running while the examples are being&nbsp; installed.&nbsp; 
-  Extract the contents of the zip file to the root directory&nbsp; of your Eclipse 
-  installation.</p>
-<p> For example, if you installed the Eclipse Project SDK on <b> d:\eclipse-sdk</b> 
-  then extract the contents of the examples zip file to <b>d:\eclipse-sdk</b>.</p>
-<p>Start the workbench. The example plug-ins should be installed.</p>
-<p><a href="../hglegal2003.htm"><img src="../ngibmcpy2003.gif" width=324 height=14 border="0" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."> 
-  </a> </p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.isv/schema.css b/bundles/org.eclipse.jdt.doc.isv/schema.css
deleted file mode 100644
index 4efbf26..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/schema.css
+++ /dev/null
@@ -1,66 +0,0 @@
-H6.CaptionFigColumn#header {
-	font-size:16px; 
-	display:inline
-}
-
-P.Note#copyright {
-	font-size: smaller; 
-	font-style: normal;
-	color: #336699; 
-	display:inline;
-	margin-top: 3.000000pt;
-	margin-bottom: 11.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 0.000000pt;
-}
-
-P.Code#dtd {
-	color: #800000; 
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 10.000000pt;
-}
-
-P.Code#dtdAttlist {
-	color: #800000; 
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 20.000000pt;
-}
-
-P.Code#tag {
-	color: #000080; 
-	display:inline;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 0.000000pt;
-}
-
-P.Code#cstring {
-	color: #008000; 
-	display:inline;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 0.000000pt;	
-}
-
-.ConfigMarkup#elementDesc {
-	color: black;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 10.000000pt;
-}
-
-.ConfigMarkup#attlistDesc {
-	color: black;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 32.000000pt;
-}
-
diff --git a/bundles/org.eclipse.jdt.doc.isv/toc.xml b/bundles/org.eclipse.jdt.doc.isv/toc.xml
deleted file mode 100644
index aa3c0f6..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/toc.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define the top level topics                                                   -->
-<!-- ============================================================================= -->
-
-<toc label="JDT Plug-in Developer Guide">
-	<topic label="Programmer&apos;s Guide" href="guide/jdt_int.htm">
-		<link toc="topics_Guide.xml" />
-	</topic>
-	<topic label="Reference">
-		<link toc="topics_Reference.xml" />
-	</topic>
-	<topic label="Examples Guide">
-		<link toc="topics_Samples.xml" />
-	</topic>
-	<topic label="Questions Index" href="questions/index.html">
-		<link toc="topics_Questions.xml" />
-	</topic>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/topics_Guide.xml b/bundles/org.eclipse.jdt.doc.isv/topics_Guide.xml
deleted file mode 100644
index 440d453..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/topics_Guide.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the main guide                                              -->
-<!-- ============================================================================= -->
-<toc label="Guide">
-	<topic label="JDT Core" href="guide/jdt_int_core.htm">
-		<topic label="Java model" href="guide/jdt_int_model.htm" />
-		<topic label="Manipulating Java code" href="guide/jdt_api_manip.htm" />
-		<topic label="Setting the Java build path" href="guide/jdt_api_classpath.htm" />
-		<topic label="Compiling Java code" href="guide/jdt_api_compile.htm" />
-		<topic label="Using the Java search engine" href="guide/jdt_api_search.htm" />
-		<topic label="Performing code assist on Java code" href="guide/jdt_api_codeassist.htm" />
-		<topic label="JDT Core options" href="guide/jdt_api_options.htm" />
-	</topic>
-	<topic label="JDT UI" href="guide/jdt_int_ui.htm">
-		<topic label="JavaUI utilities" href="guide/jdt_api_utility.htm">
-			<topic label="Opening a Java editor" href="guide/jdt_api_open_editor.htm" />
-			<topic label="Creating Java specific prompter dialogs" href="guide/jdt_api_prompter.htm" />
-		</topic>
-		<topic label="Presenting Java elements in a JFace viewer" href="guide/jdt_api_render.htm" />
-		<topic label="Java wizard pages" href="guide/jdt_api_wizards.htm" />
-		<topic label="Using working copies in an editor" href="guide/jdt_api_preview_manip.htm" />
-		<topic label="Customizing Java editors" href="guide/jdt_api_editors.htm" />
-		<topic label="Writing Jar files" href="guide/jdt_api_write_jar_file.htm" />
-	</topic>
-	<topic label="JDT Debug" href="guide/jdt_int_debug.htm">
-		<topic label="Running Java code" href="guide/jdt_api_run.htm" />
-	</topic>
-	<topic label="JDT JUnit integration" href="guide/jdt_int_junit.htm">
-		<topic label="Observing JUnit test runs" href="guide/jdt_api_junit.htm" />
-	</topic>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/topics_Questions.xml b/bundles/org.eclipse.jdt.doc.isv/topics_Questions.xml
deleted file mode 100644
index ad5a504..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/topics_Questions.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the questions index                                         -->
-<!-- ============================================================================= -->
-<toc label="Questions">
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/topics_Reference.xml b/bundles/org.eclipse.jdt.doc.isv/topics_Reference.xml
deleted file mode 100644
index 8c1ab59..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/topics_Reference.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the references                                              -->
-<!-- ============================================================================= -->
-<toc label="Reference">
-	<topic label="API Reference" href="reference/api/overview-summary.html">
-    		<topic label="org.eclipse.jdt.core" href="reference/api/org/eclipse/jdt/core/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.core.compiler" href="reference/api/org/eclipse/jdt/core/compiler/package-summary.html"/>
-   	 		<topic label="org.eclipse.jdt.core.dom" href="reference/api/org/eclipse/jdt/core/dom/package-summary.html"/>
-       		<topic label="org.eclipse.jdt.core.eval" href="reference/api/org/eclipse/jdt/core/eval/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.core.jdom" href="reference/api/org/eclipse/jdt/core/jdom/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.core.search" href="reference/api/org/eclipse/jdt/core/search/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.core.util" href="reference/api/org/eclipse/jdt/core/util/package-summary.html"/>
-     		<topic label="org.eclipse.jdt.launching" href="reference/api/org/eclipse/jdt/launching/package-summary.html"/>
-     		<topic label="org.eclipse.jdt.launching.sourcelookup" href="reference/api/org/eclipse/jdt/launching/sourcelookup/package-summary.html"/>
-     		
-    		<topic label="org.eclipse.jdt.ui" href="reference/api/org/eclipse/jdt/ui/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.ui.actions" href="reference/api/org/eclipse/jdt/ui/actions/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.ui.jarpackager" href="reference/api/org/eclipse/jdt/ui/jarpackager/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.ui.refactoring" href="reference/api/org/eclipse/jdt/ui/refactoring/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.ui.text" href="reference/api/org/eclipse/jdt/ui/text/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.ui.text.java.hover" href="reference/api/org/eclipse/jdt/ui/text/java/hover/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.ui.wizards" href="reference/api/org/eclipse/jdt/ui/wizards/package-summary.html"/>
-     		<topic label="org.eclipse.jdt.debug.core" href="reference/api/org/eclipse/jdt/debug/core/package-summary.html"/>
-    		<topic label="org.eclipse.jdt.debug.eval" href="reference/api/org/eclipse/jdt/debug/eval/package-summary.html"/>
-			<topic label="org.eclipse.jdt.debug.ui" href="reference/api/org/eclipse/jdt/debug/ui/package-summary.html"/>
-			<topic label="org.eclipse.jdt.debug.ui.launchConfigurations" href="reference/api/org/eclipse/jdt/debug/ui/launchConfigurations/package-summary.html"/>
-			<topic label="org.eclipse.jdt.junit" href="reference/api/org/eclipse/jdt/junit/package-summary.html"/>
-	</topic>
-	<topic label="Extension Points Reference" href="reference/extension-points/index.html">
-  		<topic label="org.eclipse.jdt.core.classpathVariableInitializer" href="reference/extension-points/org_eclipse_jdt_core_classpathVariableInitializer.html"/>
-  		<topic label="org.eclipse.jdt.core.classpathContainerInitializer" href="reference/extension-points/org_eclipse_jdt_core_classpathContainerInitializer.html"/>
-  		<topic label="org.eclipse.jdt.core.codeFormatter" href="reference/extension-points/org_eclipse_jdt_core_codeFormatter.html"/>
-  		<topic label="org.eclipse.jdt.debug.ui.vmInstallTypePage" href="reference/extension-points/org_eclipse_jdt_debug_ui_vmInstallTypePage.html"/>
-  		<topic label="org.eclipse.jdt.launching.classpathProviders" href="reference/extension-points/org_eclipse_jdt_launching_classpathProviders.html"/>
-      	<topic label="org.eclipse.jdt.launching.runtimeClasspathEntryResolvers" href="reference/extension-points/org_eclipse_jdt_launching_runtimeClasspathEntryResolvers.html"/>     	
-      	<topic label="org.eclipse.jdt.launching.vmConnectors" href="reference/extension-points/org_eclipse_jdt_launching_vmConnectors.html"/>
-     	<topic label="org.eclipse.jdt.launching.vmInstallTypes" href="reference/extension-points/org_eclipse_jdt_launching_vmInstallTypes.html"/>
-       	<topic label="org.eclipse.jdt.ui.classpathContainerPage" href="reference/extension-points/org_eclipse_jdt_ui_classpathContainerPage.html"/>
-		<topic label="org.eclipse.jdt.ui.javadocCompletionProcessor" href="reference/extension-points/org_eclipse_jdt_ui_javadocCompletionProcessor.html"/>
-       	<topic label="org.eclipse.jdt.ui.javaEditorTextHover" href="reference/extension-points/org_eclipse_jdt_ui_javaEditorTextHovers.html"/>
-       	<topic label="org.eclipse.jdt.ui.javaElementFilters" href="reference/extension-points/org_eclipse_jdt_ui_javaElementFilters.html"/>
-       	<topic label="org.eclipse.jdt.ui.quickAssistProcessors" href="reference/extension-points/org_eclipse_jdt_ui_quickAssistProcessors.html"/>
-       	<topic label="org.eclipse.jdt.ui.quickFixProcessors" href="reference/extension-points/org_eclipse_jdt_ui_quickFixProcessors.html"/>
-       	<topic label="org.eclipse.jdt.junit.testRunListeners" href="reference/extension-points/org_eclipse_jdt_junit_testRunListeners.html"/>
-	</topic>
-	<topic label="Other Reference Information" href="reference/misc/index.html">
-      	<topic label="JDT Plug-ins Map" href="reference/misc/overview-jdt.html"/>
-	</topic>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.isv/topics_Samples.xml b/bundles/org.eclipse.jdt.doc.isv/topics_Samples.xml
deleted file mode 100644
index c38cf71..0000000
--- a/bundles/org.eclipse.jdt.doc.isv/topics_Samples.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the samples                                                 -->
-<!-- ============================================================================= -->
-<toc label="Examples" >
-   <topic label="Installing the Examples" href="samples/samples.html" />
-   <topic label="Java Example Projects" href="samples/org.eclipse.jdt.ui.examples.projects/doc-html/jdt_projects_ex.html" />
-	 
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/.project b/bundles/org.eclipse.jdt.doc.user/.project
deleted file mode 100644
index 682c2c2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jdt.doc.user</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.jdt.doc.user/about.html b/bundles/org.eclipse.jdt.doc.user/about.html
deleted file mode 100644
index 301d11b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body>
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/about.ini b/bundles/org.eclipse.jdt.doc.user/about.ini
deleted file mode 100644
index f55ea3c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
diff --git a/bundles/org.eclipse.jdt.doc.user/about.mappings b/bundles/org.eclipse.jdt.doc.user/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/about.properties b/bundles/org.eclipse.jdt.doc.user/about.properties
deleted file mode 100644
index 5256d69..0000000
--- a/bundles/org.eclipse.jdt.doc.user/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Eclipse Java Development Tooling User Guide\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright IBM Corp. and others 2000, 2003.  All rights reserved.\n\
-Visit http://www.eclipse.org/jdt
-
diff --git a/bundles/org.eclipse.jdt.doc.user/book.css b/bundles/org.eclipse.jdt.doc.user/book.css
deleted file mode 100644
index 139eb28..0000000
--- a/bundles/org.eclipse.jdt.doc.user/book.css
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/build.properties b/bundles/org.eclipse.jdt.doc.user/build.properties
deleted file mode 100644
index 75fb4a7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# use provided build.xml
-custom=true
diff --git a/bundles/org.eclipse.jdt.doc.user/build.xml b/bundles/org.eclipse.jdt.doc.user/build.xml
deleted file mode 100644
index 844bc64..0000000
--- a/bundles/org.eclipse.jdt.doc.user/build.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.jdt.doc.user" default="build.jars" basedir=".">
-
-	<target name="init">
-		<property name="plugin" value="org.eclipse.jdt.doc.user"/>
-		<property name="version.suffix" value="_3.0.0"/>
-		<property name="full.name" value="${plugin}${version.suffix}"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-	</target>
-
-	<target name="build.update.jar" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<zip zipfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<zip zipfile="${destination.temp.folder}/${full.name}/doc.zip"
-			basedir="${basedir}"
-			includes="*.css, hglegal.htm, ngibmcpy.gif, concepts/**, gettingStarted/**, images/**, reference/**, tasks/**, tips/**, whatsNew/** "
-		/>
-		<copy todir="${destination.temp.folder}/${full.name}">
-			<fileset dir="${basedir}" includes="*.properties,*.xml,*.zip,*.html,*.htm,*.gif,*.css" excludes="build.properties,build.xml"/>
-		</copy>
-	</target>
-
-	<target name="build.jars" depends="init">
-	</target>
-
-	<target name="gather.sources" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="build.sources" depends="init">
-	</target>
-
-	<target name="gather.logs" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${plugin.destination}/${full.name}.jar"/>
-		<delete file="${plugin.destination}/${full.name}.zip"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running">
-		<eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
-	</target>
-
-	<target name="zip.plugin" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="build.sources"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<antcall target="gather.sources">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<delete>
-			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
-		</delete>
-		<zip zipfile="${plugin.destination}/${full.name}.zip" basedir="${temp.folder}" filesonly="true"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/cbrkpnts.htm b/bundles/org.eclipse.jdt.doc.user/concepts/cbrkpnts.htm
deleted file mode 100644
index 6ca0be4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/cbrkpnts.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Breakpoints</title>
-  </head>
-
-  <body>
-    <h1>Breakpoints</h1>
-
-    <p>A breakpoint causes the execution of a program thread to suspend at the location where the breakpoint is set.</p>
-
-    <p>Breakpoints can be enabled and disabled via their context menus in the Breakpoints view.</p>
-
-    <ul>
-      <li>When a breakpoint is enabled, it will cause a thread to suspend whenever
-        the breakpoint is reached. Enabled breakpoints are indicated with a blue circle. Enabled breakpoints
-        are shown with a checkmark overlay after their class is loaded by the VM
-        and the breakpoint is successfully installed.</li>
-
-      <li>When a breakpoint is disabled, it will not cause threads to suspend. Disabled breakpoints are indicated with a white circle.</li>
-    </ul>
-
-    <p>Breakpoints are displayed in the vertical editor ruler and in the Breakpoints view.</p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-     <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-     <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-     <a href="../tasks/tasks-134.htm">Suspending threads</a></p>
-
-    <p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-     <a href="../reference/ref-11.htm">Debug preferences</a><br>
-     <a href="../reference/ref-51.htm">Debug view</a><a href="../reference/ref-4.htm"><br>
-    Run menu</a><br>
-     <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-     <a href="../reference/ref-35.htm">Breakpoints view</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/cbuildcp.htm b/bundles/org.eclipse.jdt.doc.user/concepts/cbuildcp.htm
deleted file mode 100644
index a514c56..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/cbuildcp.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Build classpath</title>
-  </head>
-
-  <body>
-    <h1>Build classpath</h1>
-
-    <p>The build classpath is the path which is used to find classes that are
-    referenced by your source code. During compilation, this path is used
-    to search for classes outside of your project. The build classpath is
-    specified for each project. In the project properties, it is referred
-    to as the &quot;Java Build Path.&quot;</p>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-     <a href="concepts-4.htm">Java builder</a><br>
-     <a href="cclsspthv.htm">Classpath variable</a>
-    </p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-113.htm">Adding a JAR file to the build path</a><br>
-     <a href="../tasks/tasks-112.htm">Adding a library folder to the build path</a><br>
-     <a href="../tasks/tasks-106.htm">Building a Java program</a><br>
-     <a href="../tasks/tasks-108.htm">Building automatically</a><br>
-     <a href="../tasks/tasks-109.htm">Building manually</a><br>
-     <a href="../tasks/tasks-111.htm">Viewing and editing a project's build path</a><br>
-     <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-	 <a href="../tasks/tasks-221.htm">Creating a new source folder with exclusion filter</a><br>
-	 <a href="../tasks/tasks-222.htm">Creating a new source folder with specific output folder</a>
-    </p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-15.htm">Classpath Variables preferences</a><br>
-     <a href="../reference/ref-123.htm">Java Build Path properties</a><br>
-    </p>
-
-    <p><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/cclsspthv.htm b/bundles/org.eclipse.jdt.doc.user/concepts/cclsspthv.htm
deleted file mode 100644
index 9e31bfe..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/cclsspthv.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Classpath variables</title>
-  </head>
-
-  <body>
-    <h1>Classpath variables</h1>
-
-    <p>The build path for a Java project can include source code files, other
-    Java projects, and JAR files. JAR files can be specified using file
-    system paths, or by using variables that refer to locations on the
-    network.&nbsp;</p>
-
-    <p>Classpath variables allow you to avoid references to the location of a JAR
-    file on your local file system. By using a classpath variable, you can
-    specify a JAR file or library using only a variable name, such as JRE_LIB,
-    rather than specifying the location of the JRE on your workstation. In
-    this way, you can share build paths across teams and define the variables to
-    refer to the correct location for your particular computer.</p>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-     <a href="concepts-1.htm">Java development tools (JDT)</a><br>
-     <a href="cbuildcp.htm">Build classpath</a></p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-114.htm">Adding a variable classpath entry</a><br>
-     <a href="../tasks/tasks-116.htm">Attaching source to a classpath variable</a><br>
-     <a href="../tasks/tasks-117.htm">Defining a classpath variable</a><br>
-     <a href="../tasks/tasks-118.htm">Deleting a classpath variable</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-15.htm">Classpath Variables preferences</a><br>
-     <a href="../reference/ref-123.htm">Java Build Path properties</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/clocdbug.htm b/bundles/org.eclipse.jdt.doc.user/concepts/clocdbug.htm
deleted file mode 100644
index 5635ee7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/clocdbug.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Local debugging</title>
-  </head>
-
-  <body>
-    <h1>Local debugging</h1>
-
-    <p>The Java debugger has a client/server design so that it can be used to
-    debug programs that run locally (on the same workstation as the debugger) or
-    remotely (on another computer on the network).</p>
-
-    <p>Local debugging is the simplest and most common kind of debugging.&nbsp;
-    After you have finished editing and building your Java program, you can
-    launch the program on your workstation using the <strong>Run &gt; Debug...</strong> menu item
-    on the workbench.&nbsp; Launching the program in this way will establish a
-    connection between the debugger client and the java program that you are
-    launching.&nbsp; You may then use breakpoints, stepping, or expression
-    evaluation to debug your program.</p>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-    <a href="cbrkpnts.htm">Breakpoints</a></p>
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-    <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-    <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-    <a href="../tasks/tasks-134.htm">Suspending threads</a></p>
-    <p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-    <a href="../reference/ref-11.htm">Debug preferences</a><br>
-    <a href="../reference/ref-51.htm">Debug view</a><br>
-    <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/cnls.htm b/bundles/org.eclipse.jdt.doc.user/concepts/cnls.htm
deleted file mode 100644
index 4a6aecf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/cnls.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>String externalization</title>
-  </head>
-
-  <body>
-    <h1>String externalization</h1>
-
-    <p>The Java tools help you to develop applications that can be run on
-    international platforms. An important facet of designing a program for
-    use in different countries is the localization, or externalization, of text
-    that is displayed by the program. By externalizing strings, the text
-    can be translated for different countries and languages without rebuilding
-    the Java program.</p>
-
-    
-<p>The JDT provides the following support for internationalization and string 
-  externalization:</p>
-
-    
-<ul>
-  <li> A compiler option lets you mark non-externalized strings as compile-time 
-    warnings or errors. 
-    <ul>
-      <li>See the <span class="control">Window &gt; Preferences &gt; Java &gt; 
-        Compiler &gt; Problems &gt; Usage of non-externalized strings</span> preference</li>
-    </ul>
-  </li>
-  <li>Tools that allow you to find strings that have not been externalized.</li>
-  <li>A wizard that will guide you through externalizing the strings.</li>
-  <li>Tools that help you to find unused and incorrectly used keys for strings 
-    located in property files.</li>
-</ul>
-
-    <p>Comments can be used to denote strings that should not be externalized
-    and should not result in compile-time warnings or errors. These comments are of form <code>//$NON-NLS-n$</code>
-    where n is the 1-based index of the string in a line of code.</p>
-    <p>Additional information about internationalized applications can be found
-    in the following documents:</p>
-
-    <ul>
-      <li><a href=
-      "http://eclipse.org/articles/Article-Internationalization/how2I18n.html">http://eclipse.org/articles/Article-Internationalization/how2I18n.html</a></li>
-
-      <li><a href="http://java.sun.com/docs/books/tutorial/i18n/intro/index.html">http://java.sun.com/docs/books/tutorial/i18n/intro/index.html</a></li>
-    </ul>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-188.htm">Finding strings to externalize</a><br>
-     <a href="../tasks/tasks-202.htm">Finding unused and incorrectly used keys in property files</a><br>
-     <a href="../tasks/tasks-180.htm">Using the Externalize Strings wizard</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-menu-source.htm">Source menu</a><br>
-     <a href="../reference/ref-wizard-externalize-strings.htm">Externalize Strings wizard</a><br>
-     <a href="../reference/ref-preferences-compiler.htm">Compiler preferences</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-1.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-1.htm
deleted file mode 100644
index 6b023ce..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-1.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Java development tools (JDT)</title>
-  </head>
-
-  <body>
-    <h1>Java development tools (JDT)</h1>
-
-    <p>The Java development tools (JDT) are a set of extensions to the workbench that
-    allow you to edit, compile, and run Java programs.</p>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="cbuildcp.htm">Build classpath</a><br>
-     <a href="../concepts/cclsspthv.htm">Classpath variables</a><br>
-     <a href="../concepts/concepts-10.htm">Debugger</a><br>
-     <a href="../concepts/concepts-4.htm">Java builder</a><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a><br>
-     <a href="../concepts/concepts-3.htm">Java projects</a><br>
-     <a href="../concepts/concepts-5.htm">Java perspectives</a><br>
-     <a href="../concepts/concepts-6.htm">Java views</a><br>
-     <a href="../concepts/concepts-8.htm">Java search</a><br>
-     <a href="../concepts/concepts-9.htm">Refactoring support</a><br>
-     <a href="../concepts/concepts-11.htm">Scrapbook</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-31.htm">Adding source code as individual files</a><br>
-     <a href="../tasks/tasks-11.htm">Creating Java elements</a><br>
-     <a href="../tasks/tasks-66.htm">Formatting Java code</a><br>
-     <a href="../tasks/tasks-64.htm">Restoring a deleted workbench element</a><br>
-     <a href="../tasks/tasks-2.htm">Showing and hiding files</a><br>
-     <a href="../tasks/tasks-JREs.htm">Working with JREs</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-2.htm">JDT actions</a><br>
-     <a href="../reference/ref-152.htm">Frequently asked questions on JDT</a><br>
-     <a href="../reference/ref-155.htm">JDT glossary</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-10.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-10.htm
deleted file mode 100644
index 9fd6cae..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-10.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Debugger</title>
-  </head>
-
-  <body>
-    <h1>Debugger</h1>
-
-    <p>The JDT includes a debugger that enables you to detect and diagnose errors in your programs running either locally or remotely.</p>
-
-    <p>The debugger allows you to control the execution of your program by setting breakpoints, suspending
-    launched programs, stepping through your code, and examining the contents of
-    variables.</p>
-
-    <p>The debugger has a client/server design so you can debug programs running remotely on other systems in the network as well as programs running locally on your workstation.
-    The debug client runs inside the workbench on your workstation.&nbsp; The debugger server runs on the same system as the program you want to
-    debug.&nbsp; This could be a program launched on your workstation (local debugging) or a
-    program started on a computer that is accessible through a
-    network (remote debugging).</p>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-     <a href="../concepts/cbrkpnts.htm">Breakpoints</a><br>
-     <a href="cremdbug.htm">Remote debugging</a><br>
-     <a href="clocdbug.htm">Local debugging</a></p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-     <a href="../tasks/tasks-9.htm">Changing debugger launch options</a><br>
-     <a href="../tasks/tasks-141.htm">Connecting to a remote VM with the Remote Java application launch configuration</a><br>
-     <a href="../tasks/tasks-142.htm">Disconnecting from a VM</a><br>
-     <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-     <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-     <a href="../tasks/tasks-133.htm">Preparing to debug</a><br>
-     <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-     <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-     <a href="../tasks/tasks-134.htm">Suspending threads</a><br>
-    </p>
-
-    <p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-     <a href="../reference/ref-11.htm">Debug preferences</a><br>
-     <a href="../reference/ref-51.htm">Debug view</a><br>
-     <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-    </p>
-
-    <p><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-11.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-11.htm
deleted file mode 100644
index 8427b89..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-11.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Scrapbook</title>
-  </head>
-
-  <body>
-    <h1>Scrapbook</h1>
-
-    <p>The JDT contributes a scrapbook facility that can be used to experiment and evaluate Java
-    code snippets before building a complete Java program. Snippets are edited and evaluated in the Scrapbook page
-    editor, with resultant problems reported in the editor.</p>
-
-    <p>From a Java scrapbook editor, you can select a code snippet, evaluate it, and display the result as a string.
-    You can also show the object that results from evaluating a code snippet in the debugger's expressions view.</p>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-     <a href="../concepts/concepts-10.htm">Debugger</a></p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-149.htm">Creating a Java scrapbook page</a><br>
-     <a href="../tasks/tasks-151.htm">Displaying the result of evaluating an expression</a><br>
-     <a href="../tasks/tasks-150.htm">Inspecting the result of evaluating an expression</a><br>
-     <a href="../tasks/tasks-65.htm">Using content/code assist</a><br>
-     <a href="../tasks/tasks-107.htm">Viewing compilation errors and warnings</a></p>
-
-    <p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-     <a href="../reference/ref-129.htm">New Java Scrapbook Page wizard</a><br>
-     <a href="../reference/ref-34.htm">Java scrapbook page</a><br>
-     <a href="../reference/ref-56.htm">Expressions view</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-3.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-3.htm
deleted file mode 100644
index 11398e1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-3.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Java projects</title>
-  </head>
-
-  <body>
-    <h1>Java projects</h1>
-
-    <p>A Java project contains source code and related files for building a Java
-    program. It has an associated Java builder that can incrementally compile Java source files as they are changed.</p>
-
-    <p>A Java project also maintains a model of its contents. This model
-    includes information about the type hierarchy, references and declarations of Java elements.
-    This information is constantly updated as the user changes
-    the Java source code. The updating of the internal Java project model is independent of the
-    Java builder; in particular, when performing code modifications, if autobuild is turned
-    off, the model will still reflect the present project contents.</p>
-
-    <p>You can organize Java projects in two different ways:</p>
-
-    <ul>
-      <li><span>Using the project as the source container. This is the recommended organization for simple projects.</span></li>
-
-      <li><span>Using source folders inside the project as the source container. This is the recommended organization for more complex projects. It allows you to subdivide packages into
-      groups.</span></li>
-    </ul>
-
-    <p><img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-     <a href="concepts-4.htm">Java builder</a><br>
-     <a href="../concepts/concepts-9.htm">Refactoring support</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-     <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-     <a href="../tasks/tasks-13.htm">Creating a Java project as its own source container</a><br>
-     <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-     <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-     <a href="../tasks/tasks-11.htm">Creating Java elements</a><br>
-     <a href="../tasks/tasks-85.htm">Copying and moving Java elements</a><br>
-     <a href="../tasks/tasks-57.htm">Generating getters and setters</a><br>
-     <a href="../tasks/tasks-47.htm">Filtering elements</a><br>
-    </p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-121.htm">New Java Project wizard</a><br>
-     <a href="../reference/ref-preferences-new-project.htm">New Project preferences</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-4.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-4.htm
deleted file mode 100644
index d94d685..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-4.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Java builder</title>
-  </head>
-
-  <body>
-    <h1>Java builder</h1>
-
-    <p>The Java builder builds Java programs using a compiler that implements the Java Language Specification.&nbsp;
-    The Java builder can build programs incrementally as individual Java files are saved.</p>
-
-    <p>Problems detected by the compiler are classified as either warnings or errors. The existence of a warning does not affect the execution of the program; the code executes as
-    if it were written correctly. Compile-time errors (as specified by the Java Language Specification) are always reported as errors by the Java compiler. For some other types of
-    problems you can, however, specify if you want the Java compiler to report them as warnings, errors or to ignore them. To change the default settings, use the <span class=
-    "control">Window &gt; Preferences &gt; Java &gt; Compiler</span> preference page.</p>
-
-    <p>The Java compiler can create CLASS files even in presence of compilation errors. However, in the case of serious errors (for example, references to inconsistent binaries,
-    most likely related to an invalid build path), the Java builder does not produce any CLASS
-    files.</p>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-     <a href="cbuildcp.htm">Build classpath</a><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a></p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-106.htm">Building a Java program</a><br>
-     <a href="../tasks/tasks-108.htm">Building automatically</a><br>
-     <a href="../tasks/tasks-109.htm">Building manually</a><br>
-     <a href="../tasks/tasks-107.htm">Viewing compilation errors and warnings</a><br>
-     <a href="../tasks/tasks-110.htm">Working with build paths</a>
-     <a href="../tasks/tasks-111.htm">Viewing and editing a project's build path</a><br>
-     <a href="../tasks/tasks-113.htm">Adding a JAR file to the build path</a><br>
-     <a href="../tasks/tasks-112.htm">Adding a library folder to the build path</a><br>
-	</p>
-	
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-123.htm">Java Build Path properties</a><br>
-     <a href="../reference/ref-preferences-compiler.htm">Java Compiler preferences</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-5.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-5.htm
deleted file mode 100644
index 7265f03..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-5.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Java perspectives</title>
-  </head>
-
-  <body>
-    <h1>Java perspectives</h1>
-
-    The Java development tools contribute the following perspectives to the workbench:
-
-    <h2>Java</h2>
-
-    <p>A perspective designed for working with Java projects. It consists of an editor area and the following views:</p>
-
-    <ul>
-      <li><span>Package Explorer</span></li>
-
-      <li><span>Hierarchy</span></li>
-
-      <li><span>Outline</span></li>
-
-      <li><span>Search</span></li>
-
-      <li><span>Console</span></li>
-
-      <li><span>Tasks</span></li>
-    </ul>
-
-    <h2>Java Browsing</h2>
-
-    <p>A perspective designed for browsing the structure of Java projects. It consists of an editor area and the following views:</p>
-
-    <ul>
-      <li><span>Projects</span></li>
-
-      <li><span>Packages</span></li>
-
-      <li><span>Types</span></li>
-
-      <li><span>Members</span></li>
-    </ul>
-
-    <h2>Java Type Hierarchy</h2>
-
-    <p>A perspective designed for exploring a type hierarchy. It can be opened on types, compilation units, packages, projects or source folders and consists of the Hierarchy
-    view and an editor.</p>
-
-    <h2>Debug</h2>
-
-    <p>A perspective designed for debugging your Java program. It includes an editor area and the following views.</p>
-
-    <ul>
-      <li><span>Debug</span></li>
-
-      <li><span>Breakpoints</span></li>
-
-      <li><span>Expressions</span></li>
-
-      <li><span>Variables</span></li>
-
-      <li><span>Display</span></li>
-
-      <li><span>Outline</span></li>
-
-      <li><span>Console</span></li>
-    </ul>
-
-    <p><img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-     <a href="../concepts/concepts-6.htm">Java views</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-     <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-     <a href="../tasks/tasks-42.htm">Opening a type hierarchy in its own perspective</a><br>
-     <a href="../tasks/tasks-134.htm">Suspending threads</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-     <a href="../reference/ref-35.htm">Breakpoints view</a><br>
-     <a href="../reference/ref-45.htm">Console view</a><br>
-     <a href="../reference/ref-51.htm">Debug view</a><br>
-     <a href="../reference/ref-52.htm">Display view</a><br>
-     <a href="../reference/ref-56.htm">Expressions view</a><br>
-     <a href="../reference/ref-view-outline.htm">Outline view for Java</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer view</a><br>
-     <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a><br>
-     <a href="../reference/ref-74.htm">Variables view</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-6.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-6.htm
deleted file mode 100644
index d421dbc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-6.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Java views</title>
-  </head>
-
-  <body>
-    <h1>Java views</h1>
-
-    <p>The Java development tools contribute the following views to the workbench:</p>
-
-    <h2>Package Explorer view</h2>
-
-    <p>The Package Explorer view shows the Java element hierarchy of the Java projects in your workbench.
-    It provides you with a Java-specific view of the resources shown in the
-    Navigator. The element hierarchy is derived from the project's build class paths.
-    <br>For each project, its source folders and referenced libraries are shown in the tree.
-    You can open and browse the contents of both internal and external JAR files.</p>
-
-    <h2>Hierarchy view</h2>
-
-    <p>The Hierarchy view allows you to look at the complete hierarchy for a
-    type, only its subtypes, or only its supertypes.</p>
-
-    <h2>Projects view</h2>
-
-    <p>The Projects view shows Java projects, source folders, external and internal libraries.
-    <br>
-    Note: source folders and libraries (both internal and external) presented in this view are not expandable.
-    When they are selected, their contents are shown in the Packages view.</p>
-
-    <h2>Packages view</h2>
-
-    <p>The Packages view shows a list of Java packages from the currently selected Java projects, source folders or libraries.
-    Typically, the Projects view is used to make this selection.
-    </p>
-
-    <h2>Types view</h2>
-
-    <p>The Types view shows a list of Java types from the currently selected packages.
-    Typically, the Packages view is used to make this selection.
-    </p>
-
-    <h2>Members view</h2>
-
-    <p>The Members shows the content of a type, compilation unit or CLASS file.
-    Typically, the Types view is used to make this selection.
-    </p>
-
-    <p><img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-     <a href="../concepts/concepts-5.htm">Java perspectives</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-     <a href="../tasks/tasks-consoleAppearance.htm">Changing the appearance of the Console view</a><br>
-     <a href="../tasks/tasks-38.htm">Changing the appearance of the Hierarchy view</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-     <a href="../reference/ref-35.htm">Breakpoints view</a><br>
-     <a href="../reference/ref-45.htm">Console view</a><br>
-     <a href="../reference/ref-51.htm">Debug view</a><br>
-     <a href="../reference/ref-52.htm">Display view</a><br>
-     <a href="../reference/ref-56.htm">Expressions view</a><br>
-     <a href="../reference/ref-view-outline.htm">Outline view for Java</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer view</a><br>
-     <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a><br>
-     <a href="../reference/ref-74.htm">Variables view</a><br>
-     <a href="../reference/ref-24.htm">Views and editors</a><br>
-    <br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-7.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-7.htm
deleted file mode 100644
index d79e291..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-7.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Java editor</title>
-  </head>
-
-  <body>
-    <h1>Java editor</h1>
-
-    <p>The Java editor provides specialized features for editing Java code.</p>
-
-    <p>Associated with the editor is a Java-specific Outline view, which shows the structure of the active Java compilation unit.
-    It is updated as the user edits the compilation unit.</p>
-
-    <p>The Java editor can be opened on binary CLASS files.
-    If a JAR file containing the CLASS files has a source attachment,
-    then the editor shows the corresponding source.</p>
-
-    <p>The editor includes the following features:</p>
-
-    <ul>
-      <li>Syntax highlighting</li>
-
-      <li>Content/code assist</li>
-
-      <li>Code formatting</li>
-
-      <li>Import assistance</li>
-      
-      <li>Quick fix</li>
-
-      <li>Integrated debugging features</li>
-    </ul>
-
-    <p>The Java editor can be configured to either show an entire compilation unit or a single Java element only.
-    To change the setting, use the toolbar button <span class="control">Show Source of Selected Element Only</span>.
-    </p>
-
-    <p>The most common way to invoke the Java editor is to open a Java file from
-    the Navigator or Package explorer using pop-up menus or by clicking the file
-    (single or double-click depending on the user preferences). You can
-    also open the editor by opening Java elements, such as types, methods, or
-    fields, from other views.</p>
-
-    <p><img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-     <a href="../tasks/tasks-73.htm">Opening an editor for a selected element</a><br>
-     <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-     <a href="../tasks/tasks-65.htm">Using content/code assist</a><br>
-     <a href="../tasks/tasks-66.htm">Formatting Java code</a><br>
-     <a href="../tasks/tasks-59.htm">Adding required import statements</a><br>
-     <a href="../tasks/tasks-57.htm">Generating getters and setters</a><br>
-     <a href="../tasks/tasks-107.htm">Viewing compilation errors and warnings</a><br>
-     <a href="../tasks/tasks-156.htm">Viewing runtime exceptions</a><br>
-     <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-    </p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-     <a href="../reference/ref-java-editor.htm">Java editor actions</a><br>
-     <a href="../reference/ref-21.htm">Java editor preferences</a><br>
-     <a href="../reference/ref-view-outline.htm">Outline view for Java</a><br>
-     <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-8.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-8.htm
deleted file mode 100644
index cbb12bd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-8.htm
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Java search</title>
-  </head>
-
-  <body>
-    <h1>Java search</h1>
-
-    <p><span>The Java searching support allows you to find declarations, references and occurrences of Java elements
-    (packages, types, methods, fields). Searching is supported by an index that
-    is kept up to date in the background as the resources corresponding to Java elements are changed.
-    The Java search operates on workspaces independent of their build state. For
-    example, searches can be conducted when auto-build is turned off.</span></p>
-
-    <p>The following searches can be initiated from the pop-up menus of Java elements:</p>
-
-    <table border="1" cellspacing="0" cellpadding="0" summary="Java search actions">
-      <thead>
-        <tr>
-          <td>
-            <p><span class="control">Command</span></p>
-          </td>
-
-          <td>
-            <p><span class="control">Description</span></p>
-          </td>
-        </tr>
-      </thead>
-
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>References</p>
-          </td>
-
-          <td valign="top">
-            <p>Finds all references to the selected Java element</p>
-          </td>
-        </tr>
-
-        <tr>
-          <td valign="top">
-            <p>Declarations</p>
-          </td>
-
-          <td valign="top">
-            <p>Finds all declarations of the selected Java element</p>
-          </td>
-        </tr>
-
-        <tr>
-          <td valign="top">
-            <p>Implementors</p>
-          </td>
-
-          <td valign="top">
-            <p>Finds all implementors of the selected Java interface</p>
-          </td>
-        </tr>
-
-        <tr>
-          <td valign="top">
-            <p>Read Access</p>
-          </td>
-
-          <td valign="top">
-            <p>Finds all read accesses to the selected Java field</p>
-          </td>
-        </tr>
-
-        <tr>
-          <td valign="top">
-            <p>Write Access</p>
-          </td>
-
-          <td valign="top">
-            <p>Finds all write accesses to the selected Java field</p>
-          </td>
-        </tr>
-
-        <tr>
-          <td valign="top">
-            <p>Occurrences in File</p>
-          </td>
-
-          <td valign="top">
-            <p>Finds all occurrences of the selected Java element in its file</p>
-          </td>
-        </tr>
-
-      </tbody>
-    </table>
-
-    <p>The scope of the search is defined as:</p>
-
-    <p><span class="control">Workspace</span> - all projects and files in the workspace are included in this search</p>
-
-    <p><span class="control">Enclosing Projects</span> - the projects enclosing the currently selected elements</p>
-
-    <p><span class="control">Hierarchy</span> - only the type hierarchy of the selected element is included in this search</p>
-
-    <p><span class="control">Working Set</span> - only resources that belong to the chosen working set are included in this search</p>
-
-    <p><img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-     <a href="../tasks/tasks-79.htm">Searching Java code</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-menu-search.htm">Search actions</a><br>
-     <a href="../reference/ref-131.htm">Java Search tab</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-9.htm b/bundles/org.eclipse.jdt.doc.user/concepts/concepts-9.htm
deleted file mode 100644
index 021c8d3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/concepts-9.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Refactoring support</title>
-  </head>
-
-  <body>
-    <h1>Refactoring support</h1>
-
-    <p>The goal of Java program refactoring is to make system-wide code changes without affecting the behavior of the
-    program. The Java tools provide assistance in easily refactoring code.
-    </p>
-
-    <p>The refactoring tools support a number of transformations described in Martin Fowler's
-    book <span class="name">Refactoring: Improving the Design of Existing Code</span>, Addison Wesley
-    1999, such as <span class="name">Extract Method</span>, <span class="name">Inline Local
-    Variable, etc.</span></p>
-
-    <p>When performing a refactoring operation, you can optionally preview all
-    of the changes resulting from a refactoring action before you choose to carry them out.
-    When previewing a refactoring operation, you will be notified of potential
-    problems and will be presented with a list of the changes the
-    refactoring action will perform. If you do not preview a refactoring
-    operation, the change will be made in its entirety and any resultant
-    problems will be shown. If a problem is detected that does not allow
-    the refactoring to continue, the operation will be halted and a list of
-    problems will be displayed.</p>
-
-    <p>Refactoring commands are available from the context menus of several Java views (e.g. Package Explorer, Outline) and editors.
-    Many &quot;apparently simple&quot; commands, such as <strong>Move</strong> and <strong>Rename</strong>, are
-    actually refactoring operations, since moving and renaming Java elements
-    often require changes in dependent files.
-    </p>
-
-    <p><img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-     <a href="../tasks/tasks-80.htm">Refactoring</a><br>
-     <a href="../tasks/tasks-82.htm">Refactoring without preview</a><br>
-     <a href="../tasks/tasks-83.htm">Refactoring with preview</a><br>
-     <a href="../tasks/tasks-84.htm">Previewing refactoring changes</a><br>
-     <a href="../tasks/tasks-100.htm">Undoing a refactoring operation</a><br>
-     <a href="../tasks/tasks-101.htm">Redoing a refactoring operation</a><br>
-    </p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-     <a href="../reference/ref-117.htm">Refactoring wizard</a><br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a><br>
-     <a href="../reference/ref-154.htm">Extract Method Errors</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/cquickfix.htm b/bundles/org.eclipse.jdt.doc.user/concepts/cquickfix.htm
deleted file mode 100644
index 60a1b03..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/cquickfix.htm
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Quick Fix</title>
-  </head>
-
-  <body>
-    <h1>Quick Fix</h1>
-
-    <p>The Java editor offers corrections to problems found while typing and after compiling. To show that
-    correction proposals are available for a problem or warning, a 'light bulb' is visible on the editor's annotation bar.<br>
-Left click on the light bulb or invoking Ctrl+1 (Edit / Quick Fix) brings up the proposals for the problem at the cursor position.<br>
-<img src="../images/c-quickfix.gif" width=417 height=206 border="0" alt="Quick fix selection dialog">
-</p>
-
-<p>The following quick fixes are available:</p>
-<table border="0" cellpadding="10" cellspacing="0" width="700">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Package Declaration</b></td>
-			<td width="80%" valign="top" align="left">
-			<ul>
-				<li>Add missing package declaration or correct package declaration</li>
-				<li>Move compilation unit to package that corresponds to the package declaration</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Imports</b></td>
-			<td valign="top" align="left">
-			<ul>
-				<li>Remove unused, unresolvable or non-visible import</li>
-				<li>Invoke 'Organize import' on problems in imports</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Types</b></td>
-			<td valign="top" align="left">
-			<ul>
-				<li>Create new class or interface for references to types that can not be resolved</li>
-				<li>Change visibility for types that are accessed but not visible</li>
-				<li>Rename to a similar type for references to types that can not be resolved</li>
-				<li>Add import statement for types that can not be resolved but	exist in the project</li>
-				<li>Add explicit import statement for ambiguous type references (two import-on-demands for the same type)</li>
-				<li>If the type name is not matching with the compilation unit name either rename the type or rename the compilation unit</li>
-				<li>Remove unused private types</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Constructors</b></td>
-			<td valign="top" align="left">
-			<ul>
-				<li>Create new constructor for references to constructors that can not be resolved (this, super or new class creation)</li>
-				<li>Reorder or remove arguments for constructor references that mismatch parameters</li>
-				<li>Change method with constructor name to constructor (remove return type)</li>
-				<li>Change visibility for constructors that are accessed but not visible</li>
-				<li>Remove unused private constructor</li>
-				<li>Create constructor when super call of the implicit default constructor is undefined, not visible or throws an exception</li>
-				<li>If type contains unimplemented methods, change type modifier to 'abstract' or add the method to implement</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Methods</b></td>
-			<td valign="top" align="left">
-			<ul>
-				<li>Create new method for references to methods that can not be resolved</li>
-				<li>Rename to a similar method for references to methods that can not be resolved</li>
-				<li>Reorder or remove arguments for method references that mismatch parameters</li>
-				<li>Correct access (visibility, static) of referenced methods</li>
-				<li>Remove unused private methods</li>
-				<li>Correct return type for methods that have a missing return type or where the return type does not match the return statement</li>
-				<li>Add return statement if missing</li>
-				<li>For non-abstract methods with no body change to 'abstract' or add body</li>
-				<li>For an abstract method in a non-abstract type remove abstract modifier of the method or make type abstract</li>
-				<li>For an abstract/native method with body remove the abstract or native modifier or remove body</li>
-				<li>Change method access to 'static' if method is invoked inside a constructor invocation (super, this)</li>
-				<li>Change method access to default access to avoid emulated method access</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Fields and variables</b></td>
-			<td valign="top" align="left">
-			<ul>
-				<li>Correct access (visibility, static) of referenced fields</li>
-				<li>Create new  fields, parameters or local variables for references to  variables that can not be resolved</li>
-				<li>Rename to a  variable with similar name for references that can not be resolved</li>
-				<li>Remove unused private fields</li>
-				<li>Correct non-static access of static fields</li>
-				<li>Add 'final' modifier to  local variables accessed in outer types</li>
-				<li>Change field access to default access to avoid emulated method access</li>
-				<li>Change local variable type to fix a type mismatch</li>
-				<li>Initialize a variable that has not been initialized</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Exception Handling</b></td>
-			<td valign="top" align="left">
-			<ul>
-				<li>Remove unneeded catch block</li>
-				<li>Handle uncaught exception by surrounding with try/catch or adding catch block to a surrounding try block</li>
-				<li>Handle uncaught exception by adding a throw declaration to the parent method or by generalize an existing throw declaration</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Others</b></td>
-			<td valign="top" align="left">
-			<ul>
-				<li>Add cast or change cast to fix type mismatches</li>
-				<li>For non-NLS strings open the NLS wizard or mark as non-NLS</li>
-			</ul>
-			</td>
-		</tr>
-	</tbody>
-</table>
-
-
-
-<p>Quick Assist are proposals available even if there is no problem or warning: There is no light bulb shown so the user has to know the available assists.</p>
-<table border="0" cellpadding="10" cellspacing="0" width="700">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Quick Assists</b></td>
-			<td width="80%" valign="top" align="left">
-			<ul>
-				<li>Replace catch clause with throws declaration on the parent method</li>
-				<li>Transform an expression statement to an assignment to a new local or new field</li>
-				<li>Remove surrounding 'if', 'for', 'while', 'do' statement</li>
-				<li>Remove surrounding try block with a single catch or finally block</li>
-				<li>Remove surrounding anonymous class,  block or parenthesis</li>
-				<li>Local rename of a type, method or variable in a linked 'template' mode</li>
-				<li>Surround selected lines with templates (''if', 'while'..)</li>
-			</ul>
-			</td>
-		</tr>
-	</tbody>
-</table>
-<p>
-	<img src="../images/ngrelc.gif" width=159 height=27 alt="Related concepts" border="0"><br>
-	<a href="../concepts/concepts-7.htm">Java editor</a></p><p><img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference" border="0"><br>
-    <a href="../reference/ref-2.htm">JDT actions</a><a href="../reference/ref-152.htm"></a><br>
-</p>
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/cremdbug.htm b/bundles/org.eclipse.jdt.doc.user/concepts/cremdbug.htm
deleted file mode 100644
index 4d0e7cc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/cremdbug.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Remote debugging</title>
-  </head>
-
-  <body>
-    <h1>Remote debugging</h1>
-
-    <p>The client/server design of the Java debugger allows you to launch a Java
-    program from computer on your network and debug it from the workstation
-    running the platform.&nbsp; This is particularly useful when you are
-    developing a program for a device that cannot host the development
-    platform.&nbsp; It is also useful when debugging programs on dedicated
-    machines such as web servers.&nbsp; </p>
-
-    <p>Note:&nbsp; To use remote debugging, you must be using a Java VM that
-    supports this feature.</p>
-
-    <p>To debug a program remotely, you must be able to launch the program in
-    debug mode on the remote machine so that it will wait for a connection from
-    your debugger.&nbsp; The specific technique for launching the program and
-    connecting the debugger are VM-specific.&nbsp; The basic steps are as
-    follows:</p>
-
-    <ol>
-      <li>Ensure that you are building your Java program with available debug
-        information.&nbsp; (You can control these attributes from <strong>Window
-        &gt; Preferences &gt; Java &gt; Compiler</strong>).&nbsp; </li>
-      <li>After you build your Java program, install it to the target
-        computer.&nbsp; This involves copying the .CLASS files or .JAR files to
-        the appropriate location on the remote computer.</li>
-      <li>Invoke the Java program on the remote computer using the appropriate
-        VM arguments to specify debug mode and a communication port for the
-        debugger.</li>
-      <li>Start the debugger using a remote launch configuration and specify the
-        address and port of the remote computer.</li>
-    </ol>
-    <p>More specific instructions for setting up a launch configuration for
-    remote debugging should be obtained from your VM provider.&nbsp; </p>
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-    <a href="../tasks/tasks-141.htm">Using the remote Java application launch configuration<br>
-    </a>
-    <a href="../tasks/tasks-142.htm">Disconnecting from a VM</a><br>
-    </p>
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/concepts/ctemplates.htm b/bundles/org.eclipse.jdt.doc.user/concepts/ctemplates.htm
deleted file mode 100644
index c98e080..0000000
--- a/bundles/org.eclipse.jdt.doc.user/concepts/ctemplates.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-
-    <title>Templates</title>
-  </head>
-
-  <body>
-    <h1>Templates</h1>
-
-    <p>Templates are a structured description of coding patterns that reoccur in
-    source code. The Java editor supports the use of templates to fill in
-    commonly used source patterns. Templates are inserted using content
-    assist (<strong>Ctrl+Space</strong>).</p>
-
-    <p>For example, a common coding pattern is to iterate over the elements of
-    an array using a for loop that indexes into the array. By using a
-    template for this pattern, you can avoid typing in the complete code for the
-    loop. Invoking content assist after typing the word <code>for</code> will present
-    you with a list of possible templates for a for loop.  You can choose the appropriate
-    template by name (<code>iterate over array</code>). Selecting this template will
-    insert the code into the editor and position your cursor so that you can
-    edit the details.</p>
-
-    <p>Many common templates are already defined. These can be browsed in
-    <strong>Window &gt; Preferences &gt; Java &gt; Editor &gt; Templates</strong>.
-    You can also create your own templates or edit the existing ones.</p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-     <a href="../tasks/tasks-171.htm">Using templates</a><br>
-     <a href="../tasks/tasks-203.htm">Writing your own templates</a>
-    </p>
-
-    <p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-     <a href="../reference/ref-menu-edit.htm">Edit menu</a><br>
-     <a href="../reference/ref-143.htm">Java Content Assist</a><br>
-     <a href="../reference/ref-preferences-templates.htm">Templates preferences</a><br>
-    </p>
-
-    <p><br>
-    </p>
-
-    <p>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/contexts_Debugger.xml b/bundles/org.eclipse.jdt.doc.user/contexts_Debugger.xml
deleted file mode 100644
index 0878572..0000000
--- a/bundles/org.eclipse.jdt.doc.user/contexts_Debugger.xml
+++ /dev/null
@@ -1,395 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-<!-- Actions -->
-   <context  id="debug_action_context" >
-      <description>This command allows you to run the selected executable under debugger control.</description>
-      <topic label="Run/Debug Actions" href="reference/ref-4.htm"/> 
-      <topic label="Debugger Concepts" href="concepts/concepts-10.htm"/>
-      <topic label="Debugging Locally" href="concepts/clocdbug.htm"/>
-      <topic label="Remote debugging" href="concepts/cremdbug.htm"/>
-    </context>
-
-  <context id="variable_selection_dialog_context">
-    <description>This dialog allows you to select variables to be used as launch configuration parameters. Variables are evaluated each time you launch your configuration, which can give your configuration dynamic behavior. Variables specifying 'Selected Resource...' are evaluated to the resource currently selected in the navigator or packages view, etc. at the time the configuration is launched.</description>
-  </context>
-    
-   <context  id="debug_last_action_context" >
-      <description>This command re-launches the most recently launched application in debug mode.</description>
-    </context>    
-    
-   <context  id="open_debug_configurations_action_context" >
-      <description>This command opens the launch configuration dialog in debug mode.</description>
-    </context>    
-
-   <context  id="run_action_context" >
-      <description>This command allows you to run the selected executable.</description>
-      <topic label="Running a Java Program" href="tasks/tasks-130.htm"/>
-      <topic label="Run/Debug Actions" href="reference/ref-4.htm" /> 
-    </context>
-    
-   <context  id="run_last_action_context" >
-      <description>This command re-launches the most recently launched application in run mode.</description>
-    </context>    
-    
-   <context  id="open_run_configurations_action_context" >
-      <description>This command opens the launch configuration dialog in run mode.</description>
-    </context>    
-    
-   <context  id="profile_action_context" >
-      <description>This command allows you to profile the selected executable.</description>
-    </context>        
-
-   <context  id="profile_last_action_context" >
-      <description>This command re-launches the most recently launched application in profile mode.</description>
-    </context>    
-    
-   <context  id="open_profile_configurations_action_context" >
-      <description>This command opens the launch configuration dialog in profile mode.</description>
-    </context>     
-    
-   <context  id="inspect_action_context" >
-      <description>This command allows you to inspect the result of evaluating the selected expression.</description>
-      <topic label="Inspecting in the Display View" href="reference/ref-55.htm" /> 
-      <topic label="Display View" href="reference/ref-52.htm" />
-      <topic label="Inspecting in the Expressions View" href="reference/ref-64.htm" /> 
-      <topic label="Expressions View" href="reference/ref-56.htm"/>
-      <topic label="Inspecting in the Variables View" href="reference/ref-80.htm" /> 
-      <topic label="Variables View" href="reference/ref-74.htm"/>
-      <topic label="Debugging Locally" href="concepts/clocdbug.htm"/>
-    </context>
-
-   <context  id="change_value_action_context" >
-      <description>This command allows you to change the value of the selected variable.</description>
-      <topic label="Change Variable Values in the Expressions View" href="reference/ref-65.htm" /> 
-      <topic label="Expressions View" href="reference/ref-56.htm"/>
-      <topic label="Change Variable Values in the Variables View" href="reference/ref-81.htm" /> 
-      <topic label="Variables View" href="reference/ref-74.htm"/>
-    </context>
-
-   <context  id="clear_console_action_context" >
-      <description>This command clears the console.</description>
-      <topic label="Clear" href="reference/ref-46.htm"/>
-      <topic label="Console View" href="reference/ref-45.htm"/>
-     </context>
-
-   <context  id="copy_to_clipboard_action_context" >
-      <description>This command copies the selection to the OS clipboard.</description>
-      <topic label="Copy" href="reference/ref-47.htm" />
-      <topic label="Console View" href="reference/ref-45.htm"/> 
-   </context>
-
-   <context  id="disconnect_action_context" >
-      <description>This command disconnects the debugger from the selected debug target.</description>
-      <topic label="Disconnect" href="reference/ref-68.htm" />
-      <topic label="Debug View" href="reference/ref-51.htm" />
-     </context>
-	
-	<context  id="enable_disable_breakpoint_action_context" >
-      <description>This command toggles the breakpoint in the editor ruler.</description>
-      <topic label="Debugger" href="concepts/concepts-10.htm" />
-   </context>
-
-   <context  id="enable_breakpoint_action_context" >
-      <description>This command enables the selected breakpoints.</description>
-      <topic label="Enable" href="reference/ref-44.htm" />
-      <topic label="Breakpoints View" href="reference/ref-35.htm"/>
-      <topic label="Line Breakpoints" href="tasks/tasks-144.htm" />
-      <topic label="Debugger" href="concepts/concepts-10.htm" />
-   </context>
-   
-   <context  id="disable_breakpoint_action_context" >
-      <description>This command disables the selected breakpoints.</description>
-      <topic label="Disable" href="reference/ref-44a.htm" />
-      <topic label="Breakpoints View" href="reference/ref-35.htm"/>
-      <topic label="Line Breakpoints" href="tasks/tasks-144.htm" />
-      <topic label="Debugger" href="concepts/concepts-10.htm" />
-   </context>
-
-   <context  id="open_breakpoint_action_context" >
-      <description>This command opens an editor for the file containing the selected breakpoint.</description>
-      <topic label="Go to File for Breakpoint" href="reference/ref-38.htm" />
-      <topic label="Breakpoints View" href="reference/ref-35.htm"/>
-   </context>
-
-   <context  id="relaunch_action_context" >
-      <description>This command relaunches the selected debug target or process.</description>
-      <topic label="Relaunch" href="reference/ref-72.htm" />
-      <topic label="Debug View" href="reference/ref-51.htm" />
-   </context>
-
-   <context  id="relaunch_history_action_context" >
-      <description>This command allows you to select a previous launch from the launch history.</description>
-      <topic label="Relaunching a Previously-launched Program" href="tasks/tasks-131.htm" />
-      <topic label="Relaunch" href="reference/ref-72.htm" />
-      <topic label="Debug View" href="reference/ref-51.htm" />
-   </context>
-
-   <context  id="remove_action_context" >
-      <description>This command removes the selected launch from the view.</description>
-      <topic label="Debug View" href="reference/ref-51.htm" />
-   </context>
-
-   <context  id="remove_all_action_context" >
-      <description>This command removes all terminated launches from the view.</description>
-      <topic label="Remove All Terminated Launches" href="reference/ref-69.htm" /> 
-      <topic label="Debug View" href="reference/ref-51.htm" />
-   </context>
-
-   <context  id="resume_action_context" >
-      <description>This command resumes the selected thread or the thread containing the selected stack frame.</description>
-      <topic label="Debug View" href="reference/ref-51.htm" />
-      <topic label="Resuming" href="tasks/tasks-135.htm" />
-   </context>
-
-   <context  id="run_to_line_action_context" >
-      <description>This command resumes execution to the selected line.</description>   
-   </context>
-
-   <context  id="show_types_action_context" >
-      <description>This option can be toggled to show or hide type names of variables in the view.</description>
-      <topic label="Show Type Names in Expressions View" href="reference/ref-57.htm" /> 
-      <topic label="Expressions View" href="reference/ref-56.htm"/>
-      <topic label="Show Type Names in Variables View" href="reference/ref-75.htm" />
-      <topic label="Variables View" href="reference/ref-74.htm"/>
-   </context>
-
-   <context  id="step_with_filters_action_context" >
-	<description>This command toggles step filters on/off, which are applied to the step into, over, and return commands.</description>
-   </context>
-   
-   <context  id="step_into_action_context" >
-	<description>This command steps into the highlighted statement.</description>
-      <topic label="Debug View" href="reference/ref-51.htm" />
-      <topic label="Stepping" href="tasks/tasks-136.htm" /> 
-     <topic label="Debugging Locally" href="concepts/clocdbug.htm"/>
-   </context>
-
-   <context  id="step_over_action_context" >
-        <description>This command steps over the highlighted statement. Execution will continue at the next line either in the same method or (if you are at the end of a method) it will continue in the method from which the current method was called.</description>
-      <topic label="Debug View" href="reference/ref-51.htm" />
-      <topic label="Stepping" href="tasks/tasks-136.htm" /> 
-      <topic label="Debugging Locally" href="concepts/clocdbug.htm"/>
-   </context>
-
-   <context  id="step_return_action_context" >
-      <description>This command steps out of the current method. The execution stops after exiting the current method.</description>
-      <topic label="Debug View" href="reference/ref-51.htm" />
-      <topic label="Stepping" href="tasks/tasks-136.htm" /> 
-      <topic label="Debugging Locally" href="concepts/clocdbug.htm"/>
-   </context>
-
-   <context  id="suspend_action_context" >
-	<description>This command suspends the selected debug target so that you can browse or modify code, inspect data, step, and so on.</description>
-	<topic label="Debug View" href="reference/ref-51.htm" />
-	<topic label="Suspending" href="tasks/tasks-134.htm"/>
-	<topic label="Debugging Locally" href="concepts/clocdbug.htm"/>
-   </context>
-
-   <context  id="terminate_action_context" >
-      <description>This command terminates the selected debug target.</description>
- 	<topic label="Terminate" href="reference/ref-67.htm"/>
-	<topic label="Connecting to a remote VM with the Remote Java application launch configuration" href="tasks/tasks-141.htm"/>
-	<topic label="Debug View" href="reference/ref-51.htm"/>
-   </context>
-
-   <context  id="terminate_all_action_context" >
-      <description>This command terminates all active debug targets.</description>
-	<topic label="Terminate All" href="reference/ref-71.htm"/>
-	<topic label="Debug View" href="reference/ref-51.htm"/>
-   </context>
-
-   <context  id="terminate_and_remove_action_context" >
-      <description>This command terminates the selected process or debug target and removes it from the view.</description>
- 	<topic label="Terminate and Remove" href="reference/ref-70.htm"/>
-	<topic label="Debug View" href="reference/ref-51.htm"/>
-   </context>
-
-   <context  id="select_all_breakpoints_action_context" >
-      <description>This command selects all breakpoint in the view.</description>
-   </context>
-   
-   <context  id="remove_breakpoint_action_context" >
-      <description>This command deletes the selected breakpoints.</description>
-   </context>
-   
-   <context  id="remove_all_breakpoints_action_context" >
-      <description>This command deletes all breakpoints in the view.</description>
-   </context>
-   
-   <context  id="select_all_variables_action_context" >
-      <description>This command selects all variables in the view.</description>
-   </context>
-   
-  <context  id="copy_variables_to_clipboard_action_context" >
-      <description>This command copies a textual representation of the selected variables to the clipboard.</description>
-   </context>   
-   
-   <context  id="select_all_expressions_action_context" >
-      <description>This command selects all expressions in the view.</description>
-   </context>         
-      
-   <context  id="remove_expression_action_context" >
-      <description>This command deletes the selected expressions.</description>
-   </context>      
-   
-   <context  id="remove_all_expressions_action_context" >
-      <description>This command deletes all expressions in the view.</description>
-   </context> 
-   
-   <context  id="edit_launch_configuration_action_context" >
-      <description>This command opens the launch configuration dialog on the launch configuration associated with the selection.</description>
-   </context>
-   
-   <context  id="open_launch_configuration_action_context" >
-      <description>This command opens the launch configuration dialog in the context of the specified launch group.</description>
-   </context> 
-   
-   <context  id="detail_pane_word_wrap_action_context" >
-      <description>This command toggles word wrap on and off in the details text area.</description>
-   </context>    
-   
-   <context  id="variables_content_providers_action_context" >
-      <description>This command toggles the display of logical variable structure.</description>
-   </context>   
-              
-<!-- Views -->
-   <context  id="debug_view_context" >
-      <description>This view displays system processes and the threads and stack frames for each target you are debugging.</description>
- 	<topic label="Debug View" href="reference/ref-51.htm"/>
-	<topic label="Debugger Concepts" href="concepts/concepts-10.htm"/>
-	<topic label="Copy Stack" href="reference/ref-51c.htm" />
-	<topic label="Disconnect" href="reference/ref-68.htm" />
-	<topic label="Drop to Frame" href="reference/ref-51d.htm" />
-	<topic label="Open on Declaring Type" href="reference/ref-51a.htm" />
-	<topic label="Open on Receiving Type" href="reference/ref-51b.htm" />
-	<topic label="Relaunch" href="reference/ref-72.htm" />
-	<topic label="Remove All Terminated Launches" href="reference/ref-69.htm" />
-	<topic label="Resuming" href="tasks/tasks-135.htm" />
-	<topic label="Show Qualified Names" href="reference/ref-58.htm" />
-	<topic label="Stepping" href="tasks/tasks-136.htm" />
-	<topic label="Suspending" href="tasks/tasks-134.htm"/>
-	<topic label="Terminate" href="reference/ref-67.htm"/>
-	<topic label="Terminate All" href="reference/ref-71.htm"/>
-	<topic label="Terminate and Remove" href="reference/ref-70.htm"/>
-   </context>
-
-   <context  id="variable_view_context" >
-      <description>This view displays the variables in your program.</description>
-		<topic label="Variables View" href="reference/ref-74.htm"/>
-		<topic label="Inspecting Values" href="tasks/tasks-137.htm"/>
-      	<topic label="Show Qualified Names in Variables View" href="reference/ref-76.htm" />
-      	<topic label="Show Type Names in Variables View" href="reference/ref-75.htm" />
-      	<topic label="Show Detail Pane in Variables View" href="reference/ref-showdetailpane.htm" />
-      	<topic label="Add/Remove Watchpoint" href="reference/ref-74a.htm" />
-      	<topic label="Show Static Fields in Variables View" href="reference/ref-62.htm" />
-      	<topic label="Show Constants in Variables View" href="reference/ref-63.htm" />
-      	<topic label="Change Variable Values in the Variables View" href="reference/ref-81.htm" /> 
-      	<topic label="Inspect in the Variables View" href="reference/ref-80.htm" /> 
-   </context>
-
-   <context  id="expression_view_context" >
-	<description>This view shows the results of inspecting an expression or variable.</description>
-	<topic label="Expressions View" href="reference/ref-56.htm"/>
-	<topic label="Select All in the Expressions View" href="reference/ref-56a.htm"/>
-	<topic label="Copy Variables in the Expressions View" href="reference/ref-56b.htm"/>
-	<topic label="Remove Selected Expressions" href="reference/ref-59.htm" />
-    <topic label="Remove All Expressions" href="reference/ref-60.htm" />
-    <topic label="Change Variable Values in the Expressions View" href="reference/ref-65.htm" /> 
-    <topic label="Show Constants in the Expressions View" href="reference/ref-63.htm" />
-    <topic label="Show Static Fields in the Expressions View" href="reference/ref-62.htm" />
-    <topic label="Show Qualified Names in the Expressions View" href="reference/ref-58.htm" />
-	<topic label="Show Type Names in the Expressions View" href="reference/ref-57.htm" /> 
-    <topic label="Show Detail Pane for the Expressions View" href="reference/ref-56c.htm" /> 
-    <topic label="Add/Remove Watchpoint" href="reference/ref-56d.htm" /> 
-    <topic label="Inspect" href="reference/ref-64.htm" /> 
-    <topic label="Open Declared Type" href="reference/ref-56e.htm" /> 
-   </context>
-
-   <context  id="breakpoint_view_context" >
-	<description>The Breakpoints view lists all the breakpoints you have set.</description>
-	<topic label="Breakpoints View" href="reference/ref-35.htm"/>
-	<topic label="Go to File for Breakpoint" href="reference/ref-38.htm" />
-	<topic label="Add Java Exception Breakpoint" href="reference/ref-40.htm" />
-	<topic label="Suspend Policy" href="reference/brkSuspendPolicy.htm" />
-	<topic label="Hit Count" href="reference/ref-43.htm" />
-	<topic label="Uncaught" href="reference/ref-41.htm" />
-	<topic label="Caught" href="reference/ref-42.htm" />
-	<topic label="Modification" href="reference/brkMod.htm" />
-	<topic label="Access" href="reference/brkAccess.htm" />
-	<topic label="Exit" href="reference/brkExit.htm" />
-	<topic label="Entry" href="reference/brkEntry.htm" />
-	<topic label="Select All" href="reference/brkSelectAll.htm" />
-	<topic label="Enable" href="reference/ref-44.htm" />
-	<topic label="Disable" href="reference/ref-44a.htm" />
-	<topic label="Remove Selected Breakpoints" href="reference/ref-36.htm" />
-	<topic label="Remove All Breakpoints" href="reference/ref-37.htm" />
-    <topic label="Show Qualified Names in Breakpoints View" href="reference/ref-39.htm" /> 
-    <topic label="Show Supported Breakpoints" href="reference/brkShowSupported.htm" /> 
-    <topic label="Breakpoint Properties" href="reference/brkProperties.htm" /> 
-   </context>
-
-   <context  id="console_view_context" >
-	<description>This view shows the output of the execution of your program and allows you to enter any necessary user input.</description>
-	<topic label="Console View" href="reference/ref-45.htm"/>
-	<topic label="Copy" href="reference/ref-47.htm"/>
-	<topic label="Select All" href="reference/ref-48.htm"/>
-	<topic label="Find/Replace" href="reference/ref-49.htm"/>
-	<topic label="Go To Line" href="reference/ref-50.htm"/>
-	<topic label="Clear the Console" href="reference/ref-46.htm"/>
-	<topic label="Terminate" href="reference/ref-45b.htm"/>
-   </context>
-
-
-<!-- Preference pages -->
-   <context  id="debug_preference_page_context" >
-      <description>On this page, you can set preferences for debugging your programs.</description>
-	<topic label="Debug Preferences" href="reference/ref-11.htm"/>
-	<topic label="Debugger Concepts" href="concepts/concepts-10.htm"/>
-  </context>
-
-   <context id="console_preference_page_context" >
-      <description>On this page, you can set the preferences for the debug console.</description>
-	<topic label="Console Preferences" href="reference/ref-12.htm"/>
- 	<topic label="Debugger Concepts" href="concepts/concepts-10.htm"/>
-   </context>
-   
-   <context id="launch_history_preference_page_context" >
-      <description>On this page, you can modify launch history and favorites.</description>
-	<topic label="Launch History Preferences" href="reference/ref-11.htm"/>
-   </context>
-   
-   <context id="debug_action_groups_views_preference_page_context" >
-      <description>On this page, you can enable and disable actions associated with a debugger. When a group of actions is disabled, the actions will not appear in debug views.</description>
-   </context>
-  
-  <context id="simple_variable_preference_page_context">
-   	 <description>One this page, you can create and configure simple launch variables which you can reference in launch configurations that support variables.</description>
-  </context>
-
-<!-- Property pages -->
-  <context id="process_property_page_context" >
-     <description>This page displays the command line used to launch a process.</description>
-  </context>
-  
-<!-- Launch configuration tabs -->
-  <context id="launch_configuration_dialog_perspective_tab" >
-     <description>This tab allows you to set the perspective that is switched to/opened when a configuration is launched. A perspective may be associated with each supported launch mode.</description>
-  </context>
-  
-  <context id="launch_configuration_dialog refresh_tab" >
-	 <description>This tab allows you to choose which resources are refreshed when a launch configuration is executed.</description>
-  </context>
-  
-  <context id="launch_configuration_dialog_common_tab" >
-     <description>This tab allows you to set the type of the launch configuration, which favorites menu it will be displayed within and whether to launch the configuration in the background.</description>
-     <topic label="Java application launch configuration" href=" tasks\tasks-java-local-configuration.htm"/>
-  </context>
-  
-  <context id="launch_configuration_dialog_environment_tab" >
-     <description>This tab allows you to create and configure the environment variables that will be passed into the launch configuration when it is executed.</description>
-  </context>
-           
-</contexts>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/contexts_JDT.xml b/bundles/org.eclipse.jdt.doc.user/contexts_JDT.xml
deleted file mode 100644
index d2aefdb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/contexts_JDT.xml
+++ /dev/null
@@ -1,1717 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-    <!-- Actions -->
-
-    <context id="add_unimplemented_constructors_action_context">
-        <description>This command copies the constructors of the super class to the selected class.</description>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="getter_setter_action_context">
-        <description>This command generates getter and setter methods for the selected field.</description>
-        <topic label="Generating getters and setters" href="tasks/tasks-57.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="add_methodbreakpoint_action_context">
-        <description>This command adds a method entry breakpoint for the selected method.</description>
-        <topic label="Adding breakpoints" href="tasks/tasks-144.htm"/>
-        <topic label="Removing breakpoints" href="tasks/tasks-144a.htm"/>
-        <topic label="Enabling and disabling breakpoints" href="tasks/tasks-144b.htm"/>
-        <topic label="Setting method breakpoints" href="tasks/tasks-145.htm"/>
-        <topic label="Applying hit counts" href="tasks/tasks-146.htm"/>
-        <topic label="Managing conditional breakpoints" href="tasks/tasks-144c.htm"/>
-        <topic label="Breakpoints" href="concepts/cbrkpnts.htm"/>
-        <topic label="Breakpoints view" href="reference/ref-35.htm"/>
-        <topic label="Debugger" href="concepts/concepts-10.htm"/>
-        <topic label="Remote debugging" href="concepts/cremdbug.htm"/>
-    </context>
-
-    <context id="add_methodstub_action_context">
-        <description>This command creates a method stub for the selected method.</description>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="add_unimplemented_methods_action_context">
-        <description>Allows you to override methods from a superclass or to implement a method from an interface.</description>
-        <topic label="Override Methods dialog" href="reference/ref-dialog-override-method.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="show_in_packageview_action_context">
-        <description>Displays the selected element in the Package Explorer.</description>
-        <topic label="Showing a Type&apos;s Compilation Unit in the Package Explorer" href="tasks/tasks-74.htm"/>
-        <topic label="Package Explorer view" href="reference/ref-view-package-explorer.htm"/>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="show_in_hierarchyview_action_context">
-        <description>This command opens the Hierarchy view on the selected element.</description>
-        <topic label="Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="add_imports_on_selection_action_context">
-        <description>This command adds an import statement for the selected type to the compilation unit.</description>
-        <topic label="Adding required import statements" href="tasks/tasks-59.htm"/>
-        <topic label="Setting the order of import statements" href="tasks/tasks-61.htm"/>
-    </context>
-
-    <context id="organize_imports_action_context">
-        <description>This command generates the import statements for this type. It adds all required import statements and removes those that are not required.</description>
-        <topic label="Organizing existing import statements" href="tasks/tasks-60.htm"/>
-        <topic label="Setting the order of import statements" href="tasks/tasks-61.htm"/>
-    </context>
-
-    <context id="run_to_line_action_context">
-        <description>While debugging, this command allows you to run the program to the location of the cursor.</description>
-        <topic label="Run to Line" href="reference/ref-4.htm"/>
-        <topic label="Stepping" href="tasks/tasks-136.htm"/>
-        <topic label="Debug view" href="reference/ref-51.htm"/>
-        <topic label="Breakpoints" href="concepts/cbrkpnts.htm"/>
-        <topic label="Debugger" href="concepts/concepts-10.htm"/>
-        <topic label="Remote debugging" href="concepts/cremdbug.htm"/>
-    </context>
-
-    <context id="toggle_presentation_action_context">
-        <description>Allows you to toggle the editor between displaying the whole compilation unit and the code for just the selected element.</description>
-        <topic label="Showing single elements or whole Java files" href="tasks/tasks-6.htm"/>
-        <topic label="Java editor concepts" href="reference/ref-java-editor.htm"/>
-    </context>
-
-    <context id="toggle_texthover_action_context">
-        <description>Allows you to switch the hover hints on and off for Javadoc and Debug.</description>
-        <topic label="Java editor reference" href="reference/ref-java-editor.htm"/>
-        <topic label="Java editor concepts" href="concepts/concepts-7.htm"/>
-    </context>
-
-    <context id="display_action_context">
-        <description>This command evaluates the selected expression and shows the result in the Display view.</description>
-        <topic label="Displaying the result of evaluating an expression" href="tasks/tasks-151.htm"/>
-        <topic label="Evaluating expressions" href="tasks/tasks-138.htm"/>
-        <topic label="Display view" href="reference/ref-52.htm"/>
-        <topic label="Run and Debug Actions" href="reference/ref-4.htm"/>
-    </context>
-
-    <context id="focus_on_selection_action">
-        <description>This command allows you to select a type visible in the Hierarchy view to become the new focus of the Hierarchy view.</description>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="focus_on_type_action">
-        <description>This command allows you to choose any type and opens it in the Hierarchy view.</description>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="typehierarchy_history_action">
-        <description>Allows you to switch back to previously shown type hierarchies.</description>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="filter_public_action">
-        <description>This filter removes all non-public members from the presentation.</description>
-        <topic label="Showing and hiding members in Java views" href="tasks/tasks-191.htm"/>
-    </context>
-
-    <context id="filter_fields_action">
-        <description>This filter removes all fields from the presentation.</description>
-        <topic label="Showing and hiding members in Java views" href="tasks/tasks-191.htm"/>
-    </context>
-
-    <context id="filter_static_action">
-        <description>This filter removes all static members from the presentation.</description>
-        <topic label="Showing and hiding members in Java views" href="tasks/tasks-191.htm"/>
-    </context>
-
-    <context id="show_inherited_action">
-        <description>This option will display all members inherited from the super types.</description>
-        <topic label="Finding overridden methods" href="tasks/tasks-44.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="show_supertypes_action">
-        <description>This option will display all super types. </description>
-        <topic label="Finding overridden methods" href="tasks/tasks-44.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="show_subtypes_action">
-        <description>This option will display all subtypes.</description>
-        <topic label="Finding overridden methods" href="tasks/tasks-44.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="show_hierarchy_action">
-        <description>This option displays the class hierachy.</description>
-        <topic label="Finding overridden methods" href="tasks/tasks-44.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="enable_methodfilter_action">
-        <description>This option displays all types in the current hierarchy that define or implement the selected method.</description>
-        <topic label="Finding overridden methods" href="tasks/tasks-44.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="open_class_wizard_action">
-        <description>This action opens a wizard for creating a new class.</description>
-        <topic label="Creating a new Java class" href="tasks/tasks-17.htm"/>
-        <topic label="Creating a top-level class" href="tasks/tasks-18.htm"/>
-        <topic label="Creating a nested class" href="tasks/tasks-19.htm"/>
-        <topic label="Creating a new class in an existing compilation unit" href="tasks/tasks-20.htm"/>
-        <topic label="New Class wizard reference" href="reference/ref-126.htm"/>
-    </context>
-
-    <context id="open_interface_wizard_action">
-        <description>This action opens a wizard for creating a new interface.</description>
-        <topic label="Creating a new Java interface" href="tasks/tasks-21.htm"/>
-        <topic label="Creating a top-level interface" href="tasks/tasks-23.htm"/>
-        <topic label="Creating a nested interface" href="tasks/tasks-24.htm"/>
-        <topic label="Creating a new interface in an existing compilation unit" href="tasks/tasks-25.htm"/>
-        <topic label="New Interface wizard reference" href="reference/ref-127.htm"/>
-    </context>
-
-    <context id="open_package_wizard_action">
-        <description>This action opens a wizard for creating a new package.</description>
-        <topic label="Creating a new Java package" href="tasks/tasks-15.htm"/>
-        <topic label="New Package wizard reference" href="reference/ref-125.htm"/>
-    </context>
-
-    <context id="open_project_wizard_action">
-        <description>This action opens a wizard for creating a new Java project.</description>
-        <topic label="Creating a new Java project" href="tasks/tasks-12.htm"/>
-        <topic label="Creating a Java project as its own source container" href="tasks/tasks-13.htm"/>
-        <topic label="Creating a Java project with source folders" href="tasks/tasks-14.htm"/>
-		<topic label="Creating a new source folder with exclusion filter" href="tasks/tasks-221.htm"/>
-		<topic label="Creating a new source folder with specific output folder" href="tasks/tasks-222.htm"/>
-        <topic label="New Java Project wizard reference" href="reference/ref-121.htm"/>
-        <topic label="Java projects" href="concepts/concepts-3.htm"/>
-    </context>
-
-    <context id="open_snippet_wizard_action">
-        <description>This action opens a wizard for creating a new Java scrapbook page.</description>
-        <topic label="Creating a Java scrapbook page" href="tasks/tasks-149.htm"/>
-        <topic label="New Scrapbook wizard reference" href="reference/ref-129.htm"/>
-        <topic label="Scrapbook" href="concepts/concepts-11.htm"/>
-    </context>
-
-    <context id="clear_working_set_action">
-        <description>This action removes the currently installed working set filter.</description>
-        <topic label="Package Explorer view" href="reference/ref-view-package-explorer.htm"/>
-    </context>
-
-    <context id="goto_marker_action">
-        <description>This action shows the search result in a Java editor.</description>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Java search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="java_search_action_context">
-        <description>This command opens the Java search page in the search dialog.</description>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Java search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="goto_package_action">
-        <description>This action allows you to choose any package and selects it in the Package Explorer.</description>
-        <topic label="Showing an element in the Package Explorer" href="tasks/tasks-74.htm"/>
-        <topic label="Package Explorer view" href="reference/ref-view-package-explorer.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="history_list_action">
-        <description>Choose and switch back to a previously shown type hierarchy.</description>
-        <topic label="Changing the appearance of the Hierarchy view" href="tasks/tasks-38.htm"/>
-        <topic label="Opening a type hierarchy on a Java element" href="tasks/tasks-39.htm"/>
-        <topic label="Opening a type hierarchy on the current text selection" href="tasks/tasks-40.htm"/>
-        <topic label="Opening a type hierarchy in its own perspective" href="tasks/tasks-42.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="lexical_sorting_outline_action">
-        <description>Displays the elements in alphabetical order.</description>
-        <topic label="Sorting elements in Java views" href="tasks/tasks-195.htm"/>
-    </context>
-
-    <context id="lexical_sorting_browsing_action">
-        <description>Displays the elements in aphabetical order.</description>
-        <topic label="Sorting elements in Java views" href="tasks/tasks-195.htm"/>
-    </context>
-
-    <context id="open_java_perspective_action">
-        <description>This action opens the Java Perspective.</description>
-        <topic label="Java perspectives" href="concepts/concepts-5.htm"/>
-    </context>
-
-    <context id="open_java_browsing_perspective_action">
-        <description>This action opens the Java Browsing Perspective.</description>
-        <topic label="Java perspectives" href="concepts/concepts-5.htm"/>
-    </context>
-
-    <context id="open_project_action">
-        <description>This action opens a previously closed project.</description>
-        <topic label="Java projects" href="concepts/concepts-3.htm"/>
-        <topic label="Project actions" href="reference/ref-menu-project.htm"/>
-    </context>
-
-    <context id="open_type_action">
-        <description>Choose a type and open it in a Java editor.</description>
-        <topic label="Opening an editor on a type" href="tasks/tasks-76.htm"/>
-        <topic label="Opening an editor for a selected element" href="tasks/tasks-73.htm"/>
-        <topic label="Open type dialog" href="reference/ref-148.htm"/>
-    </context>
-
-    <context id="open_type_in_hierarchy_action">
-        <description>Choose a type and open it in the Hierarchy view and in a Java editor.</description>
-        <topic label="Opening a type hierarchy on a Java element" href="tasks/tasks-39.htm"/>
-        <topic label="Opening a type hierarchy on the current text selection" href="tasks/tasks-40.htm"/>
-        <topic label="Opening a type hierarchy in its own perspective" href="tasks/tasks-42.htm"/>
-        <topic label="Open type dialog" href="reference/ref-148.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="add_javadoc_stub_action">
-        <description>This action generates a Javadoc skeleton for the selected member. The skeleton contains all the information that can be derived from the member&apos;s signature.</description>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="add_task_action">
-        <description>Adds a new task.</description>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="externalize_strings_action">
-        <description>Finds and supports externalizing of all strings that are not externalized.</description>
-        <topic label="Finding strings to externalize" href="tasks/tasks-188.htm"/>
-        <topic label="Using the Externalize Strings wizard" href="tasks/tasks-180.htm"/>
-        <topic label="String externalization" href="concepts/cnls.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="extract_method_action">
-        <description>Support for extracting a method from a code selection.</description>
-        <topic label="Extracting a method" href="tasks/tasks-87.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="extract_temp_action">
-        <description>Support for extracting a temporary variable from a code selection.</description>
-        <topic label="Extracting a local variable" href="tasks/tasks-159.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="find_declarations_in_workspace_action">
-        <description>Searches for all declarations of a selected element.</description>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_declarations_in_project_action">
-        <description>Searches for all declarations of a selected element in the project enclosing the element.</description>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_declarations_in_hierarchy_action">
-        <description>Searches for all declarations of a selected element in the element&apos;s type hierarchy.</description>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_declarations_in_working_set_action">
-        <description>Searches for all declarations of a selected element in a specified working set.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_references_in_workspace_action">
-        <description>Searches for all references to a selected element.</description>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_references_in_project_action">
-        <description>Searches for all references to a selected element in the project enclosing the element..</description>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_references_in_hierarchy_action">
-        <description>Searches for all references to a selected element in the element&apos;s type hierarchy.</description>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_references_in_working_set_action">
-        <description>Searches for all references to a selected element in a specified working set.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_implementors_in_workspace_action">
-        <description>Searches for all implementors of a selected element.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-     <context id="find_implementors_in_project_action">
-        <description>Searches for all implementors of a selected element in the project enclosing the element.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
- 
-    <context id="find_implementors_in_working_set_action">
-        <description>Searches for all implementors of a selected element in a specified working set.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_read_references_action">
-        <description>Searches for all locations where the selected field is read.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_read_references_in_workspace_action">
-        <description>Searches for all locations where the selected field is read.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_read_references_in_project_action">
-        <description>Searches in the project enclosing the selected field for all locations where the selected field is read.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_read_references_in_hierarchy_action">
-        <description>Searches in the type hierarchy for all locations where the selected field is read.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_write_references_in_hierarchy_action">
-        <description>Searches in the type hierarchy for all locations where the selected field is modified.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_read_references_in_working_set_action">
-        <description>Searches in a working set for all locations where the selected field is read.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_write_references_in_working_set_action">
-        <description>Searches in a working set for all locations where the selected field is modified.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_write_references_in_workspace_action">
-        <description>Searches for all locations where the selected field is modified.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_write_references_in_project_action">
-        <description>Searches in the project enclosing the selected field for all locations where the selected field is modified.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_write_references_action">
-        <description>Searches for all locations where the selected field is modified.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_occurrences_in_file_action">
-        <description>Searches for all locations of the selected element in its file.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="working_set_find_action">
-        <description>Searches for a selected Java element in a working set.</description>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search" href="concepts/concepts-8.htm"/>
-        <topic label="Search actions" href="reference/ref-menu-search.htm"/>
-    </context>
-
-    <context id="find_strings_to_externalize_action">
-        <description>Searches for all strings that are not externalized.</description>
-        <topic label="String externalization" href="concepts/cnls.htm"/>
-        <topic label="Finding strings to externalize" href="tasks/tasks-188.htm"/>
-        <topic label="Externalize Strings wizard" href="reference/ref-wizard-externalize-strings.htm"/>
-    </context>
-
-    <context id="inline_temp_action">
-        <description>This action removes a local variable and replaces all occurrences with its computing expression.</description>
-        <topic label="Inlining a local variable" href="tasks/tasks-161.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="modify_parameters_action">
-        <description>Supports changing the signature of a method.</description>
-        <topic label="Change method signature" href="tasks/tasks-98.htm"/>
-        <topic label="Changing method signature" href="tasks/tasks-157.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="open_action">
-        <description>Opens the selected element in a Java editor.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="open_external_javadoc_action">
-        <description>Opens the selected element&apos;s Javadoc in the default external HTML browser.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-        <topic label="Javadoc location" href="reference/ref-dialog-javadoc-location.htm"/>
-    </context>
-
-    <context id="open_super_implementation_action">
-        <description>This action opens the method in the super class that is overridden by the selected method.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="pull_up_action">
-        <description>Supports moving members up in the type hierarchy.</description>
-        <topic label="Pulling members up to superclass" href="tasks/tasks-165.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="refresh_action">
-        <description>Refreshes the contents from the local file system.</description>
-        <topic label="File actions" href="reference/ref-menu-file.htm"/>
-    </context>
-
-    <context id="rename_action">
-        <description>Supports renaming Java elements.</description>
-        <topic label="Renaming a package" href="tasks/tasks-90.htm"/>
-        <topic label="Renaming a compilation unit" href="tasks/tasks-92.htm"/>
-        <topic label="Renaming a class or interface" href="tasks/tasks-94.htm"/>
-        <topic label="Renaming a method" href="tasks/tasks-96.htm"/>
-        <topic label="Renaming a field" href="tasks/tasks-169.htm"/>
-        <topic label="Renaming a local variable" href="tasks/tasks-204.htm"/>
-        <topic label="Renaming method parameters" href="tasks/tasks-98.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="self_encapsulate_action">
-        <description>Modifies code by replacing a field&apos;s read and write accesses with corresponding calls to getter and setter methods.</description>
-        <topic label="Self encapsulating a field" href="tasks/tasks-162.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="show_in_navigator_action">
-        <description>Shows the selected element in the Navigator view.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="surround_with_try_catch_action">
-        <description>Wraps the code selection into a try/catch block. Handles all exceptions that would cause a compilation error.</description>
-        <topic label="Using Surround with try/catch" href="tasks/tasks-179.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="open_resource_action">
-        <description>Opens the selected element in a Java editor.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="select_working_set_action">
-        <description>This filter removes all elements from the view that are not part of the working set.</description>
-        <topic label="Package Explorer view" href="reference/ref-view-package-explorer.htm"/>
-    </context>
-
-    <context id="structured_selection_history_action">
-        <description>Restores the last structured selection.</description>
-        <topic label="Using Structured Selection" href="tasks/tasks-176.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="structured_select_enclosing_action">
-        <description>Extends the selection according to the Java grammar, to the enclosing syntactic container.</description>
-        <topic label="Using Structured Selection" href="tasks/tasks-176.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="structured_select_next_action">
-        <description>Extends the selection according to the Java grammar, to include the next neighboring syntactic element.</description>
-        <topic label="Using Structured Selection" href="tasks/tasks-176.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="structured_select_previous_action">
-        <description>Extends the selection according to the Java grammar, to include the previous neighboring syntactic element.</description>
-        <topic label="Using Structured Selection" href="tasks/tasks-176.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="toggle_orientations_action">
-        <description>Changes the orientation of the panes of the Hierarchy view.</description>
-        <topic label="Using the Hierarchy view" href="tasks/tasks-37.htm"/>
-        <topic label="Changing the appearance of the Hierarchy view" href="tasks/tasks-38.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="cut_action">
-        <description>Deletes the selected elements and copies them onto the clipboard.</description>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="copy_action">
-        <description>Copies the selected element into the clipboard.</description>
-        <topic label="Copying and moving Java elements" href="tasks/tasks-85.htm"/>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="paste_action">
-        <description>Pastes the elements currently on the clipboard at the insertion point.</description>
-        <topic label="Copying and moving Java elements" href="tasks/tasks-85.htm"/>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="delete_action">
-        <description>Deletes the selected elements.</description>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="open_type_hierarchy_action">
-        <description>Opens the Hierarchy view for the selected element.</description>
-        <topic label="Using the Hierarchy view" href="tasks/tasks-37.htm"/>
-        <topic label="Changing the appearance of the Hierarchy view" href="tasks/tasks-38.htm"/>
-        <topic label="Opening a type hierarchy on a Java element" href="tasks/tasks-39.htm"/>
-        <topic label="Opening a type hierarchy on the current text selection" href="tasks/tasks-40.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="goto_next_error_action">
-        <description>Selects the next problem in the resource that is currently active in the editor area.</description>
-    </context>
-
-    <context id="goto_previous_error_action">
-        <description>Selects the previous problem in the resource that is currently active in the editor area.</description>
-    </context>
-
-    <!-- Dialogs -->
-    <context id="maintype_selection_dialog_context">
-        <description>Choose a type from all types defining a main method.</description>
-        <topic label="Launching a Java program" href="tasks/tasks-130.htm"/>
-        <topic label="Defining the JAR file&apos;s manifest" href="tasks/tasks-35.htm"/>
-    </context>
-
-    <context id="open_type_dialog_context">
-        <description>This dialog allows you to choose a type from the workspace.</description>
-        <topic label="Open Type Dialog" href="reference/ref-148.htm"/>
-        <topic label="Opening on a Type" href="tasks/tasks-76.htm"/>
-        <topic label="Open Type" href="reference/ref-148.htm"/>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Java Actions" href="reference/ref-3.htm"/>
-    </context>
-
-    <context id="edit_jre_dialog_context">
-        <description>Edit an existing JRE definition.</description>
-        <topic label="Choosing a JRE for Launching a Project" href="tasks/tasks-124.htm"/>
-        <topic label="Working with JREs" href="tasks/tasks-JREs.htm"/>
-        <topic label="Working with Build Paths" href="tasks/tasks-110.htm"/>
-        <topic label="Building" href="concepts/concepts-4.htm"/>
-        <topic label="JRE Installations Preferences" href="reference/ref-19.htm"/>
-    </context>
-
-    <context id="source_attachment_dialog_context">
-        <description>Attach source code to the selected JAR file.</description>
-        <topic label="Attaching Source to a JAR File" href="tasks/tasks-115.htm"/>
-        <topic label="Working with Build Paths" href="tasks/tasks-110.htm"/>
-        <topic label="JRE Installations Preferences" href="reference/ref-19.htm"/>
-    </context>
-
-    <context id="variable_selection_dialog_context">
-        <description>Select a classpath variable to be added to the build class path.</description>
-        <topic label="Adding a Variable Class Path Entry" href="tasks/tasks-114.htm"/>
-        <topic label="Working with Build Paths" href="tasks/tasks-110.htm"/>
-        <topic label="Classpath Variables Preferences" href="reference/ref-15.htm"/>
-        <topic label="Classpath Variables Concepts" href="concepts/cclsspthv.htm"/>
-    </context>
-
-    <context id="variable_creation_dialog_context">
-        <description>Define a new classpath variable.</description>
-        <topic label="Defining a Class Path Variable" href="tasks/tasks-117.htm"/>
-        <topic label="Working with Build Paths" href="tasks/tasks-110.htm"/>
-        <topic label="Classpath Variables Preferences" href="reference/ref-15.htm"/>
-        <topic label="Classpath Variables Concepts" href="concepts/cclsspthv.htm"/>
-    </context>
-
-    <context id="advanced_dialog_context">
-        <description>A dialog for adding the listed entries to the class path.</description>
-        <topic label="Adding a library folder to the build path" href="tasks/tasks-112.htm"/>
-        <topic label="Build classpath" href="concepts/cbuildcp.htm"/>
-    </context>
-
-    <context id="confirm_save_modified_resources_dialog_context">
-        <description>Confirm that you want to save the modifed resource.</description>
-        
-    </context>
-
-    <context id="new_variable_dialog_context">
-        <description>A dialog for adding class path variables to the class path.</description>
-        <topic label="Viewing and editing a project&apos;s build path" href="tasks/tasks-111.htm"/>
-        <topic label="Adding a variable class path entry" href="tasks/tasks-114.htm"/>
-        <topic label="Attaching source to variables" href="tasks/tasks-116.htm"/>
-        <topic label="Attaching source to a classpath variable" href="tasks/tasks-116.htm"/>
-        <topic label="Defining a class path variable" href="tasks/tasks-117.htm"/>
-        <topic label="Deleting a class path variable" href="tasks/tasks-118.htm"/>
-        <topic label="Classpath Variables Preferences" href="reference/ref-15.htm"/>
-        <topic label="Classpath Variables Concepts" href="concepts/cclsspthv.htm"/>
-    </context>
-
-    <context id="nonnls_dialog_context">
-        <description>Lists all locations of strings that are not externalized.</description>
-        <topic label="String externalization" href="concepts/cnls.htm"/>
-        <topic label="Finding strings to externalize" href="tasks/tasks-188.htm"/>
-        <topic label="Using the Externalize Strings wizard" href="tasks/tasks-180.htm"/>
-        <topic label="Externalize Strings Wizard" href="reference/ref-wizard-externalize-strings.htm"/>
-        <topic label="Externalize Strings Concepts" href="concepts/cnls.htm"/>
-    </context>
-
-    <context id="multi_main_type_selection_dialog_context">
-        <description>Lists all classes with a main method.</description>
-        <topic label="Launching a Java program" href="tasks/tasks-130.htm"/>
-        <topic label="Defining the JAR file&apos;s manifest" href="tasks/tasks-35.htm"/>
-    </context>
-
-    <context id="multi_type_selection_dialog_context">
-        <description>A dialog for selecting one or more types from a list of types.</description>
-        <topic label="Opening a type in the Package Explorer view" href="tasks/tasks-75.htm"/>
-        <topic label="Opening an editor on a type" href="tasks/tasks-76.htm"/>
-    </context>
-
-    <context id="super_interface_selection_dialog_context">
-        <description>A dialog for selecting a super interface from a displayed list.</description>
-        <topic label="Creating a new Java class" href="tasks/tasks-17.htm"/>
-        <topic label="Creating a new Java interface" href="tasks/tasks-21.htm"/>
-        <topic label="New Java Class Wizard" href="reference/ref-126.htm"/>
-        <topic label="New Java Interface Wizard" href="reference/ref-127.htm"/>
-    </context>
-
-    <context id="override_tree_selection_dialog_context">
-        <description>A dialog where you can mark all methods that should be overridden.</description>
-        <topic label="Overriding a method using the Hierarchy view" href="tasks/tasks-43.htm"/>
-        <topic label="Finding overridden methods" href="tasks/tasks-44.htm"/>
-        <topic label="Source Actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="move_destination_dialog_context">
-        <description>A dialog for selecting the move destination of an element.</description>
-        <topic label="Copying and moving Java elements" href="tasks/tasks-85.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-    </context>
-
-    <context id="choose_variable_dialog_context">
-        <description>A dialog for selecting template variables from a displayed list.</description>
-        <topic label="Templates" href="concepts/ctemplates.htm"/>
-        <topic label="Writing your own templates" href="tasks/tasks-203.htm"/>
-        <topic label="Templates Preferences" href="reference/ref-preferences-templates.htm"/>
-        <topic label="Templates Concepts" href="concepts/ctemplates.htm"/>
-    </context>
-
-    <context id="edit_template_dialog_context">
-        <description>A dialog for editing a template.</description>
-        <topic label="Templates" href="concepts/ctemplates.htm"/>
-        <topic label="Writing your own templates" href="tasks/tasks-203.htm"/>
-        <topic label="Templates Preferences" href="reference/ref-preferences-templates.htm"/>
-        <topic label="Templates Concepts" href="concepts/ctemplates.htm"/>
-    </context>
-
-    <context id="history_list_dialog_context">
-        <description>A dialog for re-opening previously opened type hierarchies.</description>
-        <topic label="Changing the appearance of the Hierarchy view" href="tasks/tasks-38.htm"/>
-        <topic label="Opening a type hierarchy on a Java element" href="tasks/tasks-39.htm"/>
-        <topic label="Opening a type hierarchy on the current text selection" href="tasks/tasks-40.htm"/>
-        <topic label="Opening a type hierarchy in its own perspective" href="tasks/tasks-42.htm"/>
-        <topic label="Overriding a method using the Hierarchy view" href="tasks/tasks-43.htm"/>
-        <topic label="Finding overridden methods" href="tasks/tasks-44.htm"/>
-        <topic label="Type Hierarchy View" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="import_organize_input_dialog_context">
-        <description>A dialog for adding a new package to the Organize Imports preferences page.</description>
-        <topic label="Adding required import statements" href="tasks/tasks-59.htm"/>
-        <topic label="Organizing existing import statements" href="tasks/tasks-60.htm"/>
-        <topic label="Setting the order of import statements" href="tasks/tasks-61.htm"/>
-        <topic label="Organize Imports Preferences" href="reference/ref-22.htm"/>
-        <topic label="Source Actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="javadoc_property_dialog_context">
-        <description>A dialog where you can specify the Javadoc location for a selected jar file.</description>
-        <topic label="Javadoc Location Properties" href="reference/ref-dialog-javadoc-location.htm"/>
-        <topic label="Specifying the location of the Javadoc command" href="tasks/tasks-197.htm"/>
-        <topic label="Using the Generate Javadoc wizard" href="tasks/tasks-198.htm"/>
-    </context>
-
-    <context id="new_container_dialog_context">
-        <description>A dialog where you can specify a new source folder.</description>
-        <topic label="Build classpath" href="concepts/cbuildcp.htm"/>
-        <topic label="Creating a new source folder" href="tasks/tasks-26.htm"/>
-		<topic label="Creating a new source folder with exclusion filter" href="tasks/tasks-221.htm"/>
-		<topic label="Creating a new source folder with specific output folder" href="tasks/tasks-222.htm"/>
-        <topic label="Adding a library folder to the build path" href="tasks/tasks-112.htm"/>
-    </context>
-
-    <context id="nls_search_page_context">
-        <description>A dialog where you can select options for searching the specifics of string externalizations.</description>
-        <topic label="String externalization" href="concepts/cnls.htm"/>
-        <topic label="Finding unused and incorrectly used keys in property files" href="tasks/tasks-202.htm"/>
-    </context>
-
-    <context id="java_editor_context">
-        <description>The Java editor provides you with Java specific text editing support.</description>
-        <topic label="Java editor concepts" href="concepts/concepts-7.htm"/>
-        <topic label="Using the Java editor" href="tasks/tasks-54.htm"/>
-        <topic label="Java editor reference" href="reference/ref-java-editor.htm"/>
-        <topic label="Opening a Java editor" href="gettingStarted/qs-OpenJavaEditor.htm"/>
-        <topic label="Using content assist" href="gettingStarted/qs-ContentAssist.htm"/>
-        <topic label="Identifying problems in your code" href="gettingStarted/qs-7.htm"/>
-        <topic label="Using source code templates" href="gettingStarted/qs-EditorTemplates.htm"/>
-        <topic label="Organizing import statements" href="gettingStarted/qs-OrganizeImports.htm"/>
-        <topic label="Java editor preferences" href="reference/ref-21.htm"/>
-    </context>
-
-    <context id="compare_dialog_context">
-        <description>A dialog displaying the results of comparing Java elements.</description>
-    </context>
-
-    <context id="add_element_from_history_dialog_context">
-        <description>A dialog that lets you restore deleted Java elements from the local history.</description>
-        <topic label="Restoring a deleted workbench element" href="tasks/tasks-64.htm"/>
-        <topic label="Using the local history" href="tasks/tasks-62.htm"/>
-    </context>
-
-    <context id="compare_element_with_history_dialog_context">
-        <description>A dialog that lets you compare a Java element with entries from the local history.</description>
-        <topic label="Comparing a Java element with a local history edition" href="tasks/tasks-63a.htm"/>
-        <topic label="Using the local history" href="tasks/tasks-62.htm"/>
-    </context>
-
-    <context id="replace_element_with_history_dialog_context">
-        <description>A dialog that lets you replace Java elements with entries from the local history.</description>
-        <topic label="Replacing a Java element with a local history edition" href="tasks/tasks-63.htm"/>
-        <topic label="Using the local history" href="tasks/tasks-62.htm"/>
-    </context>
-
-    <!-- View parts -->
-
-    <context id="projects_view_context">
-        <description>Displays all Java projects according to the current filter settings.</description>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="packages_browsing_view_context">
-        <description>Displays all packages of the selected Java project according to the current filter settings.</description>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="types_view_context">
-        <description>Displays all types of the selected package according to the current filter settings.</description>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="members_view_context">
-        <description>Displays all members of the selected type according to the current filter settings.</description>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-
-    <!-- Preference pages -->
-
-    <context id="build_path_property_page_context">
-        <description>This page is where you can define the project&apos;s build path.</description>
-        <topic label="Viewing and Editing a Project&apos;s Build Path" href="tasks/tasks-111.htm"/>
-        <topic label="Building" href="concepts/concepts-4.htm"/>
-        <topic label="Java Settings Page" href="reference/ref-123.htm"/>
-    </context>
-
-    <context id="cp_variables_preference_page_context">
-        <description>This page is where you can create and manage classpath variables for the workbench.</description>
-        <topic label="Classpath Variables Preferences" href="reference/ref-15.htm"/>
-        <topic label="Adding a Variable Class Path Entry" href="tasks/tasks-114.htm"/>
-        <topic label="Deleting a Class Path Variable" href="tasks/tasks-118.htm"/>
-        <topic label="Classpath Variables" href="concepts/cclsspthv.htm"/>
-        <topic label="Installed JREs" href="reference/ref-18.htm"/>
-    </context>
-
-    <context id="codeformatter_preference_page_context">
-        <description>This page is where you can set preferences for formatting Java code.</description>
-        <topic label="Code Formatter Preferences" href="reference/ref-17.htm"/>
-        <topic label="Formatting Java Code" href="tasks/tasks-66.htm"/>
-    </context>
-
-    <context id="source_attachment_property_page_context">
-        <description>This page is where you can attach source code to a JAR file.</description>
-        <topic label="Source Attachment Properties" href="reference/ref-124.htm"/>
-        <topic label="Attaching Source to a JAR File" href="tasks/tasks-115.htm"/>
-        <topic label="Attaching Source to a Classpath Variable" href="tasks/tasks-116.htm"/>
-    </context>
-
-    <context id="jre_preference_page_context">
-        <description>This page is where you can add, remove, and edit JREs install definitions.</description>
-        <topic label="JRE Installations Preferences" href="reference/ref-19.htm"/>
-        <topic label="Working with JREs" href="tasks/tasks-JREs.htm"/>
-        <topic label="Choosing a JRE for Launching a Project" href="tasks/tasks-124.htm"/>
-        <topic label="Preparing the Workbench" href="gettingStarted/qs-2.htm"/>
-    </context>
-
-    <context id="source_lookup_property_page_context">
-        <description>When debugging the projects specified on this page are used to look up a type&apos;s source.</description>
-    </context>
-
-    <context id="launch_jre_property_page_context">
-        <description>Select the JRE to be used when launching from this project. This option should only be used when this project&apos;s JRE is different from the default JRE selected in the preferences.</description>
-        <topic label="Choosing a JRE for Launching a Project" href="tasks/tasks-124.htm"/>
-        <topic label="Working with JREs" href="tasks/tasks-JREs.htm"/>
-        <topic label="JRE Installations Preferences" href="reference/ref-19.htm"/>
-    </context>
-
-    <context id="code_manipulation_preference_context">
-        <description>Specify the behavior of all code generation actions.</description>
-        <topic label="Code Generation Preferences" href="reference/ref-preferences-code-generation.htm"/>
-        <topic label="Generating getters and setters" href="tasks/tasks-57.htm"/>
-    </context>
-
-    <context id="compiler_preference_page_context">
-        <description>Specify the behavior of the JDT Java compiler.</description>
-        <topic label="Java Compiler Preferences" href="reference/ref-preferences-compiler.htm"/>
-        <topic label="Java Builder" href="concepts/concepts-4.htm"/>
-        <topic label="Building a Java program" href="tasks/tasks-106.htm"/>
-    </context>
-
-    <context id="template_preference_page_context">
-        <description>Define and manage your code templates.</description>
-        <topic label="Java Templates Preferences" href="reference/ref-preferences-templates.htm"/>
-        <topic label="Using templates" href="tasks/tasks-171.htm"/>
-        <topic label="Writing your own templates" href="tasks/tasks-203.htm"/>
-        <topic label="Templates Concepts" href="concepts/ctemplates.htm"/>
-    </context>
-
-    <context id="javadoc_preference_page_context">
-        <description>Define and manage your Javadoc preferences.</description>
-        <topic label="Javadoc Preferences" href="reference/ref-preferences-javadoc.htm"/>
-        <topic label="Specifying the location of the Javadoc command" href="tasks/tasks-197.htm"/>
-        <topic label="Using the Generate Javadoc wizard" href="tasks/tasks-198.htm"/>
-    </context>
-
-    <context id="new_java_project_preference_page_context">
-        <description>Specify the path for the application for generating Javadoc.</description>
-        <topic label="New Java Project Preferences" href="reference/ref-preferences-new-project.htm"/>
-        <topic label="Creating a new Java project" href="tasks/tasks-12.htm"/>
-        <topic label="Creating a Java project as its own source container" href="tasks/tasks-13.htm"/>
-        <topic label="Creating a Java project with source folders" href="tasks/tasks-14.htm"/>
-		<topic label="Creating a new source folder with exclusion filter" href="tasks/tasks-221.htm"/>
-		<topic label="Creating a new source folder with specific output folder" href="tasks/tasks-222.htm"/>
-        <topic label="Java Projects" href="concepts/concepts-3.htm"/>
-    </context>
-
-    <context id="java_element_info_page_context">
-        <description>Displays file system information about the selected Java element.</description>
-        
-    </context>
-
-
-    <!-- Wizard pages -->
-
-    <context id="new_javaproject_wizard_page_context">
-        <description>This wizard helps you create a new Java project.</description>
-        <topic label="Java projects" href="concepts/concepts-3.htm"/>
-        <topic label="Creating a Java project as its own source container" href="tasks/tasks-13.htm"/>
-        <topic label="Creating a Java project with source folders" href="tasks/tasks-14.htm"/>
-		<topic label="Creating a new source folder with exclusion filter" href="tasks/tasks-221.htm"/>
-		<topic label="Creating a new source folder with specific output folder" href="tasks/tasks-222.htm"/>
-        <topic label="Creating your first Java project" href="gettingStarted/qs-3.htm"/>
-        <topic label="New Java Project Wizard" href="reference/ref-121.htm"/>
-        <topic label="New Java Project Preferences" href="reference/ref-preferences-new-project.htm"/>
-    </context>
-    <context id="new_snippet_wizard_page_context">
-        <description>This wizard helps you create a new Java scrapbook page.</description>
-        <topic label="Creating a scrapbook page" href="tasks/tasks-149.htm"/>
-        <topic label="New Java Scrapbook Page Wizard" href="reference/ref-129.htm"/>
-    </context>
-    <context id="new_package_wizard_page_context">
-        <description>This wizard helps you create a new Java package.</description>
-        <topic label="Creating a new Java package" href="tasks/tasks-15.htm"/>
-        <topic label="New Java Package Wizard" href="reference/ref-125.htm"/>
-    </context>
-    <context id="new_class_wizard_page_context">
-        <description>This wizard helps you create a new Java class.</description>
-        <topic label="Creating a top-level class" href="tasks/tasks-18.htm"/>
-        <topic label="Creating a nested class" href="tasks/tasks-19.htm"/>
-        <topic label="Creating a class in an existing compilation unit" href="tasks/tasks-20.htm"/>
-        <topic label="New Java Class Wizard" href="reference/ref-126.htm"/>
-    </context>
-
-    <context id="new_interface_wizard_page_context">
-        <description>This wizard helps you create a new Java interface.</description>
-        <topic label="Creating a top-level interface" href="tasks/tasks-23.htm"/>
-        <topic label="Creating a nested interface" href="tasks/tasks-24.htm"/>
-        <topic label="Creating a new interface in an existing compilation unit" href="tasks/tasks-25.htm"/>
-        <topic label="New Java Interface Wizard" href="reference/ref-127.htm"/>
-    </context>
-
-    <context id="new_packageroot_wizard_page_context">
-        <description>This wizard helps you create a new Java source folder.</description>
-        <topic label="Creating a new Java project" href="tasks/tasks-12.htm"/>
-        <topic label="Creating a new source folder" href="tasks/tasks-26.htm"/>
-		<topic label="Creating a new source folder with exclusion filter" href="tasks/tasks-221.htm"/>
-		<topic label="Creating a new source folder with specific output folder" href="tasks/tasks-222.htm"/>
-        <topic label="New Source Folder Wizard" href="reference/ref-128.htm"/>
-    </context>
-
-    <context id="java_application_page_context">
-        <description>This wizard displays a list of launchable elements where you can select an element to be launched.</description>
-        <topic label="Running a Java program" href="tasks/tasks-130.htm"/>
-        <topic label="Run and Debug Actions" href="reference/ref-4.htm"/>
-    </context>
-
-    <context id="jdi_attach_launcher_page_context">
-        <description>This wizard helps you configure the settings for launching a remote Java application.</description>
-        <topic label="Connecting to a remote VM with the Remote Java application launch configuration" href="tasks/tasks-141.htm"/>
-        <topic label="Run and Debug Actions" href="reference/ref-4.htm"/>
-    </context>
-
-    <context id="jar_packager_wizard_page_context">
-        <description>This wizard helps you set packaging options for exporting resources to a JAR file.</description>
-        <topic label="Creating a new JAR file" href="tasks/tasks-33.htm"/>
-        <topic label="Creating JAR files" href="tasks/tasks-32.htm"/>
-        <topic label="Export JAR Wizard" href="reference/ref-export-jar.htm"/>
-    </context>
-
-    <context id="jar_manifest_wizard_page_context">
-        <description>This wizard helps you create or locate the manifest file for the created JAR file.</description>
-        <topic label="Defining the JAR File&apos;s Manifest" href="tasks/tasks-35.htm"/>
-        <topic label="Creating JAR files" href="tasks/tasks-32.htm"/>
-        <topic label="Export JAR Wizard" href="reference/ref-export-jar.htm"/>
-    </context>
-
-    <context id="jar_options_wizard_page_context">
-        <description>This wizard helps you configure the settings for managing export problems. It includes the option to save a description of the JAR file in the workbench.</description>
-        <topic label="Setting advanced options" href="tasks/tasks-34.htm"/>
-        <topic label="Creating JAR files" href="tasks/tasks-32.htm"/>
-        <topic label="Export JAR Wizard" href="reference/ref-export-jar.htm"/>
-    </context>
-
-   <context  id="java_working_set_page_context" >
-      <description>Create a new working set by selecting the Java elements that will belong to it.</description>
-   </context>
-
-    <context id="classpath_container_default_page_context">
-        <description>Allows you to edit a container entry of the class path. A container entry has the format &quot;container name/container specific arguments&quot;.</description>
-        <topic label="Build classpath" href="concepts/cbuildcp.htm"/>
-        <topic label="Viewing and editing a project&apos;s build path" href="tasks/tasks-111.htm"/>
-        <topic label="Adding a library folder to the build path" href="tasks/tasks-112.htm"/>
-        <topic label="Adding a JAR file to the build path" href="tasks/tasks-113.htm"/>
-        <topic label="Adding a variable class path entry" href="tasks/tasks-114.htm"/>
-        <topic label="Attaching source to a JAR file" href="tasks/tasks-115.htm"/>
-        <topic label="Attaching source to variables" href="tasks/tasks-116.htm"/>
-        <topic label="Attaching source to a classpath variable" href="tasks/tasks-116.htm"/>
-        <topic label="Defining a class path variable" href="tasks/tasks-117.htm"/>
-        <topic label="Deleting a class path variable" href="tasks/tasks-118.htm"/>
-        <topic label="Java Build Path Properties" href="reference/ref-123.htm"/>
-        <topic label="Classpath Variables Preferences" href="reference/ref-15.htm"/>
-    </context>
-
-    <context id="javadoc_standard_page_context">
-        <description>Allows you to select the options for generating Javadoc using the standard doclet.</description>
-        <topic label="Configuring Javadoc arguments for standard doclet" href="tasks/tasks-200.htm"/>
-        <topic label="Export Javadoc Wizard" href="reference/ref-export-javadoc.htm"/>
-        <topic label="Javadoc Preferences" href="reference/ref-preferences-javadoc.htm"/>
-    </context>
-
-    <context id="javadoc_specifics_page_context">
-        <description>Allows you to textually specify further arguments passed to the Javadoc generator.</description>
-        <topic label="Configuring Javadoc arguments" href="tasks/tasks-201.htm"/>
-        <topic label="Export Javadoc Wizard" href="reference/ref-export-javadoc.htm"/>
-    </context>
-
-    <context id="javadoc_tree_page_context">
-        <description>Select the elements for which Javadoc will be created.</description>
-        <topic label="Selecting types for Javadoc generation" href="tasks/tasks-199.htm"/>
-        <topic label="Export Javadoc Wizard" href="reference/ref-export-javadoc.htm"/>
-    </context>
-
-
-    <!-- Refactoring Preview Pages-->
-
-    <context id="refactoring_preview_wizard_page_context">
-        <description>This dialog presents a preview of the impending refactoring changes.</description>
-        <topic label="Previewing proposed refactoring changes" href="tasks/tasks-84.htm"/>
-        <topic label="Refactoring with preview" href="tasks/tasks-83.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-	<!-- Refactoring Error Wizard Pages -->
-	
-    <context id="refactoring_error_wizard_page_context">
-        <description>Displays errors that occurred while executing the refactoring.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="rename_params_wizard_page">
-        <description>This dialog helps you rename a method parameter. References to the parameter inside the method are updated to refer to the new name.</description>
-        <topic label="Renaming method parameters" href="tasks/tasks-98.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="extract_method_wizard_page_context">
-        <description>This dialog helps you extract the selected statements into a new method.</description>
-        <topic label="Extracting a method" href="tasks/tasks-87.htm"/>
-        <topic label="Opening a Java editor" href="gettingStarted/qs-OpenJavaEditor.htm"/>
-        <topic label="Adding new methods" href="gettingStarted/qs-AddMethod.htm"/>
-        <topic label="Using content assist" href="gettingStarted/qs-ContentAssist.htm"/>
-        <topic label="Identifying problems in your code" href="gettingStarted/qs-7.htm"/>
-        <topic label="Using source code templates" href="gettingStarted/qs-EditorTemplates.htm"/>
-        <topic label="Organizing import statements" href="gettingStarted/qs-OrganizeImports.htm"/>
-        <topic label="Using the local history" href="gettingStarted/qs-LocalHistory.htm"/>
-        <topic label="Extracting a new method" href="gettingStarted/qs-ExtractMethod.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="rename_package_wizard_page_context">
-        <description>This dialog helps you rename a Java package. References to the old package name are updated to refer to the new name.</description>
-        <topic label="Renaming a package" href="tasks/tasks-90.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="rename_cu_wizard_page_context">
-        <description>This dialog helps you rename a compilation unit. References to the compilation unit&apos;s public type are updated to refer to the new name.</description>
-        <topic label="Renaming a compilation unit" href="tasks/tasks-92.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="rename_method_wizard_page_context">
-        <description>This dialog helps you rename a method.</description>
-        <topic label="Renaming a method" href="tasks/tasks-96.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="rename_type_wizard_page_context">
-        <description>This dialog helps you rename a type.</description>
-        <topic label="Renaming a class or interface" href="tasks/tasks-94.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="rename_field_wizard_page_context">
-        <description>This dialog helps you rename a field.</description>
-        <topic label="Renaming a field" href="tasks/tasks-169.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-    </context>
-
-    <context id="externalize_wizard_keyvalue_page_context">
-        <description>Supports you in defining the keys for looking up externalized strings.</description>
-        <topic label="String externalization" href="concepts/cnls.htm"/>
-        <topic label="Key/value page" href="tasks/tasks-189.htm"/>
-        <topic label="Externalize strings wizard" href="reference/ref-wizard-externalize-strings.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="externalize_wizard_properties_file_page_context">
-        <description>Supports you in specifying the properties file used to externalize strings.</description>
-        <topic label="String externalization" href="concepts/cnls.htm"/>
-        <topic label="Property file page" href="tasks/tasks-190.htm"/>
-        <topic label="Externalize strings wizard" href="reference/ref-wizard-externalize-strings.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="extract_method_temp_page_context">
-        <description>This dialog helps you extract a local variable.</description>
-        <topic label="Extracting a local variable" href="tasks/tasks-159.htm"/>
-        <topic label="Parameters page" href="tasks/tasks-160.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="modify_parameters_wizard_page_context">
-        <description>This dialog helps you modify the signature of a method.</description>
-        <topic label="Renaming method parameters" href="tasks/tasks-98.htm"/>
-        <topic label="Renaming method parameters - parameters page" href="tasks/tasks-99.htm"/>
-        <topic label="Changing method signature" href="tasks/tasks-157.htm"/>
-        <topic label="Changing method signature - parameters page" href="tasks/tasks-158.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="move_members_wizard_page_context">
-        <description>This dialog helps you move static members from one type to another.</description>
-        <topic label="Moving static members between types" href="tasks/tasks-167.htm"/>
-        <topic label="Parameters page" href="tasks/tasks-168.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="pull_up_wizard_page_context">
-        <description>This dialog helps you move members up the type hierarchy.</description>
-        <topic label="Pulling members up to superclass" href="tasks/tasks-165.htm"/>
-        <topic label="Parameters page" href="tasks/tasks-166.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="rename_local_variable_wizard_page_context">
-        <description>This dialog helps you rename a local variable.</description>
-        <topic label="Renaming a local variable" href="tasks/tasks-204.htm"/>
-        <topic label="Parameters page" href="tasks/tasks-205.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="self_encapsulate_field_wizard_page_context">
-        <description>This dialog helps you insert calls to setter and getter methods at all locations where the selected field is set or read.</description>
-        <topic label="Self encapsulating a field" href="tasks/tasks-162.htm"/>
-        <topic label="Parameters page" href="tasks/tasks-163.htm"/>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <!-- Reused UI Blocks -->
-
-    <context id="build_paths_context">
-        <description>A page for defining the build classpath for the project.</description>
-        <topic label="Build class path" href="concepts/concepts-4.htm"/>
-        <topic label="Viewing and editing a project&apos;s build path" href="tasks/tasks-111.htm"/>
-        <topic label="Preparing the workbench" href="gettingStarted/qs-2.htm"/>
-        <topic label="Java build path properties" href="reference/ref-123.htm"/>
-        <topic label="Classpath variables preferences" href="reference/ref-15.htm"/>
-    </context>
-    <context id="source_attachment_context">
-        <description>Allows you to attach a source code archive to a JAR file.</description>
-        <topic label="Build class path" href="concepts/concepts-4.htm"/>
-        <topic label="Attaching source to a JAR file" href="tasks/tasks-115.htm"/>
-        <topic label="Attaching source to a classpath variable" href="tasks/tasks-116.htm"/>
-        <topic label="Attaching source to JAR files and variables" href="reference/ref-124.htm"/>
-    </context>
-    <!-- View parts -->
-    <context id="package_view_context">
-        <description>This view displays the workspace&apos;s Java projects and lets you explore their contents.</description>
-        <topic label="Browsing Java elements" href="gettingStarted/qs-4.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-        <topic label="Package explorer view" href="reference/ref-view-package-explorer.htm"/>
-        <topic label="Java element filters dialog" href="reference/ref-dialog-java-element-filters.htm"/>
-    </context>
-    <context id="type_hierarchy_view_context">
-        <description>This view displays a type&apos;s hierarchy.</description>
-        <topic label="Using the Hierarchy view" href="tasks/tasks-37.htm"/>
-        <topic label="Type Hierarchy View" href="reference/ref-type-hierarchy.htm"/>
-        <topic label="Viewing the Type Hierarchy" href="gettingStarted/qs-6.htm"/>
-        <topic label="Java Views" href="concepts/concepts-6.htm"/>
-    </context>
-
-
-    <!-- Preference pages -->
-
-    <context id="organizeimports_preference_page_context">
-        <description>On this page you can define the sort order of import statements.</description>
-        <topic label="Organize imports preferences" href="reference/ref-22.htm"/>
-        <topic label="Adding required import statements" href="tasks/tasks-59.htm"/>
-        <topic label="Organizing existing import statements" href="tasks/tasks-60.htm"/>
-        <topic label="Setting the order of import statements" href="tasks/tasks-61.htm"/>
-    </context>
-
-    <context id="java_base_preference_page_context">
-        <description>On this page you can indicate your preferences for the general Java tooling settings.</description>
-        <topic label="Java preferences" href="reference/ref-13.htm"/>
-    </context>
-
-    <context id="refactoring_preference_page_context">
-        <description>On this page you can indicate your preferences when performing a refactoring.</description>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactoring reference" href="reference/ref-115.htm"/>
-        <topic label="Refactoring tasks" href="tasks/tasks-80.htm"/>
-    </context>
-
-    <context id="java_editor_preference_page_context">
-        <description>On this page you can indicate your preferences for using the Java editor.</description>
-        <topic label="Java editor preferences" href="reference/ref-21.htm"/>
-        <topic label="Java editor concepts" href="concepts/concepts-7.htm"/>
-        <topic label="Java editor reference" href="reference/ref-java-editor.htm"/>
-        <topic label="Using the Java editor" href="tasks/tasks-54.htm"/>
-    </context>
-
-
-    <!-- Search -->
-
-    <context id="java_search_page_context">
-        <description>On this page you can search for references to and declarations of Java elements.</description>
-        <topic label="Java Searching" href="concepts/concepts-8.htm"/>
-        <topic label="Searching the workbench" href="gettingStarted/qs-11.htm"/>
-        <topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"/>
-        <topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"/>
-        <topic label="Java search tab" href="reference/ref-131.htm"/>
-        <topic label="Search menu" href="reference/ref-menu-search.htm"/>
-    </context>
-
-
-    <!-- Custom Filters -->
-
-    <context id="open_custom_filters_dialog_context">
-        <description>On this page you can activate and deactivate filters.</description>
-        <topic label="Filtering elements" href="tasks/tasks-47.htm"/>
-        <topic label="Showing and hiding system files" href="tasks/tasks-3.htm"/>
-        <topic label="Showing and hiding CLASS files generated for inner" href="tasks/tasks-4.htm"/>
-        <topic label="Showing and hiding libraries" href="tasks/tasks-5.htm"/>
-        <topic label="Showing and hiding empty packages " href="tasks/tasks-183.htm"/>
-        <topic label="Showing and hiding empty parent packages " href="tasks/tasks-184.htm"/>
-        <topic label="Showing and hiding Java files " href="tasks/tasks-185.htm"/>
-        <topic label="Showing and hiding non-Java elements" href="tasks/tasks-186.htm"/>
-    </context>
-
-
-    <!-- NEW CONTEXT IDs -->
-
-    <context id="sort_members_action">
-        <description>This command sorts the members in this compilation unit.</description>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="quick_fix_action">
-        <description>This command helps you to correct Java problems.</description>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="format_action">
-        <description>This command formats the selected text.</description>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="add_delegate_methods_action">
-        <description>This command lets you create delegate methods for a set of fields.(Delegate methods are methods that delegate to a method provided by a field.)</description>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="history_action">
-        <description>This action is used to switch between previously displayed type hierarchies.</description>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="go_into_top_level_type_action">
-        <description>This command modifies the Java outline view to show only the members of the compilation unit's main type.</description>
-    </context>
-
-    <context id="tasktags_property_page_context">
-        <description>This page is where you can define the project-specific task tags.</description>
-    </context>
-
-    <context id="compiler_property_page_context">
-        <description>This page is where you can define the project-specific compiler settings.</description>
-    </context>
-
-    <context id="replace_with_previous_from_history_action">
-        <description>This command lets you replace the selected element with a version from the local history.</description>
-        <topic label="Using the local history" href="tasks/tasks-62.htm"/>
-    </context>
-
-    <context id="compare_with_history_action">
-        <description>This command lets you compare the selected element with a version from the local history.</description>        
-        <topic label="Using the local history" href="tasks/tasks-62.htm"/>
-    </context>
-
-    <context id="add_from_history_action">
-        <description>This command adds elements from the local history.</description>
-        <topic label="Using the local history" href="tasks/tasks-62.htm"/>
-    </context>
-
-    <context id="replace_with_history_action">
-        <description>This command replaces the selected element with a version from the local history.</description>
-        <topic label="Using the local history" href="tasks/tasks-62.htm"/>
-    </context>
-
-    <context id="comment_action">
-        <description>This command lets you comment out a sequence of lines in Java code.</description>        
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="uncomment_action">
-        <description>This command uncomments a sequence of lines that are commented out.</description>
-        <topic label="Source actions" href="reference/ref-menu-source.htm"/>
-    </context>
-
-    <context id="extract_temp_page_context">
-        <description>This dialog helps you to extract a local variable from a selected expression.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="previous_problem_action">
-        <description>This command navigates to the previous problem in the active editor.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="sort_order_preference_page_context">
-        <description>On this page you can indicate your preferences for sorting elements in views.  The same settings are also used by the Sort Members command.</description>
-        <topic label="Sorting elements in Java views" href="tasks/tasks-195.htm"/>
-    </context>
-
-    <context id="tasktags_preference_page_context">
-        <description>On this page you can create new tags (e.g. TODO, FIXME) for which task markers will be created.</description>
-    </context>
-
-    <context id="appearance_preference_page_context">
-        <description>On this page you can indicate your preferences for the appearence of Java views.</description>
-    </context>
-
-    <context id="addjtoclasspath_action_context">
-        <description>This command adds the selected JAR to the project's classpath.</description>
-        <topic label="Build classpath" href="concepts/cbuildcp.htm"/>
-    </context>
-
-    <context id="removefromclasspath_action_context">
-        <description>This command removes an entry from the project's classpath.</description>        
-        <topic label="Build classpath" href="concepts/cbuildcp.htm"/>
-    </context>
-
-    <context id="push_down_action">
-        <description>This command opens a dialog that will help you to push down members of a class to the class's subclasses.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="inline_method_wizard_page_context">
-        <description>This dialog helps you to inline a method.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="move_action">
-        <description>This command moves elements.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="next_change_action">
-        <description>This command navigates to the next change.</description>
-    </context>
-
-    <context id="previous_change_action">
-        <description>This command navigates to the previous change.</description>
-    </context>
-
-    <context id="goto_next_member_action">
-        <description>This command moves the caret to the next member.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="goto_previous_member_action">
-        <description>This command moves the caret to the previous member.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="show_qualified_names_action">
-        <description>This command shows the qualified names for types.</description>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="open_structure_action">
-        <description>This command opens the outline of the selected element.</description>
-    </context>
-
-    <context id="inline_action">
-        <description>This command opens a dialog that will help you to inline a method, local variable or constant.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="extract_interface_action">
-        <description>This command opens a dialog that will help you to extract an interface from the selected type.  You can optionally change references to the selected type into references to the new interface.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="promote_temp_to_field_page_context">
-        <description>This dialog helps you convert a local variable to a field.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="move_inner_to_top_level_action">
-        <description>This command opens a dialog that will help you to convert a nested type to a top level type.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="use_supertype_wizard_page_context">
-        <description>This dialog helps you to replace references to a type with references to one of the type's supertypes.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="parameter_hints_action">
-        <description>This command shows hints for method call parameters.</description>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="convert_anonymous_to_nested_action">
-        <description>This command opens a dialog that will help you to convert an anonymous inner class to a nested class.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="goto_resource_dialog">
-        <description>This dialog helps you to find and navigate to a workspace resource.</description>
-    </context>
-
-    <context id="extract_constant_page_context">
-        <description>This dialog helps you to extract a selected expression to a constant.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="extract_constant_action">
-        <description>This command opens a dialog that will help you to extract a constant from the selected expression.  You can optionally replace all matching expressions with references to the new constant.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="link_editor_action">
-        <description>This command links the view with an editor.</description>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="use_supertype_action">
-        <description>This command opens a dialog that will help you to replace references to a type with references to one of the type's supertypes.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="inline_constant_wizard_page_context">
-        <description>This dialog helps you to inline a constant.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="goto_matching_bracket_action">
-        <description>This command moves the caret to the matching bracket.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="goto_type_action">
-        <description>This command finds a selected type in the workspace and opens its code in the editor.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="java_select_marker_ruler_action">
-        <description>This command activates Quick Fix.</description>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="show_outline_action">
-        <description>This command shows an in-place outline of the currently edited file.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="goto_resource_action">
-        <description>This command finds and navigates to a selected resource in the workspace.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="convert_anonymous_to_nested_page_context">
-        <description>This dialog helps you to convert an anonymous inner class to a nested class.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="next_problem_action">
-        <description>This command navigates to the next problem in the Java editor.</description>
-        <topic label="Navigate actions" href="reference/ref-menu-navigate.htm"/>
-    </context>
-
-    <context id="content_assist_action">
-        <description>This command opens content assist.</description>
-        <topic label="Edit actions" href="reference/ref-menu-edit.htm"/>
-    </context>
-
-    <context id="layout_flat_action">
-        <description>This command changes the view to a flat layout.</description>
-        <topic label="Package Explorer view" href="reference/ref-view-package-explorer.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="layout_hierarchical_action">
-        <description>This command changes the view to a hierarchical layout.</description>
-        <topic label="Package Explorer view" href="reference/ref-view-package-explorer.htm"/>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-
-    <context id="show_javadoc_action">
-        <description>This command shows Javadoc for the selected element.</description>
-        <topic label="Javadoc location" href="reference/ref-dialog-javadoc-location.htm"/>
-    </context>
-
-    <context id="output_location_dialog_context">
-        <description>This dialog helps you to edit the output folder of a project or a source folder.</description>
-        <topic label="Build classpath" href="concepts/cbuildcp.htm"/>
-        <topic label="Java Settings Page" href="reference/ref-123.htm"/>
-    </context>
-
-    <context id="sort_by_defining_type_action">
-        <description>This command sorts the members by their declaring type.</description>
-        <topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm"/>
-    </context>
-
-    <context id="edit_working_set_action">
-        <description>This command lets you edit a working set.</description>
-    </context>
-
-    <context id="move_inner_to_top_wizard_page_context">
-        <description>This dialog helps you to convert a nested type to a top level type.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="push_down_wizard_page_context">
-        <description>This dialog helps you to push down class members to their subclasses.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="promote_temp_to_field_action">
-        <description>This command opens a dialog that will help you to convert a local variable to a field.</description>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="exclusion_pattern_dialog_context">
-        <description>This dialog excludes selected source files within a source folder from being compiled.</description>
-        <topic label="Build classpath" href="concepts/cbuildcp.htm"/>
-        <topic label="Java Settings Page" href="reference/ref-123.htm"/>
-    </context>
-
-    <context id="extract_interface_temp_page_context">
-        <description>This dialog helps you to extract an interface from a type.  You can optionally change references to the type into references to the new interface.</description>
-        <topic label="Refactoring dialogs" href="reference/ref-117.htm"/>
-        <topic label="Refactoring preferences" href="reference/ref-23.htm"/>
-        <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-        <topic label="Refactor actions" href="reference/ref-menu-refactor.htm"/>
-    </context>
-
-    <context id="select_all_action">
-        <description>This command selects all elements in the active view.</description>
-        <topic label="Java views" href="concepts/concepts-6.htm"/>
-    </context>
-    
-    <context id="generate_javadoc_action">
-        <description>This command generates Javadoc for a project.</description>
-        <topic label="Javadoc Location Properties" href="reference/ref-dialog-javadoc-location.htm"/>
-        <topic label="Specifying the location of the Javadoc command" href="tasks/tasks-197.htm"/>
-        <topic label="Using the Generate Javadoc wizard" href="tasks/tasks-198.htm"/>
-    </context>
-    
-</contexts>
diff --git a/bundles/org.eclipse.jdt.doc.user/contexts_JDT_Debugger.xml b/bundles/org.eclipse.jdt.doc.user/contexts_JDT_Debugger.xml
deleted file mode 100644
index 2d19aac..0000000
--- a/bundles/org.eclipse.jdt.doc.user/contexts_JDT_Debugger.xml
+++ /dev/null
@@ -1,321 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-<!-- Actions -->  
-	<context  id="shortcut_local_java_application" >
-		<description>This command launches the selected main type as a Java application.</description>
-	</context> 
-	  
-	<context  id="shortcut_java_applet" >
-		<description>This command launches the selected applet in an applet viewer.</description>
-	</context>   
-	
-	<context  id="manage_watchpoint_action_context" >
-		<description>This command adds or removes a watchpoint on the selected field.</description>
-	</context>  
-	
-	<context  id="manage_method_breakpoint_action_context" >
-		<description>This command adds or removes a method breakpoint on the selected method.</description>
-	</context>	
-	
-	<context  id="manage_breakpoint_action_context" >
-		<description>This command adds or removes a breakpoint on the current line.</description>
-	</context> 	 	
-	
-	<context  id="add_exception_action_context" >
-		<description>This command opens a dialog to create a Java exception breakpoint.</description>
-	</context> 	 		
-	
-	<context  id="step_into_selection_action_context" >
-		<description>This command steps into the selected method on the current line of execution. Method selection is determined by the selected text or cursor location in the Java editor.</description>
-	</context> 	
-	
-	<context  id="run_to_line_action_context" >
-		<description>This command resumes execution to the line on which the cursor is located in the Java editor.</description>
-	</context>
-	
-	<context  id="execute_action_context" >
-		<description>This command executes the selected code snippet.</description>
-	</context>	
-	
-	<context  id="display_action_context" >
-		<description>This command executes the selected code snippet and displays a textual result.</description>
-	</context>		
-	
-	<context  id="inspect_action_context" >
-		<description>This command executes the selected code snippet and shows the resulting object or primitive in the Expressions view.</description>
-	</context>	
-	
-	<context  id="watch_action_context" >
-		<description>This command creates a watch item for the selected text or variable, and places it in the Expressions view.</description>
-	</context>
-	
-	<context  id="breakpoint_suspend_policy_toggle_action_context" >
-		<description>This command toggles a breakpoint's suspend policy between suspending all threads in a VM or onlt the thread in which the breakpoint was encountered.</description>
-	</context>				
-	
-	<context  id="hit_count_action_context" >
-		<description>This command opens a dialog to configure a breakpoint's hit count.</description>
-	</context>	
-	
-	<context  id="breakpoint_properties_action_context" >
-		<description>This command opens a dialog to configure a breakpoint's properties.</description>
-	</context>
-	
-	<context  id="exception_caught_toggle_action_context" >
-		<description>When checked, this command configures an exception breakpoint to suspend execution in caught locations.</description>
-	</context>
-	
-	<context  id="exception_uncaught_toggle_action_context" >
-		<description>When checked, this command configures an exception breakpoint to suspend execution in uncaught locations.</description>
-	</context>	
-	
-	<context  id="access_toggle_action_context" >
-		<description>When checked, this command configures a watchpoint to suspend execution when a field is accessed (read).</description>
-	</context>				
-
-	<context  id="modification_toggle_action_context" >
-		<description>When checked, this command configures a watchpoint to suspend execution when a field is modified (written).</description>
-	</context>	
-	
-	<context  id="entry_toggle_action_context" >
-		<description>When checked, this command configures a method breakpoint to suspend execution when a method is entered.</description>
-	</context>				
-
-	<context  id="exit_toggle_action_context" >
-		<description>When checked, this command configures a method breakpoint to suspend execution when a method is exited.</description>
-	</context>				
-	
-   <context  id="show_qualified_action_context" >
-      <description>This option can be toggled to show or hide qualified names in the view.</description>
-      <topic label="Show Qualified Names in Breakpoints View" href="reference/ref-39.htm" /> 
-      <topic label="Breakpoints View" href="reference/ref-35.htm"/>
-      <topic label="Show Qualified Names in Expressions View" href="reference/ref-58.htm" />
-      <topic label="Expressions View" href="reference/ref-56.htm"/>
-      <topic label="Show Qualified Names in Variables View" href="reference/ref-76.htm" />
-      <topic label="Variables View" href="reference/ref-74.htm"/>
-   </context>	
-   
-   <context  id="show_constants_action_context" >
-      <description>This option can be toggled to show or hide constants (static final variables) in the view.</description>
-   </context>   
-   
-   <context  id="show_static_action_context" >
-      <description>This option can be toggled to show or hide static variables in the view.</description>
-   </context>      
-
-   <context  id="primitive_options_action_context" >
-      <description>This command opens a dialog to configure the display options for Java primitives.</description>
-   </context>
-   	
-	<context  id="clear_display_view_action_context" >
-		<description>This command clears the contents of the Display view.</description>
-	</context>
-	
-	<context  id="add_watch_expression_context" >
-		<description>This command opens a dialog to create a new Java watch expression.</description>
-	</context>
-	
-	<context  id="reevaluate_watch_expression_context" >
-		<description>This command re-evaluates the value of the selected watch expression.</description>
-	</context>
-	
-	<context  id="edit_watch_expression_context" >
-		<description>This command opens a dialog to edit the selected watch expression.</description>
-	</context>
-		
-	<context  id="convert_to_watch_expression_context" >
-		<description>This command replaces the selected object with an equivalent watch expression.</description>
-	</context>
-			
-	<context  id="variable_inspect_action_context" >
-		<description>This command adds the selected object or primitive value to the Expressions view.</description>
-	</context>
-	
-	<context  id="variable_watch_action_context" >
-		<description>This command creates a Java watch expression based on the name of the selected variable.</description>
-	</context>
-	
-	<context  id="new_detail_formatter_action_context" >
-		<description>This command opens a dialog to define a detail formatter for the class of the selected variable.</description>
-	</context>
-										
-	<context  id="edit_detail_formatter_action_context" >
-		<description>This command opens a dialog to edit an existing detail formatter for the class of the selected variable.</description>
-	</context>
-	
-	<context  id="remove_detail_formatter_action_context" >
-		<description>This command removes the existing detail formatter for the class of the selected variable.</description>
-	</context>
-
-	<context  id="open_variable_concrete_type_hierarchy_action_context" >
-		<description>This command opens a Type Hierarchy view on the type of the selected object.</description>
-	</context>	
-	
-	<context  id="open_variable_concrete_type_action_context" >
-		<description>This command opens a Java editor on the type of the selected object.</description>
-	</context>				
-	
-	<context  id="open_variable_declared_type_hierarchy_action_context" >
-		<description>This command opens a Type Hierarchy view on the declared type of the selected variable.</description>
-	</context>
-		
-	<context  id="open_on_variable_type_action_context" >
-		<description>This command opens a Java editor on the declared type of the selected variable.</description>
-	</context>
-	
-	<context  id="open_on_receiving_type_action_context" >
-		<description>This command opens a Java editor on the type of the receiver of the selected stack frame.</description>
-	</context>		
-	
-	<context  id="open_receiving_type_hierarchy_action_context" >
-		<description>This command opens a Type Hierarchy view on the type of the receiver of the selected stack frame.</description>
-	</context>	
-	
-	<context  id="open_on_declaring_type_action_context" >
-		<description>This command opens a Java editor on the type in which the method of the selected stack frame is defined.</description>
-	</context>		
-	
-	<context  id="open_declaring_type_hierarchy_action_context" >
-		<description>This command opens a Type Hierarchy view on the type in which the method of the selected stack frame is defined.</description>
-	</context>	
-	
-	<context  id="add_package_step_filter_action_context" >
-		<description>This command creates a step filter for the package associated with the receiver of the selected stack frame.</description>
-	</context>	
-	
-	<context  id="add_type_step_filter_action_context" >
-		<description>This command creates a step filter for the type associated with the receiver of the selected stack frame.</description>
-	</context>	
-	
-	<context  id="edit_step_filters_action_context" >
-		<description>This command opens the Java step filters preference page.</description>
-	</context>
-		
-	<context  id="drop_to_frame_action_context" >
-		<description>This command resets the instruction pointer to the first line of the method associated with the selected stack frame. All frames above the selected stack frame are removed from the stack.</description>
-	</context>	
-	
-	<context  id="monitor_trace_action_context" >
-		<description>This command suspends all non-system threads in the selected VM, to display monitor information.</description>
-	</context>			
-		
-	<context  id="monitor_quit_action_context" >
-		<description>This command resumes all non-system threads in the selected VM.</description>
-	</context>	
-	
-	<context  id="terminate_scrapbook_vm_action_context" >
-		<description>This command terminates the VM performing evaluations for this snippet editor.</description>
-	</context>	
-	
-	<context  id="scrapbook_imports_action_context" >
-		<description>This command opens a dialog to configure the imports associated with this snippet editor.</description>
-	</context>
-	
-	<context  id="show_system_threads_context" >
-		<description>This command toggles the display of non-suspended system threads.</description>
-	</context>
-			
-<!-- Views --> 
-    <context  id="display_view_context" >
-    <description>This view displays the result of expression evaluations. It allows you to select an expression and evaluate it. The result is shown as a string in the Display view.</description>
-   	<topic label="Display View" href="reference/ref-52.htm"/>
-   	<topic label="Evaluating Expressions" href="tasks/tasks-138.htm"/>
-   	<topic label="Inspect" href="reference/ref-55.htm"/>
-	<topic label="Display" href="reference/ref-54.htm"/>
-	<topic label="Clear" href="reference/ref-53.htm"/>		
-   </context>
-   
-	<context  id="monitors_view_context" >
-		<description>This view displays monitor information for a suspended Java VM. The Monitors view shows owning and waiting threads by monitor. The Thread view shows owned and contended monitors by thread. The Deadlock view shows any deadlocks.</description>
-	</context>   
-
-<!-- Preference pages -->
-
-   <context  id="jre_preference_page_context" >
-      <description>On this page, you can add, remove, and edit JRE configurations.</description>
-      <topic label="Working with JREs" href="tasks/tasks-JREs.htm"/>
-   </context>
-   
-    <context  id="java_breakpoint_preference_page_context" >
-      <description>On this page, you can modify the properties of a Java breakpoint.</description>
-   </context>
-   
-    <context  id="java_detail_formatter_preference_page_context" >
-      <description>On this page, you can define code snippets used to display the details for variables and expressions in the Variables and Expressions view details area.</description>
-   </context>   
- 
-    <context  id="java_debug_preference_page_context" >
-      <description>On this page, you can configure Java debugging preferences for suspending execution, hot code replace, and communication timeouts.</description>
-   </context> 
-   
-   <context  id="java_step_filter_preference_page_context" >
-      <description>On this page, you can configure the step filters for the Java debugger.</description>
-   </context>     
-   
-<!-- Dialogs -->     
-
-   <context  id="edit_jre_dialog_context" >
-      <description>This dialog allows you to configure the location, name, libraries and javadoc associated with a JRE.</description>
-   </context>
-   
-   <context  id="primitive_options_dialog_context" >
-      <description>This dialog allows you to configure the display of Java primitives in the variables view.</description>
-   </context>   
-   
-   <context  id="edit_detail_formatter_dialog_context" >
-      <description>This dialog allows you to configure the detail formatter code snippet associated with a Java class.</description>
-   </context>
-   
-  <context  id="instance_breakpoint_selection_dialog_context" >
-      <description>This dialog allows you to restrict breakpoints to a specific object.</description>
-   </context>    
-   
-  <context  id="add_watch_expression_dialog_context" >
-      <description>This dialog allows you to define a new watch expression.</description>
-   </context>      
-   
-  <context  id="edit_watch_expression_dialog_context" >
-      <description>This dialog allows you to edit an existing watch expression.</description>
-   </context> 
-   
-  <context  id="snippet_imports_dialog_context" >
-      <description>This dialog allows you to configure the imports associated with a snippet editor.</description>
-   </context>
-   
-   <!-- Launch configuration tabs -->
-  <context  id="launch_configuration_dialog_arguments_tab" >
-     <description>This tab allows you to specify the program and virtual machine arguments for the launch associated with this launch configuration as well as the working directory</description>
-     <topic label="Java application launch configuration" href=" tasks\tasks-java-local-configuration.htm"/>
-     <topic label="Setting execution arguments" href="tasks/tasks-executionArgs.htm"/>
-  </context>
-  
-  <context  id="launch_configuration_dialog_classpath_tab" >
-	 <description>This tab allows you to specify the classpath for the launch associated with this launch configuration</description>
-	 <topic label="Java application launch configuration" href=" tasks\tasks-java-local-configuration.htm"/>
-  </context>
-  
-  <context  id="launch_configuration_dialog_connect_tab" >
-     <description>This tab allows you to set specific information for remote debugging</description>
-     <topic label="Remote debugging" href="concepts/cremdbug.htm"/>
-  </context>
-  
-  <context  id="launch_configuration_dialog_jre_tab" >
-     <description>This tab allows you to define the JRE used to run or debug the application</description>
-     <topic label="Java application launch configuration" href=" tasks\tasks-java-local-configuration.htm"/>
-     <topic label="Working with JREs" href="tasks/tasks-JREs.htm"/>
-  </context>
-  
-  <context  id="launch_configuration_dialog_main_tab" >
-     <description>This tab allows you specify parameters associated with the main type for the launch.</description>
-     <topic label="Java application launch configuration" href=" tasks\tasks-java-local-configuration.htm"/>
-  </context>
-  
-  <context  id="launch_configuration_dialog_source_tab" >
-     <description>This tab allows you to define the location of source files used to display source when debugging a Java application.</description>
-     <topic label="Java application launch configuration" href=" tasks\tasks-java-local-configuration.htm"/>
-     <topic label="Source Attachments" href="reference/ref-124.htm"/>
-  </context>   
-</contexts>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/contexts_JDT_JUnit.xml b/bundles/org.eclipse.jdt.doc.user/contexts_JDT_JUnit.xml
deleted file mode 100644
index 0d33a3b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/contexts_JDT_JUnit.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-    <!-- Actions -->
-    <context id="goto_referenced_test_action_context">
-        <description>This command navigates to the tests that reference this Java element.</description>
-    </context>
-    <context id="enable_filter_action_context">
-        <description>Toggles the filtering of the stack trace entries as defined in the JUnit preference page.</description>
-        <topic label="JUnit Preferences" href="reference/ref-preferences-junit.htm"/>
-    </context>
-    <context id="junit_tab_group">
-        <description>This launch configuration runs JUnit tests.</description>
-        <topic label="Using JUnit" href="gettingStarted/qs-junit.htm"/>
-    </context>
-    <context id="launch_shortcut">
-        <description>This command launches JUnit tests. When a class is selected its tests are run. When a project, package or source folder is selected then all contained tests are run. When a single test method is selected then the selected test is run.
-		</description>
-         <topic label="Using JUnit" href="gettingStarted/qs-junit.htm"/>
-    </context>
-    <context id="copy_trace_action_context">
-        <description>This command copies the stack trace to the clipboard.</description>
-    </context>
-    <context id="open_test_action_context">
-        <description>This command opens the corresponding test case.</description>
-    </context>
-    <context id="open_editor_atline_action_context">
-        <description>This commands opens the corresponding test method.</description>
-    </context>
-    <context id="rerun_test_action_context">
-        <description>Reruns the selected test.</description>
-    </context>
-    <context id="scroll_lock">
-        <description>Locks the test result view so that the currently executed tests isn't automatically revealed.</description>
-    </context>
-    <!-- View parts -->
-    <context id="results_view_context">
-        <description>This view displays the test results.</description>
-        <topic label="Using JUnit" href="gettingStarted/qs-junit.htm"/>
-    </context>
-    <!-- Wizard pages -->
-    <context id="new_testcase_wizard_page_context">
-        <description>This wizard helps you to create a new test case and to generate test stubs for existing methods.</description>
-        <topic label="Using JUnit" href="gettingStarted/qs-junit.htm"/>
-    </context>
-    <context id="new_testcase_wizard_page2_context">
-        <description>This wizard helps you to create a new test case and to generate test stubs for existing methods.</description>
-        <topic label="Using JUnit" href="gettingStarted/qs-junit.htm"/>
-    </context>
-    <context id="new_testsuite_wizard_page2_context">
-        <description>This wizard helps you to create a new test suite.</description>
-        <topic label="Using JUnit" href="gettingStarted/qs-junit.htm"/>
-    </context>
-    <context id="test_selection_context">
-        <description>Dialog for selecting a test.</description>
-   </context>
-    <!-- Preference pages -->
-    <context id="junit_preference_page_context">
-        <description>This page is where you can set JUnit preferences.</description>
-        <topic label="Using JUnit" href="gettingStarted/qs-junit.htm"/>
-        <topic label="JUnit Preferences" href="reference/ref-preferences-junit.htm"/>
-    </context>
-</contexts>
diff --git a/bundles/org.eclipse.jdt.doc.user/eclipse32.gif b/bundles/org.eclipse.jdt.doc.user/eclipse32.gif
deleted file mode 100644
index fa12d1f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-10.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-10.htm
deleted file mode 100644
index fd9492c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-10.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="Author" content="MAe">
-<title> Moving and copying Java elements </title>
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-<body>
-<h1> Moving and copying Java elements </h1>
-<p> In this section, you will use refactoring to move a resource between Java packages.&nbsp;
-Refactoring actions change the structure of your code without changing its
-semantic behavior. </p>
-<ol>
-  <li> In the Package Explorer view, select the <em>MyTestCase.java</em> 
-    file from the <em>test</em> package and drag it into the <em>junit.samples</em> package. 
-    (Dragging and dropping the file is similar to selecting the file and
-    choosing <strong>Refactor &gt; Move </strong>from the context menu.
-  </li>
-  <li> You will be prompted select whether or not to update references to the
-    file you are moving. Typically, you will want to do this to avoid compile errors. You can
-    press the <strong>Preview </strong>button to see the list of changes that
-    will be made as a result of the move.
-  </li>
-  <li>
-<p>Press <strong>Finish</strong>. The file 
-    is moved, and its package declaration changes to reflect the new location.</p>
-    <p> <img src="../images/qs-44.gif" width=489 height=196 alt="File moved to junit.samples package"> 
-    </p>
-    </li>
-  <li> Select the <em>MyTestCase.java</em> file and drag it into the root 
-    directory of the JUnit project. Once again, a dialog pops up letting the user decide to preview the changes. After you have pressed <strong>OK </strong>(or
-    <strong>Finish </strong>from the preview window), a default package is created to contain the 
-    class, and the package declaration is removed to reflect the file's location
-    in the default package. 
-    If you move a file  to a default package the system additionally pops up a warning dialog, 
-    informing the user about reference updates when moving to the default package. If you 
-    don't want to see the dialog everytime you move a file to the default package, check the 
-    <strong>Don't show this message again</strong> checkbox.<p> <img src="../images/qs-45.gif" width=530 height=181 alt="File moved to default package"> 
-    </p>
-  </li>
-  </ol>
-  <p>The context menu is an alternative to using drag and drop.&nbsp; When
-  using the menu, you must specify a target package in the Move dialog, in
-  addition to selecting the update references options you've already seen.</p>
-  <ol>
-  <li> 
-    Select the <em>MyTestCase.java</em> file and from its context menu, select <strong>Refactor 
-    &gt; Move</strong>.</li>
-    <li> In the Move dialog, expand the hierarchy to browse the 
-    possible new locations for the resource. Select the <em>junit.samples</em> 
-    package, then click <strong>OK</strong>. The class is moved, and its 
-    package declaration is updated to the new location. 
-    <p> <img src="../images/qs-46.gif" width=404 height=491 alt="Move destination dialog"> 
-    </p>
- </li>
-</ol>
-<img src="../images/ngrelc.gif" width=159 height=27 alt="Related concepts" border="0"> 
-<p> <a href="../tasks/tasks-6.htm">Java views</a><br>
-  <a href="../concepts/concepts-9.htm">Refactoring support</a> </p>
-<p> <img src="../images/ngrelt.gif" width=159 height=27 alt="Related tasks" border="0"> 
-</p>
-<p> <a href="../tasks/tasks-80.htm">Refactoring</a><br>
-  <a href="../tasks/tasks-85.htm">Copying and moving Java elements</a><br>
-  <a href="../tasks/tasks-51.htm">Moving folders, packages and files</a> </p>
-<p> <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference" border="0"> 
-</p>
-<p> <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-  <a href="../reference/ref-117.htm">Refactoring wizard</a><br>
-  <a href="../reference/ref-23.htm">Refactoring preferences</a> </p>
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-11.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-11.htm
deleted file mode 100644
index cba9f6f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-11.htm
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<title> Searching the workbench </title>
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-<body>
-<h1> Searching the workbench </h1>
-<p> In this section, you will search the workbench for Java elements. </p>
-<p> In the Search dialog, you can perform file, text or Java searches. Java searches 
-  operate on the structure of the code. File searches operate on the files 
-  by name and/or text content. Java searches are faster, since there is an
-underlying indexing structure for the code structure.  Text searches allow
-you to find matches inside comments and strings. 
-</p>
-<h2> Performing a Java search from the workbench </h2>
-<ol>
-  <li> In the Java perspective, click the <strong>Search</strong> button 
-    in the workbench toolbar or use <strong>Search &gt; Java</strong> from 
-    the menu bar. </li>
-  <li> If it is not already selected, select the <strong>Java Search</strong> 
-    tab. </li>
-  <li> In the <strong>Search string</strong> field, type <em>runTest</em>. 
-    In the <em>Search For</em> area, select <strong>Method</strong>, and in the <em>Limit 
-    To</em> area, select <strong>References</strong>.<br>
-    Verify that the Scope is set to <strong>Workspace</strong>. 
-    <p> <img src="../images/qs-47.gif" width=488 height=394 alt="Java Search page"> 
-    </p>
-    Then click <strong>Search</strong>. While searching you may click <strong>Cancel</strong> 
-    at any time to stop the search. Partial results will be shown. </li>
-  <li> In the Java perspective, the Search view shows the search results. 
-    <p> <img src="../images/qs-48.gif" width=324 height=191 alt="Search results view"> 
-    </p>
-    Use the <strong>Show Next Match</strong> and <strong>Show Previous 
-    Match</strong> buttons to navigate to each match. If the file in which the 
-    match was found is not currently open, it is opened in an editor. </li>
-  <li> When you navigate to a search match using the Search view buttons, 
-    the file opens in the editor at the position of the match. Search matches 
-    are tagged with a search marker in the vertical ruler. 
-    <p> <img src="../images/qs-49.gif" width=531 height=281 alt="Editor with Search marker"> 
-    </p>
-  </li>
-</ol>
-<h2> Searching from a Java view </h2>
-<p> Java searches can also be performed from specific views, including the Outline, 
-  Hierarchy view and the Package Explorer view. </p>
-<ol>
-  <li> In the Package Explorer view, double-click <em>junit.framework.Assert.java</em> 
-    to open it in an editor. </li>
-  <li> In the Outline view, select the fail(String) method, and from its context 
-    menu, select&nbsp;<strong>References &gt; Workspace</strong>. 
-    <p> <img src="../images/qs-50.gif" width=539 height=434 alt="Search context menu in Outline view"> 
-    </p>
-  </li>
-</ol>
-<h2> Searching from an editor </h2>
-<p> From the Package Explorer view, open <em>junit.framework.TestCase.java</em>. 
-  In the editor, select the class name <em>TestCase</em> and from the context 
-  menu, select <strong>Search &gt; References &gt; Workspace</strong>. 
-  </p>
-    <img src="../images/qs-52.gif" width=459 height=478 alt="Search context menu in editor"> 
-  <p>
-<h2> Continuing a search from the search view </h2>
-<p> The Search Results view shows the results for the TestCase search. Select 
-  a search result and open the context menu. You can continue searching the selected 
-  element's references and declarations. </p>
-<img src="../images/qs-53.gif" width=427 height=480 alt="Search context menu in Search results view"> 
-<h2> Performing a file search </h2>
-<ol>
-  <li> In the Java perspective, click the&nbsp;<strong>Search</strong> button 
-    in the workbench toolbar or select <strong>Search &gt; File</strong> from the menu bar. </li>
-  <li> If it is not already selected, select the <strong>File Search</strong> 
-    tab.</li>
-  <li> In the <strong>Containing text</strong> field, type <em>TestCase</em>.
-    Make sure that the <strong>File name patterns</strong>  field is set 
-    to <em>*.java</em>. The Scope should be set to <em>Workspace</em>.
-    Then click <strong>Search</strong>.
-    <p> <img src="../images/qs-54.gif" width=488 height=394 alt="File search tab"> 
-    </p>
-  </li>
-  <li> To find all files of a given file name pattern, leave the Containing 
-    Text field empty. </li>
-</ol>
-<h2> Viewing previous search results </h2>
-<p> In the Search Results view, click the arrow next to the<strong> Previous 
-  Search Results</strong> toolbar button to see a menu containing the list of the most 
-  recent searches. You can choose items from this menu to view previous
-searches.&nbsp; The list can be cleared by choosing <strong>Clear History</strong>. 
-</p>
-<img src="../images/qs-55.gif" width=518 height=242 alt="Previous search results menu"> 
-<p> 
-The <strong>Previous Search Results</strong> button will display a dialog 
-  with the list of all previous searches from the current session. 
-  </p>
-<img src="../images/qs-56.gif" width=320 height=335 alt="Previous search results dialog"> 
-<p> 
-Selecting a previous search from this dialog will let you view that search. 
-</p>
-<img src="../images/ngrelc.gif" width=159 height=27 alt="Related concepts" border="0"> 
-<p> 
-
-<a href="../concepts/concepts-8.htm">Java search</a> </p>
-<p> <img src="../images/ngrelt.gif" width=159 height=27 alt="Related tasks" border="0"> 
-</p>
-<p> <a href="../tasks/tasks-103.htm">Conducting a Java search using the search 
-  dialog</a><br>
-  <a href="../tasks/tasks-104.htm">Conducting a Java search using pop-up menus</a> 
-</p>
-<p> <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference" border="0"> 
-</p>
-<p> <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-  <a href="../reference/ref-117.htm">Refactoring wizard</a><br>
-  <a href="../reference/ref-23.htm">Refactoring preferences</a> </p>
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-12.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-12.htm
deleted file mode 100644
index 88868d5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-12.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title> Running your programs </title>
-</head>
-<body>
-<h1> Running your programs </h1>
-<p> In this section, you will learn more about running Java programs in the workbench. 
-</p>
-<ol>
-  <li> In the Package Explorer view, find <em>junit.textui.TestRunner.java</em> 
-    and double-click it to open it in an editor. </li>
-  <li> In the Outline view, notice that the TestRunner class has an icon which 
-    indicates that the class defines a <code>main</code> method. 
-    <p> <img src="../images/qs-58.gif" width=214 height=91 alt="Outline view with selected TestRunner class"> 
-    </p>
-  </li>
-  <li> Using the drop-down <strong>Run</strong> button in the toolbar, select 
-    <strong>Java Application</strong> from the cascading <strong>Run As</strong> 
-    menu. This will launch the class in the active editor, or the selected class 
-    in the Navigator, as a local Java application. 
-    <p> <img src="../images/qs-59.gif" width=260 height=93 alt="Run drop down menu"> </p>
-  </li>
-  <li> Notice that the program has finished running and the following message appears in the 
-    Console view telling you that the program needs an execution argument.&nbsp;
-    Running a program as a Java Application uses the default settings for
-    launching the selected class and does not allow you to specify any
-    arguments. 
-    <p> <img src="../images/qs-60.gif" width=572 height=65 alt="Console with error message: Usage: TestRunner [-wait] testCaseName, where name is the name of the TestCase class"> 
-    </p>
-  </li>
-  <li> To specify arguments, use the drop-down <strong>Run</strong> menu in the
-    toolbar and select <strong>Run...</strong>. 
-    <p> <img src="../images/qs-61.gif" width=130 height=98 alt="Run menu of the toolbar"> </p>
-  </li>
-  <li> This time, the Launch Configurations dialog opens with the TestRunner launch configuration selected.
-    A launch configuration allows you to configure how a program is launched,
-    including its arguments, classpath, and other options.&nbsp; (A default
-    launch configuration was created for you when you chose <strong>Run as &gt;
-    Java Application</strong>). 
-    <p> <img src="../images/qs-62.gif" width=619 height=346 alt="Launch configuration dialog showing the Main tab"> 
-    </p>
-  </li>
-  <li> Select the Arguments tab and type <em>junit.samples.VectorTest</em> in 
-    the Program arguments area. 
-    <p> <img src="../images/qs-63.gif" width=441 height=180 alt="Arguments tab of the launch configuration dialog"> 
-    </p>
-  </li>
-  <li> Click <strong>Run</strong>. This time the program runs correctly, indicating 
-    the number of tests that were run. 
-    <p> <img src="../images/qs-64.gif" width=363 height=155 alt="Console showing program output"> </p>
-  </li>
-  <li> Switch to the Debug perspective. In the Debug view, notice that a process
-    for the program launch was registered each time the program was run. 
-    <p> <img src="../images/qs-65.gif" width=489 height=99 alt="Debug view showing two terminated run launches"> 
-    </p>
-    <em>Note: You can relaunch any of these processes by selecting <strong>Relaunch</strong> 
-    from its context menu.</em> </li>
-  <li> Select the drop-down menu from the <strong>Run</strong> button in the workbench 
-    toolbar. This list contains the previously launched programs. These programs
-    can be relaunched by selecting them in the history list. 
-    <p> <img src="../images/qs-66.gif" width=128 height=98 alt="Run drop down menu from the workbench toolbar"> 
-    </p>
-  </li>
-  <li> From the context menu in the Debug view (or the equivalent toolbar button), 
-    select <strong>Remove All Terminated</strong> to clear the view of terminated
-    launch processes. 
-    <p> <img src="../images/qs-67.gif" width=440 height=428 alt="Debug view showing context menu"> 
-    </p>
-  </li>
-</ol>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-9.htm">Changing debugger launch options</a><br>
-     <a href="../tasks/tasks-141.htm">Connecting to a remote VM with the Remote Java application launch configuration</a><br>
-     <a href="../tasks/tasks-142.htm">Disconnecting from a VM</a><br>
-     <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-     <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-    </p>
-
-    <p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-     <a href="../reference/ref-51.htm">Debug view</a><br>
-     <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-    </p>
-
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-13.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-13.htm
deleted file mode 100644
index 8312e6a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-13.htm
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title> Debugging your programs </title>
-</head>
-<body>
-<h1> Debugging your programs </h1>
-<p> In this section, you will debug a Java program. </p>
-<ol>
-  <li> In the Package Explorer view in the Java perspective, double-click <em>junit.samples.VectorTest.java</em> 
-    to open it in an editor. </li>
-  <li> Place your cursor on the vertical ruler along the left edge of the editor
-    area on the following line in the setUp() method: 
-    <p> <code>fFull.addElement (new Integer(1));</code> </p>
-    <p> and double-click on the ruler to set a breakpoint. </p>
-    <p> <img src="../images/qs-68.gif" width=452 height=198 alt="VectorTest.java editor showing added breakpoint"> 
-    </p>
-    The breakpoint icon indicates the status of the breakpoint.&nbsp; The plain
-    blue breakpoint icon indicates that the breakpoint has been set, but not yet
-    installed.&nbsp;&nbsp;
-    <p>
-    <em>Note: Once the class is loaded by the Java VM, the breakpoint will be
-    installed and a checkmark overlay will be displayed on the breakpoint icon.</em> </li>
-  <li> In the Package Explorer view, select the <em>junit.samples</em> package 
-    and select the Run menu. Within the Run menu, select Debug As, and then Java 
-    Application.&nbsp; When you run a program from a package, you will be
-    prompted to choose a type from all classes in the package that define a <code>main
-    </code>method.&nbsp; </li>
-  <li> Select the <em>VectorTest - junit.samples - /JUnit</em> item in the dialog, 
-    then click <strong>OK</strong>. 
-    <p> <img src="../images/qs-69.gif" width=297 height=451 alt="Type selection dialog"> </p>
-  </li>
-  <li> The program will run until the breakpoint is reached.&nbsp; When the breakpoint is hit, the Debug perspective opens, and execution 
-    is suspended. Notice that the process is still active (not terminated) in 
-    the Debug view. Other threads might still be running. 
-    <p> <img src="../images/qs-70.gif" alt="Debug perspective" width="685" height="563"> </p>
-    <em>Note: The breakpoint now has a checkmark overlay since the class
-    VectorTest was loaded in the Java VM.</em> </li>
-  <li> In the editor in the Debug perspective, select the entire line where the 
-    breakpoint is set, and from its context menu, select <strong>Inspect</strong>. 
-    <p> <img src="../images/qs-71.gif" alt="VectorTest.java editor with selected breakpoint line showing context menu" width="632" height="450"> 
-    </p>
-  </li>
-  <li> The expression is evaluated in the context of the current stack frame, 
-    and the results are displayed in the Expressions view. 
-  </li>
-  <li> Expressions that you evaluate while debugging a program will be listed in
-    this view. To delete an expression after working with it, select the
-    expression and choose <strong>Remove</strong> from its context menu. 
-  </li>
-  <li> The Variables view (available on a tab along with the Expressions view) displays the values of the variables in the selected 
-    stack frame. Expand the fFull tree in the Variables view until you can see 
-    elementCount. 
-    <p> <img src="../images/qs-72.gif" alt="Variables view" width="445" height="237"> </p>
-  </li>
-  <li> The variables (e.g., elementCount) in the Variables view will change when
-    you step 
-    through VectorTest in the Debug view.&nbsp; To step through the code, click the <strong>Step Over</strong> button.&nbsp;
-    Execution will continue at the next line in the same method 
-      (or, if you are at the end of a method, it will continue in the method from 
-      which the current method was called).
-  </li>
-  <li> Try some other step buttons (<strong>Step Into, Step Return) </strong>to
-    step through the code.&nbsp; Note the differences in stepping techniques.
-  </li>
-  <li> You can end a debugging session by allowing the program to run to
-    completion or by terminating it.
-    <ul>
-      <li>You can continue to step over the code with the <strong>Step </strong>buttons
-        until the program completes.</li>
-      <li>You can click the&nbsp; <strong>Resume </strong>button to allow the
-        program to run until the next breakpoint is encountered or until the
-        program is completed.</li>
-      <li>You can select 
-    <strong>Terminate</strong> from the context menu of the program's
-        process in the Debug view to terminate the program.</li>
-    </ul>
-  </li>
-</ol>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-     <a href="../concepts/cbrkpnts.htm">Breakpoints</a><br>
-     <a href="../concepts/cremdbug.htm">Remote debugging</a><br>
-     <a href="../concepts/clocdbug.htm">Local debugging</a></p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-     <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-     <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-     <a href="../tasks/tasks-134.htm">Suspending threads</a></p>
-
-    <p><img src="../images/ngrelr.gif" width=159 height=27 border="0" alt="Related reference"><br>
-     <a href="../reference/ref-11.htm">Debug preferences</a><br>
-     <a href="../reference/ref-51.htm">Debug view</a><br>
-     <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-     <a href="../reference/ref-35.htm">Breakpoints view</a><br>
-     <a href="../reference/ref-45.htm">Console view</a><br>
-     <a href="../reference/ref-52.htm">Display view</a><br>
-     <a href="../reference/ref-56.htm">Expressions view</a><br>
-     <a href="../reference/ref-74.htm">Variables view</a></p>
-
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-14.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-14.htm
deleted file mode 100644
index 94475f0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-14.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title> Evaluating expressions </title>
-</head>
-<body>
-<h1> Evaluating expressions </h1>
-<p> In this section, you will evaluate expressions in the context of your
-running Java program. </p>
-<ol>
-  <li> Debug <em>junit.samples.VectorTest.java</em> to the breakpoint in the
-    <code>setUp()</code> method.&nbsp; (See the <a href="qs-13.htm">Debugging your Programs</a> section for full
-    details.)<br>
-    In the Display view in the Debug perspective, type the following line:
-    <p> <code>fFull.size()</code></p>
-  </li>
-  <li> Select the text you just typed, and from its context menu, select <strong>Display</strong>.&nbsp;
-    (You can also choose <strong>Display Result of Evaluating Selected Text </strong>from
-    the Display view toolbar.) 
-    <p> <img src="../images/qs-74.gif" width=235 height=90 alt="Display view with fFull.size selected and showing context menu"> 
-    </p>
-  </li>
-  <li> The expression is evaluated and the result is displayed in the Display
-    view. 
-    <p> <img src="../images/qs-75.gif" width=270 height=93 alt="Display view showing evaluation result: (int) 0"> 
-    </p>
-  </li>
-  <li> On a new line in the Display view, type the following line: 
-    <p> <code>fFull.toArray()</code> </p>
-  </li>
-  <li> Select this line, and select <strong>Inspect</strong> from the context
-    menu.&nbsp; (You can also choose <strong>Inspect Result of Evaluating
-    Selected Text </strong>from the Display view toolbar.) </li>
-  <li> The Expressions view opens with the value of the evaluated expression. 
-    <p> <img src="../images/qs-76.gif" width=391 height=183 alt="Expressions view containing fFull.toArray() expression"> 
-    </p>
-  </li> 
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-10.htm">Debugger</a></p>
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-<a href="../tasks/tasks-151.htm">Displaying the result of evaluating an
-expression</a><br>
-<a href="../tasks/tasks-150.htm">Inspecting the result of evaluating an
-expression</a><br>
-<a href="../tasks/tasks-107.htm">Viewing compilation errors and warnings</a></p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-56.htm">Expressions view</a></p>
-
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-15.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-15.htm
deleted file mode 100644
index 53c211f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-15.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title> Evaluating snippets </title>
-</head>
-<body>
-<h1> Evaluating snippets </h1>
-<p> In this section, you will evaluate Java expressions using the Java scrapbook.
-Java scrapbook pages allow you to experiment with Java code fragments before
-putting them in your program. </p>
-<ol>
-  <li> In the Java perspective, click the <strong>Create a Scrapbook Page</strong> 
-    button in the workbench toolbar.&nbsp; You will be prompted for a folder
-    destination for the page. <p> <img src="../images/qs-77.gif" width=438 height=579 alt="Create Java Scrapbook Page wizard"> 
-    </p></li>
-  <li> In the <strong>Enter or select the folder</strong> field, type or browse below 
-    to select the <em>JUnit</em> project root directory. </li>
-  <li> In the <strong>File name</strong> field, type <em>MyScrap</em>.&nbsp; </li>
-  <li>  
-    
-    Click <strong>Finish</strong> when you are done.&nbsp; A scrapbook page
-    resource is created for you with the <em>jpage</em> file extension.&nbsp; (The <em>jpage
-    </em>file extension will be added automatically if you do not enter it yourself.)&nbsp;
-    The scrapbook page opens automatically in an editor. 
-    <p> <img src="../images/qs-78.gif" width=409 height=312 alt="Package Explorer and editor area of the active perspective"> 
-    </p>
- </li>
-  <li> In the editor, type <code>System.get</code> and then use content assist (Ctrl+Space) 
-    to complete the snippet as <code>System.getProperties()</code>. 
-    <p> <img src="../images/qs-79.gif" width=411 height=211 alt="Content proposals popup"> </p>
-  </li>
-  <li> Select the entire line you just typed and select <strong>Display</strong> 
-    from the context menu.&nbsp; You can also select <strong>Display Result of
-    Evaluating Selected Text</strong> from the toolbar. 
-    <p> <img src="../images/qs-80.gif" width=407 height=309 alt="Snippet editor with System.getProperties() selected showing context menu"> 
-    </p>
-  </li>
-  <li> When the evaluation completes, the result of the evaluation is displayed
-    and highlighted 
-    in the scrapbook page. </li>
-  <li> You can inspect the result of an evaluation by selecting text and
-    choosing <strong>Inspect</strong> from the context menu (or selecting <strong>Inspect
-    Result of Evaluating Selected Text</strong> from the toolbar.) </li>
-  <li> When you are finished evaluating code snippets in the scrapbook page, you
-    can close the editor.&nbsp; Save the changes in the page if you want to keep
-    the snippets for future use. </li>
-</ol>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-10.htm">Debugger</a></p>
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-149.htm">Creating a Java scrapbook page</a><br>
-<a href="../tasks/tasks-151.htm">Displaying the result of evaluating an
-expression</a><br>
-<a href="../tasks/tasks-150.htm">Inspecting the result of evaluating an
-expression</a><br>
-<a href="../tasks/tasks-107.htm">Viewing compilation errors and warnings</a></p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-129.htm">New Java Scrapbook Page wizard</a><br>
-<a href="../reference/ref-34.htm">Java scrapbook page</a><br>
-<a href="../reference/ref-56.htm">Expressions view</a></p>
-<p>&nbsp;</p>
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-2.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-2.htm
deleted file mode 100644
index dcff293..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-2.htm
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>
-      Preparing the workbench
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Preparing the workbench
-    </h1>
-    <p>
-      In this section, you will verify that the workbench is properly set up for Java development.
-    </p>
-    <p>
-      The following is assumed:
-    </p>
-    <ul>
-      <li>
-        You are starting with a new workbench installation with default settings.
-      </li>
-      <li>
-        You are familiar with the basic workbench mechanisms, such as views and perspectives.
-      </li>
-    </ul>
-    <p>
-      If you're not familiar with the basic workbench mechanisms, please see the Getting Started chapter of the Workbench User Guide.
-    </p>
-    <h2>
-      Verifying JRE installation and classpath variables
-    </h2>
-    <ol>
-      <li>
-        Select the menu item <b> Window &gt; Preferences</b> to open the workbench preferences.&nbsp;
-      </li>
-      <li>
-        Select <b>Java &gt; Installed JREs</b> in the tree pane on the left to
-        display the <strong>Installed Java Runtime Environments</strong> preference page. Confirm
-        that a JRE has been detected. By default, the JRE used to run the workbench will be used to build and run 
-        Java programs. It should appear with a check mark in the list of installed JREs. We recommend that you
-        use a Java SDK instead of a JRE. An SDK is designed for development and contains the source code for the
-        Java library hence easing debugging. Additional SDKs can be added by searching the harddrive for installed
-        SDKs. To do so simply click the <strong>Search</strong> button and specify a root folder for the search.
-		<p>
-		<img src="../images/qs-1.gif" width=411 height=144 alt="Installed JREs preference page">
-		</p>
-      </li>
-      <li>
-        Select <strong>Workbench</strong> in the tree pane to display the <strong>Workbench</strong> preference page. Confirm that the <strong>Perform build automatically on
-        resource modification</strong> option is checked.
-		<p>
-		<img src="../images/qs-2.gif" width=411 height=54 alt="Workbench preference page">
-		</p>
-      </li>
-      <li>
-        Select <b>Java &gt; New Project </b> in the tree pane to display the <strong>New Project</strong> preference page. Confirm that <strong>Source and output folder </strong> is set to <strong>Project</strong>.
-		<p>
-		<img src="../images/qs-3.gif" width=410 height=197 alt="New project preference page">
-		</p>
-      </li>
-      <li>
-        Select <strong>Java &gt; Editor</strong> in the tree pane to display the <strong>Java Editor</strong> preference page. On the preference page, 
-        press the <strong>Annotations</strong> tab. Confirm that all options are checked.
-		<p>
-		<img src="../images/qs-17a.gif" width=431 height=268 alt="Java Editor preference page">
-		</p>
-      </li>
-      <li>
-        Click on <strong>OK</strong> to save the preferences.
-      </li>
-    </ol>
-    <h2>
-      Installing the JDT example plug-ins
-    </h2>
-    <p>
-      The JDT example plug-ins contribute a New Wizard that automatically creates a sample project in your workbench. In this tutorial,
-      you will
-    manually create a new project in order to review the steps involved.&nbsp;
-      But first you need to download and install
-    the examples (if you have not done so already).
-    </p>
-    <ol>
-      <li>
-        Go to the <a href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>
-        page and locate the release that you are working with.
-      </li>
-      <li>
-        Scroll down to the <em>Example Plug-ins</em> section and follow the install instructions.
-      </li>
-      <li>
-        If the workbench is running, shut it down. Plug-ins should not be installed while the workbench is running.
-      </li>
-      <li>
-        Extract the contents of the Zip file to the root directory of your workbench installation (e.g. <em>c:\eclipse</em>).
-      </li>
-      <li>
-        Start the workbench.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-       <a href="../concepts/cclsspthv.htm">Classpath variables</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" width=159 height=27 alt="Related tasks">
-    </p>
-    <p>
-      <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-JREs.htm">Working with JREs</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-19.htm">JRE Installations Preferences</a><br>
-       <a href="../reference/ref-preferences-new-project.htm">New Project Preferences</a><br>
-       <a href="../reference/ref-21.htm">Java Editor Preferences</a><br>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-3.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-3.htm
deleted file mode 100644
index cd2beed..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-3.htm
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>
-      Creating your first Java project
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating your first Java project
-    </h1>
-    <p>
-      In this section, you will create a new Java project. You will be using
-      JUnit as your example project. JUnit is an open source unit testing framework for Java. Refer to <a href=
-      "http://www.junit.org">http://www.junit.org/</a> for more information on JUnit.
-    </p>
-    <ol>
-      <li>
-        Select the menu item <strong>File &gt; New &gt; Project...</strong>. to
-        open the <strong>New Project</strong> wizard.
-      </li>
-      <li>
-        On the left pane of the first wizard page, select <strong>Java</strong>, and on the right pane, select <strong>Java Project</strong>. Then click <strong>Next</strong>.
-        On the next page, type &quot;JUnit&quot; in the <strong>Project name</strong> 
-        field and click <strong>Finish</strong>. A Java perspective opens inside the workbench with the new Java
-        project in the Package Explorer. When the Java perspective is active, new menu options and Java specific buttons are loaded in the workbench toolbar. Depending on which
-        view or editor is active, other buttons and menu options will be available.
-		<p>
-		<img src="../images/qs-4.gif" width=480 height=248 alt="Java perspective">
-		</p>
-      </li>
-      <li>
-        In the Package Explorer, make sure that the JUnit project is selected. Select the menu item <strong>File &gt; Import...</strong>.
-      </li>
-      <li>
-        Select <strong>Zip file</strong>, then click <strong>Next</strong>.
-      </li>
-      <li>
-        Click the <strong>Browse</strong> button next to the <strong>Zip file</strong> field and browse to select
-        &lt;eclipseInstallPath&gt;/plugins/org.eclipse.jdt.ui.examples.projects/archive/junit/junit37src.jar.<br>
-         <strong>Note:</strong> This step assumes that the JDT example plug-ins have been downloaded and installed.<br>
-      </li>
-      <li>
-        In the Import wizard, below the hierarchy list click <strong>Select All</strong>. You can expand and select elements within the <em>junit</em> directory
-        on the left pane to view the individual resources that you are importing on the right pane. <em>Note: Do not deselect any of the resources in the</em> junit directory at
-        this time. You will need all of these resources in the tutorial.
-		<p>
-		<img src="../images/qs-5.gif" width=541 height=550 alt="Import hierarchy list">
-		</p>
-      </li>
-      <li>
-        Make sure that the JUnit project appears in the destination <strong>Folder</strong> field. Then click <strong>Finish</strong>. In the import progress indicator, notice
-        that the imported resources are compiled as they are imported into the workbench. This is because the <strong>Perform build automatically on resource modification</strong>
-        option is checked on the Workbench preferences page. You will be
-        prompted to overwrite the .classpath file in the JUnit project. 
-        This is because the .classpath resource was created for you when you
-        created the JUnit project. It is safe to overwrite this file.
-      </li>
-      <li>
-        In the Package Explorer view, expand the JUnit project to view the JUnit packages.
-		<p>
-		<img src="../images/qs-6.gif" width=211 height=302 alt="Package explorer">
-		</p>
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-4.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-4.htm
deleted file mode 100644
index 6cfa60c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-4.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>
-      Browsing Java Elements using the Package Explorer
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Browsing Java elements using the package explorer
-    </h1>
-    <p>
-      In this section, you will browse Java elements within the JUnit project.
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer view, expand the JUnit project to see its packages.
-      </li>
-      <li>
-        Expand the package <code>junit.framework</code> to see the Java files contained in the package.
-      </li>
-      <li>
-        Expand the Java file <code>TestCase.java. </code>Note that the Package
-        Explorer shows Java-specific sub-elements of the source code file.&nbsp;
-        The import declaration, the public type, and its members (fields and
-        methods) appear in the tree.
-        <p>
-            <img src="../images/qs-7.gif" width=246 height=586 alt="Package explorer"> 
-        </p>
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-45.htm">Using the Package Explorer</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-6.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-6.htm
deleted file mode 100644
index 1a3fe89..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-6.htm
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<title> Viewing the Type Hierarchy </title>
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-<body>
-<h1> Viewing the type hierarchy </h1>
-<p> In this section, you will learn about using the Hierarchy view by viewing
-classes and members in a variety of different ways. </p>
-<ol>
-  <li> In the Package Explorer view, find <em>junit.framework.TestCase.java</em>. 
-    From its context menu, select <strong>Open Type Hierarchy</strong>. You 
-    can also open type hierarchy view: 
-    <ul>
-      <li> from the menu bar by selecting <strong>Navigate &gt; Open Type 
-        Hierarchy</strong>.</li>
-      <li> from the keyboard by pressing F4 after selecting <em>TestCase.java</em>. 
-      </li>
-      <li> by using drag and drop to drop TestCase.java in an open hierarchy 
-        view.
-	  </li>
-    </ul>
-	<p>
-    <img src="../images/qs-28.gif" width=390 height=275 alt="Context menu">
-	</p>
-  </li>
-  <li> The buttons in the view tool bar control which part of the hierarchy is
-    shown.&nbsp; Click the&nbsp;<strong>Show the Type Hierarchy&nbsp;</strong>button 
-    to see the class hierarchy, including the base classes and subclasses. The 
-    small arrow on the left side of the type icon of TestCase indicates that the 
-    hierarchy was opened on this type.
-	<p>
-    <img src="../images/qs-29.gif" width=244 height=225 alt="Type hierarchy"> 
-	</p>
-  </li>
-  <li> Click the <strong>Show the Supertype Hierarchy</strong> button to 
-    see a hierarchy showing the type's parent elements including implemented
-    interfaces. This view shows the results of going up the type hierarchy.
-	<p>
-    <img src="../images/qs-30.gif" width=244 height=165 alt="Supertype hierarchy"> 
-	</p>
-    In this &quot;reversed hierarchy&quot; view, you can see that TestCase implements 
-    the Test interface. </li>
-  <li> Click the&nbsp;<strong>Show the Subtype Hierarchy</strong> button in the 
-    view toolbar.
-	<p>
-    <img src="../images/qs-31.gif" width=244 height=300 alt="Subtype hierarchy"> 
-	</p>
-  </li>
-  <li> Click the <strong>Lock View and Show Members in Hierarchy</strong> 
-    button in the toolbar of the member pane, then select the runTest() method 
-    in the member pane. The view will now show all the types implementing runTest(). 
-	<p>
-    <img src="../images/qs-32.gif" width=244 height=500 alt="Subtype hierarchy showing method implementors"> 
-	</p>
-  </li>
-  <li> In the Hierarchy view, click the <strong>Show the Supertype Hierarchy</strong> 
-    button. Then on the member pane, select <code>countTestCases()</code> to display 
-    the places where this method is overridden.
-	<p>
-    <img src="../images/qs-33.gif" width=244 height=447 alt="Supertype hierarchy showing method implementors"> 
-	</p>
-  </li>
-  <li> In the Hierarchy view select the <em>Test</em> element and select <strong>Focus 
-    On 'Test'</strong> from its context menu. <em>Test</em> is presented in the Hierarchy view. </li>
-  <li> Activate the Package Explorer view and select the package junit.framework. 
-    Use <strong>Open Type Hierarchy</strong> from its context menu. A hierarchy 
-    is opened containing all classes of the package. For completion of the tree, 
-    the hierarchy also shows some classes from other packages. These types are 
-    shown by a type icon with a white fill.
-	<p>
-    <img src="../images/qs-33a.gif" width=243 height=209 alt="Hierarchy on a package"> 
-	</p>
-  </li>
-  <li> Use <strong>Previous Type Hierarchies</strong> to go back to a previously 
-    opened element. Click on the arrow next to the button to see a list of elements or click 
-    on the button to edit the history list.
-	<p>
-    <img src="../images/qs-33b.gif" width=244 height=208 alt="History menu"> 
-	</p>
-  </li>
-  <li> From the menu bar, select&nbsp;<strong>Window &gt; Preferences</strong>. 
-    Go to&nbsp;<strong>Java</strong> and select&nbsp;<strong>Open a new Type Hierarchy 
-    Perspective</strong>. Then click&nbsp;<strong>OK</strong>. </li>
-  <li> In the Hierarchy view, select the Test element again, and activate&nbsp;<strong>Open 
-    Type Hierarchy</strong> from the Navigate menu bar. The resource containing 
-    the selected type is shown in a new perspective (the Hierarchy perspective), 
-    and its source is shown in the Java editor.&nbsp; By setting the preference 
-    option for viewing type hierarchy perspectives, you can have more than one 
-    type hierarchy in your workbench and switch between them as needed.</li>
-</ol>
-<img src="../images/ngrelc.gif" width=159 height=27 alt="Related concepts" border="0"> 
-<p> <a href="../concepts/concepts-7.htm">Java views</a> </p>
-<p> <img src="../images/ngrelt.gif" width=159 height=27 alt="Related tasks" border="0"> 
-</p>
-<p> <a href="../tasks/tasks-37.htm">Using the Hierarchy view</a> </p>
-<p> <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference" border="0"> 
-</p>
-<p> <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a><br>
-  <a href="../reference/ref-13.htm">Java Base preference page</a> </p>
-<p>
-  <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-7.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-7.htm
deleted file mode 100644
index fa22df3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-7.htm
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="Author" content="MAe">
-<title> Identifying problems in your code </title>
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-<body>
-<h1> Identifying problems in your code </h1>
-<p> In this section, you will review the different indicators for identifying 
-  problems in your code. </p>
-<p>Build problems are displayed in the Tasks view and annotated in the vertical
-ruler of your source code. </p>
-<ol>
-  <li> Open <em>junit.framework.TestCase.java</em> in the editor from the 
-    Package Explorer view. </li>
-  <li> Add a syntax error by deleting the semicolon at the end of the package
-    declaration in the source code. 
-    <p> <img src="../images/qs-34.gif" width=250 height=88 alt="Editor with missing semicolon"> 
-    </p>
-  </li>
-  <li> Click the <strong>Save</strong> button. The project is rebuilt
-    and the problem is indicated in several ways: 
-    <ul>
-      <li> In the Tasks view, the problems are listed, </li>
-      <li> In the Package Explorer view, the Type Hierarchy or the Outline view, 
-        problem ticks appear on the affected Java elements and their parent elements, 
-      </li>
-      <li> In the editor's vertical ruler, a problem marker is displayed near the affected line, 
-      </li>
-      <li> Squiggly lines appear under the word which might cause the error, and</li>
-      <li> The editor tabs are annotated with a problem marker. </li>
-    </ul>
-    <p><img src="../images/qs-35.gif" width=517 height=211 alt="Problem marker in Package Explorer, editor and Tasks view"> 
-    </p>
-  </li>
-  <li> You can hover over the problem marker in the vertical ruler to view a description 
-    of the problem. 
-    <p> <img src="../images/qs-36.gif" width=275 height=88 alt="Problem marker hover"> 
-    </p>
-  </li>
-  <li> Click the <strong>Close</strong> button on the editor's tab to 
-    close the editor. </li>
-  <li> In the Tasks view, select a problem in the list. Open its context menu 
-    and select Go To. The file is opened in the editor at the location of the 
-    problem. 
-    <p> <img src="../images/qs-37.gif" width=453 height=281 alt="Tasks view"> 
-    </p>
-  </li>
-  <li> Correct the problem in the editor by adding the semicolon. Click 
-    the <strong>Save</strong> button. The project is rebuilt and the problem indicators disappear. </li>
-  <li> In the Outline view, select the method <em>getName()</em>. The editor will 
-    scroll to this method. </li>
-  <li> On the first line of the method change the returned variable <code>fName</code> 
-    to <code>fTestName</code>. While you type, a problem highlight underline appears 
-    on fTestName, to indicate a problem. Hovering over the highlighted problem 
-    will display a description of the problem.</li>
-  <li> On the marker bar a light bulb marker appears. The light bulb signals that 
-    correction proposals are available for this problem. 
-    <p> <img src="../images/qs-37a.gif" width=330 height=132 alt="Light bulb and problem highlight line"> 
-    </p>
-  </li>
-  <li> Set the cursor inside the marked range and choose <strong>Quick Fix</strong> 
-    from the Edit menu bar. You can also press Ctrl+1 or left click the light 
-    bulb. A selection dialog appears with possible corrections. 
-    <p> <img src="../images/qs-37b.gif" width=461 height=199 alt="Correction proposals"> 
-    </p>
-  </li>
-  <li> Select 'Change to fName' to fix the problem. The problem highlight 
-    line will disappear as the correction is applied. </li>
-  <li> Close the file without saving. </li>
-  <li> You can configure how problems are indicated on the <strong>Window 
-    &gt; Preferences &gt; Java &gt; Editor </strong>page on the <strong>Annotations
-    </strong>tab. </li>
-</ol>
-<img src="../images/ngrelc.gif" width=159 height=27 alt="Related concepts" border="0"> 
-<p> <a href="../concepts/concepts-7.htm">Java editor</a><br>
-  <a href="../tasks/tasks-6.htm">Java views</a><br>
-  <a href="../concepts/concepts-4.htm">Java builder</a> </p>
-<p> <img src="../images/ngrelt.gif" width=159 height=27 alt="Related tasks" border="0"> 
-</p>
-<p> <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-  <a href="../tasks/tasks-69.htm">Viewing documentation and information</a><br>
-  <a href="../tasks/tasks-175.htm">Using quick fix</a><a href="../tasks/tasks-106.htm"></a> 
-</p>
-<p> <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference" border="0"> 
-</p>
-<p> <a href="../reference/ref-21.htm">Editor preference page</a><br>
-  <a href="../reference/ref-java-editor-quickfix.htm">Quick Fix</a> </p>
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-8.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-8.htm
deleted file mode 100644
index 29b8658..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-8.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<title> Renaming Java elements </title>
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-<body>
-<h1> Renaming Java elements </h1>
-<p> In this section, you will rename a Java element using refactoring.&nbsp;
-Refactoring actions change the structure of your code without changing its
-semantic behavior. </p>
-<ol>
-  <li> In the Package Explorer view, select&nbsp;<em>junit.framework.TestCase.java</em>. 
-  </li>
-  <li> From its context menu, select&nbsp;<strong>Refactor &gt; Rename</strong>. </li>
-  <li> In the&nbsp;<strong>Enter New Name</strong> field on the Rename Compilation 
-    Unit page, type &quot;<em>TestCase2</em>&quot;. 
-    <p> <img src="../images/qs-38.gif" width=412 height=341 alt="Rename refactoring wizard"> 
-    </p>
-  </li>
-  <li> To preview the changes that will be made as a result of renaming the
-    class, press <strong>Preview &gt;</strong>.
-  </li>
-  <li> The workbench analyzes the proposed change and presents you with a preview 
-    of the changes that would take place if you rename this 
-    resource.&nbsp;<p>Since renaming a compilation unit will affect the import
-    statements in other compilation units, there are other compilation units
-    affected by the change.&nbsp; These are shown in a list of changes in the
-    preview pane. </p>
-    <p> <img src="../images/qs-39.gif" width=494 height=454 alt="Refactoring wizard preview page"> 
-    </p>
-  </li>
-  <li> On the Refactoring preview page, you can scroll through the proposed 
-    changes and select or deselect changes, if necessary.&nbsp; You will
-    typically accept all of the proposed changes. </li>
-  <li> Click&nbsp;<strong>OK</strong>  to accept all proposed changes. </li>
-</ol>
-<p>You have seen that a refactoring action can cause many changes in different
-compilation units.&nbsp; These changes can be undone as a group.</p>
-<ol>
-  <li> In the menu bar, select&nbsp;<strong>Refactor &gt; Undo Rename TestCase.java 
-    to TestCase2.java</strong>. 
-    <p> <img src="../images/qs-40.gif" width=370 height=353 alt="Refactor menu"> 
-    </p>
-  </li>
-  <li> The refactoring changes are undone, and the workbench returns to its previous 
-    state. You can undo refactoring actions right up until you change and save 
-    a compilation unit, at which time the refactoring undo buffer is cleared. 
-  </li>
-</ol>
-<img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-<p> <a href="../concepts/concepts-9.htm">Refactoring support</a> </p>
-<p> <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"> 
-</p>
-<p> <a href="../tasks/tasks-80.htm">Refactoring</a><br>
-  <a href="../tasks/tasks-92.htm">Renaming a compilation unit</a><br>
-  <a href="../tasks/tasks-82.htm">Refactoring without preview</a><br>
-  <a href="../tasks/tasks-83.htm">Refactoring with preview</a><br>
-  <a href="../tasks/tasks-84.htm">Previewing refactoring changes</a><br>
-  <a href="../tasks/tasks-100.htm">Undoing a refactoring operation</a><a href="../tasks/tasks-100.htm"></a> 
-</p>
-<p> <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> 
-</p>
-<p> <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-  <a href="../reference/ref-117.htm">Refactoring wizard</a><br>
-  <a href="../reference/ref-23.htm">Refactoring preferences</a> </p>
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-9.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-9.htm
deleted file mode 100644
index 8ba2355..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-9.htm
+++ /dev/null
@@ -1,114 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<title> Creating a Java class </title>
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-</head>
-
-<body>
-<h1> Creating a Java class </h1>
-<p> In this section, you will create a new Java class and add methods using 
-  code generation actions. </p>
-<ol>
-  <li> In the Package Explorer view, select the JUnit project. From the project's 
-    context menu, select&nbsp;<strong>New &gt; Package</strong> or click the&nbsp;<strong>Create 
-    a Java Package</strong> button in the toolbar. </li>
-  <li> In the&nbsp;<strong>Name</strong> field, type&nbsp;<em>test</em> as the 
-    name for the new package. Then click&nbsp;<strong>Finish</strong>. </li>
-  <li> In the Package Explorer view, select the new&nbsp;<em>test</em> package 
-    and click the&nbsp;<strong>Create a Java Class</strong> button in the toolbar. 
-  </li>
-  <li> Make sure that&nbsp;<em>JUnit</em> appears in the&nbsp;<strong>Source Folder</strong> 
-    field and that&nbsp;<em>test</em> appears in the&nbsp;<strong>Package</strong> 
-    field. In the&nbsp;<strong>Name</strong> field, type&nbsp;<em>MyTestCase</em>. 
-    <p> <img src="../images/qs-41.gif" width=493 height=554 alt="Java Class wizard"> 
-    </p>
-  </li>
-  <li> Click the&nbsp;<strong>Browse</strong> button next to the&nbsp;<strong>Superclass</strong> 
-    field. </li>
-  <li> In the&nbsp;<strong>Choose a type</strong> field in the Superclass Selection 
-    dialog, type&nbsp;<em>Test</em> to narrow the list of available superclasses. 
-    <p> <img src="../images/qs-42.gif" width=297 height=476 alt="Superclass Selection dialog"> 
-    </p>
-  </li>
-  <li> Select the&nbsp;<em>TestCase</em> class and click&nbsp;<strong>OK</strong>. 
-  </li>
-  <li> Select the checkbox for&nbsp;<strong>Constructors from superclass</strong>. 
-  </li>
-  <li> Click&nbsp;<strong>Finish</strong> to create the new class. 
-    <p> <img src="../images/qs-43.gif" width=493 height=554 alt="Java Class wizard"> 
-    </p>
-  </li>
-  <li> The new file is opened in the editor. It contains the new class,
-    the constructor and comments.&nbsp; You can select options for the creation and
-    configuration of generated comments in the Java preferences (<strong>Window &gt; Preferences &gt; Java &gt; Code Generation &gt; Code
-    and Comments</strong>).</li>
-  <li> In the Outline view select the new class&nbsp;<em>MyTestCase</em>. Open 
-    the context menu and select&nbsp;<strong>Source &gt; Override/Implement Methods...</strong>. 
-    <p> <img src="../images/qs-43a.gif" width=433 height=554 alt="Context menu of a type"> 
-    </p>
-  </li>
-  <li> In the Override Methods dialog, check <em>setUp()</em> and <em>tearDown()</em>
-    and click&nbsp;<strong>OK</strong>. Two methods are added to the class. 
-    <p> <img src="../images/qs-43b.gif" width=347 height=461 alt="Override Methods dialog"> 
-    </p>
-  </li>
-  <li> Change the body of <em>setUp()</em> to <code>container= new Vector();</code> </li>
-  <li> <em>container</em> and <em>Vector</em> are underlined with a problem 
-    highlight line as they cannot be resolved. A light bulb appears on the marker 
-    bar. Set the cursor inside <em>Vector</em> and press <kbd>Ctrl+1</kbd> (or use 
-    <strong>Edit &gt; Quick Fix</strong> from the menu bar). Choose <em>Import 'java.util.Vector'</em>. 
-    This adds the missing import declaration. 
-    <p> <img src="../images/qs-43c.gif" width=534 height=200 alt="Correction proposals for Vector"><br>
-    </p>
-    Set the cursor inside <em>container</em> and press <kbd>Ctrl+1</kbd>. Choose <em>Create 
-    field 'container'</em> to add the new field. 
-    <p> <img src="../images/qs-43d.gif" width=430 height=199 alt="Correction proposals for container"> 
-    </p>
-  </li>
-  <li> In the Outline view, select the class <em>MyTestCase</em>. Open the 
-    context menu and select <strong>Source &gt; Generate Getter and Setter...</strong>. 
-    <p> <img src="../images/qs-43e.gif" width=433 height=401 alt="Generate Getter and Setter in context menu"> 
-    </p>
-  </li>
-  <li> The Generate Getter and Setter dialog suggests that you create the methods getContainer 
-    and setContainer. Select both and click <strong>OK</strong>. A getter 
-    and setter method for the field container are added. 
-    <p> <img src="../images/qs-43f.gif" width=347 height=440 alt="Generate Getter and Setter dialog"> 
-    </p>
-  </li>
-  <li> Save the file. </li>
-  <li> The formatting of generated code can be configured in&nbsp;<strong>Window 
-    &gt; Preferences &gt; Java &gt; Code Formatter</strong>. If you use a prefix 
-    or suffix for field names (e.g. fContainer), you can specify this in&nbsp;<strong>Window 
-    &gt; Preferences &gt; Java &gt; Code Generation &gt; Names</strong> so that generated
-    getters and setters will suggest method names without the prefix or suffix. 
-  </li>
-</ol>
-<img src="../images/ngrelc.gif" width=159 height=27 alt="Related concepts" border="0"> 
-<p> <a href="../tasks/tasks-6.htm">Java views</a><br>
-  <a href="../concepts/concepts-7.htm">Java editor</a> </p>
-<p> <img src="../images/ngrelt.gif" width=159 height=27 alt="Related tasks" border="0"> 
-</p>
-<p> <a href="../tasks/tasks-175.htm">Using quick fix</a><br>
-  <a href="../tasks/tasks-11.htm">Creating Java elements</a><br>
-  <a href="../tasks/tasks-43.htm">Overriding a method using the Hierarchy view</a><br>
-  <a href="../tasks/tasks-57.htm">Generating getters and setters</a> </p>
-<p> <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference" border="0"> 
-</p>
-<p> <a href="../reference/ref-126.htm">New Java Class wizard</a><br>
-  <a href="../reference/ref-menu-source.htm">Source actions</a><br>
-  <a href="../reference/ref-java-editor-quickfix.htm">Quick Fix</a><br>
-  <a href="../reference/ref-dialog-override-method.htm">Override Methods dialog</a><br>
-  <a href="../reference/ref-dialog-gettersetter.htm">Generate Getter and Setter dialog</a><br>
-  <a href="../reference/ref-17.htm">Code formatter preference page</a><br>
-  <a href="../reference/ref-preferences-code-generation.htm">Code generation preference page</a><br>
-</p>
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-AddMethod.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-AddMethod.htm
deleted file mode 100644
index 7f31040..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-AddMethod.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Adding new methods
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding new methods
-    </h1>
-    <ol>
-      <li>
-        Start adding a method by typing the following at the end of the <em>VectorTest.java</em> file (but before the closing 
-        brackets of the type) in the Java editor:<br>
-        <code>public void testSizeIsThree()</code><br>
-		As soon as you type the method name in the editor area, the new method appears at the bottom of the Outline view. 
-		<p>
-		<img src="../images/qs-13.gif" width=506 height=291 alt="New method in outline view">
-		</p>
-		In addition, an error annotation (red square) appears in the overview ruler positioned on the right hand side 
-		of the editor. This error annotation indicates that the compilation unit is currently not correct. If you hover
-		over the red square a tool tip appears, <em>Unmatched bracket</em>; <em>Syntax error on token &quot;}&quot;, 
-		&quot;{&quot; expected</em>, which is correct since the method doesn't have a body yet. Note that error 
-		annotations in the editor's rulers are updated as you type. This behavior can be controlled via the preference page <strong>Java &gt; 
-		Editor &gt; Annotations</strong>.
-		<p>
-		<img src="../images/qs-13a.gif" width=428 height=222 alt="Error annotations in overview ruler">
-		</p>
-		
-      </li>
-      <li>
-        Click the <strong>Save</strong> button. The compilation unit is compiled automatically and errors appear in the 
-        Package Explorer view, in the Tasks view and on the vertical ruler (left hand side of the editor). In the Package 
-        Explorer view, the errors are propagated up to the project of the compilation unit containing the error.
-		<p>
-		<img src="../images/qs-14.gif" width=247 height=337 alt="Error propagation in package explorer">
-		</p>
-      </li>
-      <li>
-        Complete the new method by typing the following:<br>
-        <p><code>
-          {<br>
-          &nbsp; assertTrue(fFull.size() == 3);<br>
-        </code></p>
-        Note, that the closing curly bracket has been auto inserted.
-      </li>
-      <li>
-        Save the file. Notice that the error indicators disappear since the
-        missing bracket has been added.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-       <a href="../reference/ref-21.htm">Java Editor Preferences</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-BasicTutorial.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-BasicTutorial.htm
deleted file mode 100644
index e7f9abb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-BasicTutorial.htm
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>
-      Basic tutorial
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Basic tutorial
-    </h1>
-    <p>
-      This tutorial provides a step by step walk-through of the Java development tooling.
-    </p>
-    <p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-Browsing.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-Browsing.htm
deleted file mode 100644
index d66d0f4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-Browsing.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>
-      Preparing the workbench
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Using the Java browsing perspective
-    </h1>
-    <p>
-      In this section you will use the Java browsing perspective to browse and
-      manipulate your code. <a href="qs-4.htm">Browsing Java elements with the 
-      Package Explorer</a> gives an overview of using the Package Explorer to browse
-      elements. In contrast to the Package Explorer, which organizes all Java elements
-      in a tree, consisting of projects, packages, compilation units, types, etc., the
-      browsing perspective uses distinct views to present the same information. Selecting 
-      an element in one view, will show its content in another view.
-    </p> 
-    <p>To open a browsing
-      perspective activate <strong>Window &gt; Open Perspective &gt; Java Browsing</strong> from 
-      within the Java perspective or use the context menu of the <strong>Open a Perspective
-      </strong> toolbar button.
-    </p>
-    <p>
-	  <img src="../images/qs-browsing1.gif" width=626 height=467 alt="Java browsing perspective">
-    </p>
-    <p>
-      The views of the perspective are connected to each other in the following ways:
-      <ul>
-        <li>
-          Selecting an element in the <strong>Projects</strong> views shows its packages
-          in the <strong>Packages</strong> view.
-        </li>
-        <li>
-          The <strong>Types</strong> view shows the types contained in the package selected
-          in the <strong>Packages</strong> view.
-        </li>
-        <li>
-          The <strong>Members</strong> view shows the members of a selected type. Functionally,
-          the <strong>Members</strong> view is comparable to the <strong>Outline</strong> view used in the normal Java
-          perspective.
-        </li>
-        <li>
-          Selecting an element in the <strong>Members</strong> view reveals the element in the editor. If there
-          isn't an editor open for the element, double-clicking on the element will open a corresponding editor.
-        </li>
-      </ul>
-    </p>
-    <p>
-      All four views are by default linked to the active editor. This means that the views will adjust 
-      their content and their selection according to the file presented in the active editor. The 
-      following steps illustrate this behavior:
-      <ol>
-        <li>
-          Select <em>junit.extensions</em> in the <strong>Packages</strong> view.
-        </li>
-        <li>
-          Open type <em>TestSetup</em> in the editor by double-clicking it in the <strong>Types view</strong>.
-        </li>
-        <li>
-          Now give back focus to the editor opened on file <em>TestCase.java</em> by clicking on the
-          editor tab. The <strong>Packages</strong>, <strong>Types</strong> and <strong>
-          Members</strong> view adjust their content and selections to reflect the active editor. The
-          <strong>Packages</strong> view's selection is set to <em>junit.framework</em> and the <strong>
-          Types</strong> view shows the content of the <em>junit.framework</em> packages. In addition,
-          the type <em>TestCase</em> is selected.
-        </li>
-      </ol> 
-    </p>
-    <p>
-      Functionally, the Java browsing perspective is fully comparable to the Java perspective.
-      The context menus for projects, packages, types, etc. and the global menu and tool bar are the same.
-      Therefore activating these functions is analogous to activating them in the Java perspective.
-    </p>
-  </body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ContentAssist.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ContentAssist.htm
deleted file mode 100644
index 605b950..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ContentAssist.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Using content assist
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Using content assist
-    </h1>
-    <p>
-      In this section you will use <em>content assist</em> to finish writing a new
-      method. Open <em>junit.samples.VectorTest.java</em> file in the Java
-      editor if you do not already have it open and select the <code>testSizeIsThree()</code> method
-      in the Outline view. If the file doesn't contain such a method see <a href="qs-AddMethod.htm">Adding new methods</a>
-      for instructions on how to add this method.
-    </p>
-    <ol>
-      <li>
-        Add the following lines to the end of the method:
-        <p>
-          <code>
-            Vector v = new Vector();<br>
-            for (int i=0; i&lt;3; i++)<br>
-            &nbsp;&nbsp;v.addElement(new Object());<br>
-            assert<br>
-          </code>
-        </p>  
-      </li>
-      <li>
-        With your cursor at the end of the word <code>assert</code>, press <kbd>Ctrl</kbd>+<kbd>Space</kbd> to activate content assist. The content assist window with a list of
-        proposals will appear. Scroll the list to see the available choices.
-		<p>
-		<img src="../images/qs-16.gif" width=453 height=253 alt="Content assist">
-		</p>
-      </li>
-      <li>
-        With the content assist window still active, type the letter 't'
-        in the source code after <code>assert</code> (with no space in between). The list is narrowed and only shows entries
-        starting with 'assertt'. Select and then hover over various items in the list to view any available Javadoc help for each item.
-		<p>
-		<img src="../images/qs-17.gif" width=453 height=186 alt="Content assist filtered">
-		</p>
-      </li>
-      <li>
-        Select <code>assertTrue(boolean)</code> from the list and press <kbd>Enter</kbd>. The code for the <code>assertTrue(boolean)</code> method is inserted.
-      </li>
-      <li>
-        Complete the line so that it reads as follows:<br>
-        <p><code>
-        assertTrue(v.size() == fFull.size());
-        </code></p>
-      </li>
-      <li>
-        Save the file.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-65.htm">Using content assist</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-       <a href="../reference/ref-143.htm">Java Content Assist</a><br>
-       <a href="../reference/ref-21.htm">Java Editor Preferences</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-DetectingExistingLayout.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-DetectingExistingLayout.htm
deleted file mode 100644
index 597ed06..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-DetectingExistingLayout.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Detecting existing layout
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Detecting existing layout
-    </h1>
-
-	<p>The source files for the company's product are laid out in one directory "src" and class files are output in another directory "bin":
-	</p>
-	<p><img src="../images/qs-DetectingExistingLayout.gif" width=507 height=284 alt="Existing layout">
-	</p>
-	<ol>
-	<li>Select the menu item <strong>File &gt; New &gt; Project...</strong>. to open the <strong>New Project</strong> wizard.
-	</li>
-	<li>
-        On the left pane of the first wizard page, select <strong>Java</strong>, and on the right pane, select <strong>Java Project</strong>. 
-        Click <strong>Next</strong>. 	 
-    </li>
-    <li>
-    	On the next page, type &quot;Product&quot; in the <strong>Project name</strong> field. 
-    	Uncheck <strong>Use default</strong>. Click <strong>Browse...</strong> and choose the &quot;Product&quot; directory.
-		<p><img src="../images/qs-DetectingExistingLayout1.gif" width=500 height=507 alt="New Java Project external to workspace"></p>
-     </li>
-     <li>
-     	Click <strong>Next</strong>. Ensure that the source and output folders are detected.
-		<p><img src="../images/qs-DetectingExistingLayout2.gif" width=500 height=507 alt="Auto-detection of source and output folders"></p>
-		<p>NOTE: The auto-detection works only if the source files contain the correct package statement, i.e. for &quot;Main.java&quot;:
-			<pre>
-package com.xyz;
-			</pre>
-		</p>
-		<p>
-			<em>Warning: </em>If the preference <strong>Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path &gt; Scrub output folder on full build</strong>
-			is checked, clicking <strong>Finish</strong> will scrub the &quot;bin&quot; directory in the file system before
-			generating the class files.
-		</p>
-    </li>
-    <li>Click <strong>Finish</strong>.
-    </li>
-    <li>
-    	You now have a Java project with a &quot;src&quot; folder which contains the sources of the &quot;Product&quot; directory.
-		<p><img src="../images/qs-DetectingExistingLayout3.gif" width=556 height=407 alt="Java perspective"></p>
-    </li>
-	</ol>
-	<p>
-		<em>Note: </em>This solution creates a &quot;.project&quot; file and a &quot;.classpath&quot; file in the 
-		&quot;Product&quot; directory. If you do not wish to have these files in the &quot;Product&quot; directory,
-		you should use linked folders as shown in the 
-		<a href="qs-WorkingWithExistingLayout1.htm">Sibling products in a common source tree</a> section.
-	</p>
-
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-EditorTemplates.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-EditorTemplates.htm
deleted file mode 100644
index e2ee747..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-EditorTemplates.htm
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Using source code templates
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Using source code templates
-    </h1>
-    <p>
-      In this section you will use content assist to fill in a template for a common loop structure. 
-      Open <em>junit.samples.VectorTest.java</em> file in the Java editor if you do not already 
-      have it open.
-    </p>
-    <ol>
-      <li>
-        Start adding a new method by typing the following:<br>
-        <p><code>
-        public void testValues() {<br>
-        &nbsp;&nbsp;&nbsp; Integer[] expected= new Integer[3];<br>
-        &nbsp;&nbsp;&nbsp; for<br>
-        </code></p>
-      </li>
-      <li>
-        With the cursor at the end of <code>for</code>, press <kbd>Ctrl</kbd>+<kbd>Space</kbd> to enable content assist.&nbsp;
-        You will see a list of common templates for &quot;for&quot; loops.&nbsp;
-        When you hover over a template, you'll see the code for the template in
-        its help message.&nbsp; Note that the local array name is guessed automatically.
-		<p>
-		<img src="../images/qs-17b.gif" width=429 height=215 alt="Content assist for for">
-		</p>
-      </li>
-      <li>
-        Choose the <code>for - iterate over array</code>  entry and press <kbd>Enter</kbd> to confirm the template.&nbsp;
-        The template will be inserted in your source code.
-		<p>
-		<img src="../images/qs-17c.gif" width=438 height=106 alt="Inserted for template">
-		</p>
-      </li>
-      <li>
-        Next we change the name of the index variable from <em>i</em> to <em>e</em>. To do so simply press <kbd>e</kbd>, as
-        the index variable is automatically selected. 
-        Observe that the name of the index variable changes at all places. When inserting a template all template 
-        variable with the same name are connected to each other. So changing one changes all the other values 
-        as well.
-		<p>
-		<img src="../images/qs-17c1.gif" width=432 height=98 alt="Inserted for template">
-		</p>
-      </li>
-      <li>
-        Pressing the <kbd>tab</kbd> key moves the cursor to the next variable of the code template. This is the array
-        <em>expected</em>.
-		<p>
-		<img src="../images/qs-17c2.gif" width=437 height=104 alt="Inserted for template">
-		</p>
-        Since we don't want to change the name (it was guessed right by the template) we press
-        tab again, which leaves the template since there aren't any variables left to edit.
-      </li>
-      <li>
-        Complete the <code>for</code> loop as follows:<br>
-        <p><code>
-        for (int e= 0; e &lt; expected.length; e++) {<br>
-        &nbsp;&nbsp;&nbsp; expected[e]= new Integer(e + 1);<br>
-        }<br>
-        Integer[] actual= to<br>
-        </code></p>
-      </li>
-      <li>
-        With the cursor at the end of <code>to</code>, press <kbd>Ctrl</kbd>+<kbd>Space</kbd> to enable content assist. Pick <code>toarray - convert collection to array</code>
-        and press <kbd>Enter</kbd> to confirm the selection (or double-click the
-        selection).
-		<p>
-        <img src="../images/qs-17d.gif" width=519 height=272 alt="Inserted for template">
-		</p>
-		The template is inserted in the editor and <code>type</code> is highlighted and selected.
-		<p>
-		<img src="../images/qs-17e.gif" width=638 height=118 alt="Inserted for template">
-		</p>
-      </li>
-      <li>
-        Overwrite the selection by typing <code>Integer</code>. The type of array constructor changes
-        when you change the selection.
-      </li>
-      <li>
-        Press <kbd>Tab</kbd> to move the selection to <code>collection</code> and
-        overwrite it by typing <code>fFull</code>.
-		<p>
-		<img src="../images/qs-17f.gif" width=588 height=113 alt="Inserted for template">
-		</p>
-      </li>
-      <li>
-        Add the following lines of code to complete the method:<br>
-        <p><code>
-        assertEquals(expected.length, actual.length);<br>
-        for (int i= 0; i &lt; actual.length; i++)<br>
-        &nbsp;&nbsp;&nbsp; assertEquals(expected[i], actual[i]);<br>
-        }</code></p>
-      </li>
-      <li>
-        Save the file.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/ctemplates.htm">Templates</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-171.htm">Using templates</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-       <a href="../reference/ref-preferences-templates.htm">Templates Preferences</a><br>
-       <a href="../reference/ref-21.htm">Java Editor Preferences</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ExtractMethod.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ExtractMethod.htm
deleted file mode 100644
index a348778..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ExtractMethod.htm
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Extract a new Method
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Extract a new method
-    </h1>
-    <p>
-      In this section, you will improve the code of the constructor of <em>junit.framework.TestSuite</em>. 
-      To make the intent of the code clearer, you will extract the code that collects test cases 
-      from base classes into a new method called <em>collectTestMethods</em>.
-    </p>
-    <ol>
-      <li>
-        In the <em>junit.framework.TestSuite.java</em> file, select the following range of
-        code inside the <em>TestSuite(Class)</em> constructor:<br>
-        <p><code>
-        Class superClass= theClass;<br>
-        Vector names= new Vector();<br>
-        while(Test.class.isAssignableFrom(superClass)) {<br>
-        &nbsp;&nbsp;&nbsp; Method[] methods= superClass.getDeclaredMethods();<br>
-        &nbsp;&nbsp;&nbsp; for (int i= 0; i &lt; methods.length; i++) {<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addTestMethod(methods[i],names, constructor);<br>
-        &nbsp;&nbsp;&nbsp; }<br>
-        &nbsp;&nbsp;&nbsp; superClass= superClass.getSuperclass();<br>
-        }</code></p>
-      </li>
-      <li>
-        From the selection's context menu in the editor, select <strong>Refactor &gt; Extract Method...</strong>.
-		<p>
-		<img src="../images/qs-20.gif" width=490 height=577 alt="Context menu extract method">
-		</p>
-      </li>
-      <li>
-        In the <strong>Method Name</strong> field, type <em>collectInheritedTests</em>.
-		<p>
-		<img src="../images/qs-21.gif" width=408 height=444 alt="Extract method wizard data input page">
-		</p>
-      </li>
-      <li>
-        To preview the changes, press <strong>Preview&gt;</strong>.The preview page displays the 
-        changes that will be made. Press <strong>OK</strong> to extract the method.
-		<p>
-		<img src="../images/qs-22.gif" width=444 height=404 alt="Extract method preview page">
-		</p>
-      </li>
-      <li>
-        Go to the extracted method by selecting it in the Outline view.
-		<p>
-		<img src="../images/qs-23.gif" width=537 height=274 alt="Extracted method">
-		</p>
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" width=159 height=27 border="0" alt="Related concepts">
-    </p>
-    <p>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-9.htm">Refactoring support</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" width=159 height=27 alt="Related tasks" border="0">
-    </p>
-    <p>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-80.htm">Refactoring</a><br>
-       <a href="../tasks/tasks-83.htm">Refactoring with preview</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-       <a href="../reference/ref-154.htm">Extract Method Errors</a><br>
-       <a href="../reference/ref-23.htm">Refactoring Preferences</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-LocalHistory.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-LocalHistory.htm
deleted file mode 100644
index 497714a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-LocalHistory.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Using the Local History
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Using the local history
-    </h1>
-    <p>
-      In this section, you will use the local history feature to switch to a previously saved version of an individual 
-      Java element.
-    </p>
-    <ol>
-      <li>
-        Open <em>junit.samples.VectorTest.java</em> file in the Java editor and select the method
-        <em>testCapacity()</em> in the Outline view.
-      </li>
-      <li>
-      	Change the content of the method so that the 'for' statements reads as:<br>
-      	<p><code>
-      	for (int i= 0; i &lt; 99; i++)
-      	</code></p>
-	    Save the file by pressing Ctrl+S.
-      </li>
-      <li>
-        In the Outline view, select the method <code>testCapacity()</code>, and from its context menu, select <strong>Replace
-        With &gt; Element from Local History</strong>.
-      </li>
-      <li>
-        In the <strong>Replace Java Element from Local History</strong> dialog, the Local History list 
-        shows the various saved states of the method. The Java Source Compare pane shows details of the 
-        differences between the selected history resource and the existing workbench resource.
-		<p>
-		<img src="../images/qs-15.gif" width=497 height=398 alt="Replace from local history">
-		</p>
-      </li>
-      <li>
-       In the Local History pane, select the method that you changed, then click the <strong> Replace 
-       button</strong>. In the Java editor, the method is replaced with the selected history version.
-      </li>
-      <li>
-        Save the file.
-      </li>
-      <li>
-        Beside replacing a method's version with a previous one you can also restore Java elements that were 
-        deleted. Again, select the method <em>testCapacity()</em> in the Outline view, and from its context
-        menu, select <strong>Delete</strong>. Confirm the resulting dialog with <strong>Yes</strong> and
-        save the file. 
-      </li>
-      <li>
-        Now select the type <em>VectorTest</em> in the Outline view, and from its context menu, select
-        <strong>Restore from Local History...</strong>. Select and check the method <em>testCapacity()</em>
-        in the Available Java Elements pane. As before, the Local History pane shows the versions saved 
-        in the local history. The Java Source Compare pane shows the details of the differences between the 
-        selected history version and the existing workbench resource.
-		<p>
-		<img src="../images/qs-15a.gif" width=497 height=398 alt="Restore from local history">
-		</p>
-      </li>
-      <li>
-        In the Local History pane, select the earlier version and then click <strong>Restore</strong>.
-      </li>
-      <li>
-        Press <strong>Ctrl+S</strong> to save the file.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-62.htm">Using the local history</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-Navigate.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-Navigate.htm
deleted file mode 100644
index 2e35960..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-Navigate.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Navigate to a Java Element's Declaration
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Navigate to a Java element's declaration
-    </h1>
-    
-	<ol>
-	  <li> Open the <em>junit.samples.money.MoneyTest.java</em> file in the Java editor. 
-	  </li>
-	  <li> On the first line of the MoneyTest class declaration, select the
-	    superclass TestCase and either 
-	    <ul>
-	      <li> from the menu bar select Navigate &gt; Open Declaration or </li>
-	      <li> press <kbd>F3</kbd>. </li>
-	    </ul>	    
-		<p>
-	    <img src="../images/qs-24.gif" width=525 height=410 alt="Menu open declaration">
-		</p>
-	    The TestCase class opens in the editor area and is also represented in 
-	    the Outline view. <br><em>Note: This command also works on methods and fields.</em>
-		<p>
-	    <img src="../images/qs-25.gif" width=484 height=249 alt="Opened declaration">
-		</p>
-	  </li>
-	  <li> With the <em>TestCase.java</em> editor open and the class declaration
-	    selected: 
-	    <ul>
-	      <li> from the menu bar select Navigate &gt; Open Type Hierarchy or </li>
-	      <li> press <kbd>F4</kbd>. </li>
-	    </ul>
-		<p>
-	    <img src="../images/qs-26.gif" width=378 height=414 alt="Menu open type hierarchy">
-		</p>
-	  </li>
-	  <li> 
-	    The Hierarchy view opens with the TestCase class displayed.
-		<p>
-	    <img src="../images/qs-27.gif" width=237 height=556 alt="Type hierarchy view">
-		</p>
-	    <em>Note: You can also open editors on types and methods in the Hierarchy view.</em> 
-	  </li>
-	</ol>
-	
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-37.htm">Using the Hierarchy view</a><br>
-       <a href="../tasks/tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="../tasks/tasks-40.htm">Opening a type hierarchy on the current text selection</a><br>
-       <a href="../tasks/tasks-73.htm">Opening an editor for a selected element</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OpenJavaEditor.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OpenJavaEditor.htm
deleted file mode 100644
index 3e6b8bc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OpenJavaEditor.htm
+++ /dev/null
@@ -1,106 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Opening a Java editor
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening a Java editor
-    </h1>
-    <p>
-      In this section, you will learn how to open an editor for Java files.  You will also learn about some of the basic Java editor features.
-    </p>
-    <p>
-		<ol>
-		  <li> Expand the package <em>junit.samples</em> and select the file <em>VectorTest.java</em>.&nbsp;
-		    You can open <em>VectorTest.java</em> in the Java editor by double clicking on
-		    it. In general you can open a Java editor for Java files, types, methods and fields by simply double 
-		    clicking on them. For example, to open the editor directly on the method <em>testClone</em>
-		    defined in <em>VectorTest.java</em> double click on the method in the Package Explorer.</li>
-		  <li> Notice the syntax highlighting.&nbsp; Different kinds of elements in the
-		    java source are rendered in unique colors.&nbsp; Examples of java source
-		    elements that are rendered differently are: 
-		    <ul>
-		      <li> Regular comments </li>
-		      <li> Javadoc comments </li>
-		      <li> Keywords </li>
-		      <li> Strings. </li>
-		    </ul>
-			<p>
-		    <img src="../images/qs-8.gif" width=528 height=459 alt="Syntax highlighting">
-			</p>
-		  </li>
-		  <li> Look at the Outline view. It displays an outline of the Java file including 
-		    the package declaration, import declarations, fields, types and methods. The 
-		    Outline view uses icons to annotate Java elements.&nbsp; For example, icons indicate whether a Java element is static, abstract,
-		    or final.&nbsp; Different icons show you whether a method is overridden from a 
-		    base class (<img src="../images/org.eclipse.jdt.ui/ovr16/over_co.gif" width=7 height=8 alt="overridden">
-) or 
-		    when it implements a method from an interface (<img src="../images/org.eclipse.jdt.ui/ovr16/implm_co.gif" width=7 height=8 alt="implements">
-).
-			<p>	
-		    <img src="../images/qs-9.gif" width=218 height=329 alt="Outline view">
-			</p>
-		  </li>
-		  <li> Toggle the <strong>Hide Fields</strong>, <strong>Hide Static Members</strong>, 
-		    and <strong>Hide Non-Public Members</strong> buttons in the Outline view toolbar 
-		    to filter the view's display.
-			<p>
-			<img src="../images/qs-10.gif" width=220 height=92 alt="Outline view tool bar"> 
-			</p>
-		  </li>
-		  <li> You can edit source code by viewing the whole Java file, or you can narrow 
-		    the view to a single Java element. The toolbar includes a button, <strong>Show Source of Selected 
-		    Element Only</strong>, that will cause only the source code of the selected
-		    outline element to be displayed in the Java editor.&nbsp; In the example
-		    below, only the <em>setUp()</em> method is displayed.
-			<p>
-			<img src="../images/qs-11.gif" width=525 height=226 alt="Show selected element only tool bar button"> 
-			</p>
-		  </li>
-		  <li> Press the <strong>Show Source of Selected Element Only</strong> button 
-		    again to see the whole Java file again. In the Outline view, select different 
-		    elements and note that they are again displayed in a whole file view 
-		    in the editor. The Outline view selection now contains a range indicator 
-		    on the vertical ruler on the left border of the Java editor that indicates
-		    the range of the selected element.
-			<p>
-			<img src="../images/qs-12.gif" width=485 height=218 alt="Range indicator"> 
-			</p>
-		  </li>
-		</ol>
-	</p>	
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-2.htm">Showing and hiding elements</a><br>
-       <a href="../tasks/tasks-6.htm">Showing single elements or whole Java files</a><br>
-       <a href="../tasks/tasks-195.htm">Sorting elements in Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-view-outline.htm">Java Outline View</a><br>
-       <a href="../reference/ref-21.htm">Java Editor Preferences</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OrganizeImports.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OrganizeImports.htm
deleted file mode 100644
index 03a259d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OrganizeImports.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Organizing Import Statements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Organizing import statements
-    </h1>
-    <p>
-      In this section you will organize the import declarations in your
-      source code.&nbsp; Open <em>junit.samples.VectorTest.java</em> file in the Java
-      editor if you do not already have it open.
-    </p>
-    <ol>
-      <li>
-        Delete the import declarations by selecting them in the Outline view and selecting 
-        <strong>Delete</strong> from the context menu. Confirm the resulting dialog with
-        <strong>Yes</strong>.
-        You will see numerous compiler warnings in the vertical ruler since the
-        types used in the method are no longer imported.
-		<p>
-		<img src="../images/qs-18.gif" width=206 height=313 alt="Outline view context menu">
-		</p>
-      </li>
-      <li>
-        From the context menu in the editor, select <strong>Source &gt; Organize Imports</strong>. The required import statements are added to the beginning of your code below the package
-        declaration.
-		<p>
-		<img src="../images/qs-19.gif" width=466 height=277 alt="Organize imports">
-		</p>
-        You can also choose <strong>Organize Imports</strong> from the context menu of the
-        import declarations in the Outline view.<br>
-        Note: You can specify the order of the import declarations 
-        in preferences <strong>Window &gt; Preferences &gt; Java &gt; Organize Imports</strong>.
-      </li>
-      <li>
-        Save the file.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-58.htm">Managing import statements</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-       <a href="../reference/ref-22.htm">Organize Imports Preferences</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OrganizingSources.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OrganizingSources.htm
deleted file mode 100644
index 023c1ad..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-OrganizingSources.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Organizing sources
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Organizing sources
-    </h1>
-    <p>In this section, you will create a new Java project and organize your sources in separate folders. This will 
-    prepare you for handling more complex layouts.
-    </p>
-    <p>Let's assume you want to put your sources in one folder and your tests in another folder:
-       <p><img src="../images/qs-OrganizeSources1.gif" width=419 height=285 alt="Sources and tests folders"></p>
-    </p>
-
-	<ol>
-      <li>Select the menu item <strong>File &gt; New &gt; Project...</strong>. to open the <strong>New Project</strong> wizard.
-	  </li>
-      <li>
-        On the left pane of the first wizard page, select <strong>Java</strong>, and on the right pane, select <strong>Java Project</strong>.
-        <br>Then click <strong>Next</strong>.
-      </li>
-      <li>
-        On the next page, type &quot;MyProject&quot; in the <strong>Project name</strong> field and click <strong>Next</strong>.
-       <p><img src="../images/qs-OrganizeSources2.gif" width=500 height=507 alt="Java Project Name Setting"></p>
-      </li>
-      <li>Click <strong>Add Folder...</strong>.
-      </li>
-      <li>On the next dialog, click <strong>Create New Folder...</strong>
-     </li>
-    <li>Type &quot;sources&quot; in the <strong>Folder name</strong> field.
-       <p><img src="../images/qs-OrganizeSources3.gif" width=309 height=171 alt="Java Project Name Setting"></p>
-    </li>
-	<li>Click <strong>OK</strong> twice to close the two dialogs.
-	</li>
-    <li>
-    	You will be prompted whether or not to remove the project as a source folder and update the build output
-	    folder to &quot;MyProject/bin&quot;. The builder will write the generated .class files to the output folder. 
-    	Click <strong>Yes</strong>.<br>
-        <p><img src="../images/qs-OrganizeSources4.gif" width=500 height=507 alt="Resulting Java Project Wizard"></p>
-    </li>
-    <li>
-    	To create the &quot;tests&quot; folder, repeat steps 4 to 7.
-	    <p><img src="../images/qs-OrganizeSources5.gif" width=500 height=507 alt="Resulting Java Project Wizard"></p>
-    </li>
-    <li>Click <strong>Finish</strong>
-    </li>
-    <li>
-    	You now have a Java project with a &quot;sources&quot; and a &quot;tests&quot; folders. You can start adding classes
-    	to these folders or you can copy them using drag and drop.
-	    <p><img src="../images/qs-OrganizeSources6.gif" width=550 height=375 alt="Java perspective"></p>
-    </li>
-	</ol>    
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ProjectConfiguration.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ProjectConfiguration.htm
deleted file mode 100644
index 344c969..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-ProjectConfiguration.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Project Configuration Tutorial
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-    	Project configuration tutorial
-    </h1>
-    <p>
-    	In this section, you will create and configure a new Java project to use source folders and 
-    	to match some existing layout on the file system. Some typical layouts have been identified. 
-    	Choose the sub-section that matches your layout. 
-    </p>
-
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout1.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout1.htm
deleted file mode 100644
index 8829f7f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout1.htm
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Sibling products in a common source tree
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Sibling products in a common source tree
-    </h1>
-
-	<p>The source files for the company's products are laid out in one big directory that is version and configuration managed outside Eclipse:
-	</p>
-	<p><img src="../images/qs-WorkingWithExistingLayout1.gif" width=508 height=287 alt="Layout 1">
-	</p>
-	<ol>
-	<li>Select the menu item <strong>File &gt; New &gt; Project...</strong>. to open the <strong>New Project</strong> wizard.
-	</li>
-	<li>
-        On the left pane of the first wizard page, select <strong>Java</strong>, and on the right pane, select <strong>Java Project</strong>. 
-        Click <strong>Next</strong>. 	 
-    </li>
-    <li>On the next page, type &quot;Product1&quot; in the <strong>Project name</strong> field. Click <strong>Next</strong>.
-		<p><img src="../images/qs-WorkingWithExistingLayout11.gif" width=500 height=507 alt="Source and output folders page"></p>
-	</li>
-	<li>
-		Select &quot;Product1&quot; source folder and click <strong>Edit...</strong>.
-	</li>
-	<li>
-		Click <strong>Create New Folder...</strong>. Type &quot;JavaSourceFiles&quot; in the <strong>Folder name</strong> field. 
-	</li>
-	<li>
-		Click <strong>Advanced</strong>. Check <strong>Link to folder in the file system</strong>. 
-		Click <strong>Browse....</strong> and choose the &quot;JavaSourceFiles&quot; directory in &quot;Product1&quot;.
-		<p>
-		<img src="../images/qs-WorkingWithExistingLayout12.gif" width=416 height=248 alt="New linked folder">
-		</p>
-	</li>
-	<li>Click <strong>OK</strong> twice to close the two dialogs.
-	</li>
-	<li>
-		Type &quot;Product1/bin&quot; in the <strong>Default output folder</strong> field. 
-		<p>
-		<img src="../images/qs-WorkingWithExistingLayout13.gif" width=500 height=507 alt="Source and output page after setting output">
-		</p>
-	</li>
-    <li>Click <strong>Finish</strong>.
-    </li>
-    <li>Repeat these steps for  &quot;Product2&quot;.
-    </li>
-    <li>
-    	You now have two Java projects which respectively contain the sources of &quot;Product1&quot; and &quot;Product2&quot;.
-		<p><img src="../images/qs-WorkingWithExistingLayout14.gif" width=563 height=385 alt="Java perspective"></p>
-    </li>
-	</ol>
-
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout2.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout2.htm
deleted file mode 100644
index a2e733f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout2.htm
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Overlapping products in a common source tree
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Overlapping products in a common source tree
-    </h1>
-
-	<p>The Java source files for the company's products are all held in a single package directory like this:
-	</p>
-	<p><img src="../images/qs-WorkingWithExistingLayout2.gif" width=509 height=251 alt="Layout 2">
-	</p>
-	<ol>
-	<li>Select the menu item <strong>File &gt; New &gt; Project...</strong>. to open the <strong>New Project</strong> wizard.
-	</li>
-	<li>
-        On the left pane of the first wizard page, select <strong>Java</strong>, and on the right pane, select <strong>Java Project</strong>. 
-        Click <strong>Next</strong>. 	 
-    </li>
-    <li>On the next page, type &quot;Product1&quot; in the <strong>Project name</strong> field. Click <strong>Next</strong>.
-	</li>
-	<li>
-		Select &quot;Product1&quot; source folder and click <strong>Edit...</strong>.
-	</li>
-	<li>
-		Click <strong>Create New Folder...</strong>. Type &quot;src&quot; in the <strong>Folder name</strong> field. 
-	</li>
-	<li>
-		Click <strong>Advanced</strong>. Check <strong>Link to folder in the file system</strong>. 
-		Click <strong>Browse....</strong> and choose the &quot;AllJavaSourceFiles&quot; directory.
-		<p><img src="../images/qs-WorkingWithExistingLayout21.gif" width=416 height=248 alt="New linked folder"></p>
-	</li>
-	<li>Click <strong>OK</strong> twice to close the two dialogs.
-	</li>
-	<li>Expand the &quot;src&quot; source folder. Select <strong>Exclusion filters</strong> and click <strong>Edit...</strong>.
-	</li>
-	<li>
-		Click <strong>Add...</strong>. Type &quot;com/xyz/product2/&quot; in the <strong>Add Exclusion Pattern</strong> dialog.
-	</li>
-	<li>Click <strong>OK</strong> twice to close the two dialogs.
-	</li>
-	<li>
-		Type &quot;Product1/bin&quot; in the <strong>Default output folder</strong> field. 
-		<p><img src="../images/qs-WorkingWithExistingLayout22.gif" width=500 height=507 alt="Source and output page after setting output"></p>
-	</li>
-    <li>Click <strong>Finish</strong>.
-    </li>
-    <li>Repeat these steps for  &quot;Product2&quot;, excluding &quot;com/xyz/product1/&quot; instead.
-    </li>
-    <li>
-    	You now have two Java projects which respectively contain the sources of &quot;product1&quot; and &quot;product2&quot;.
-		<p><img src="../images/qs-WorkingWithExistingLayout23.gif" width=545 height=394 alt="Java perspective"></p>
-    </li>
-	</ol>
-		
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout3.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout3.htm
deleted file mode 100644
index 34268d6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout3.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Product with nested tests
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Product with nested tests
-    </h1>
-		
-	<p>The Java source files for a product are laid out in package directory like this:
-	</p>
-	<p><img src="../images/qs-WorkingWithExistingLayout3.gif" width=453 height=333 alt="Layout 3">
-	</p>
-	<ol>
-	<li>Select the menu item <strong>File &gt; New &gt; Project...</strong>. to open the <strong>New Project</strong> wizard.
-	</li>
-	<li>
-        On the left pane of the first wizard page, select <strong>Java</strong>, and on the right pane, select <strong>Java Project</strong>. 
-        Click <strong>Next</strong>. 	 
-    </li>
-    <li>On the next page, type &quot;Product1&quot; in the <strong>Project name</strong> field. Click <strong>Next</strong>.
-	</li>
-	<li>
-		Select &quot;Product1&quot; source folder and click <strong>Edit...</strong>.
-	</li>
-	<li>
-		Click <strong>Create New Folder...</strong>. Type &quot;src&quot; in the <strong>Folder name</strong> field. 
-	</li>
-	<li>
-		Click <strong>Advanced</strong>. Check <strong>Link to folder in the file system</strong>. 
-		Click <strong>Browse....</strong> and choose the &quot;JavaSourceFiles&quot; directory.
-		<p><img src="../images/qs-WorkingWithExistingLayout31.gif" width=416 height=248 alt="New linked folder"></p>
-	</li>
-	<li>Click <strong>OK</strong> twice to close the two dialogs.
-	</li>
-	<li>
-		Type &quot;Product1/bin&quot; in the <strong>Default output folder</strong> field. 
-		<p><img src="../images/qs-WorkingWithExistingLayout32.gif" width=500 height=507 alt="Source and output page after setting output"></p>
-	</li>
-	<li>
-		Click <strong>Add Folder...</strong>.
-	</li>
-	<li>
-		Expand &quot;Project1&quot;, then &quot;src&quot; and select &quot;tests&quot;.
-		<p><img src="../images/qs-WorkingWithExistingLayout33.gif" width=347 height=430 alt="Selecting tests folder"></p>
-	</li>
-	<li>Click <strong>OK</strong>. You get an information dialog saying that exclusion filters have been added. Click <strong>OK</strong>.
-	</li>
-    <li>Click <strong>Finish</strong>.
-    </li>
-    <li>
-    	You now have a Java project with a &quot;src&quot; folder and a &quot;tests&quot; folder which contain respectively 
-    	the &quot;JavaSourceFiles&quot; directory and the &quot;tests&quot; directory.
-		<p><img src="../images/qs-WorkingWithExistingLayout34.gif" width=545 height=395 alt="Java perspective"></p>
-    </li>
-	</ol>
-
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout4.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout4.htm
deleted file mode 100644
index 6b26295..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-WorkingWithExistingLayout4.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Products sharing a common source framework
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Products sharing a common source framework
-    </h1>
-
-	<p>The Java source files for two products require a common framework:
-	</p>
-	<p><img src="../images/qs-WorkingWithExistingLayout4.gif" width=457 height=316 alt="Layout 4">
-	</p>
-	<ol>
-	<li>Select the menu item <strong>File &gt; New &gt; Project...</strong>. to open the <strong>New Project</strong> wizard.
-	</li>
-	<li>
-        On the left pane of the first wizard page, select <strong>Java</strong>, and on the right pane, select <strong>Java Project</strong>. 
-        Click <strong>Next</strong>. 	 
-    </li>
-    <li>On the next page, type &quot;Product1&quot; in the <strong>Project name</strong> field. Click <strong>Next</strong>.
-		<p><img src="../images/qs-WorkingWithExistingLayout41.gif" width=500 height=507 alt="Source and output folders page"></p>
-	</li>
-	<li>
-		Select &quot;Product1&quot; source folder and click <strong>Edit...</strong>.
-	</li>
-	<li>
-		Click <strong>Create New Folder...</strong>. Type &quot;JavaSourceFiles&quot; in the <strong>Folder name</strong> field. 
-	</li>
-	<li>
-		Click <strong>Advanced</strong>. Check <strong>Link to folder in the file system</strong>. 
-		Click <strong>Browse....</strong> and choose the &quot;JavaSourceFiles&quot; directory in &quot;Product1&quot;.
-		<p><img src="../images/qs-WorkingWithExistingLayout42.gif" width=416 height=248 alt="Source and output page after setting output"></p>
-	</li>
-	<li>Click <strong>OK</strong> twice to close the two dialogs.
-	</li>
-	<li>
-		Click <strong>Add Folder...</strong>.
-	</li>
-	<li>
-		Click <strong>Create New Folder...</strong>. Type &quot;src-common&quot; in the <strong>Folder name</strong> field. 
-	</li>
-	<li>
-		Click <strong>Advanced</strong>. Check <strong>Link to folder in the file system</strong>. 
-		Click <strong>Browse....</strong> and choose the &quot;JavaSourceFiles&quot; directory in &quot;CommonFramework&quot;.
-		<p><img src="../images/qs-WorkingWithExistingLayout43.gif" width=416 height=248 alt="Source and output page after setting output"></p>
-	</li>
-	<li>Click <strong>OK</strong> twice to close the two dialogs.
-	</li>
-	<li>
-		Type &quot;Product1/bin&quot; in the <strong>Default output folder</strong> field. 
-		<p><img src="../images/qs-WorkingWithExistingLayout44.gif" width=500 height=507 alt="Source and output page after setting output"></p>
-	</li>
-    <li>Click <strong>Finish</strong>.
-    </li>
-    <li>Repeat these steps for &quot;Product2&quot;.
-    </li>
-    <li>
-    	You now have two Java projects which respectively contain the sources of &quot;Product1&quot; and &quot;Product2&quot;
-    	and which are using the sources of &quot;CommonFramework&quot;.
-		<p><img src="../images/qs-WorkingWithExistingLayout45.gif" width=558 height=454 alt="Java perspective"></p>
-    </li>
-	</ol>
-	<em>Note: </em>Files in &quot;src-common&quot; are shared. So editing &quot;Common.java&quot; in &quot;Product1&quot;
-	will modify &quot;Common.java&quot; in &quot;Product2&quot;. However they are compiled in the context of their
-	respective projects. Two &quot;Common.class&quot; files will be generated; one for each project. If the two projects have 
-	different compiler options, then different errors could be reported on each &quot;Common.java&quot; file.
-	
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-      <a href="../tasks/tasks-6.htm">Java views</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-121.htm">New Java Project Wizard</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer View</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-junit.htm b/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-junit.htm
deleted file mode 100644
index 001a150..0000000
--- a/bundles/org.eclipse.jdt.doc.user/gettingStarted/qs-junit.htm
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Implementing and running JUnit Tests
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Writing and running JUnit tests
-    </h1>
-    <p>
-      In this section, you will be using the <a href="http://www.junit.org"> JUnit</a> 
-    testing framework to write and run tests. To get started with JUnit you can
-    refer to the <a href="http://junit.sourceforge.net/doc/cookbook/cookbook.htm">JUnit
-    Cookbook</a>.
-    </p>
-    <h2>
-      Writing Tests
-    </h2>
-    
-    <p>
-      Before you can write JUnit tests you have to add the <strong>junit.jar</strong>
-      library to your build class path. The Eclipse installation includes JUnit
-      in the <i>org.junit</i> plug-in:
-    </p>
-    
-    <ol>
-      <li>Create a project &quot;JUnitTest&quot;
-      <li>Open the project's build path property page
-      <li>Switch to the <b> Libraries</b> tab</li>
-      <li>Add the <i> junit.jar</i> contained in org.junit in the plug-ins
-        directory as an external JAR to your
-        project.</li>
-    </ol>
-    Optionally, if you want to browse the JUnit source, then attach the <i>junitsrc.zip</i>
-    to the <i> junit.jar</i>. The source zip is located in the org.eclipse.jdt.source
-    plug-in in src/org.junit_3.8.1.
-    <p>
-      Now that the JUnitTest project has access to the JUnit classes you can write your
-      first test. You implement the test in a subclass of <strong>TestCase</strong>. You can
-      do so either using the standard Class wizard or the specialized <strong>Test Case 
-      </strong> wizard:
-    </p>
-    <ol>
-      <li>Open the New wizard (<strong>File  &gt; New  &gt; Other...</strong>)</li>
-      <li>Select <strong>Java &gt; JUnit</strong> in the left pane
-        and <strong>TestCase</strong> in the right pane and click <strong>Next</strong>.</li>
-      <li>Enter &quot;<i>TestFailure&quot;</i> as the name of your test class:
-       <p>
-        <img src="../images/qs-jun1.gif" width=500 height=500 border="0" alt="TestCase creation wizard page 1"><br>
-       </p>
-      </li>
-      <li>Click <strong>Finish</strong> to create the test class.
-      </li>
-    </ol>
-    
-    <p>
-      Add a test method that fails to the class <i>TestFailure</i>. A quick
-      way to enter a test method is with the <i>test</i> template. To do so
-      type &quot;test&quot; followed by Ctrl+Space to activate code
-      assist and select the &quot;test&quot; template. Change the name of the
-      created method to <i>testFailure</i> and invoke the <i>fail() </i>method.
-    </p>
-    <p><code>
-      public void testFailure() {<br>
-      &nbsp;&nbsp;&nbsp; fail();<br>
-      }
-    </code></p>
-     
-    <p>Now you are ready to run your first test.</p>
-
-    <h2>
-      Running Tests
-    </h2>
-    
-    <p>To run TestFailure, activate the <b>Run</b> drop-down
-    menu in the toolbar and select <span class="control">Run as &gt; JUnit Test</span>.
-    You can inspect the test results in the <i>JUnit</i> view. This view shows
-    you the test run progress and status:</p>
-
-    <p><img src="../images/qs-jun3.gif" width=255 height=395 border="0" alt="Failed test"></p>
-
-    <p> The view is shown in the current
-    perspective whenever you start a test run. A convenient arrangement for the
-    JUnit view is to dock it as a fast view. The JUnit view has two tabs: one shows
-    you a list of failures and the other shows you the full test suite as
-    a tree. You can navigate from a failure to the corresponding source by
-    double clicking the corresponding line in the failure trace.</p>
-
-    <p>Dock the JUnit view as a fast view, remove the <i>
-    fail()</i> statement in the method <i> testFailure()</i> so that the test passes and rerun
-    the test again. You can rerun a test either by clicking the <b>Rerun</b> button in
-    the view's tool bar or you can re-run the program that was last launched by activating
-    the <b>Run</b> drop down. This time the test should succeed. Because the test was successful,
-     the JUnit view doesn't pop up, but the success indicator shows on 
-    the JUnit view icon and the status line shows the test result. As a reminder
-    to rerun your tests the view icon is decorated by a &quot;*&quot;
-    whenever you change the workspace contents after the run.</p>
-
-    <blockquote>
-      <p><img src="../images/qs-jun2.gif" width=23 height=23 border="0" alt="Successful test">
-      - A successful test run<br>
-      <img src="../images/qs-jun4.gif" width=25 height=23 border="0" alt="Successful test but workspace has changed"> - 
-      A successful test run, but the workspace contents has changed since the
-      last test run.</p>
-
-    </blockquote>
-    <p>In addition to running a test case as described above you can also:</p>
-    <ul>
-      <li>Run all tests inside a project, source folder, or package - &nbsp;<br>
-        Select a package or source folder and run all the included tests with <strong>Run as &gt; JUnit Test</strong>.
-        This command finds all tests inside a project, source folder or package
-        and executes them.</li>
-      <li>Run a single test method - <br>
-        Select a test method in the Outline or Package Explorer and with <strong>Run as &gt; JUnit Test</strong>
-        the selected test method will be run.</li>
-      <li>Rerun a single test - <br>
-        Select a test in the JUnit view and execute <b>Rerun </b>from the context
-        menu.</li>
-    </ul>
-
-    <h2>
-      Customizing a Test Configuration
-    </h2>
-    
-    <p>When you want to pass parameters or customize the
-    settings for a test run you open the Launch Configuration Dialog. Select <strong>Run...</strong>.in the <strong>Run</strong>
-    drop-down menu in the toolbar:</p>
-    <p><img src="../images/qs-jun5.gif" width=612 height=475 border="0" alt="JUnit Launch Configuration"></p>
-    <p>In this dialog you can specify the test to be run, its arguments, its run-time
-    class path, and the Java run-time environment.</p>
-
-    <h2>
-      Debugging a Test Failure
-    </h2>
-    
-    <p>In the case of a test failure you can follow these steps to debug it:</p>
-    <ol>
-      <li>Double click the failure entry from the stack trace in the JUnit view to open the
-        corresponding file in the editor.
-      <li>Set a breakpoint at the beginning of the test method.
-      <li>Select the test case and execute&nbsp; <b>Debug As&gt;JUnit Test</b> from
-        the <b>Debug </b>drop down.
-    </ol>
-    <p>A JUnit launch configuration has a &quot;keep alive&quot; option. If your
-    Java virtual machine supports &quot;hot code replacement&quot; you can fix the code and rerun the test
-    without restarting the full test run. To enable this option select the <strong>Keep
-    JUnit running after a test run when debugging</strong>  checkbox in the JUnit
-    launch configuration.</p>
-
-    <h2>
-      Creating a Test Suite
-    </h2>
-    
-    <p>
-      The JUnit <b>TestSuite </b>wizard helps you with the creation of a test
-      suite. You can select the set of classes that should belong to a suite. 
-    </p>
-    
-    <ol>
-      <li>Open the New wizard</li>
-      <li>Select <strong>Java &gt; JUnit</strong> in the left pane
-        and <strong>TestSuite</strong> in the right pane and click <strong>Next</strong>.</li>
-      <li>Enter a name for your test suite class (the convention is to use
-        &quot;AllTests&quot; which appears by default).<br>
-        <p><img src="../images/qs-jun6.gif" width=500 height=526 border="0" alt="Test Suite wizard"></p>
-      </li>
-      <li>Select the classes that should be included in the suite. We currently
-        have a single test class only, but you can add to the suite later.</li>
-    </ol>
-    
-    <p>You can add or remove test classes from the test suite in two ways:</p>
-    <ul>
-      <li>Manually 
-      by editing the test suite file<li>By re-running the wizard and selecting the new set of test classes.</li>
-    </ul>
-    <p>Note: the wizard puts 2 markers, <code>//$JUnit-BEGIN$</code> and
-    <code>//$JUnit-END$</code>, into the created Test suite class, which allows
-    the wizard to update existing test suite classes. Editing code between the markers is 
-    not recommended.</p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" width=324 height=14 alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/hglegal.htm b/bundles/org.eclipse.jdt.doc.user/hglegal.htm
deleted file mode 100644
index c598113..0000000
--- a/bundles/org.eclipse.jdt.doc.user/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.user/hglegal2002.htm b/bundles/org.eclipse.jdt.doc.user/hglegal2002.htm
deleted file mode 100644
index 50fa96c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/hglegal2002.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2002. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.user/hglegal2003.htm b/bundles/org.eclipse.jdt.doc.user/hglegal2003.htm
deleted file mode 100644
index 47c8540..0000000
--- a/bundles/org.eclipse.jdt.doc.user/hglegal2003.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.user/images/c-quickfix.gif b/bundles/org.eclipse.jdt.doc.user/images/c-quickfix.gif
deleted file mode 100644
index e266bb4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/c-quickfix.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/classpathVar.gif b/bundles/org.eclipse.jdt.doc.user/images/classpathVar.gif
deleted file mode 100644
index 76a4953..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/classpathVar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/copy_edit_co.gif b/bundles/org.eclipse.jdt.doc.user/images/copy_edit_co.gif
deleted file mode 100644
index 4274b07..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/copy_edit_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy.gif b/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy.gif
deleted file mode 100644
index 3fda87a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy2002.gif b/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy2002.gif
deleted file mode 100644
index 61cef48..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy2002.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy2003.gif b/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy2003.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ngrelc.gif b/bundles/org.eclipse.jdt.doc.user/images/ngrelc.gif
deleted file mode 100644
index c2bb76c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ngrelc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ngrelr.gif b/bundles/org.eclipse.jdt.doc.user/images/ngrelr.gif
deleted file mode 100644
index d187c3f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ngrelr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ngrelt.gif b/bundles/org.eclipse.jdt.doc.user/images/ngrelt.gif
deleted file mode 100644
index 3b2eed7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ngrelt.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/brkp_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/brkp_obj.gif
deleted file mode 100644
index 06d0079..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/brkp_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/brkpd_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/brkpd_obj.gif
deleted file mode 100644
index 8e8cac5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/brkpd_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/debugt_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/debugt_obj.gif
deleted file mode 100644
index d139cde..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/debugt_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/debugtt_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/debugtt_obj.gif
deleted file mode 100644
index e9b7ece..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/debugtt_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/expression_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/expression_obj.gif
deleted file mode 100644
index 870df5c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/expression_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/genericvariable_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/genericvariable_obj.gif
deleted file mode 100644
index 35f9a1d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/genericvariable_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/ldebug_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/ldebug_obj.gif
deleted file mode 100644
index 93105b3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/ldebug_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/lrun_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/lrun_obj.gif
deleted file mode 100644
index 2123a44..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/lrun_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/osprc_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/osprc_obj.gif
deleted file mode 100644
index 615fb40..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/osprc_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/osprct_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/osprct_obj.gif
deleted file mode 100644
index da227b3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/osprct_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/stckframe_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/stckframe_obj.gif
deleted file mode 100644
index 567ea42..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/stckframe_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/stckframe_running_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/stckframe_running_obj.gif
deleted file mode 100644
index ef406cf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/stckframe_running_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/terminatedlaunch_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/terminatedlaunch_obj.gif
deleted file mode 100644
index 7499143..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/terminatedlaunch_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/thread_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/thread_obj.gif
deleted file mode 100644
index fb5175f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/thread_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/threads_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/threads_obj.gif
deleted file mode 100644
index 7e4a43c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/obj16/threads_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/ovr16/error.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/ovr16/error.gif
deleted file mode 100644
index 8612eaf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/ovr16/error.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/ovr16/stcksync_ov.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/ovr16/stcksync_ov.gif
deleted file mode 100644
index 9baffae..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.debug.ui/ovr16/stcksync_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/insp_sbook.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/insp_sbook.gif
deleted file mode 100644
index 2b645a8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/insp_sbook.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jexception_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jexception_obj.gif
deleted file mode 100644
index 1da9a26..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jexception_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jexceptiond_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jexceptiond_obj.gif
deleted file mode 100644
index 13da640..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jexceptiond_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jrtexception_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jrtexception_obj.gif
deleted file mode 100644
index 701bbb5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jrtexception_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jsbook_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jsbook_obj.gif
deleted file mode 100644
index a162c17..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jsbook_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jsbook_run_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jsbook_run_obj.gif
deleted file mode 100644
index 549c6b7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/jsbook_run_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/localvariable_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/localvariable_obj.gif
deleted file mode 100644
index bf0a368..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/localvariable_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/read_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/read_obj.gif
deleted file mode 100644
index 793b189..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/read_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/readwrite_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/readwrite_obj.gif
deleted file mode 100644
index 0b1184d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/readwrite_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/write_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/write_obj.gif
deleted file mode 100644
index b5fa352..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/obj16/write_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/caught_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/caught_ovr.gif
deleted file mode 100644
index 725b4fa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/caught_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/entry_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/entry_ovr.gif
deleted file mode 100644
index 7227afd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/entry_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/error_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/error_co.gif
deleted file mode 100644
index 8612eaf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/error_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/exit_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/exit_ovr.gif
deleted file mode 100644
index 76ee4bc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/exit_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/exit_ovr_disabled.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/exit_ovr_disabled.gif
deleted file mode 100644
index c3f4563..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/exit_ovr_disabled.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/installed_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/installed_ovr.gif
deleted file mode 100644
index 7f4a31e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/installed_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/scoped_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/scoped_ovr.gif
deleted file mode 100644
index 1a86046..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/scoped_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/uncaught_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/uncaught_ovr.gif
deleted file mode 100644
index 7880cf7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/uncaught_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/warning_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/warning_co.gif
deleted file mode 100644
index 3af228c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/ovr16/warning_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/change.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/change.gif
deleted file mode 100644
index 5bef5e7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/change.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/class_default_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/class_default_obj.gif
deleted file mode 100644
index 5f2a62e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/class_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/class_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/class_obj.gif
deleted file mode 100644
index 15cfc6d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/class_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/classf_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/classf_obj.gif
deleted file mode 100644
index cfb37c4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/classf_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/classfo_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/classfo_obj.gif
deleted file mode 100644
index 9dc7490..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/classfo_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/compare_field.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/compare_field.gif
deleted file mode 100644
index db8bb07..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/compare_field.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/compare_method.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/compare_method.gif
deleted file mode 100644
index 502b835..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/compare_method.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/composite_change.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/composite_change.gif
deleted file mode 100644
index 661a2cf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/composite_change.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_change.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_change.gif
deleted file mode 100644
index 09d776f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_change.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_delete_import.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_delete_import.gif
deleted file mode 100644
index 118f677..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_delete_import.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_move.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_move.gif
deleted file mode 100644
index 80b1146..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_move.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_rename.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_rename.gif
deleted file mode 100644
index 09d776f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/correction_rename.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cp_order_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cp_order_obj.gif
deleted file mode 100644
index 98ec3b3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cp_order_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cu_change.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cu_change.gif
deleted file mode 100644
index 02fad7f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cu_change.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cu_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cu_obj.gif
deleted file mode 100644
index aba55e9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/cu_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_logical_package_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_logical_package_obj.gif
deleted file mode 100644
index d0f64fc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_logical_package_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_pack_fldr_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_pack_fldr_obj.gif
deleted file mode 100644
index adc730f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_pack_fldr_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_pack_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_pack_obj.gif
deleted file mode 100644
index 8067752..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/empty_pack_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/envvar_nonexist_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/envvar_nonexist_obj.gif
deleted file mode 100644
index 19cf3f3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/envvar_nonexist_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/envvar_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/envvar_obj.gif
deleted file mode 100644
index d079ebb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/envvar_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/error_gray_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/error_gray_obj.gif
deleted file mode 100644
index 4d6ff1f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/error_gray_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/error_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/error_obj.gif
deleted file mode 100644
index b04020b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/error_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/fatalerror_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/fatalerror_obj.gif
deleted file mode 100644
index d85b98b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/fatalerror_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_default_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_default_obj.gif
deleted file mode 100644
index 51e02b3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_private_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_private_obj.gif
deleted file mode 100644
index 0e29242..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_private_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_protected_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_protected_obj.gif
deleted file mode 100644
index 222116b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_protected_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_public_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_public_obj.gif
deleted file mode 100644
index 630b286..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/field_public_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/file_change.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/file_change.gif
deleted file mode 100644
index df822a9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/file_change.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/file_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/file_obj.gif
deleted file mode 100644
index 6b86d07..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/file_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/html_tag_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/html_tag_obj.gif
deleted file mode 100644
index f10ccee..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/html_tag_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/imp_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/imp_obj.gif
deleted file mode 100644
index dea2e92..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/imp_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/impc_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/impc_obj.gif
deleted file mode 100644
index e5b8675..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/impc_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/info_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/info_obj.gif
deleted file mode 100644
index 26c7477..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/info_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_default_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_default_obj.gif
deleted file mode 100644
index 5f2a62e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_private_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_private_obj.gif
deleted file mode 100644
index dfdcce1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_private_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_protected_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_protected_obj.gif
deleted file mode 100644
index 039d129..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_protected_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_public_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_public_obj.gif
deleted file mode 100644
index 15cfc6d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerclass_public_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_default_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_default_obj.gif
deleted file mode 100644
index 6ce3038..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_private_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_private_obj.gif
deleted file mode 100644
index 447c2b4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_private_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_protected_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_protected_obj.gif
deleted file mode 100644
index 98b6c63..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_protected_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_public_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_public_obj.gif
deleted file mode 100644
index 13c9570..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/innerinterface_public_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/int_default_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/int_default_obj.gif
deleted file mode 100644
index 6ce3038..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/int_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/int_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/int_obj.gif
deleted file mode 100644
index 13c9570..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/int_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/intf_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/intf_obj.gif
deleted file mode 100644
index 85069e1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/intf_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_desc_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_desc_obj.gif
deleted file mode 100644
index 0b99965..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_desc_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_l_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_l_obj.gif
deleted file mode 100644
index 11e04e2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_l_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_lsrc_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_lsrc_obj.gif
deleted file mode 100644
index bb78fff..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_lsrc_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_nonexist_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_nonexist_obj.gif
deleted file mode 100644
index e56ec31..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_nonexist_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_obj.gif
deleted file mode 100644
index 61f34f2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_src_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_src_obj.gif
deleted file mode 100644
index a515124..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jar_src_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/java_model_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/java_model_obj.gif
deleted file mode 100644
index 7b2b633..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/java_model_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jcu_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jcu_obj.gif
deleted file mode 100644
index 4cecec9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jcu_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jcu_resource_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jcu_resource_obj.gif
deleted file mode 100644
index 819ec34..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jcu_resource_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jdoc_tag_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jdoc_tag_obj.gif
deleted file mode 100644
index 4e343b9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jdoc_tag_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jexception_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jexception_obj.gif
deleted file mode 100644
index 4522b44..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jexception_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jexceptiond_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jexceptiond_obj.gif
deleted file mode 100644
index 0e981e3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jexceptiond_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jrtexception_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jrtexception_obj.gif
deleted file mode 100644
index 9f5a027..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jrtexception_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsbook_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsbook_obj.gif
deleted file mode 100644
index a162c17..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsbook_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsbook_run_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsbook_run_obj.gif
deleted file mode 100644
index 5bbd272..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsbook_run_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsearch_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsearch_obj.gif
deleted file mode 100644
index ee75bdb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/jsearch_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/library_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/library_obj.gif
deleted file mode 100644
index f966fc3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/library_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/localvariable_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/localvariable_obj.gif
deleted file mode 100644
index bf0a368..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/localvariable_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/logical_package_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/logical_package_obj.gif
deleted file mode 100644
index 7656618..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/logical_package_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methdef_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methdef_obj.gif
deleted file mode 100644
index fde860a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methdef_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpri_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpri_obj.gif
deleted file mode 100644
index 96f464d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpri_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpro_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpro_obj.gif
deleted file mode 100644
index d524944..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpro_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpub_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpub_obj.gif
deleted file mode 100644
index b512915..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/methpub_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/never_translate.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/never_translate.gif
deleted file mode 100644
index d20d298..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/never_translate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/nls_search_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/nls_search_obj.gif
deleted file mode 100644
index 4d1bda1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/nls_search_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_match.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_match.gif
deleted file mode 100644
index 6e8e08d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_match.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_read.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_read.gif
deleted file mode 100644
index 704e3c4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_read.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_write.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_write.gif
deleted file mode 100644
index b834948..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/occ_write.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/package_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/package_obj.gif
deleted file mode 100644
index 64622ef..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/package_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packagefolder_nonexist_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packagefolder_nonexist_obj.gif
deleted file mode 100644
index db9749b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packagefolder_nonexist_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packagefolder_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packagefolder_obj.gif
deleted file mode 100644
index 387781b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packagefolder_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packd_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packd_obj.gif
deleted file mode 100644
index 3aa2efa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/packd_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/prjct_nonexist_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/prjct_nonexist_obj.gif
deleted file mode 100644
index 5fce4d6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/prjct_nonexist_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_error_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_error_obj.gif
deleted file mode 100644
index d6427e8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_error_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_obj.gif
deleted file mode 100644
index c2a47b6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_warning_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_warning_obj.gif
deleted file mode 100644
index b34d85f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/quickfix_warning_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/search_decl_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/search_decl_obj.gif
deleted file mode 100644
index 3eddefd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/search_decl_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/search_ref_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/search_ref_obj.gif
deleted file mode 100644
index 1b0c43b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/search_ref_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/skip.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/skip.gif
deleted file mode 100644
index 5d50ae2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/skip.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/template_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/template_obj.gif
deleted file mode 100644
index 65c2632..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/template_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/text_edit.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/text_edit.gif
deleted file mode 100644
index c639f65..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/text_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/translate.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/translate.gif
deleted file mode 100644
index 00da14e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/translate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/warning_gray_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/warning_gray_obj.gif
deleted file mode 100644
index 834556f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/warning_gray_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/warning_obj.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/warning_obj.gif
deleted file mode 100644
index cf8d571..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/obj16/warning_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/abstract_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/abstract_co.gif
deleted file mode 100644
index 3e8c061..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/abstract_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/constr_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/constr_ovr.gif
deleted file mode 100644
index 3bfa12b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/constr_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/error_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/error_co.gif
deleted file mode 100644
index 8612eaf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/error_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/final_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/final_co.gif
deleted file mode 100644
index d734b3d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/final_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/focus_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/focus_ovr.gif
deleted file mode 100644
index e96d53b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/focus_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/implm_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/implm_co.gif
deleted file mode 100644
index 16c78d7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/implm_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/java_ovr.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/java_ovr.gif
deleted file mode 100644
index 3d1362f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/java_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/over_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/over_co.gif
deleted file mode 100644
index c5f5d95..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/over_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/run_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/run_co.gif
deleted file mode 100644
index e179837..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/run_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/static_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/static_co.gif
deleted file mode 100644
index 08438a5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/static_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/synch_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/synch_co.gif
deleted file mode 100644
index ff0ddb8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/synch_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/warning_co.gif b/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/warning_co.gif
deleted file mode 100644
index 3af228c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.ui/ovr16/warning_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-1.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-1.gif
deleted file mode 100644
index 0400caf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-10.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-10.gif
deleted file mode 100644
index 482ef07..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-10.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-11.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-11.gif
deleted file mode 100644
index d057ff8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-11.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-12.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-12.gif
deleted file mode 100644
index 417b38a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-12.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-13.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-13.gif
deleted file mode 100644
index 5c43389..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-13.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-13a.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-13a.gif
deleted file mode 100644
index 118cd83..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-13a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-14.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-14.gif
deleted file mode 100644
index 6d90336..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-14.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-15.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-15.gif
deleted file mode 100644
index e25efbd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-15.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-15a.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-15a.gif
deleted file mode 100644
index 1739448..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-15a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-16.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-16.gif
deleted file mode 100644
index 19f5dbc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-16.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17.gif
deleted file mode 100644
index b813c52..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17a.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17a.gif
deleted file mode 100644
index 2e5fafa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17b.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17b.gif
deleted file mode 100644
index ef4cfd8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17b.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17c.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17c.gif
deleted file mode 100644
index 7c45d08..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17c.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17c1.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17c1.gif
deleted file mode 100644
index 91a5a2c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17c1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17c2.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17c2.gif
deleted file mode 100644
index 22d8e9f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17c2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17d.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17d.gif
deleted file mode 100644
index 6ecd513..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17d.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17e.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17e.gif
deleted file mode 100644
index 0b3cd9a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17e.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-17f.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-17f.gif
deleted file mode 100644
index 4326d4e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-17f.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-18.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-18.gif
deleted file mode 100644
index 77f9f5a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-18.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-19.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-19.gif
deleted file mode 100644
index db9ab89..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-19.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-2.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-2.gif
deleted file mode 100644
index f0e9603..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-20.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-20.gif
deleted file mode 100644
index 3ce012e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-20.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-21.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-21.gif
deleted file mode 100644
index fc972e0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-21.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-22.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-22.gif
deleted file mode 100644
index 21a555c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-22.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-23.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-23.gif
deleted file mode 100644
index 212328e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-23.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-24.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-24.gif
deleted file mode 100644
index b3b0cf6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-24.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-25.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-25.gif
deleted file mode 100644
index 81be235..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-25.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-26.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-26.gif
deleted file mode 100644
index b5ef8b5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-26.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-27.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-27.gif
deleted file mode 100644
index 3a85cb1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-27.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-28.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-28.gif
deleted file mode 100644
index 15a6cc4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-28.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-29.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-29.gif
deleted file mode 100644
index ad5c0db..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-29.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-3.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-3.gif
deleted file mode 100644
index b898d4f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-30.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-30.gif
deleted file mode 100644
index 8b9ee41..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-30.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-31.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-31.gif
deleted file mode 100644
index 0ca1c15..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-31.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-32.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-32.gif
deleted file mode 100644
index 9db902a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-33.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-33.gif
deleted file mode 100644
index d39289e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-33.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-33a.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-33a.gif
deleted file mode 100644
index c62c096..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-33a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-33b.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-33b.gif
deleted file mode 100644
index b9121b4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-33b.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-34.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-34.gif
deleted file mode 100644
index 6b0ba95..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-34.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-35.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-35.gif
deleted file mode 100644
index eeb5633..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-35.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-36.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-36.gif
deleted file mode 100644
index 95a4626..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-36.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-37.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-37.gif
deleted file mode 100644
index b73afae..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-37.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-37a.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-37a.gif
deleted file mode 100644
index 26aef9e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-37a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-37b.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-37b.gif
deleted file mode 100644
index dbd829b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-37b.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-38.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-38.gif
deleted file mode 100644
index a1ea79b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-38.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-39.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-39.gif
deleted file mode 100644
index 21c32d2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-39.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-4.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-4.gif
deleted file mode 100644
index 015332c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-40.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-40.gif
deleted file mode 100644
index 616ecd7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-40.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-41.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-41.gif
deleted file mode 100644
index 7243a2f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-41.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-42.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-42.gif
deleted file mode 100644
index a3a0f73..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-42.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-43.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-43.gif
deleted file mode 100644
index 4f4f52c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-43.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-43a.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-43a.gif
deleted file mode 100644
index d5d063f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-43a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-43b.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-43b.gif
deleted file mode 100644
index ab8cbb6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-43b.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-43c.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-43c.gif
deleted file mode 100644
index b65c081..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-43c.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-43d.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-43d.gif
deleted file mode 100644
index 8aa64a2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-43d.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-43e.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-43e.gif
deleted file mode 100644
index 6b1f821..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-43e.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-43f.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-43f.gif
deleted file mode 100644
index 82f5707..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-43f.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-44.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-44.gif
deleted file mode 100644
index fd9ce4d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-44.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-45.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-45.gif
deleted file mode 100644
index 5fe07c5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-45.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-46.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-46.gif
deleted file mode 100644
index 76a0267..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-46.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-47.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-47.gif
deleted file mode 100644
index 0e30bbe..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-47.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-48.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-48.gif
deleted file mode 100644
index 6df6d1e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-48.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-49.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-49.gif
deleted file mode 100644
index b45db23..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-49.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-5.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-5.gif
deleted file mode 100644
index 2159dae..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-50.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-50.gif
deleted file mode 100644
index 62795e1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-50.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-52.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-52.gif
deleted file mode 100644
index 63f8eb6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-52.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-53.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-53.gif
deleted file mode 100644
index 1e62b30..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-53.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-54.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-54.gif
deleted file mode 100644
index e2ede6b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-54.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-55.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-55.gif
deleted file mode 100644
index 9d20b62..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-55.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-56.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-56.gif
deleted file mode 100644
index 385fbfd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-56.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-58.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-58.gif
deleted file mode 100644
index 66acd54..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-58.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-59.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-59.gif
deleted file mode 100644
index 04ecbf5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-59.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-6.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-6.gif
deleted file mode 100644
index 72b9ee1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-60.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-60.gif
deleted file mode 100644
index 544b7aa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-60.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-61.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-61.gif
deleted file mode 100644
index e1ebf4b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-61.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-62.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-62.gif
deleted file mode 100644
index 6c1e65e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-62.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-63.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-63.gif
deleted file mode 100644
index e250cd0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-63.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-64.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-64.gif
deleted file mode 100644
index 09f033b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-64.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-65.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-65.gif
deleted file mode 100644
index 5210801..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-65.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-66.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-66.gif
deleted file mode 100644
index 7f98b86..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-66.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-67.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-67.gif
deleted file mode 100644
index 3cc3fd6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-67.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-68.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-68.gif
deleted file mode 100644
index 60f18a0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-68.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-69.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-69.gif
deleted file mode 100644
index ee2f7bc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-69.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-7.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-7.gif
deleted file mode 100644
index f27c214..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-70.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-70.gif
deleted file mode 100644
index d756aee..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-70.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-71.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-71.gif
deleted file mode 100644
index 8eb8983..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-71.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-72.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-72.gif
deleted file mode 100644
index 0eb07fc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-72.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-74.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-74.gif
deleted file mode 100644
index 860416f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-74.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-75.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-75.gif
deleted file mode 100644
index e6d8395..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-75.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-76.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-76.gif
deleted file mode 100644
index 16b8831..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-76.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-77.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-77.gif
deleted file mode 100644
index 6ee529a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-77.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-78.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-78.gif
deleted file mode 100644
index c5b601f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-78.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-79.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-79.gif
deleted file mode 100644
index 1e55d4b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-79.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-8.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-8.gif
deleted file mode 100644
index 3d20f0a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-80.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-80.gif
deleted file mode 100644
index 77f7852..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-80.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-9.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-9.gif
deleted file mode 100644
index f16d5f2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-9.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout.gif
deleted file mode 100644
index 6431db9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout1.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout1.gif
deleted file mode 100644
index 4cab889..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout2.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout2.gif
deleted file mode 100644
index 57ff386..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout3.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout3.gif
deleted file mode 100644
index b2e0681..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-DetectingExistingLayout3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources1.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources1.gif
deleted file mode 100644
index ea087ec..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources2.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources2.gif
deleted file mode 100644
index 301b7fd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources3.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources3.gif
deleted file mode 100644
index 1cd76d6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources4.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources4.gif
deleted file mode 100644
index 7e23543..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources5.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources5.gif
deleted file mode 100644
index 3a4f00a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources6.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources6.gif
deleted file mode 100644
index 356c63a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-OrganizeSources6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout1.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout1.gif
deleted file mode 100644
index b9d6bcb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout11.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout11.gif
deleted file mode 100644
index 4efe1a9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout11.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout12.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout12.gif
deleted file mode 100644
index 136bb35..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout12.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout13.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout13.gif
deleted file mode 100644
index b3f522f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout13.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout14.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout14.gif
deleted file mode 100644
index e55cf69..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout14.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout2.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout2.gif
deleted file mode 100644
index bafdeb6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout21.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout21.gif
deleted file mode 100644
index ef00bf3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout21.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout22.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout22.gif
deleted file mode 100644
index 559e3c6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout22.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout23.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout23.gif
deleted file mode 100644
index 1edc43f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout23.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout3.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout3.gif
deleted file mode 100644
index 5a8fa61..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout31.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout31.gif
deleted file mode 100644
index 2a54f6a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout31.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout32.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout32.gif
deleted file mode 100644
index 8e79b0e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout33.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout33.gif
deleted file mode 100644
index ade8bf6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout33.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout34.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout34.gif
deleted file mode 100644
index 498e730..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout34.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout4.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout4.gif
deleted file mode 100644
index 2944d94..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout41.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout41.gif
deleted file mode 100644
index 8766dfb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout41.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout42.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout42.gif
deleted file mode 100644
index a2fbb75..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout42.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout43.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout43.gif
deleted file mode 100644
index 75f374f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout43.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout44.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout44.gif
deleted file mode 100644
index db100b9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout44.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout45.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout45.gif
deleted file mode 100644
index 64a2df8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-WorkingWithExistingLayout45.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-browsing1.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-browsing1.gif
deleted file mode 100644
index 13563d4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-browsing1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-jun1.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-jun1.gif
deleted file mode 100644
index 4e0c787..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-jun1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-jun2.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-jun2.gif
deleted file mode 100644
index db639db..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-jun2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-jun3.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-jun3.gif
deleted file mode 100644
index b89b1d4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-jun3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-jun4.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-jun4.gif
deleted file mode 100644
index 158b1ee..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-jun4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-jun5.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-jun5.gif
deleted file mode 100644
index c33c0fa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-jun5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-jun6.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-jun6.gif
deleted file mode 100644
index b135ad5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-jun6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp10.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-snjp10.gif
deleted file mode 100644
index b55c180..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp10.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp5.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-snjp5.gif
deleted file mode 100644
index 6ab19ff..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp6.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-snjp6.gif
deleted file mode 100644
index 3312895..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp7.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-snjp7.gif
deleted file mode 100644
index 68fbcc4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp8.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-snjp8.gif
deleted file mode 100644
index 10b47a3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp9.gif b/bundles/org.eclipse.jdt.doc.user/images/qs-snjp9.gif
deleted file mode 100644
index b7d3520..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/qs-snjp9.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-1.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-1.gif
deleted file mode 100644
index a918646..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-2.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-2.gif
deleted file mode 100644
index 6afa5b3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-20.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-20.gif
deleted file mode 100644
index 95d53e4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-20.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-21.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-21.gif
deleted file mode 100644
index f9fb6b0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-21.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-22.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-22.gif
deleted file mode 100644
index 2b645a8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-22.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-23.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-23.gif
deleted file mode 100644
index d47876f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-23.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-24.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-24.gif
deleted file mode 100644
index e5b8675..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-24.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-25.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-25.gif
deleted file mode 100644
index 2088548..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-25.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-26.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-26.gif
deleted file mode 100644
index 457893c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-26.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-27.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-27.gif
deleted file mode 100644
index d47876f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-27.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-28.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-28.gif
deleted file mode 100644
index f1d5fb3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-28.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-29.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-29.gif
deleted file mode 100644
index 2c069ab..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-29.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-3.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-3.gif
deleted file mode 100644
index 6a48e2e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-30.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-30.gif
deleted file mode 100644
index cc1378e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-30.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-31.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-31.gif
deleted file mode 100644
index 5e24fb9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-31.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-32.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-32.gif
deleted file mode 100644
index 6081cba..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-33.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-33.gif
deleted file mode 100644
index 64622ef..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-33.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-4.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-4.gif
deleted file mode 100644
index fcb9357..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-44.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-44.gif
deleted file mode 100644
index 130a70e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-44.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-5.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-5.gif
deleted file mode 100644
index 2590cf5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-6.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-6.gif
deleted file mode 100644
index 31a4b75..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-7.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-7.gif
deleted file mode 100644
index 8174dad..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/ref-8.gif b/bundles/org.eclipse.jdt.doc.user/images/ref-8.gif
deleted file mode 100644
index 3052a80..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/ref-8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/runlast_co.gif b/bundles/org.eclipse.jdt.doc.user/images/runlast_co.gif
deleted file mode 100644
index 6b0c23d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/runlast_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/stepbystep_co.gif b/bundles/org.eclipse.jdt.doc.user/images/stepbystep_co.gif
deleted file mode 100644
index 7bea8b8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/stepbystep_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-160a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-160a.gif
deleted file mode 100644
index 11b3e33..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-160a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-163a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-163a.gif
deleted file mode 100644
index aebf0aa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-163a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-166a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-166a.gif
deleted file mode 100644
index 9e26ca7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-166a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-166b.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-166b.gif
deleted file mode 100644
index 46aa109..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-166b.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-168a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-168a.gif
deleted file mode 100644
index f5e5666..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-168a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-170a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-170a.gif
deleted file mode 100644
index ef90b23..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-170a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-189a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-189a.gif
deleted file mode 100644
index 3daa4d3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-189a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-190a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-190a.gif
deleted file mode 100644
index 1c9f764..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-190a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-199a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-199a.gif
deleted file mode 100644
index c3da75b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-199a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-208a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-208a.gif
deleted file mode 100644
index 0644291..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-208a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-208b.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-208b.gif
deleted file mode 100644
index e917142..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-208b.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-209a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-209a.gif
deleted file mode 100644
index 87d780e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-209a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-27.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-27.gif
deleted file mode 100644
index 8601454..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-27.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-28.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-28.gif
deleted file mode 100644
index 62791da..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-28.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-29.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-29.gif
deleted file mode 100644
index 6750c2b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-29.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-30.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-30.gif
deleted file mode 100644
index 0bf7129..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-30.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-31.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-31.gif
deleted file mode 100644
index 8b89fb3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-31.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-32.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-32.gif
deleted file mode 100644
index e9f2dd5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-46.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-46.gif
deleted file mode 100644
index a809f09..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-46.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks-8.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks-8.gif
deleted file mode 100644
index 8281e34..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks-8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks_200a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks_200a.gif
deleted file mode 100644
index a955ba1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks_200a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks_201a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks_201a.gif
deleted file mode 100644
index 9655baf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks_201a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/tasks_205a.gif b/bundles/org.eclipse.jdt.doc.user/images/tasks_205a.gif
deleted file mode 100644
index 4635232..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/tasks_205a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/terminate_all_co.gif b/bundles/org.eclipse.jdt.doc.user/images/terminate_all_co.gif
deleted file mode 100644
index ec56a24..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/terminate_all_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/images/terminate_rem_co.gif b/bundles/org.eclipse.jdt.doc.user/images/terminate_rem_co.gif
deleted file mode 100644
index bd53994..0000000
--- a/bundles/org.eclipse.jdt.doc.user/images/terminate_rem_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/ngibmcpy.gif b/bundles/org.eclipse.jdt.doc.user/ngibmcpy.gif
deleted file mode 100644
index 61cef48..0000000
--- a/bundles/org.eclipse.jdt.doc.user/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/ngibmcpy2003.gif b/bundles/org.eclipse.jdt.doc.user/ngibmcpy2003.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.jdt.doc.user/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/plugin.properties b/bundles/org.eclipse.jdt.doc.user/plugin.properties
deleted file mode 100644
index 70618d0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Eclipse Java Development User Guide
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.jdt.doc.user/plugin.xml b/bundles/org.eclipse.jdt.doc.user/plugin.xml
deleted file mode 100644
index 6561b2c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/plugin.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!-- ===================================================== -->
-<!-- Declare the documentation for the JDT User Guide  -->
-<!-- We will declare only one infoset (book)               -->
-<!-- ===================================================== -->
-
-<plugin
-   name = "%pluginName"
-   id = "org.eclipse.jdt.doc.user"
-   version = "3.0.0"
-   provider-name = "%providerName">
-
-
-<!-- ============================================================================= -->
-<!-- Define primary TOC                                                            -->
-<!-- ============================================================================= -->
-
-   <extension point="org.eclipse.help.toc"> 
-       <toc file="toc.xml" primary="true" />
-   </extension>
-
-
-<!-- ============================================================================= -->
-<!-- Define TOCs                                                                   -->
-<!-- ============================================================================= -->
-
-   <extension point="org.eclipse.help.toc">
-       <toc file="topics_GettingStarted.xml" />
-	   <toc file="topics_TipsTricks.xml" />
-       <toc file="topics_Concepts.xml" />
-       <toc file="topics_Tasks.xml" />
-       <toc file="topics_Reference.xml" />
-   </extension>
-
-
-<!-- ============================================================================= -->
-<!-- F1 context files                                                              -->
-<!-- ============================================================================= -->
-
-	<extension point="org.eclipse.help.contexts"> 
-		<contexts file="contexts_JDT.xml" plugin="org.eclipse.jdt.ui"/> 
-	</extension>
-
-	<extension point="org.eclipse.help.contexts">
-		<contexts file="contexts_Debugger.xml" plugin="org.eclipse.debug.ui"/> 
-	</extension>
-	
-	<extension point="org.eclipse.help.contexts">
-		<contexts file="contexts_JDT_Debugger.xml" plugin="org.eclipse.jdt.debug.ui"/> 
-	</extension>
-
-	<extension point="org.eclipse.help.contexts">
-		<contexts file="contexts_JDT_JUnit.xml" plugin="org.eclipse.jdt.junit"/> 
-	</extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkAccess.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkAccess.htm
deleted file mode 100644
index e7efd1e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkAccess.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Access
-    </title>
-  </head>
-  <body>
-    <h1>
-      Access
-    </h1>
-    <p>
-      When this option is turned on, the watchpoint causes execution to suspend on access of a field.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-    	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-    	<a href="../tasks/tasks-130.htm">Launching a Java program</a> <br>
-		<a href="../tasks/tasks-126.htm">Running and debugging</a> 
-	 </p>
-	 <p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-    </a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkEntry.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkEntry.htm
deleted file mode 100644
index 348316c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkEntry.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Entry
-    </title>
-  </head>
-  <body>
-    <h1>
-      Entry
-    </h1>
-    <p>
-      When this option is turned on, the breakpoint causes execution to suspend on entry of the method.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-145.htm">Setting method breakpoints</a>
-	</p>
-	<p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkExit.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkExit.htm
deleted file mode 100644
index bee392a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkExit.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Exit
-    </title>
-  </head>
-  <body>
-    <h1>
-      Exit
-    </h1>
-    <p>
-      When this option is turned on, the breakpoint causes execution to suspend on exit of the method.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-145.htm">Setting method breakpoints</a>
-	</p>
-	<p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkMod.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkMod.htm
deleted file mode 100644
index c2a8134..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkMod.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Modification
-    </title>
-  </head>
-  <body>
-    <h1>
-      Modification
-    </h1>
-    <p>
-      When this option is turned on, the watchpoint causes execution to suspend on modification of a field.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-	</p>
-	<p>
-       <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-    	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-	    <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-     <a href="../tasks/tasks-126.htm">Running and debugging</a> 
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-    </a>
-	<p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkProperties.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkProperties.htm
deleted file mode 100644
index 6081935..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkProperties.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Properties
-    </title>
-  </head>
-  <body>
-    <h1>
-      Properties
-    </h1>
-    <p>
-      This action realizes a breakpoint properties dialog for the currently selected breakpoint
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-       <a href="../tasks/tasks-146.htm">Applying hit counts</a><br>
-       <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-       <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-       <a href="../tasks/tasks-144b.htm">Enabling and disabling breakpoints</a><br>
-       <a href="../tasks/tasks-144c.htm">Managing conditional breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-    </a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkSelectAll.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkSelectAll.htm
deleted file mode 100644
index 22a9f06..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkSelectAll.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Select All
-    </title>
-  </head>
-  <body>
-    <h1>
-      Select all
-    </h1>
-    <p>
-      This command selects all breakpoints in the <strong>Breakpoints view</strong>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkShowSupported.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkShowSupported.htm
deleted file mode 100644
index 317baa3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkShowSupported.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show Supported Breakpoints
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show supported breakpoints
-    </h1>
-    
-<p> When this action is toggled on, the breakpoints view only displays breakpoints 
-  applicable to the selected debug target. </p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-    </a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/brkSuspendPolicy.htm b/bundles/org.eclipse.jdt.doc.user/reference/brkSuspendPolicy.htm
deleted file mode 100644
index 50db0dd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/brkSuspendPolicy.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Suspend Policy
-    </title>
-  </head>
-  <body>
-    <h1>
-      Suspend policy
-    </h1>
-    
-<p> This action toggles the suspend policy of a breakpoint between suspending 
-  all of the threads in the VM and the thread in which the breakpoint occurred.<br>
-      <br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-    	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-    	<a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-      	<a href="../tasks/tasks-126.htm">Running and debugging</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-    </a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-11.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-11.htm
deleted file mode 100644
index dbe7a0c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-11.htm
+++ /dev/null
@@ -1,165 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Debug Preferences
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Debug preferences
-    </h1>
-    <p>
-      The following preferences can be set using the Debug Preferences page.
-    </p>
-    <br>
-     &nbsp; <br>
-     <br>
-     
-    
-<table border="1" cellspacing="0">
-  <caption> <br>
-  </caption>
-  <tbody> 
-  <tr> 
-    <th> 
-      <p> Option </p>
-    </th>
-    <th> 
-      <p> Description </p>
-    </th>
-    <th> 
-      <p> Default </p>
-    </th>
-  </tr>
-  <tr> 
-    <td align="left" valign="top"> 
-      <p> Build (if required) before launching </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> If the workspace requires building, an incremental build will be performed 
-        prior to launching an application. </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> On </p>
-    </td>
-  </tr>
-  <tr> 
-    <td align="left" valign="top"> 
-      <p> Remove terminated launches when a new launch is created </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> When an application is launched, all terminated applications in the 
-        Debug view are automatically cleared. </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> Off </p>
-    </td>
-  </tr>
-  <tr> 
-    <td align="left" valign="top"> 
-      <p> Reuse editor when displaying source code </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> The debugger displays source code in an editor when stepping through 
-        an application. When this option is on, the debugger will reuse the editor 
-        that it opened to display source from different source files. This prevents 
-        the debugger from opening an excessive number of editors. When this option 
-        is off, the debugger will open a new editor for each source file that 
-        needs to be displayed. </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> On </p>
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">Activate the workbench when when a breakpoint 
-      is hit</td>
-    <td align="left" valign="top">This option brings attention to the debugger 
-      when a breakpoint is encountered, by activating the associated window. The 
-      visual result varies from platform to platform. For example, on Windows, 
-      the associated window's title bar will flash.</td>
-    <td align="left" valign="top">On</td>
-  </tr>
-  <tr> 
-    <td align="left" valign="top"> 
-      <p> Save dirty editors before launching </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> This option controls whether the user will be prompted to save any dirty 
-        editors before an application is launched. The allowable settings are: 
-      </p>
-      <ul>
-        <li> Never - when this option is selected, the user is never prompted 
-          to save dirty editors, and editors are not automatically saved. </li>
-        <li> Prompt - when this option is selected, the user is prompted to save 
-          dirty editors before launching an application. </li>
-        <li> Auto-save - when this option is selected, any dirty editors are automatically 
-          saved before launching (and the user is not prompted). </li>
-      </ul>
-    </td>
-    <td align="left" valign="top"> 
-      <p> Prompt </p>
-    </td>
-  </tr>
-  <tr> 
-    <td align="left" valign="top"> 
-      <p> Default perspective for Debug </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> This setting controls the perspective that is switched to when an application 
-        is launched in debug mode. By default, each launch configuration inherits 
-        this setting. However, a launch configuration may also override this setting 
-        by specifying an explicit perspective in the Common tab. </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> Debug perspective </p>
-    </td>
-  </tr>
-  <tr> 
-    <td align="left" valign="top"> 
-      <p> Default perspective for Run </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> This setting controls the perspective that is switched to when an application 
-        is launched in run mode. By default, each launch configuration inherits 
-        this setting. However, a launch configuration may also override this setting 
-        by specifying an explicit perspective in the Common tab. </p>
-    </td>
-    <td align="left" valign="top"> 
-      <p> No perspective change </p>
-    </td>
-  </tr>
-  </tbody> 
-</table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/clocdbug.htm">Local Debugging</a><br>
-       <a href="../concepts/cremdbug.htm">Remote Debugging</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related Tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-9.htm">Changing Debugger Launch Options</a><br>
-       <a href="../tasks/tasks-133.htm">Preparing to Debug</a><br>
-       <a href="../tasks/tasks-126.htm">Running and Debugging</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="ref-131.htm">Java search tab</a><br>
-       <a href="ref-menu-search.htm">Search menu</a>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-115.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-115.htm
deleted file mode 100644
index 6fafce0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-115.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Refactoring
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Refactoring
-    </h1>
-    <p>
-      The goal of refactoring support is to allow for improving your code without changing its behaviors. When you refactor your code, your goal is to make a system-wide coding
-      change without affecting the semantic behavior of the system. The JDT automatically manages refactorings for you.
-    </p>
-    <p>
-      The workbench optionally allows you to preview all the impending results of a refactoring action before you finally choose to carry it out.
-    </p>
-    <p>
-      Refactoring commands are available from the context menus in many views and editors and the <a href="ref-menu-refactor.htm">Refactor menu</a> in the menu bar.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="ref-117.htm">Refactoring wizard</a><br>
-       <a href="ref-23.htm">Refactoring preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-117.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-117.htm
deleted file mode 100644
index 853c74b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-117.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Refactoring wizard
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Refactoring Dialog
-    </h1>
-    <p>
-      A dialog based user interface guides you through the steps necessary to execute a selected refactoring.
-      Depending on the complexity of the refactoring, either a wizard or a simple dialog is used to gather information that is required for the refactoring.
-    </p>
-    <p>
-      <ul>
-        <li><a href="ref-117a.htm">Wizard based user interface</a> (used for example, for <em>Pull Up</em>)</li>
-        <li><a href="ref-117b.htm">Dialog based user interface</a> (used for example, for <em>Rename</em>)</li>
-      </ul>
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="ref-156.htm">Icons</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-117a.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-117a.htm
deleted file mode 100644
index cd1680e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-117a.htm
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Refactoring wizard
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Wizard
-    based refactoring user interface</h1>
-    <p>
-      A wizard based user interface guides you through the steps necessary to execute a refactoring.
-      A refactoring wizard consists of 1 - n parameter pages, a preview page and a problem page.</p><h2>
-      Parameter pages
-    </h2>
-    <p>
-      These pages gather information that is required for the refactoring. For example, the 
-      <em>Pull Up</em> refactoring uses two pages to gather the methods and fields to be pulled 
-      up and to gather the obsolete methods and fields in subclasses that can be deleted. The
-      user can navigate the parameter pages using the <strong>Next &gt;</strong> and <strong>
-      &lt; Back</strong> button.
-    </p>
-    <p>
-      After you have provided the required information, you can click&nbsp;<strong><strong>Finish</strong></strong> to carry out the refactoring without previewing
-      the results. If you want to preview the changes press <strong>Next &gt;</strong>.</p>
-    <h2>
-      Preview page
-    </h2>
-    <p>
-      The JDT allows you to preview the results of a refactoring action before you execute it.
-    </p>
-    <p>
-      The preview page consists of two parts:
-    </p>
-    <ul>
-      <li>
-        A tree at the top containing all Java elements affected by the refactoring. Each top-level node in the tree represents one compilation unit.
-      </li>
-      <li>
-        A compare viewer at the bottom. The left side of the compare viewer shows the original, the right side displays the refactored source.
-      </li>
-    </ul>
-    <h2>
-      Problem page
-    </h2>
-    <p>
-      The Refactoring Problem page indicates if there are suspected, potential, or definite problems with the refactoring action you are attempting.
-    </p>
-    <p>
-      Four types of problems are possible:
-    </p>
-    <dl>
-      <dt>
-        Information
-      </dt>
-      <dd>
-        A problem described as Information will not affect the refactoring in any way, nor will it negatively affect the code in the workbench. You can most likely ignore this type of
-        problem.
-      </dd>
-      <dt>
-        Warnings
-      </dt>
-      <dd>
-        Warnings attempt to predict compiler warnings. This type of problem most likely will not negatively affect the code in your workbench.
-      </dd>
-      <dt>
-        Errors
-      </dt>
-      <dd>
-        A problem described as an Error is very likely to cause compiler errors or change your workbench code semantically. You can choose to continue with the refactoring in spite of these
-        errors, although it is not recommended.
-      </dd>
-      <dt>
-        Stop problems
-      </dt>
-      <dd>
-        This type of problem prevents the refactoring from taking place. For example, if you select a comment and choose the Extract Method command from it, the
-        workbench will issue a stop problem on the refactoring attempt because you cannot extract a comment.
-	  </dd>
-    </dl>
-    <p>
-      If there aren't any stop problems then the refactoring can be carried out by pressing the <strong>
-      Finish</strong> button. To preview the results of the refactoring action, press the
-      <strong>Next &gt;</strong> button.
-    </p>
-    <p>
-      In the <a href="ref-23.htm">Refactoring preference</a> page (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Java</strong> &gt;
-      <strong>Refactoring</strong>), you can select the default level for problems to be displayed when you are carrying out a refactoring.
-    </p>
-    
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../tasks/tasks-84.htm">Previewing refactoring changes</a><br>
-       <a href="../tasks/tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="../tasks/tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="ref-23.htm">Refactoring preferences</a>
-      <a href="ref-156.htm">Icons</a><br>
-    </p>
-    <p>
-	  <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-117b.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-117b.htm
deleted file mode 100644
index 495384b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-117b.htm
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Refactoring wizard
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Dialog
-    based refactoring user interface</h1>
-    <p>
-      A dialog based user interface guides you through the steps necessary to execute a selected 
-      refactoring. A dialog based refactoring user interface consists of a short first dialog 
-      gathering information that is required to execute the refactoring, a separate problem dialog 
-      that pops up if any errors are detected and a preview dialog to preview the results of a 
-      refactoring.</p>
-    <h2>
-      Input dialog
-    </h2>
-    <p>
-      This dialog gathers information that is required for the refactoring. For example, for a rename 
-      refactoring you will enter the new name for the Java element. You can either press <strong>OK
-      </strong> to execute the refactoring or <strong>Preview  &gt;</strong> to preview the result
-      of the refactoring.
-    </p>
-    <h2>
-      Preview dialog
-    </h2>
-    <p>
-      The JDT allows you to preview the results of a refactoring action before you execute it.
-    </p>
-    <p>
-      The preview dialog consists of two parts:
-    </p>
-    <ul>
-      <li>
-        A tree at the top containing all Java elements affected by the refactoring. Each top-level 
-        node in the tree represents one compilation unit.
-      </li>
-      <li>
-        A compare viewer at the bottom. The left side of the compare viewer shows the original, 
-        the right side displays the refactored source.
-      </li>
-    </ul>
-    <h2>
-      Problem dialog
-    </h2>
-    <p>
-      The problem dialog indicates if there are suspected, potential, or definite problems with the 
-      refactoring action you are attempting.
-    </p>
-    <p>
-      Four types of problems are possible:
-    </p>
-    <dl>
-      <dt>
-        Information
-      </dt>
-      <dd>
-        A problem described as Information will not affect the refactoring in any way, nor will it negatively affect the code in the workbench. You can most likely ignore this type of
-        problem.
-      </dd>
-      <dt>
-        Warnings
-      </dt>
-      <dd>
-        Warnings attempt to predict compiler warnings. This type of problem most likely will not negatively affect the code in your workbench.
-      </dd>
-      <dt>
-        Errors
-      </dt>
-      <dd>
-        A problem described as an Error is very likely to cause compiler errors or change your workbench code semantically. You can choose to continue with the refactoring in spite of these
-        errors, although it is not recommended.
-      </dd>
-      <dt>
-        Stop problems
-      </dt>
-      <dd>
-        This type of problem prevents the refactoring from taking place. For example, if you select a comment and choose the Extract Method command from it, the
-        workbench will issue a stop problem on the refactoring attempt because you cannot extract a comment.
-      </dd>
-    </dl>
-    <p>
-      If there aren't any stop problems then the refactoring can be carried out by pressing the <strong>
-      OK</strong> button. To preview the results of the refactoring action, press the
-      <strong>Continue</strong> button.
-    </p>
-    <p>
-      In the <a href="ref-23.htm">Refactoring preference</a> page (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Java</strong> &gt;
-      <strong>Refactoring</strong>), you can select the default level for problems to be displayed when you are carrying out a refactoring.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-82.htm">Refactoring without preview</a><br>
-       <a href="../tasks/tasks-83.htm">Refactoring with preview</a><br>
-       <a href="../tasks/tasks-84.htm">Previewing refactoring changes</a><br>
-       <a href="../tasks/tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="../tasks/tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="ref-156.htm">Icons</a><br>
-       &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-12.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-12.htm
deleted file mode 100644
index 03e5945..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-12.htm
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Console Preferences
-    </title>
-  </head>
-  <body>
-    <h1>
-      Console preferences
-    </h1>
-    <p>
-      The following preferences can be set using the Console Preferences page. The console displays output from running applications, and allows keyboard input to be read by
-      running applications.
-    </p>
-    
-<table border="1" cellspacing="0">
-  <thead> 
-  <tr> 
-    <th rowspan="1" colspan="1"> 
-      <p> Option </p>
-    </th>
-    <th rowspan="1" colspan="1"> 
-      <p> Description </p>
-    </th>
-    <th rowspan="1" colspan="1"> 
-      <p> Default </p>
-    </th>
-  </tr>
-  </thead> <tbody> 
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Fixed width console </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> This preference controls whether the console has a fixed character width. 
-        When on, a maximum character width must also be specified. Some applications 
-        write long lines to the console which require horizontal scrolling to 
-        read. This can be avoided by setting the console to use a fixed width, 
-        automatically wrapping console output. </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Off </p>
-    </td>
-  </tr>
-  <tr> 
-    <td colspan="1" valign="top" align="left">Limit console output</td>
-    <td colspan="1" valign="top" align="left">This preference limits the number 
-      of characters buffered in the console. When on, a maximum buffer size must 
-      also be specified. When console output surpasses the specified maximum, 
-      output is truncated from the beginning of the buffer.</td>
-    <td colspan="1" valign="top" align="left">On</td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Standard Out Text Color </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> This preference controls the color of text written to the standard output 
-        stream by an application. </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Blue </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Standard Error Text Color </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> This preference controls the color of text written to the standard error 
-        stream by an application. </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Red </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Standard In Text Color </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> This preference controls the color of text typed into the console to 
-        be read by an application. </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Green </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Show when program writes to standard out </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Often, the Console view is hidden or inactive when you begin running 
-        or debugging a program that creates output. If this option is turned on, 
-        then when you run a program that produces output, the Console view is 
-        automatically opened (if necessary) and is made the active view. </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> On </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Show when program writes to standard error </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Often, the Console view is hidden or inactive when you begin running 
-        or debugging a program that creates error output. If this option is turned 
-        on, then when you run a program that produces error output, the Console 
-        view is automatically opened (if necessary) and is made the active view. 
-      </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> On </p>
-    </td>
-  </tr>
-  </tbody> 
-</table>
-    <p>
-      You can also click the <strong>Change</strong> button to set the font for the Console.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-121.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-121.htm
deleted file mode 100644
index 4f8e638..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-121.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>New Java Project wizard</title>
-  </head>
-
-  <body>
-    <h1>New Java Project Wizard</h1>
-
-    <p>This wizard helps you create a new Java project in the workbench.</p>
-
-    <h2>Project name page</h2>
-
-    <table border="1" cellspacing="0" summary="Project name page">
-      <tr>
-        <th>Option</th>
-
-        <th>Description</th>
-
-        <th>Default</th>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Project name</td>
-
-        <td align="left" valign="top">Type a name for the new project.</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-
-      <tr>
-        <td>Use default</td>
-
-        <td>If checked, the default workbench location is used as location for new project</td>
-
-        <td>Selected</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Directory</td>
-
-        <td align="left" valign="top">The location of the project contents. If the Use default checkbox is unchecked, the location can be set to an existing directory on the file
-        system. The new project will contain files and folders existing at the given directory.</td>
-
-        <td align="left" valign="top">&lt;workbench directory&gt;</td>
-      </tr>
-    </table>
-
-    <h2>Java settings page</h2>
-
-    <p>You can skip this page by pressing <span class="control">Finish</span> on the first page. The project will then be configured with default options specified in the <a href=
-    "ref-preferences-new-project.htm">New Project preference page</a>. Otherwise press <span class="control">Next</span> to configure the <a href="ref-123.htm">Java Build
-    Path</a>.<br>
-     If the project location on the first page has been set to an existing directory, you will be prompted if the New Java Project wizard should try to detect existing classpath
-    settings. To do this the project will be created early on the invocation of the <span class="control">Next</span> button, and the <span class="control">Back</span> will be
-    disabled on the Java Settings page.</p>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-3.htm">Java projects</a><br>
-    </p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-     <a href="../reference/ref-menu-file.htm">File actions</a><br>
-     <a href="../reference/ref-preferences-new-project.htm">New Project preferences</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-123.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-123.htm
deleted file mode 100644
index 6208b0b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-123.htm
+++ /dev/null
@@ -1,253 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Java Build Path page</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Java Build Path page</h1>
-
-    <p>The options in this page indicate the build path settings for a Java project.<br>
-     You can reach this page through</p>
-
-    <ul>
-      <li>the <a href="ref-121.htm">New Java Project wizard</a></li>
-
-      <li>the Java Build Path property page (Project &gt; Properties &gt; Java Build Path) from the context menu on a created project or the <a href="ref-menu-file.htm">File
-      menu</a></li>
-    </ul>
-
-    <p>The build class path is a list of paths visible to the compiler when building the project.</p>
-
-    <h2>Source tab</h2>
-
-    <p>Source folders are the root of packages containing .java files. The compiler will translate the contained files to .class files that will be written to the output folder. The output folder is defined per project except if a source folder specifies an own output folder.  Each source folder can define an exclusion filter to specify which resources inside the folder should not be visible to the compiler.<br>
-Resources existing in source folders are also copied to the output folder unless the setting in the <a href="ref-preferences-compiler.htm">Compiler preference
-    page</a> (Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path) specifies that the resource is filtered.</p>
-
-<table border="1" cellspacing="0" summary="Source folder options" width="600">
-	<caption>Source folder options<br>
-	</caption>
-
-	<tbody>
-		<tr>
-			<th>Option</th>
-
-			<th>Description</th>
-		</tr>
-
-		<tr>
-			<td align="left" valign="top" width="20%">Add Folder</td>
-
-			<td align="left" valign="top">Creates a new folder to contain source</td>
-		</tr>
-
-		<tr>
-			<td align="left" valign="top">Edit</td>
-
-			<td align="left" valign="top">Allows to modify the currently selected
-			source folder or source folder attribute.</td>
-		</tr>
-
-		<tr>
-			<td>Remove</td>
-
-			<td>Removes the selected folders from the class path. This does not
-			delete the folders nor their contents.</td>
-		</tr>
-		<tr>
-			<td>Allow output folder per source folder</td>
-			<td>Shows/Hides the 'output folder' attribute of the source folders</td>
-		</tr>
-	</tbody>
-</table>
-
-<p>Source folder have the following attributes (Source Folders have the following attributes (presented as source folder children nodes):</p>
-<table border="1" cellspacing="0" summary="Source folder options" width="600">
-	<caption>Source folder attributes<br>
-	</caption>
-
-	<tbody>
-		<tr>
-			<th>Attribute</th>
-
-			<th>Description</th>
-		</tr>
-
-		<tr>
-			<td align="left" valign="top" width="20%">Exclusion filter</td>
-
-			<td align="left" valign="top">Selects which resources are not visible to the compiler</td>
-		</tr>
-
-		<tr>
-			<td align="left" valign="top">Output folder</td>
-
-			<td align="left" valign="top">Only available when <b>Allow output
-			folder per source folder</b> is checked. Defines a source folder specific output location. If not set the project's default output folder is used.</td>
-		</tr>
-	</tbody>
-</table>
-
-
-<dl>
-      <dt>The source folders offered as default by the New Java Project wizard are configured in the <a href="ref-preferences-new-project.htm">New Project preference
-      page</a> (Window &gt; Preferences &gt; Java &gt; New Project).</dt>
-    </dl>
-
-    <h2>Projects tab</h2>
-
-    <p>In the <b>Required projects on the build path</b> list, you can add project dependencies by selecting other workbench
-    projects to add to the build path for this new project. The <b>Select All</b> and <b>Deselect All</b> buttons can be used to add or remove all other projects to or from the build path.</p>
-
-    <p>Adding a required project indirectly adds all its classpath entries marked as 'exported'. Setting a classpath entry as exported is done in the Order and Export tab.</p>
-
-    <p>The projects selected here are automatically added to the referenced projects list. The referenced project list is used to determine the build order. A project is always
-    build after all its referenced projects are built.</p>
-
-    <h2>Libraries tab</h2>
-
-    <p>On this page, you can add libraries to the build path. You can add:</p>
-
-    <ul>
-      <li>Workbench-managed (internal) JAR files</li>
-
-      <li>File system (external) JAR files</li>
-
-      <li>Folders containing CLASS files</li>
-	<li>Predefined libraries like the JRE System Library</li>
-</ul>
-
-    <p>JAR files can also be added indirectly as class path variables.</p>
-
-    <p>By default, the library list contains an entry representing the Java runtime library.  This entry points to the JRE
-    selected as the default JRE. The default JRE is configured in the <a href="ref-18.htm">Installed JREs preferences page</a> (Window &gt; Preferences &gt; Java &gt; Installed
-    JREs)</p>
-
-    <table border="1" cellspacing="0" summary="libraries tab options" width="600">
-      <caption>
-        Libraries tab options<br>
-      </caption>
-
-      <tbody>
-        <tr>
-          <th width="20%">Option</th>
-
-          <th>Description</th>
-        </tr>
-
-        <tr>
-          <td align="left" valign="top">Add JARs</td>
-
-          <td align="left" valign="top">Allows you to navigate the workbench hierarchy and select JAR files to add to the build path.</td>
-        </tr>
-
-        <tr>
-          <td align="left" valign="top">Add External JARs</td>
-
-          <td align="left" valign="top">Allows you to navigate the file system (outside the workbench) and select JAR files to add to the build path.</td>
-        </tr>
-
-        <tr>
-          <td align="left" valign="top">Add Variable</td>
-
-          <td align="left" valign="top">Allows you to add classpath variables to the build path. Classpath variables are an indirection to JARs with the benefit of avoiding local
-          file system paths in a classpath. This is needed when projects are shared in a team.<br>
-           Variables can be created and edited in the <a href="ref-15.htm">Classpath Variable preference page</a> (Window &gt; Preferences &gt; Java &gt; Classpath Variables)</td>
-        </tr>
-
-        <tr>
-          <td>Add Library</td>
-
-          <td>Allows to add a predefined libraries like the JRE System Library. Such libraries can stand for an arbitrary number of entries (visible as children node of the library node)</td>
-        </tr>
-
-        <tr>
-          <td>Add Class Folder</td>
-
-          <td>Allows to navigate the workbench hierarchy and select a class folder for the build path. The selection dialog also allows you to create a new folder.</td>
-        </tr>
-
-        <tr>
-          <td align="left" valign="top">Edit</td>
-
-          <td align="left" valign="top">Allows you to modify the currently selected library entry or entry attribute</td>
-        </tr>
-
-        <tr>
-          <td align="left" valign="top">Remove</td>
-
-          <td align="left" valign="top">Removes the selected element from the build path. This does not delete the resource.</td>
-        </tr>
-      </tbody>
-    </table>
-
-    <p>&nbsp;Libraries have the following attributes (presented as library entry children nodes):</p>
-
-<table border="1" cellspacing="0" summary="Source folder options"
-	width="600">
-	<caption>Library entry attributes<br>
-	</caption>
-
-	<tbody>
-		<tr>
-			<th>Attribute</th>
-
-			<th>Description</th>
-		</tr>
-
-		<tr>
-			<td align="left" valign="top" width="20%">Javadoc location</td>
-
-			<td align="left" valign="top">Specifies where the library's Javadoc documentation can be found. If specified you can use <b>Shift+F2</b> on an element of this library to open its documentation.</td>
-		</tr>
-
-		<tr>
-			<td align="left" valign="top">Source attachment</td>
-
-			<td align="left" valign="top">Specifies where the library's source can be found.</td>
-		</tr>
-	</tbody>
-</table>
-
-
-
-
-<h2>Order and Export tab</h2>
-
-    <p>In the <b>Build class path order</b> list, you can click the <b>Up</b> and <b>Down</b> buttons to move the selected path entry up or down in the build path order for this new project.</p>
-
-    <p>Checked list entries are marked as exported. Exported entries are visible to projects that require the project. Use the <b>Select
-    All</b> and <b>Deselect All</b> to change the checked state of all entries. Source folders are always exported,
-    and can not be deselected.</p>
-
-    <h2>Default output folder</h2>
-
-    <p>At the bottom of this page, the <b>Default output folder</b> field allows you to enter a path to a folder path where the compilation output for this
-    project will reside. The default output is used for source folders that do not specify an own output folder. Use <b>Browse</b> to select an existing location from the current project. The default for this field is configured in the <a href=
-    "ref-preferences-new-project.htm">New Project preference page</a> (Window &gt; Preferences &gt; Java &gt; New Project).</p>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/cbuildcp.htm">Build classpath</a><br>
-     <a href="../concepts/cclsspthv.htm">Classpath variables</a><br>
-    </p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-     <a href="../tasks/tasks-116.htm">Attaching source to variables</a><br>
-     <a href="../tasks/tasks-115.htm">Attaching source to a JAR file</a><br>
-     <a href="../reference/ref-152.htm">Frequently asked questions on JDT</a><br>
-     <a href="../reference/ref-15.htm">Classpath Variables preferences</a><br>
-     <a href="../reference/ref-properties-compiler.htm">Java Compiler properties</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-124.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-124.htm
deleted file mode 100644
index 80536c7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-124.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Source Attachments</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Source attachments</h1>
-
-    <p>To browse the source of a type contained in library you can attach a source archive or source folder to this library. The editor will then show the source instead of a the decompiled code.
-    Having the source attachment set the debugger can offer source level stepping in this type.</p>
-
-    <p>The Source Attachment dialog can be reached in several ways:</p>
-
-    <ul>
-      <li>Select a JAR in the Package Explorer and choose <b>Properties &gt; Java Source Attachment</b> from the context
-	menu or the <a href="ref-menu-project.htm">Project menu</a></li>
-
-      <li>Open the Java Build Path page of a project (<b>Projects &gt;
-	Properties &gt; Java Build Path</b>). On the <b>Libraries</b> page  expand the library's  node and select the <b>Source
-	attachment</b> attribute and press <b>Edit</b></li>
-	<li><span class="control"></span>Open an editor on a class file. If the
-	source attachment has not already been configured for this JAR, the
-	editor contains a button <span class="control">Attach Source</span></li>
-</ul>
-
-    <p>Depending of how a JAR was contributed to the classpath, you can see different types of Source attachment dialogs:</p>
-
-    
-
-    <h2>JAR</h2>
-
-<p>In the <span class="control">Location path</span> field, enter the path of an archive or a folder containing the source. Use either the <b>Workspace</b>, <b>External
-File</b> or the <b>External Folder</b> button to browse for a location.</p>
-
-<h2>Variable</h2>
-
-<p>In the <span class="control">Location Variable Path</span> field
-enter a <i>variable path</i> that points to the source attachment's location.
-A variable path has as first segment a variable (which will resolve to a
-folder or file), the rest is an optional path extension (e.g.<em>MYVARIABLE/src.jar</em>
-). Use either the <span class="control">Variable</span> button to select
-an existing variable and the <span class="control">Extension</span>
-button to select the extension path. The <span class="control">Extension</span>
-button is only enabled when the variable can be extended (resolves to a
-folder)</p>
-
-<p><var>JRE_SRC</var> is a reserved variable that points to a JRE selected in the <a href="ref-19.htm">Installed JREs preference page</a> (<span
-    class="control">Window &gt; Preferences &gt; Java &gt; Installed JREs</span>). Go to this preference page to configure the source attachment for the JRE's library..</p>
-
-    
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/cbuildcp.htm">Build classpath</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-     <a href="../tasks/tasks-116.htm">Attaching source to variables</a><br>
-     <a href="../tasks/tasks-115.htm">Attaching source to a JAR file</a><br>
-     <a href="../reference/ref-19.htm">Installed JREs preferences</a><br>
-     <a href="../reference/ref-123.htm">Java Build Path properties</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-125.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-125.htm
deleted file mode 100644
index c19e93c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-125.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>New Java Package wizard</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>New Java Package Wizard</h1>
-
-    <p>This wizard helps you create a folder corresponding to a new Java package. The corresponding folder of the default package always exists, and therefore doesn't have to be
-    created.</p>
-
-    <table border="1" cellspacing="0" summary="Java Package Options">
-      <caption>
-        Java Package Options<br>
-      </caption>
-
-      <tr>
-        <th>Option</th>
-
-        <th>Description</th>
-
-        <th>Default</th>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Source folder</td>
-
-        <td align="left" valign="top">Type or browse to select a container (project or folder) for the new package.</td>
-
-        <td align="left" valign="top">The source folder of the element that was selected when the wizard has been started.</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Name</td>
-
-        <td align="left" valign="top">Type a name for the new package</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-    </table>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-15.htm">Creating a new Java package</a><br>
-     <a href="../reference/ref-menu-file.htm">File actions</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-126.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-126.htm
deleted file mode 100644
index e17d414..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-126.htm
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>New Java Class wizard</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>New Java Class Wizard</h1>
-
-    <p>This wizard helps you to create a new Java class in in a Java project.</p>
-
-    <table border="1" cellspacing="0">
-      <caption>
-        Java Class Options<br>
-      </caption>
-
-      <tr>
-        <th>Option</th>
-
-        <th>Description</th>
-
-        <th>Default</th>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Source folder</td>
-
-        <td align="left" valign="top">Enter a source folder for the new class. Either type a valid source folder path or click <span class="control">Browse</span> to select a
-        source folder via a dialog.</td>
-
-        <td align="left" valign="top">The source folder of the element that was selected when the wizard has been started.</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Package</td>
-
-        <td align="left" valign="top">Enter a package to contain the new class. You can select either this option or the Enclosing Type option, below. Either type a valid package
-        name or click <span class="control">Browse</span> to select a package via a dialog.</td>
-
-        <td align="left" valign="top">The package of the element that was selected when the wizard has been started.</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Enclosing type</td>
-
-        <td align="left" valign="top">Select this option to choose a type in which to enclose the new class. You can select either this option or the Package option, above. Either
-        type a valid name in the field or click <span class="control">Browse</span> to select a type via a dialog.</td>
-
-        <td align="left" valign="top">The type or the primary type of the compilation unit that was selected when the wizard has been started or &lt;blank&gt;</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Name</td>
-
-        <td align="left" valign="top">Type a name for the new class.</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Modifiers</td>
-
-        <td align="left" valign="top">
-          <p>Select one or more access modifiers for the new class.</p>
-
-          <ul>
-            <li>Either public, default, private, or protected (private and protected are only available if you specify an enclosing type)</li>
-
-            <li>abstract</li>
-
-            <li>final</li>
-
-            <li>static (only available if you specify an enclosing type)</li>
-          </ul>
-        </td>
-
-        <td align="left" valign="top">public</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Superclass</td>
-
-        <td align="left" valign="top">Type or click <span class="control">Browse</span> to select a superclass for this class.</td>
-
-        <td align="left" valign="top">The type (not the compilation unit!) that was selected when the wizard has been started or &lt;java.lang.Object&gt;</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Interfaces</td>
-
-        <td align="left" valign="top">Click <span class="control">Add</span> to choose interfaces that the new class implements.</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Which method stubs would you like to create?</td>
-
-        <td align="left" valign="top">
-          <p>Choose the method stubs to create in this class:</p>
-
-          <ul>
-            <li>public static void main(String [] args): Adds a main method stub to the new class.</li>
-
-            <li>Constructors from superclass: Copies the constructors from the new class's superclass and adds these stubs to the new class.</li>
-
-            <li>Inherited abstract methods: Adds to the new class stubs of any abstract methods from superclasses or methods of interfaces that need to be implemented.</li>
-          </ul>
-        </td>
-
-        <td align="left" valign="top">Inherited abstract methods enabled</td>
-      </tr>
-    </table>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-17.htm">Creating a new Java class</a><br>
-     <a href="../reference/ref-menu-file.htm">File actions</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-127.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-127.htm
deleted file mode 100644
index e4dc7d7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-127.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>New Java Interface wizard</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>New Java Interface Wizard</h1>
-
-    <p>This wizard helps you to create a new Java interface in a Java project.</p>
-
-    <table border="1" cellspacing="0">
-      <caption>
-        Java Interface Options<br>
-      </caption>
-
-      <tr>
-        <th>Option</th>
-
-        <th>Description</th>
-
-        <th>Default</th>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Source folder</td>
-
-        <td align="left" valign="top">Enter a source folder for the new interface. Either type a valid source folder path or click <span class="control">Browse</span> to select a
-        source folder via a dialog.</td>
-
-        <td align="left" valign="top">The source folder of the element that was selected when the wizard has been started.</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Package</td>
-
-        <td align="left" valign="top">Enter a package to contain the new interface. You can select either this option or the Enclosing Type option, below. Either type a valid
-        package name or click <span class="control">Browse</span> to select a package via a dialog.</td>
-
-        <td align="left" valign="top">The package of the element that was selected when the wizard has been started.</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Enclosing type</td>
-
-        <td align="left" valign="top">Select this option to choose a type in which to enclose the new interface. You can select either this option or the Package option, above.
-        Either type a valid name in the field or click <span class="control">Browse</span> to select a type via a dialog.</td>
-
-        <td align="left" valign="top">The type or the primary type of the compilation unit that was selected when the wizard has been started or &lt;blank&gt;</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Name</td>
-
-        <td align="left" valign="top">Type a name for the new interface.</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Modifiers</td>
-
-        <td align="left" valign="top">
-          <p>Select one or more access modifiers for the new interface.</p>
-
-          <ul>
-            <li>Either public, default, private, or protected (private and protected are only available if you specify an enclosing type)</li>
-
-            <li>static (only available if you specify an enclosing type)</li>
-          </ul>
-        </td>
-
-        <td align="left" valign="top">public</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Extended interfaces</td>
-
-        <td align="left" valign="top">Click Add to choose interfaces that the new interface extends.</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-    </table>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-21.htm">Creating a new Java interface</a><br>
-     <a href="../reference/ref-menu-file.htm">File actions</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-128.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-128.htm
deleted file mode 100644
index 6c87921..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-128.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>New Source Folder wizard</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>New Source Folder Wizard</h1>
-
-    <p>This wizard helps you to create a new source folder to a Java project.</p>
-
-    <p>Note that a new source folder can not be nested in existing source folders or in an output folder. You can choose to add exclusion filters to the other nesting source folders or the
-    wizard will suggest to replace the nesting classpath entry with the new created entry. The wizard will also suggest to change the output location.</p>
-
-    <table border="1" cellspacing="0" summary="New Source Folder Options">
-      <caption>
-        New Source Folder Options</caption>
-
-      <tr>
-        <th>Option</th>
-
-        <th>Description</th>
-
-        <th>Default</th>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Project name</td>
-
-        <td align="left" valign="top">Enter a project to contain the new source folder. Either type a valid project name or click <span class="control">Browse</span> to select a
-        project via a dialog.</td>
-
-        <td align="left" valign="top">The project of the element that was selected when the wizard has been started.</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Folder name</td>
-
-        <td align="left" valign="top">Type a path for the new source folder. The path is relative to the selected project.</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-      
-      <tr>
-        <td align="left" valign="top">Update exclusion filter in other source folders to solve nesting</td>
-
-        <td align="left" valign="top">Select to modify existing source folder's exclusion filters to solve nesting problems. For example if there is an existing source folder <i>src</i> and a folder <i>src/inner</i> is created, the source folder <i>src</i> will be updated to have a exclusion filter <i>src/inner</i>.</td>
-
-        <td align="left" valign="top">Off</td>
-      </tr>
-    </table>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-3.htm">Java projects</a><br>
-    </p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-11.htm">Creating Java elements</a><br>
-     <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-     <a href="../reference/ref-menu-file.htm">File actions</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-129.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-129.htm
deleted file mode 100644
index 56ba299..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-129.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>New Java Scrapbook Page wizard</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>New Java Scrapbook Page Wizard</h1>
-
-    <p>This wizard helps you to create a new Java scrapbook page in a project.</p>
-
-    <table border="1" cellspacing="0" summary="Create Java Scrapbook Page Options">
-      <caption>
-        Create Java Scrapbook Page Options
-      </caption>
-
-      <tr>
-        <th>Option</th>
-
-        <th>Description</th>
-
-        <th>Default</th>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">Enter or select the parent folder</td>
-
-        <td align="left" valign="top">Type or browse the hierarchy below to select a container (project or folder) for the scrapbook page.</td>
-
-        <td align="left" valign="top">The container of the selected element</td>
-      </tr>
-
-      <tr>
-        <td align="left" valign="top">File name</td>
-
-        <td align="left" valign="top">Type a name for the new file. The "<em>.jpage</em> " extension is appended automatically when not added already.</td>
-
-        <td align="left" valign="top">&lt;blank&gt;</td>
-      </tr>
-    </table>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-menu-file.htm">File actions</a><br>
-     <a href="../reference/ref-34.htm">Java Scrapbook page</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-13.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-13.htm
deleted file mode 100644
index d8f6d88..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-13.htm
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Java
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Java
-    </h1>
-    <p>
-      On this page, indicate your preferences for the general Java settings.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5">
-      <caption>
-        Java Preferences
-      </caption>
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-      
-        <tr>
-          <td valign="top">
-            Update Java views
-          </td>
-          <td valign="top">
-            <dl>
-              <dt>
-                <strong>On save only:</strong>
-              </dt>
-              <dd>
-                  Java elements displayed in all views except the Outline view are not updated until a compilation unit is saved. The views reflect the current state of the
-                  workspace, without consideration of working copies.
-               </dd>
-              <dt>
-                <strong>While editing:</strong>
-              </dt>
-              <dd>
-                  Java elements displayed in all views always reflect the current state of the workspace, including working copies.
-              </dd>
-            </dl>
-          </td>
-          <td valign="top">
-            While editing
-          </td>
-        </tr>
-      
-         <tr>
-          <td valign="top">
-            Action on double click in the Package Explorer
-          </td>
-          <td valign="top">
-            <dl>
-              <dt>
-                <strong>Go into the selected element:</strong>
-              </dt>
-              <dd>
-                When you double click a container, a <strong>Go Into</strong> command is executed.
-                <br>
-                See <strong>Go Into</strong> from the <a href="ref-menu-navigate.htm">Navigate</a> menu.
-              </dd>
-              <dt>
-                <strong>Expand the selected element:</strong>
-              </dt>
-              <dd>
-                 When you double click a container, it is expanded and its children are revealed.
-              </dd>
-            </dl>
-          </td>
-          <td valign="top">
-            Expand the selected element
-          </td>
-        </tr>
-      
-        <tr>
-          <td valign="top">
-            When opening a Type Hierarchy
-          </td>
-          <td valign="top">
-            <dl>
-              <dt>
-                <strong>Open a new Type Hierarchy Perspective</strong>
-              </dt>
-              <dd>
-                  Opens a new Type Hierarchy perspective whenever a Type Hierarchy view is opened.
-              </dd>
-              <dt>
-                <strong>Show the Type Hierarchy View in the current perspective</strong>
-              </dt>
-              <dd>
-                  The Type Hierarchy view is displayed in the current perspective.
-              </dd>
-            </dl>
-             <em>Note: On the Workbench preferences page, you can choose whether new perspectives open in a new window, in the current window, or as a replacement for the current
-            perspective.</em>
-          </td>
-          <td valign="top">
-            Show the Type Hierarchy View in the current perspective
-          </td>
-        </tr>
-
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-45.htm">Using the Package Explorer</a>
-    </p>
-    <p>
-      <a href="../tasks/tasks-37.htm">Using the Hierarchy view</a><br>
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer view</a> <a href="../reference/ref-type-hierarchy.htm">Hierarchy view</a>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-131.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-131.htm
deleted file mode 100644
index 3a23e96..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-131.htm
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Java search tab</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Java search tab</h1>
-
-    <p>This tab in the Search dialog allows you to search for Java elements.</p>
-
-    <h2>Search string</h2>
-
-    <p>In this field, type the expression for which you wish to search, using the wildcard characters mentioned in the dialog as needed. This field is initialized based on the
-    current selection.</p>
-
-    <ul>
-      <li>From the drop-down menu, you can choose to repeat (or modify) a recent search.<br>
-       Select the <span class="control">Case sensitive</span> field to force a case aware search. <span class="control">Case sensitive</span> is enabled when a custom search
-      string is entered.</li>
-    </ul>
-
-    <h2 class="Head">Search For</h2>
-
-    <p>Select to search for one of the following kinds of elements:</p>
-
-    <ul>
-      <li>Type</li>
-
-      <li>Method</li>
-
-      <li>Package</li>
-
-      <li>Constructor</li>
-
-      <li>Field</li>
-    </ul>
-
-    <h2 class="Head">Limit To</h2>
-
-    <p>Select to limit your search results to one of the following kinds of matches:</p>
-
-    <ul>
-      <li>Declarations</li>
-
-      <li>Implementors (available only when searching for types)</li>
-
-      <li>References</li>
-
-      <li>All Occurrences</li>
-
-      <li>Read Access (available only when searching for fields)</li>
-
-      <li>Write Access (available only when searching for fields)</li>
-    </ul>
-
-    <h2 class="Item">Scope</h2>
-
-    <p>Select to limit your search results to one of the following scope</p>
-
-    <ul>
-      <li>Workspace</li>
-
-      <li>Selected Resources</li>
-
-      <li>Working Set</li>
-    </ul>
-
-    <p>Press <span class="control">Choose</span> to select or create a working set.</p>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-8.htm">Java search</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../tasks/tasks-103.htm">Conducting a Java search using the search dialog</a><br>
-     <a href="../tasks/tasks-104.htm">Conducting a Java search using pop-up menus</a><br>
-     <a href="../reference/ref-menu-search.htm">Search</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-143.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-143.htm
deleted file mode 100644
index 1bf980c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-143.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Content/code assist
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Content/code assist
-    </h1>
-    <p>
-      If activated from a valid line of code in an editor, this command opens a scrollable list of available code completions. Some tips for using code assist:
-    </p>
-    <ul>
-      <li>
-        If you select and then hover over a selected line in the content assist list, you can view Javadoc information for that line.
-      </li>
-      <li>
-        You can use the mouse or the keyboard (Up Arrow, Down Arrow, Page Up, Page Down, Home, End, Enter) to navigate and select lines in the list.
-      </li>
-      <li>
-        Clicking or pressing Enter on a selected line in the list inserts the selection into the editor.
-      </li>
-      <li>
-        You can access specialized content assist features inside Javadoc comments.
-      </li>
-    </ul>
-    <img src="../images/ref-44.gif" width=417 height=216 alt="An editor showing a content assist and Javadoc window at the caret position"> <br>
-     Configure the behaviour of the content assist in the <a href="ref-21.htm">Java &gt; Editor preference page</a> (Code Assist tab).<br>
-     <br>
-     <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-1.htm">Java Development Tools (JDT)</a>
-    </p>
-    <br>
-     <br>
-     
-    <p>
-      <br>
-       <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-65.htm">Using content/code assist<br>
-      <br>
-      </a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-edit.htm">Edit menu</a><br>
-       <a href="../reference/ref-21.htm">Java editor preferences</a><br>
-       <a href="../reference/ref-preferences-templates.htm">Templates preferences</a><br>
-    </p>
-    <p>
-      <br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-148.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-148.htm
deleted file mode 100644
index 3cc5e26..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-148.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Open type
-    </title>
-  </head>
-  <body>
-    <h1>
-      Open type
-    </h1>
-    <p>
-      This command allows you to browse the workbench for a type to open in an editor or type hierarchy
-    </p>
-    <ul>
-      <li>
-        <strong>Choose a type</strong>: In this field, type the first few characters of the type you want to open in an editor. You can use wildcards as needed
-        (&quot;<em>*</em>&quot; for a string, &quot;<em>?</em>&quot; for a character, &quot;&lt;&quot; of end of line).
-      </li>
-      <li>
-        <strong>Matching types</strong>: This list displays matches for the expression you type in the <strong>Choose a type</strong> field.
-      </li>
-      <li>
-        <strong>Qualifier</strong>: This list displays the packages or declaring types that contain the selected matching type.
-      </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-76.htm">Opening an editor on a type</a><br>
-    </p>
-    <p>
-      <a href="../reference/ref-menu-navigate.htm">Navigate actions</a>
-    </p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-149.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-149.htm
deleted file mode 100644
index 0907492..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-149.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Debug menu
-    </title>
-  </head>
-  <body>
-    <h1>
-      Run menu
-    </h1>
-    <p>
-      This menu allows you to manage the running of an application in the workbench. Some menu items are only active if the Debug view is the active view.<br>
-      <br>
-       <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <a href="ref-4.htm">Run and debug actions</a> 
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-15.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-15.htm
deleted file mode 100644
index bcfd40b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-15.htm
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Classpath variables
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Classpath variables
-    </h1>
-    <h2 class="Head">
-      Configurable variables
-    </h2>
-    <p>
-      Classpath variables can be used in a Java Build Path to avoid a reference to the local file system. Using a variable entry, the classpath only contains a variable and the
-      build path can be shared in a team. The value of the variable has to be configured on this page.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <caption>
-        &nbsp;<br>
-      </caption>
-      <tr>
-        <th>
-          <p>
-            Command
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>New...</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Adds a new variable entry. In the resulting dialog, specify a name and path for the new variable. You can click the&nbsp;<strong>File</strong>
-            or&nbsp;<strong>Folder</strong> buttons to browse for a path.&nbsp;
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Edit...</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Allows you to edit the selected variable entry. In the resulting dialog, edit the name and/or path for the variable. You can click the&nbsp;<strong>File</strong>
-            or&nbsp;<strong>Folder</strong> buttons to browse for a path.&nbsp;
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Remove</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Removes the selected variable entry.&nbsp;
-          </p>
-        </td>
-      </tr>
-    </table>
-    <h2 class="Head">
-      Reserved class path variables
-    </h2>
-    <p>
-      Certain class path variables are set internally and can not be changed in the Classpath variables preferences:
-    </p>
-    <ul>
-      <li>
-        JRE_LIB: The archive with the runtime JAR file for the currently used JRE.
-      </li>
-      <li>
-        JRE_SRC: The source archive for the currently used JRE.
-      </li>
-      <li>
-        JRE_SRCROOT: The root path in the source archive for the currently used JRE.
-      </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/cclsspthv.htm">Classpath variables</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-JREs.htm">Working with JREs</a><br>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-114.htm">Adding a variable classpath entry</a><br>
-       <a href="../tasks/tasks-116.htm">Attaching source to a classpath variable</a><br>
-       <a href="../tasks/tasks-117.htm">Defining a classpath variable</a><br>
-       <a href="../tasks/tasks-118.htm">Deleting a classpath variable</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" height="27" width="159">
-    </p>
-    <p>
-      <a href="ref-18.htm">Installed JREs</a>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-150.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-150.htm
deleted file mode 100644
index f231b96..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-150.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Step commands
-    </title>
-  </head>
-  <body>
-    <h1>
-      Step commands
-    </h1>
-    <p>
-      Many of the commands in this menu allow you to step through code being debugged. <a href="ref-51.htm">See Debug View</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-152.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-152.htm
deleted file mode 100644
index bbc319b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-152.htm
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Frequently asked questions on JDT
-    </title>
-  </head>
-  <body>
-    <h1>
-      Frequently asked questions on JDT
-    </h1>
-    <h3>
-      Can I use a Java compiler other than the built-in one (javac for example) with the workbench?
-    </h3>
-    <p>
-      No. The JDT provides a number of sophisticated features including fully automatic incremental recompilation, code snippet evaluation, code assist, type hierarchies, and hot
-      code replace. These features require special support found in the workbench Java compiler (an integral part of the JDT's incremental project builder), but not available
-      in standard Java compilers.
-    </p>
-    <h3>
-      Where do Java packages come from?
-    </h3>
-    <p>
-      A project contains only files and folders. The notion of a Java package is introduced by a Java project's class path (at the UI, the Package Explorer presents the
-      packages as defined by the classpath). <strong>Tip:</strong> If the package structure is not what you expect, check out your class path. The Java search infrastructure only
-      finds declarations for and references from Java elements on the class path.
-    </p>
-    <h3>
-      When do I use an internal vs. an external JAR library file?
-    </h3>
-    <p>
-      An internal resource resides in some project in the workbench and is therefore managed by the workbench; like other resources, these resources can be version managed by the
-      workbench. An external resource is not part of the workbench and can be used only by reference. For example, a JRE is often external and very large, and there is no need to
-      associate it with a VCM system.
-    </p>
-    <h3>
-      When should I use source folders within a Java project?
-    </h3>
-    <p>
-      Each Java project locates its Java source files via one or more source type entries on the project's class path. Use source folders to organize the packages of a large
-      project into useful grouping, or to keep source code separate from other files in the same project. Also, use source folders if you have files (documentation for example)
-      which need not be on the build path.
-    </p>
-    <h3>
-      What are source attachments, How do I define one?
-    </h3>
-    <p>
-      Libraries are stored as JAR files containing binary class files (and perhaps other resources). These binary class files provide signature information for packages, classes,
-      methods, and fields. This information is sufficient to compile or run against, but contains far less information that the original source code. In order to make it easier to
-      browse and debug binary libraries, there is a mechanism for associating a corresponding source JAR (or ZIP) file with a binary JAR file.
-    </p>
-    <h3>
-      Why are all my resources duplicated in the output folder (bin, for example)?
-    </h3>
-    <p>
-      If your Java project is using source folders, then in the course of compiling the source files in the project, the Java compiler copies non-Java resources to the output
-      folder as well so that they will be available on the class path of the running program. To avoid certain resources to be copied to the output location you can set a resource
-      filter in the compiler preferences: <strong>Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path</strong>
-    </p>
-    <h3>
-      How do I prevent having my documentation files from being copied to the project's output folder?
-    </h3>
-    <p>
-      Use source folders and put any resources that you do not want to be copied to the output folder into a separate folder that is not included on the class path.You can also
-      set a resource filter in the compiler preferences:<strong> Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path</strong> to for example *.doc.
-    </p>
-    <h3>
-      How do I create a default package?
-    </h3>
-    <p>
-      You don't have to. Files in the root folder of a source folder or project are considered to be in the default package. In effect, every source folder has the capability
-      of having a fragment of the default package.
-    </p>
-    <h3>
-      What is refactoring?
-    </h3>
-    <p>
-      Refactoring means behavior-preserving program transformations. The JDT supports a number of transformations described in Martin Fowler's book <em>Refactoring: Improving
-      the Design of Existing Code</em>, Addison Wesley 1999.
-    </p>
-    <h3>
-      When do I use code select/code resolve (F3)?
-    </h3>
-    <p>
-      To find out the Java element that corresponds to a source range with the help of the compiler.
-    </p>
-    <h3>
-      Is the Java program information (type hierarchy, declarations, references, for example) produced by the Java builder? Is it still updated when auto-build is off?
-    </h3>
-    <p>
-      The Java program information is independent from the Java builder. It is automatically updated when performing resource changes or Java operations. In particular, all the
-      functionalities offered by the Java tooling (for example, type hierarchies, code assisting, search) will continue to perform accurately when auto-build is off; for example,
-      when doing heavy refactoring which require to turn off the builders, you can still use code assist, which will reflect the latest changes (not yet build). Other than the
-      launching (that is, running and debugging) of programs, the only functionality which requires the Java builder is the evaluation of code snippets.
-    </p>
-    <h3>
-      After reopening a workbench, the first build that happens after editing a Java source file seems to take a long time. Why is that?
-    </h3>
-    <p>
-      The Java incremental project builder saves its internal state to a file when the workbench is closed. On the first build after the project is reopened, the Java incremental
-      project builder will restore its internal state. When this file is large, the user experiences an unusually long build delay.
-    </p>
-    <h3>
-      I can't see a type hierarchy for my class. What can I do?
-    </h3>
-    <p>
-      Check that you have your build class path set up properly. Setting up the proper build class path is an important task when doing Java development. Without the correct build
-      path, you will not be able to compile your code. In addition, you will not be able to search or look at the type hierarchies for Java elements.
-    </p>
-    <h3>
-      How do I turn off &quot;auto compile&quot; and do it manually when I want?
-    </h3>
-    
-<p> Clear the <strong>Window &gt; Preferences &gt; Workbench &gt; Perform build automatically 
-  on resource modification</strong> checkbox. When you want to build, press <kbd>Ctrl+B</kbd>, 
-  or select <strong>Project &gt; Build All</strong> from the menu bar. </p>
-<p><b>Hint</b>: when you turn &quot;auto compile&quot; off and build manually, 
-  you may also want to select the <strong><b>Window &gt;Preferences &gt;</b></strong><b> 
-  Workbench &gt; Save all modified resources automatically prior to manual build</b> checkbox. 
-</p>
-<h3>When I select a method or a field in the Outline view, only the source for 
-  that element is shown in the editor. What do I do to see the source of the whole 
-  file?</h3>
-<p>There is a toolbar button <b>Show Source of Selected Element Only</b> - all 
-  you have to do is un-press it.</p>
-<h3>Can I nest source folders?</h3>
-<p>Yes, you can use exclusion filters to create nested source folders.</p>
-<h3>Can I have separate output folders for each source folder?</h3>
-<p>Yes, select the <b>Allow output folders for source folders</b> checkbox in 
-  the <b>Java Build Path &gt; Source</b> property page of your Java project.</p>
-<h3>Can I have an output or source folder that is located outside of the workspace?</h3>
-<p>Yes, you can create a linked folder that points to the desired location and 
-  use that folder as the source or output folder in your Java project.</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-123.htm">Java Build Path page</a><br>
-       <a href="../reference/ref-155.htm">JDT glossary</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-154.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-154.htm
deleted file mode 100644
index 1bc9e48..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-154.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Extract method errors
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Extract method errors
-    </h1>
-    <p>
-      When you attempt to extract a method, you may get one or more of the following common errors:
-    </p>
-    <ul>
-      <li>
-        <code>Selected block references a local type declared outside the selection</code> A local type declaration is not part of the selection but is referenced by one of the
-        statements selected for extraction. Either extend the selection that it includes the local type declaration or reduce the selection that no reference to the local type
-        declaration is selected.<br>
-      </li>
-      <li>
-        <code>A local type declared in the selected block is referenced outside the selection</code> The selection covers a local type declaration but the type is also referenced
-        outside the selected statements. Either extend the selection that is includes all references to the local type or reduce the selection that the local type declaration
-        isn't selected.<br>
-      </li>
-      <li>
-        <code>Ambiguous return value: selected block contains more than one assignment to local variable</code> More than one assignment to a local variable was found inside the
-        selected block. Either reduce the selection that only one assignment is selected or extend the selection that at least all reference except of one to the local variables
-        are covered by the selection too.<br>
-      </li>
-      <li>
-        <code>Ambiguous return value: expression access to local and return statement selected</code> The selected statement generates more than one return value. This is for
-        example the case if an expression is selected and an expression's argument is modified as well. To remedy this problem extend the selection to cover the read access of
-        the modified argument as well.<br>
-      </li>
-      <li>
-        <code>Selection contains a break statement but the corresponding break target isn't selected</code> To remedy the problem either extend the selection to include the
-        break / continue target or reduce the selection that the break / continue statement isn't covered by the selection.<br>
-      </li>
-      <li>
-        <code>Selection contains a continue statement but the corresponding continue target isn't selected</code> To remedy the problem either extend the selection to include
-        the break / continue target or reduce the selection that the break / continue statement isn't covered by the selection.<br>
-      </li>
-      <li>
-        <code>Selection starts inside a comment</code> Parts of a comment cannot be extracted. Either extend the selection that it covers the whole comment or reduce the selection
-        that the comment isn't covered at all.<br>
-      </li>
-      <li>
-        <code>Selection ends inside a comment</code> Parts of a comment can't be extracted. Either extend the selection that it covers the whole comment or reduce the
-        selection that the comment isn't covered at all.<br>
-      </li>
-      <li>
-        <code>Cannot extract selection that ends in the middle of a statement</code> Adjust selection so 
-        that it fully covers a set of statements or expressions. The users can extend the selection to 
-        a valid range using the <strong>Expand Selection to</strong> in the <a href="ref-menu-edit.htm">Edit menu.</a><br>
-        <a href="ref-menu-edit.htm"></a>
-      </li>
-    </ul>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-87.htm">Extracting a method</a>
-    </p>
-    <p>
-      <a href="../tasks/tasks-176.htm">Using Structured Selection</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="ref-menu-refactor.htm">Refactor Menu</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-155.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-155.htm
deleted file mode 100644
index a09efa3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-155.htm
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      JDT glossary
-    </title>
-  </head>
-  <body>
-    <h1>
-      JDT glossary
-    </h1>
-    <p>
-      <strong>CLASS file</strong>
-    </p>
-    <p>
-      A compiled Java source file.
-    </p>
-    <p>
-      <strong>compilation unit</strong>
-    </p>
-    <p>
-      A Java source file.
-    </p>
-    <p>
-      <strong>field</strong>
-    </p>
-    <p>
-      A field inside a type.
-    </p>
-    <p>
-      <strong>import container</strong>
-    </p>
-    <p>
-      Represents a collection of import declarations. These can be seen in the Outline view.
-    </p>
-    <p>
-      <strong>import declaration</strong>
-    </p>
-    <p>
-      A single package import declaration.
-    </p>
-    <p>
-      <strong>initializer</strong>
-    </p>
-    <p>
-      A static or instance initializer inside a type.
-    </p>
-    <p>
-      <strong>JAR file</strong>
-    </p>
-    <p>
-      JAR (Java archive) files are containers for compiled Java source files. They can be associated with an archive (such as, ZIP, JAR) as a source attachment. The children of
-      JAR files are packages. JAR files can be either compressed or uncompressed.
-    </p>
-    <p>
-      <strong>JAVA elements</strong>
-    </p>
-    <p>
-      Java elements are Java projects, packages, compilation units, class files, types, methods and fields.
-    </p>
-    <strong>JAVA file</strong><br>
-     <br>
-     
-    <p>
-      An editable file that is compiled into a byte code (CLASS) file.
-    </p>
-    <p>
-      <strong>Java projects</strong>
-    </p>
-    <p>
-      Projects which contain compilable Java source code and are the containers for source folders or packages.
-    </p>
-    <p>
-      <strong>JDT</strong>
-    </p>
-    <p>
-      Java development tools. Workbench components that allow you to write, edit, execute, and debug Java code.
-    </p>
-    <p>
-      <strong>JRE</strong>
-    </p>
-    <p>
-      Java runtime environment (for example, J9, JDK, and so on).
-    </p>
-    <p>
-      <strong>method</strong>
-    </p>
-    <p>
-      A method or constructor inside a type.
-    </p>
-    <p>
-      <strong>package declaration</strong>
-    </p>
-    <p>
-      The declaration of a package inside a compilation unit.
-    </p>
-    <p>
-      <strong>packages</strong>
-    </p>
-    <p>
-      A group of types that contain Java compilation units and CLASS files.
-    </p>
-    <p>
-      <strong>refactoring</strong>
-    </p>
-    <p>
-      A comprehensive code editing feature that helps you improve, stabilize, and maintain your Java code. It allows you to make a system-wide coding change without affecting the
-      semantic behavior of the system.
-    </p>
-    <p>
-      <strong>type</strong>
-    </p>
-    <p>
-      A type inside a compilation unit or CLASS file.
-    </p>
-    <p>
-      <strong>source folder</strong>
-    </p>
-    <p>
-      A folder that contains Java packages.
-    </p>
-    <p>
-      <strong>VCM</strong>
-    </p>
-    <p>
-      Version control management. This term refers to the various repository and versioning features in the workbench.
-    </p>
-    <p>
-      <strong>VM</strong>
-    </p>
-    <p>
-      Virtual machine.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-152.htm">Frequently asked questions on JDT</a>
-    </p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-156.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-156.htm
deleted file mode 100644
index 8b373d6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-156.htm
+++ /dev/null
@@ -1,1191 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      JDT icons
-    </title>
-  </head>
-  <body>
-    <h1>
-      JDT icons
-    </h1>
-    <h2>
-      Objects
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jcu_obj.gif" width=16 height=16 alt="Compilation Unit (*.java file)"><br>
-          </td>
-          <td valign="top">
-            Compilation Unit (*.java file)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jcu_resource_obj.gif" width=16 height=16 alt="Files ending with .java"><br>
-          </td>
-          <td valign="top">
-            Java files, which are not on a build path<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/classf_obj.gif" width=16 height=16 alt="class file"><br>
-          </td>
-          <td valign="top" width="90%">
-            class file<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/file_obj.gif" width=16 height=16 alt="files without icon assigned to its type"><br>
-          </td>
-          <td valign="top">
-            files without icon assigned to its type<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.debug.ui/obj16/jsbook_obj.gif" width=16 height=16 alt="Java scrapbook page (*.jpage file)"><br>
-          </td>
-          <td valign="top">
-            Java scrapbook page (*.jpage file)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.debug.ui/obj16/jsbook_run_obj.gif" width=16 height=16 alt="Java scrapbook page (evaluation in progress)"><br>
-          </td>
-          <td valign="top">
-            Java scrapbook page (evaluation in progress)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jar_desc_obj.gif" width=16 height=16 alt="JAR description file"><br>
-          </td>
-          <td valign="top">
-            JAR description file<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/java_model_obj.gif" width=16 height=16 alt="Java Model"><br>
-          </td>
-          <td valign="top">
-            Java Model<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/library_obj.gif" width=16 height=16 alt="JRE system library container"><br>
-          </td>
-          <td valign="top">
-            JRE system library container<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jar_lsrc_obj.gif" width=16 height=16 alt="JAR file with attached source"><br>
-          </td>
-          <td valign="top">
-            JAR file with attached source<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jar_l_obj.gif" width=16 height=16 alt="JAR file without attached source"><br>
-          </td>
-          <td valign="top">
-            JAR file without attached source<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/packagefolder_obj.gif" width=16 height=16 alt="source folder"><br>
-          </td>
-          <td valign="top">
-            source folder<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/package_obj.gif" width=16 height=16 alt="package"><br>
-          </td>
-          <td valign="top">
-            package<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/empty_pack_obj.gif" width=16 height=16 alt="empty package"><br>
-          </td>
-          <td valign="top">
-            empty package<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/logical_package_obj.gif" width=16 height=16 alt="logical package"><br>
-          </td>
-          <td valign="top">
-            locigal package<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/empty_logical_package_obj.gif" width=16 height=16 alt="empty logical package"><br>
-          </td>
-          <td valign="top">
-            empty locigal package<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/empty_pack_fldr_obj.gif" width=16 height=16 alt="package only containing non Java resources"><br>
-          </td>
-          <td valign="top">
-            package only containing non Java resources<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/packd_obj.gif" width=16 height=16 alt="package declaration"><br>
-          </td>
-          <td valign="top">
-            package declaration<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/impc_obj.gif" width=16 height=16 alt="import container"><br>
-          </td>
-          <td valign="top">
-            import container<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/imp_obj.gif" width=16 height=16 alt="import"><br>
-          </td>
-          <td valign="top">
-            import<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/class_default_obj.gif" width=16 height=16 alt="default type (package visible)"><br>
-          </td>
-          <td valign="top">
-            default type (package visible)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/class_obj.gif" width=16 height=16 alt="public type"><br>
-          </td>
-          <td valign="top">
-            public type<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/int_default_obj.gif" width=16 height=16 alt="default interface (package visible)"><br>
-          </td>
-          <td valign="top">
-            default interface (package visible)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/int_obj.gif" width=16 height=16 alt="public interface"><br>
-          </td>
-          <td valign="top">
-            public interface<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerclass_default_obj.gif" width=16 height=16 alt="default inner type (package visible)"><br>
-          </td>
-          <td valign="top">
-            default inner type (package visible)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerclass_private_obj.gif" width=16 height=16 alt="private inner type"><br>
-          </td>
-          <td valign="top">
-            private inner type<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerclass_protected_obj.gif" width=16 height=16 alt="protected inner type"><br>
-          </td>
-          <td valign="top">
-            protected inner type<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerclass_public_obj.gif" width=16 height=16 alt="public inner type"><br>
-          </td>
-          <td valign="top">
-            public inner type<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerinterface_default_obj.gif" width=16 height=16 alt="default inner interface (package visible)"><br>
-          </td>
-          <td valign="top">
-            default inner interface (package visible)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerinterface_private_obj.gif" width=16 height=16 alt="private inner interface"><br>
-          </td>
-          <td valign="top">
-            private inner interface<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerinterface_protected_obj.gif" width=16 height=16 alt="protected inner interface"><br>
-          </td>
-          <td valign="top">
-            protected inner interface<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/innerinterface_public_obj.gif" width=16 height=16 alt="public inner interface"><br>
-          </td>
-          <td valign="top">
-            public inner interface<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            &nbsp;<br>
-          </td>
-          <td valign="top">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/field_default_obj.gif" width=16 height=16 alt="default field (package visible)"> &nbsp;<br>
-          </td>
-          <td valign="top">
-            default field (package visible)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/field_private_obj.gif" width=16 height=16 alt="private field"><br>
-          </td>
-          <td valign="top">
-            private field<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/field_protected_obj.gif" width=16 height=16 alt="protected field"><br>
-          </td>
-          <td valign="top">
-            protected field<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/field_public_obj.gif" width=16 height=16 alt="public field"><br>
-          </td>
-          <td valign="top">
-            public field<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/methdef_obj.gif" width=16 height=16 alt="default method (package visible)"><br>
-          </td>
-          <td valign="top">
-            default method (package visible)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/methpri_obj.gif" width=16 height=16 alt="private method"><br>
-          </td>
-          <td valign="top">
-            private method<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/methpro_obj.gif" width=16 height=16 alt="protected method"><br>
-          </td>
-          <td valign="top">
-            protected method<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/methpub_obj.gif" width=16 height=16 alt="public method"><br>
-          </td>
-          <td valign="top">
-            public method<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Object adornments
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/java_ovr.gif" alt="Java Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top">
-            marks project as Java project<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/error_co.gif" alt="Abstract Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top">
-            this Java element causes an error<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/warning_co.gif" alt="Warning Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top">
-            this Java element causes warning<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/constr_ovr.gif" alt="Constructor Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top" width="90%">
-            constructor<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/abstract_co.gif" alt="Abstract Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top" width="90%">
-            abstract member<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/final_co.gif" alt="Final Overlay" width="7" height="7"><br>
-          </td>
-          <td valign="top" width="90%">
-            final member<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/static_co.gif" alt="Static overlay" width="7" height="7"><br>
-          </td>
-          <td valign="top">
-            static member<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/synch_co.gif" alt="Synchronized Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top">
-            synchronized member<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/run_co.gif" alt="Run Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top">
-            type with public static void main(String[] args)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/implm_co.gif" alt="Implementor of interface overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top" width="90%">
-            implements method from interface<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/over_co.gif" alt="Overrides Overlay" width="7" height="8"><br>
-          </td>
-          <td valign="top" width="90%">
-            overrides method from super class<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/ovr16/focus_ovr.gif" alt="Focus Overlay" width="4" height="10"><br>
-          </td>
-          <td valign="top">
-            type with focus in Type hierarchy<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Build path
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/envvar_obj.gif" width=16 height=16 alt="class path variable"><br>
-          </td>
-          <td valign="top" width="90%">
-            class path variable<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jar_src_obj.gif" width=16 height=16 alt="JAR with attached source"><br>
-          </td>
-          <td valign="top" width="90%">
-            JAR with attached source<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jar_obj.gif" width=16 height=16 alt="JAR without attached source"><br>
-          </td>
-          <td valign="top" width="90%">
-            JAR without attached source<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/library_obj.gif" width=16 height=16 alt="system library"><br>
-          </td>
-          <td valign="top">
-            system library<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/prjct_nonexist_obj.gif" width=16 height=16 alt="reference to unavailable project"><br>
-          </td>
-          <td valign="top" width="90%">
-            reference to unavailable project<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/packagefolder_nonexist_obj.gif" width=16 height=16 alt="reference to unavailable source folder"><br>
-          </td>
-          <td valign="top">
-            reference to unavailable source folder<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jar_nonexist_obj.gif" width=16 height=16 alt="reference to unavailable JAR"><br>
-          </td>
-          <td valign="top" width="90%">
-            reference to unavailable JAR<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/envvar_nonexist_obj.gif" width=16 height=16 alt="unresolved class path variable"><br>
-          </td>
-          <td valign="top" width="90%">
-            unresolved class path variable<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/cp_order_obj.gif" width=16 height=16 alt="build path ordering"><br>
-          </td>
-          <td valign="top" width="90%">
-            build path ordering<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Code assist
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/html_tag_obj.gif" width=16 height=16 alt="HTML tag"><br>
-          </td>
-          <td valign="top" width="90%">
-            HTML tag<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jdoc_tag_obj.gif" width=16 height=16 alt="Javadoc tag"><br>
-          </td>
-          <td valign="top" width="90%">
-            Javadoc tag<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/localvariable_obj.gif" width=16 height=16 alt="local variable"><br>
-          </td>
-          <td valign="top" width="90%">
-            local variable<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/template_obj.gif" width=16 height=16 alt="template"><br>
-          </td>
-          <td valign="top" width="90%">
-            template<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Compare
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/compare_field.gif" width=16 height=16 alt="field"><br>
-          </td>
-          <td valign="top" width="90%">
-            field<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/compare_method.gif" width=16 height=16 alt="method"><br>
-          </td>
-          <td valign="top" width="90%">
-            method<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Debugger
-    </h2>
-    
-<table cellspacing="0" border="1" width="40%">
-  <tbody> 
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/ldebug_obj.gif" width=16 height=16 alt="debug launch"><br>
-    </td>
-    <td valign="top" width="90%"> debug launch<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/lrun_obj.gif" width=16 height=16 alt="run launch"><br>
-    </td>
-    <td valign="top" width="90%"> run launch<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/terminatedlaunch_obj.gif" width=16 height=16 alt="terminated run launch"><br>
-    </td>
-    <td valign="top" width="90%"> terminated run launch<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/osprc_obj.gif" width=16 height=16 alt="process"><br>
-    </td>
-    <td valign="top" width="90%"> process<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/osprct_obj.gif" width=16 height=16 alt="terminated process"><br>
-    </td>
-    <td valign="top" width="90%"> terminated process<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/debugt_obj.gif" width=16 height=16 alt="debug target"><br>
-    </td>
-    <td valign="top" width="90%"> debug target<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/debugtt_obj.gif" width=16 height=16 alt="terminated debug target"><br>
-    </td>
-    <td valign="top" width="90%"> terminated debug target<br>
-    </td>
-  </tr>
-  <tr> 
-    <td> </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/thread_obj.gif" width=16 height=16 alt="thread"><br>
-    </td>
-    <td valign="top" width="90%"> thread<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/threads_obj.gif" width=16 height=16 alt="suspended thread"><br>
-    </td>
-    <td valign="top" width="90%"> suspended thread<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/stckframe_obj.gif" width=16 height=16 alt="stack frame"><br>
-    </td>
-    <td valign="top" width="90%"> stack frame<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/stckframe_running_obj.gif" width=16 height=16 alt="running stack frame"><br>
-    </td>
-    <td valign="top" width="90%"> running stack frame<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/warning_co.gif" width=7 height=8 alt="adornment that marks a stack frame that may be out of synch with the target VM as a result of an unsuccessful hot code replace"> 
-      <br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks a stack frame that may 
-      be out of synch with the target VM as a result of an unsuccessful hot code 
-      replace<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/ovr16/error.gif" width=7 height=8 alt="adornment that marks a stack frame that is out of synch with the target VM as a result of an unsuccessful hot code replace"> 
-      <br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks a stack frame that is out 
-      of synch with the target VM as a result of an unsuccessful hot code replace<br>
-    </td>
-  </tr>
-  <tr>
-    <td valign="middle" align="center"><img src="../images/org.eclipse.jdt.debug.ui/obj16/insp_sbook.gif" width=16 height=16 alt="adornment that marks a stack frame that may be out of synch with the target VM as a result of an unsuccessful hot code replace"></td>
-    <td valign="top" width="90%">inspected object or primitive value</td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/expression_obj.gif" width=22 height=16 alt="evaluated expression"><br>
-    </td>
-    <td valign="top" width="90%"> watch expression<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/obj16/localvariable_obj.gif" width=16 height=16 alt="local variable"><br>
-    </td>
-    <td valign="top" width="90%"> local variable<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center" rowspan="1" colspan="2"> <br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/brkp_obj.gif" width=16 height=16 alt="enabled line breakpoint"><br>
-    </td>
-    <td valign="top" width="90%"> enabled line breakpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.debug.ui/obj16/brkpd_obj.gif" width=16 height=16 alt="disabled line breakpoint"><br>
-    </td>
-    <td valign="top" width="90%"> disabled line breakpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/installed_ovr.gif" width=7 height=8 alt="adornment that marks a line breakpoints as installed"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks a line breakpoints as installed<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/entry_ovr.gif" width=7 height=8 alt="adornment that marks an entry method breakpoint"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks an entry method breakpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/exit_ovr.gif" width=7 height=8 alt="adornment that marks an exit method breakpoint"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks an exit method breakpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center" rowspan="1" colspan="2"> <br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/obj16/read_obj.gif" width=16 height=16 alt="field access watchpoint"><br>
-    </td>
-    <td valign="top" width="90%"> field access watchpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/obj16/write_obj.gif" width=16 height=16 alt="field modification watchpoint"><br>
-    </td>
-    <td valign="top" width="90%"> field modification watchpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/obj16/readwrite_obj.gif" width=16 height=16 alt="field access and modification watchpoint"><br>
-    </td>
-    <td valign="top" width="90%"> field access and modification watchpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/installed_ovr.gif" width=7 height=8 alt="adornment that marks a watchpoint as installed"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks a watchpoint as installed<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center" rowspan="1" colspan="2"> <br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/obj16/jexception_obj.gif" width=16 height=16 alt="exception breakpoint"><br>
-    </td>
-    <td valign="top" width="90%"> exception breakpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/obj16/jrtexception_obj.gif" width=16 height=16 alt="runtime exception breakpoint"><br>
-    </td>
-    <td valign="top" width="90%"> runtime exception breakpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/obj16/jexceptiond_obj.gif" width=16 height=16 alt="disabled exception breakpoint"><br>
-    </td>
-    <td valign="top" width="90%"> disabled exception breakpoint<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/caught_ovr.gif" width=7 height=8 alt="adornment that marks an exception breakpoint as caught"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks an exception breakpoint 
-      as caught<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/uncaught_ovr.gif" width=7 height=8 alt="adornment that marks an exception breakpoint as uncaught"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks an exception breakpoint 
-      as uncaught<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/scoped_ovr.gif" width=15 height=3 alt="adornment that marks an exception breakpoint as scoped"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks an exception breakpoint 
-      as scoped<br>
-    </td>
-  </tr>
-  <tr> 
-    <td valign="middle" align="center"> <img src="../images/org.eclipse.jdt.debug.ui/ovr16/installed_ovr.gif" width=7 height=8 alt="adornment that marks an exception breakpoint as installed"><br>
-    </td>
-    <td valign="top" width="90%"> adornment that marks an exception breakpoint 
-      as installed<br>
-    </td>
-  </tr>
-  </tbody> 
-</table>
-    <br>
-     
-    <h2>
-      NLS tools
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/skip.gif" width=16 height=16 alt="skipped NLS key"><br>
-          </td>
-          <td valign="top">
-            skipped NLS key<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/translate.gif" width=16 height=16 alt="translated NLS key"><br>
-          </td>
-          <td valign="top">
-            translated NLS key<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/never_translate.gif" width=16 height=16 alt="untranslated NLS key"><br>
-          </td>
-          <td valign="top">
-            untranslated NLS key<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/nls_search_obj.gif" width=16 height=16 alt="search for unused NLS keys"><br>
-          </td>
-          <td valign="top" width="90%">
-            search for unused NLS keys<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Quick fix
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/quickfix_error_obj.gif" width=16 height=16 alt="quick fixable error"><br>
-          </td>
-          <td valign="top" width="90%">
-            quick fixable error<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/quickfix_warning_obj.gif" width=16 height=16 alt="quick fixable warning"><br>
-          </td>
-          <td valign="top" width="90%">
-            quick fixable warning<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/error_gray_obj.gif" width=16 height=16 alt="error that got fix in source code"><br>
-          </td>
-          <td valign="top" width="90%">
-            error that got fixed in source but file still needs a recompile<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/warning_gray_obj.gif" width=16 height=16 alt="warning that got fix in source code"><br>
-          </td>
-          <td valign="top" width="90%">
-            warning that got fixed in source but file still needs a recompile<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/correction_change.gif" width=16 height=16 alt="change"><br>
-          </td>
-          <td valign="top" width="90%">
-            change<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/correction_delete_import.gif" width=16 height=16 alt="remove import"><br>
-          </td>
-          <td valign="top" width="90%">
-            remove import<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/correction_move.gif" width=16 height=16 alt="move to another package"><br>
-          </td>
-          <td valign="top" width="90%">
-            move to another package<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/correction_rename.gif" width=16 height=16 alt="rename"><br>
-          </td>
-          <td valign="top">
-            rename<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jexception_obj.gif" width=16 height=16 alt="surround with try/catch"><br>
-          </td>
-          <td valign="top">
-            surround with try/catch<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Refactoring
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/change.gif" width=16 height=16 alt="general change"><br>
-          </td>
-          <td valign="top">
-            general change<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/composite_change.gif" width=16 height=16 alt="composite change"><br>
-          </td>
-          <td valign="top">
-            composite change<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/cu_change.gif" width=16 height=16 alt="compilation unit changed"><br>
-          </td>
-          <td valign="top">
-            compilation unit changed<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/text_edit.gif" width=16 height=16 alt="text changed"><br>
-          </td>
-          <td valign="top">
-            text changed<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/file_change.gif" width=16 height=16 alt="file changed"><br>
-          </td>
-          <td valign="top" width="90%">
-            file changed
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/fatalerror_obj.gif" width=16 height=16 alt="Stop error">
-          </td>
-          <td valign="top">
-            Stop error<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/error_obj.gif" width=16 height=16 alt="Error"><br>
-          </td>
-          <td valign="top">
-            Error<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/warning_obj.gif" width=16 height=16 alt="Warning"><br>
-          </td>
-          <td valign="top">
-            Warning<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/info_obj.gif" width=16 height=16 alt="Information"><br>
-          </td>
-          <td valign="top">
-            Information<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Search
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="right">
-            <img src="../images/org.eclipse.jdt.ui/obj16/jsearch_obj.gif" width=16 height=16 alt="Java Search"><br>
-          </td>
-          <td valign="top">
-            Java Search<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/search_decl_obj.gif" width=16 height=16 alt="search for declarations"><br>
-          </td>
-          <td valign="top">
-            search for declarations<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/search_ref_obj.gif" width=16 height=16 alt="search for references"><br>
-          </td>
-          <td valign="top">
-            search for references<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top" rowspan="1" colspan="2">
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/nls_search_obj.gif" width=16 height=16 alt="search for unused NLS keys"><br>
-          </td>
-          <td valign="top" width="90%">
-            search for unused NLS keys<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <h2>
-      Search - Occurrences in File
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/occ_match.gif" width=16 height=16 alt="general match"><br>
-          </td>
-          <td valign="top" width="90%">
-            a general match<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/occ_read.gif" width=16 height=16 alt="read access to local or field"><br>
-          </td>
-          <td valign="top" width="90%">
-            read access to local or field<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/occ_write.gif" width=16 height=16 alt="write access to local or field"><br>
-          </td>
-          <td valign="top" width="90%">
-			write access to local or field          
-		  </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-    
-    <h2>
-      Type hierarchy view
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/classfo_obj.gif" width=16 height=16 alt="type from non selected package"><br>
-          </td>
-          <td valign="top">
-            type from non selected package<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.jdt.ui/obj16/intf_obj.gif" width=16 height=16 alt="interface from non selected package"><br>
-          </td>
-          <td valign="top">
-            interface from non selected package<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <p>
-      &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-      </a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-17.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-17.htm
deleted file mode 100644
index 2311cbe..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-17.htm
+++ /dev/null
@@ -1,182 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Code Formatter
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Code Formatter
-    </h1>
-    <p>
-      The preview pane on this page demonstrates what each of these options will do to Java code in the editor.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5">
-      <caption>
-        Code Formatter Preferences
-      </caption>
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            Insert a new line before an opening brace
-          </td>
-          <td valign="top">
-            The editor inserts a line break before opening a new brace. In other words, open braces always start at the beginning of a new line.
-          </td>
-          <td valign="top">
-            Off
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            Insert new lines in control statements
-          </td>
-          <td valign="top">
-            The editor inserts a line break before a new control statement. In other words, control statements (e.g., if, else, catch, finally, etc.) always start at the beginning
-            of a new line.
-          </td>
-          <td valign="top">
-            Off
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            Clear all blank lines
-          </td>
-          <td valign="top">
-            The editor deletes all blank lines in the file.
-          </td>
-          <td valign="top">
-            Off
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            Insert new line between 'else if'
-          </td>
-          <td valign="top">
-            The editor inserts a new line between the words &quot;else&quot; and &quot;if&quot; in else-if statements.
-          </td>
-          <td valign="top">
-            Off
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            Insert a new line inside an empty block
-          </td>
-          <td valign="top">
-            The editor inserts a line break between empty braces. In other words, the left and right braces in an empty braces set will always appear on separate lines. An
-            exception is if the right brace is followed by a keyword, in which case, the two braces appear on the same line.
-          </td>
-          <td valign="top">
-            On
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            Maximum line length
-          </td>
-          <td valign="top">
-            This is the maximum length of any one line. Lines longer than this number are split and wrapped. Entering 0 here disables line splitting completely.
-          </td>
-          <td valign="top">
-            80
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            Compact assignment
-          </td>
-          <td valign="top">
-            The editor removes any spaces between a variable and an assignment statement so that they are asymmetrical (e.g., <code>a= b;</code>).
-          </td>
-          <td valign="top">
-            Off
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            Insert a space after a cast
-          </td>
-          <td valign="top">
-            The editor inserts a space between the cast and the following expression.
-          </td>
-          <td valign="top">
-            On
-          </td>
-        </tr>
-        
-        <tr>
-          <td valign="top">
-            Insert tabs for indentation, not spaces
-          </td>
-          <td valign="top">
-            The editor uses tabs instead of spaces to represent indentations.
-          </td>
-          <td valign="top">
-            On
-          </td>
-        </tr>
-        
-        <tr>
-          <td valign="top">
-            Number of spaces representing an indentation level
-          </td>
-          <td valign="top">
-            If the editor uses spaces instead of tabs to represent indentations, this is the number of spaces that comprises a single indentation.
-          </td>
-          <td valign="top">
-            4
-          </td>
-        </tr>
-
-        <tr>
-          <td valign="top">
-            Preview pane
-          </td>
-          <td valign="top">
-            Shows an example of what your Java code will look like with the settings currently displayed on this page.
-          </td>
-          <td valign="top">
-            n/a
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-66.htm">Formatting Java code</a><br>
-    </p>
-    <p>
-      <a href="../reference/ref-java-editor.htm">Java editor</a><br>
-       <a href="../reference/ref-21.htm">Java editor preferences</a><br>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-18.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-18.htm
deleted file mode 100644
index df0b855..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-18.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Installed JREs
-    </title>
-  </head>
-  <body>
-    <h1>
-      Installed JREs
-    </h1>
-    <p>
-      Check the box for the JRE that you want to act as your default for running and debugging Java programs in the workbench.
-    </p>
-    <p>
-      This JRE defines the values for the three reserved classpath variables (JRE_LIB, JRE_SRC, JRE_SRCROOT).
-    </p>
-    <p>
-      <br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-19.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-19.htm
deleted file mode 100644
index aa3a8f2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-19.htm
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      JRE installations
-    </title>
-  </head>
-  <body>
-    <h1>
-      JRE installations
-    </h1>
-    
-<table border="1" cellspacing="0">
-  <caption> Classpath Variable Preferences </caption>
-  <thead> 
-  <tr> 
-    <th rowspan="1" colspan="1"> 
-      <p> Option </p>
-    </th>
-    <th rowspan="1" colspan="1"> 
-      <p> Description </p>
-    </th>
-  </tr>
-  </thead> <tbody> 
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Add... </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Adds a new JRE definition to the workbench. In the resulting dialog, 
-        specify the following: </p>
-      <ul>
-        <li> JRE type: (select a VM type from the drop-down list) </li>
-        <li> JRE name: Type a name for this JRE definition </li>
-        <li> JRE home directory: Type or browse to select the root directory for 
-          this JRE installation </li>
-        <li> Javadoc URL: Type or browse to select the URL location. The location 
-          is used by the Javadoc export wizard as a default value and by the 'Open 
-          External Javadoc' action. Debugger timeout: Type the default timeout 
-          for this JRE's debugger (in ms) </li>
-        <li> Either check the box to use the default library locations for this 
-          JRE or clear the check box and type or browse to select library locations 
-          for the following: 
-          <ul>
-            <li> JAR file (e.g., classes.zip) </li>
-            <li> Source file (e.g., source.zip) </li>
-          </ul>
-        </li>
-      </ul>
-      <p> You can click the <strong>Browse</strong> buttons to browse for paths. 
-      </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Edit... </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Allows you to edit the selected JRE. </p>
-    </td>
-  </tr>
-  <tr>
-    <td colspan="1" valign="top" align="left">Remove</td>
-    <td colspan="1" valign="top" align="left">Removes the selected JRE from the 
-      workbench.</td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Search... </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left"> 
-      <p> Automatically searches for JREs installed in the local file system and 
-        creates corresponding JRE definitions in the workspace.</p>
-    </td>
-  </tr>
-  </tbody> 
-</table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/cclsspthv.htm">Classpath variables</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-JREs.htm">Working with JREs</a>
-    </p>
-    <p>
-      <a href="../reference/ref-124.htm">Source Attachment</a>
-    </p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-2.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-2.htm
deleted file mode 100644
index e984a0b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-2.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      JDT actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      JDT actions
-    </h1>
-    <p>
-      JDT actions are available from
-    </p>
-    <ul>
-      <li>
-        Menu bar
-      </li>
-      <li>
-        Toolbar
-      </li>
-      <li>
-        Context menus in views
-      </li>
-    </ul>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-1.htm">Java Development Tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="ref-152.htm">Frequently Asked Questions on JDT</a><br>
-       <a href="ref-155.htm">JDT Glossary</a><br>
-       <a href="../reference/ref-menu-file.htm">File actions</a><br>
-       <a href="../reference/ref-menu-edit.htm">Edit actions</a><br>
-       <a href="../reference/ref-menu-source.htm">Source actions</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactor actions</a><br>
-       <a href="../reference/ref-menu-navigate.htm">Navigate actions</a><br>
-       <a href="../reference/ref-menu-search.htm">Search actions</a><br>
-       <a href="../reference/ref-menu-project.htm">Project actions</a><br>
-       <a href="../reference/ref-149.htm">Run actions</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a><br>
-       <a href="../reference/ref-java-editor.htm">Java Editor actions</a><br>
-       <a href="../reference/ref-4.htm">Run and Debug actions</a><br>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-21.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-21.htm
deleted file mode 100644
index c7085e7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-21.htm
+++ /dev/null
@@ -1,808 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>
-      Java editor
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Java editor
-    </h1>
-    <p>
-      The following Java editor preferences can be set on this page:
-    </p>
-    <ul>
-      <li>
-        Appearance
-      </li>
-      <li>
-        Syntax
-      </li>
-      <li>
-        Code Assist
-      </li>
-      <li>
-        Problem Indication
-      </li>
-    </ul>
-    <h2 class="Head">
-      Appearance
-    </h2>
-    <p>
-      <strong>Appearance</strong> specifies the Java editor's appearance.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <caption>
-        Appearance
-      </caption>
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Displayed tab width</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies how wide tabs are displayed in units of spaces.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              4
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Print margin column</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies the column after which the print margin is displayed.
-            </p>
-            <p>
-              To display the print margin, enable the option <strong>Show print margin</strong>, the preference <strong>Appearance color options</strong> specifies the color of
-              the print margin.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              80
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Synchronize outline selection on cursor move</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the Outline view always selects the Java element enclosing the cursor in the Java editor.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show overview ruler</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the overview ruler on the right border of the Java editor is displayed and shows problems of the whole visible document.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show line numbers</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the vertical ruler on the left border of the Java editor displays line numbers of the visible document.
-            </p>
-            <p>
-              The color of line numbers is specified with <strong>Appearance color options</strong>.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Highlight matching brackets</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, whenever the cursor is next to a parenthesis, bracket or curly braces, its opening or closing counter part is highlighted.
-            </p>
-            <p>
-              The color of the bracket highlight is specified with <strong>Appearance color options</strong>.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Highlight current line</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the background of the current line of the cursor is highlighted.
-            </p>
-            <p>
-              The color of the current line background is specified with <strong>Appearance color options</strong>.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show print margin</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the print margin is displayed.
-            </p>
-            <p>
-              The preferences <strong>Print margin column</strong> and <strong>Appearance color options</strong> determine the position and color of the print margin.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Appearance color options</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The colors of various Java editor appearance features are specified here.
-            </p>
-            <dl>
-              <dt>
-                Line number foreground
-              </dt>
-              <dd>
-                The color of line numbers.
-              </dd>
-              
-              <dt>
-                Matching brackets highlight
-              </dt>
-              <dd>
-                The color of brackets highlight.
-              </dd>
-              
-              <dt>
-                Current line highlight
-              </dt>
-              <dd>
-                The color of current line highlight.
-              </dd>
-              
-              <dt>
-                Print margin
-              </dt>
-              <dd>
-                The color of the print margin.
-              </dd>
-
-              <dt>
-                Find scope
-              </dt>
-              <dd>
-                The color of find scope.
-              </dd>
-              
-              <dt>
-                Linked position
-              </dt>
-              <dd>
-                The color of linked positions used in code assist.
-              </dd>
-              
-              <dt>
-                Link
-              </dt>
-              <dd>
-                The color of a link.
-              </dd>
-              
-            </dl>
-          </td>
-          <td valign="top">
-            <p>
-              default colors
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2 class="Head">
-      Syntax
-    </h2>
-    <p>
-      <strong>Syntax</strong> specifies how Java source code is rendered.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <caption>
-        Syntax
-      </caption>
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Background color</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <dl>
-              <dt>
-                System default:
-              </dt>
-              <dd>
-                The default background color given by the operating system.
-              </dd>
-              <dt>
-                Custom:
-              </dt>
-              <dd>
-                A user defined background color.
-              </dd>
-            </dl>
-          </td>
-          <td valign="top">
-            <p>
-              System default
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Foreground</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The following Java source fragments can be rendered with different color and style:
-            </p>
-            <dl>
-              <dt>
-                Multi-line comment
-              </dt>
-              <dd>
-                Comments of the form '/* ... */'
-              </dd>
-              
-              <dt>
-                Single-line comment
-              </dt>
-              <dd>
-                Comments starting with '//'
-              </dd>
-              
-              <dt>
-                Keywords
-              </dt>
-              <dd>
-                All Java keywords.
-              </dd>
-              
-              <dt>
-                Strings
-              </dt>
-              <dd>
-                Java strings and characters, surrounded by single and double quotes
-              </dd>
-              
-              <dt>
-                Others
-              </dt>
-              <dd>
-                Default Java source code
-              </dd>
-              
-              <dt>
-                Task tags
-              </dt>
-              <dd>
-                Task tags in comments
-              </dd>
-
-              <dt>
-                Javadoc keywords
-              </dt>
-              <dd>
-                Keywords used in Javadoc, starting with '@'
-              </dd>
-              
-              <dt>
-                Javadoc HTML tags
-              </dt>
-              <dd>
-                HTML tags used in Javadoc s
-              </dd>
-              
-              <dt>
-                Javadoc links
-              </dt>
-              <dd>
-                {@link reference} tag
-              </dd>
-              
-              <dt>
-                Javadoc others
-              </dt>
-              <dd>
-                Default Javadoc text
-              </dd>
-              
-            </dl>
-          </td>
-          <td valign="top">
-            <p>
-              default colors and styles
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Preview</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Displays the preview of a Java source code respecting the current colors and styles.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2 class="Head">
-      Code assist
-    </h2>
-    <p>
-      <strong>Code Assist</strong> specifies the behaviour and appearance of code assist.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <caption>
-        Code Assist
-      </caption>
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Completion inserts/Completion overwrites</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If <strong>Completion inserts</strong> is on, the completion text is inserted at the caret position,
-              so it never overwrites any existing text.
-              <br>
-              If <strong>Completion overwrites</strong> is on, the completion text replaces the characters
-              following the caret position until the end of the word.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Completion inserts
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Insert single proposals automatically</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, code assist will choose and insert automatically single proposals.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show only proposals visible in the invocation context</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the Java element proposals are limited by the rules of visibility. For example, private field proposals of other classes would not be displayed.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Present proposals in alphabetical order</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the proposals are sorted in alphabetical order.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Automatically add import instead of qualified name</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, type proposals which are in other packages will invoke the addition of the corresponding import declaration. Otherwise, the type will be inserted fully
-              qualified.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Fill argument names on method completion</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, choosing a method proposal will additionally insert the method's argument names as specified in its declaration.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Enable auto activation</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, code assist can be invoked automatically.
-            </p>
-            <p>
-              The condition for automatic invocation is specified with the preferences <strong>Auto activation delay</strong>, <strong>Auto activation triggers for Java</strong>
-              and <strong>Auto activation triggers for Javadoc</strong>.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Auto activation delay</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If the time starting when an auto activation trigger character is encountered until a new character is typed exceeds the auto activation delay, code assist is
-              invoked.
-            </p>
-          </td>
-          <td valign="top">
-            500
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Auto activation triggers for Java</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If one of the trigger characters is typed inside Java source code (but not inside a Javadoc comment) and no other character is typed before the auto activation delay
-              times out, the code assist is invoked.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              '.'
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Auto activation triggers for Javadoc</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If one of the trigger characters is typed inside a Java doc and no other character is typed before the auto activation delay times out, the code assist is invoked.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              '@'
-            </p>
-          </td>
-        </tr>
-        
-        
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Code assist color options</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The colors used for the following code assist UI elements:
-            </p>
-            <dl>
-            	<dt>Completion proposal background</dt>
-            	<dd>The background color of the completion proposal window</dd>
-            	
-            	<dt>Completion proposal foreground</dt>
-            	<dd>The foreground color of the completion proposal window</dd>
-            
-            	<dt>Method parameter background</dt>
-            	<dd>The background color of the parameter window</dd>
-            	
-            	<dt>Method parameter foreground</dt>
-            	<dd>The foreground color of the parameter window</dd>
-            
-            	<dt>Completion overwrite background</dt>
-            	<dd>The background color of the completion overwrite window</dd>
-            	
-            	<dt>Completion overwrite foreground</dt>
-            	<dd>The foreground color of the completion overwrite window</dd>
-  			</dl>
-          </td>
-          <td valign="top">
-            <p>
-              default colors
-            </p>
-          </td>
-        </tr>
-        
-        
-      </tbody>
-    </table>
-    <h2 class="Head">
-      Annotations
-    </h2>
-    <p>
-      <strong>Annotations</strong> specifies when and how annotations are displayed.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <caption>
-        Annotations
-      </caption>
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Analyze annotations while typing</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, annotations are updated as the user types.
-              Otherwise, annotations aren't updated until the Java file is compiled.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Indicate annotations solvable with Quick Fix in vertical ruler</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Displays a light bulb on the vertical ruler on the left border of the Java editor for every annotation solvable with Quick Fix.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Annotation presentation</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              For every type of annotation you can specify
-              <ul>
-              <li>whether the annotation is shown in text, or in the overview ruler, or in both</li>
-              <li>in what color the annotation is rendered</li>
-              </ul>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-             &nbsp;
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java Editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a>
-    </p>
-    <p>
-      <a href="../reference/ref-java-editor.htm">Java editor</a> <a href="../reference/ref-17.htm">Code Formatter preferences</a> <a href=
-      "../reference/ref-view-outline.htm">Outline view for Java</a> <a href="../reference/ref-143.htm">Java Content Assist</a> <a href=
-      "../reference/ref-java-editor-quickfix.htm">Quick Fix</a>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-22.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-22.htm
deleted file mode 100644
index 8bc6a3f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-22.htm
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Organize imports
-    </title>
-  </head>
-  <body>
-    <h1>
-      Organize imports
-    </h1>
-    <p>
-      The following preferences define how the Organize Imports command generates the import statements in a compilation unit.
-    </p>
-    <table border="1" cellspacing="0">
-      <caption>
-        Organize Imports Preferences
-      </caption>
-      <thead>
-        <tr>
-          <th rowspan="1" colspan="1">
-            <p>
-              Option
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            <p>
-              Description
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Import order list
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This list of prefixes shows the sequential order for packages imported into a Java compilation unit. Each entry defines a block. Different blocks are separated by a
-              spacer line.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              java<br>
-              javax<br>
-              org<br>
-              com
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              New...
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Adds a package name prefix to the import order list. In the resulting dialog, type a package name or package name prefix.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Edit...
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Change the name of an existing package name prefix. In the resulting dialog, type a package name or package name prefix.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Up
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Moves the selected package name prefix up in the import order list.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Down
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Moves the selected package name prefix down in the import order list.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Remove
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Removes a package name prefix from the import order list.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Load...
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Load a list of package name prefixes from a file.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Save...
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Save the list of package name prefixes to a file.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              n/a
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Number of imports needed before .* is used
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              The number of fully-qualified import statements that are allowed from the same package before <em>&lt;package&gt;.*</em> is used.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              99
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Do not create imports for types starting with a lower case letter
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              If enabled, types starting with a lowercase letter are not imported.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../tasks/tasks-58.htm">Managing import statements</a><br>
-    </p>
-    <p>
-      <a href="../reference/ref-menu-source.htm">Source actions</a>
-    </p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-23.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-23.htm
deleted file mode 100644
index c7218b9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-23.htm
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Refactoring preferences
-    </title>
-  </head>
-  <body>
-    <h1>
-      Refactoring preferences
-    </h1>
-    <p>
-      The following preferences can be set on the Refactoring Preferences page. (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Java</strong> &gt;
-      <strong>Refactoring</strong>.)
-    </p>
-    <table border="1" cellspacing="0">
-      <caption>
-        &nbsp;
-      </caption>
-      <thead>
-        <tr>
-          <th rowspan="1" colspan="1">
-            <p>
-              Option
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            <p>
-              Description
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              <strong>Confirm the execution of the refactoring if</strong>
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              In this section, choose which kinds of problems will cause the wizard to remain open and show the problems after pressing <strong><strong>Finish</strong></strong>:
-            </p>
-            <ul>
-              <li>
-                problems that prevent the actual refactoring from being performed
-              </li>
-              <li>
-                errors in the workbench
-              </li>
-              <li>
-                warnings in the workbench
-              </li>
-              <li>
-                information to be generated by precondition checking
-              </li>
-            </ul>
-            <p>
-              Problems less severe than the selected level allow you to do a refactoring without previewing the results.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Error
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              <strong>Save all modified resources automatically prior to refactoring</strong>
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              If this option is turned on, then whenever you perform a refactoring action, the workbench will automatically save all resources that have been modified since the
-              last save.
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Not checked
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-80.htm">Refactoring</a><br>
-       <a href="../tasks/tasks-82.htm">Refactoring without preview</a><br>
-       <a href="../tasks/tasks-83.htm">Refactoring with preview</a><br>
-       <a href="../tasks/tasks-84.htm">Previewing refactoring changes</a><br>
-       <a href="../tasks/tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="../tasks/tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="ref-117.htm">Refactoring wizard</a>
-    </p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-24.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-24.htm
deleted file mode 100644
index c9790df..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-24.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Views and editors
-    </title>
-  </head>
-  <body>
-    <h1>
-      Views and editors
-    </h1>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-6.htm">Java views<br>
-      </a> <a href="../concepts/concepts-1.htm">Java Development Tools (JDT)</a> <a href="../concepts/concepts-6.htm"><br>
-      <br>
-      </a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-consoleAppearance.htm">Changing the appearance of the console view</a><br>
-       <a href="../tasks/tasks-38.htm">Changing the appearance of the Hierarchy view</a><br>
-       <a href="../tasks/tasks-73.htm">Opening an editor for a selected element</a><br>
-       <a href="../tasks/tasks-76.htm">Opening an editor on a type</a><br>
-       <a href="../tasks/tasks-65.htm">Using content/code assist</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-java-editor.htm">Java editor actions</a><br>
-       <a href="../reference/ref-35.htm">Breakpoints view</a><br>
-       <a href="../reference/ref-45.htm">Console view</a><br>
-       <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-52.htm">Display view</a><br>
-       <a href="../reference/ref-56.htm">Expressions view</a><br>
-       <a href="../reference/ref-view-outline.htm">Outline view for Java</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer view</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a><br>
-       <a href="../reference/ref-74.htm">Variables view</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-3.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-3.htm
deleted file mode 100644
index d803463..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-3.htm
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Java toolbar actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Java toolbar actions
-    </h1>
-    <br>
-     <br>
-     
-    <table border="1" cellspacing="0">
-      <caption>
-        Java Actions<br>
-      </caption>
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Toolbar Button
-            </p>
-          </th>
-          <th>
-            <p>
-              Command
-            </p>
-          </th>
-          <th>
-            Description
-          </th>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <img src="../images/ref-1.gif" alt="" height="16" width="16" align="center">
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Create a Java Project
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              This command helps you create a new Java project.
-            </p>
-            <br>
-             <a href="ref-121.htm">See New Java Project Wizard</a>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <img src="../images/ref-2.gif" alt="" height="16" width="16" align="center">
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Create a Java Package
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              This command helps you create a new Java package.
-            </p>
-            <br>
-             <a href="ref-125.htm">See New Java Package Wizard</a>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <img src="../images/ref-3.gif" alt="" height="16" width="16" align="center">
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Create a Java Class
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              This command helps you create a new Java class.
-            </p>
-            <br>
-             <a href="ref-126.htm">See New Java Class Wizard</a>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <img src="../images/ref-4.gif" alt="" height="16" width="16" align="center">
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Create a Java Interface
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              This command helps you create a new Java interface.
-            </p>
-            <br>
-             <a href="ref-127.htm">See New Java Interface Wizard</a>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <img src="../images/ref-5.gif" alt="" height="16" width="16" align="center">
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Create a Scrapbook Page
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              This command helps you create a new Java scrapbook page for experimenting with Java expressions.
-            </p>
-            <br>
-             <a href="ref-129.htm">See New Java Scrapbook Page Wizard</a>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <img src="../images/ref-6.gif" alt="" height="16" width="16" align="center">
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Open a Type in the Editor
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              This command allows you to browse the workspace for a type to open in the defined default Java editor. You can optionally choose to display the type simultaneously
-              in the Hierarchy view.
-            </p>
-            <dl>
-              <dt>
-                <strong>Choose a type:</strong>
-              </dt>
-              <dd>
-                In this field, type the first few characters of the type you want to open in an editor. You can use wildcards as needed (&quot;*&quot; for a string, &quot;?&quot;
-                for a character, &quot;&lt;&quot; for end of line).&nbsp;
-              </dd>
-              <dt>
-                <strong>Matching Types:</strong>
-              </dt>
-              <dd>
-                This list displays matches for the expression you type in the Choose a type field.&nbsp;
-              </dd>
-              <dt>
-                <strong>In Packages:</strong>
-              </dt>
-              <dd>
-                This list displays the packages where a type with the selected name are defined.&nbsp;
-              </dd>
-            </dl>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <br>
-       <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <a href="../tasks/tasks-11.htm">Creating Java elements</a> <br>
-     <a href="../tasks/tasks-76.htm">Opening an editor on a type</a> 
-    <p>
-      <br>
-       <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference">
-    </p>
-    <p>
-      <a href="ref-121.htm">New Java Project wizard</a><br>
-       <a href="ref-125.htm">New Java Package wizard</a><br>
-       <a href="ref-126.htm">New Java Class wizard</a><br>
-       <a href="ref-127.htm">New Java Interface wizard</a><br>
-       <a href="ref-129.htm">New Java Scrapbook Page wizard</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a><br>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-34.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-34.htm
deleted file mode 100644
index 84ec991..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-34.htm
+++ /dev/null
@@ -1,146 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Java scrapbook page
-    </title>
-  </head>
-  <body>
-    <h1>
-      Java scrapbook page
-    </h1>
-    <p>
-      The scrapbook allows Java expressions to be run, inspected, and displayed, under the control of the debugger.
-    </p>
-    <p>
-      <strong>Note:</strong> Content assist (such as code assist) is available on scrapbook pages.
-    </p>
-    <table border="1" cellspacing="0">
-      <caption>
-        Java Scrapbook page buttons
-      </caption>
-      <thead>
-        <tr>
-          <th rowspan="1" colspan="1">
-            <p>
-              Command
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            <p>
-              Name
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <img src="../images/ref-20.gif" align="baseline" width="16" height="16" alt="Run Snippet button">
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Snippet
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Running an expression evaluates an expression but does not display a result.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <img src="../images/ref-21.gif" align="baseline" width="16" height="16" alt="Display button">
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Display
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Displaying shows the result of evaluating an expression as a string in the scrapbook editor.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <img src="../images/ref-22.gif" align="baseline" width="16" height="16" alt="Inspect button">
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Inspect
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Inspecting shows the result of evaluating an expression in the Expressions view.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <img src="../images/ref-23.gif" align="baseline" width="16" height="16" alt="Terminate button">
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Terminate
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command terminates the Java VM that is used to evaluate expressions.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <img src="../images/ref-24.gif" align="baseline" width="16" height="16" alt="Set the import Declarations button">
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Set the Import Declarations
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This commands sets the import declarations to be used for the context of evaluating the code
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-11.htm">Scrapbook</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-149.htm">Creating a Java scrapbook page</a><br>
-       <a href="../tasks/tasks-151.htm">Displaying the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-150.htm">Inspecting the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-152.htm">Executing an expression</a>
-    </p>
-    <p>
-      <a href="../reference/ref-129.htm">New Java Scrapbook Page wizard</a>
-    </p>
-    <p>
-      <br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-35.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-35.htm
deleted file mode 100644
index bee8c27..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-35.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Breakpoints view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Breakpoints view
-    </h1>
-    <p>
-      The Breakpoints view lists all the breakpoints you have set in the workbench projects. You can double-click a breakpoint to display its location in the editor. In this view,
-      you can also enable or disable breakpoints, delete them, or add new ones.
-    </p>
-    <p>
-      This view also lists Java exception breakpoints, which suspend execution at the point where the exception is thrown. You can add or remove exceptions.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/cbrkpnts.htm">Breakpoints</a><br>
-       <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-       <a href="../tasks/tasks-146.htm">Applying hit counts</a><br>
-       <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-       <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-       <a href="../tasks/tasks-144b.htm">Enabling and disabling breakpoints</a><br>
-       <a href="../tasks/tasks-144c.htm">Managing conditional breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-36.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-36.htm
deleted file mode 100644
index e2aa23d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-36.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Remove selected breakpoint
-    </title>
-  </head>
-  <body>
-    <h1>
-      Remove selected breakpoint
-    </h1>
-    <p>
-      This command removes the selected breakpoint(s).
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-37.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-37.htm
deleted file mode 100644
index 95019ca..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-37.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Remove all breakpoints
-    </title>
-  </head>
-  <body>
-    <h1>
-      Remove all breakpoints
-    </h1>
-    <p>
-      This command removes all breakpoints in the workbench.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-38.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-38.htm
deleted file mode 100644
index 0effd65..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-38.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Go to file for breakpoint
-    </title>
-  </head>
-  <body>
-    <h1>
-      Go to file for breakpoint
-    </h1>
-    <p>
-      If the resource containing the selected breakpoint is not open and/or active, this command causes the file to be opened and made active, focusing on the line with which the
-      breakpoint is associated.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-    	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-      	<a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-39.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-39.htm
deleted file mode 100644
index fdee945..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-39.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show qualified names
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show qualified names
-    </h1>
-    <p>
-      This option can be toggled to show or hide qualified names.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-4.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-4.htm
deleted file mode 100644
index 69f6fef..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-4.htm
+++ /dev/null
@@ -1,392 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Run and Debug Actions
-    </title>
-  </head>
-  <body>
-    <h1>
-      Run and debug actions
-    </h1>
-    <table border="1" cellspacing="0">
-      <caption>
-        Run and Debug Actions
-      </caption>
-      <thead>
-        <tr>
-          <th rowspan="1" colspan="1">
-            <p>
-              Toolbar Button
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            <p>
-              Command
-            </p>
-          </th>
-          <th rowspan="1" colspan="1">
-            Description
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <img src="../images/ref-7.gif" align="baseline" width="16" height="16" alt="Run button">
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command re-launches the most recently launched application.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <img src="../images/ref-8.gif" align="baseline" width="16" height="16" alt="Debug button">
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Debug
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command re-launches the most recently launched application under debugger control.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Debug Last Launched
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command allows you to quickly repeat the most recent launch in debug mode (if that mode is supported).
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Last Launched
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command allows you to quickly repeat the most recent launch in run mode (if that mode is supported).
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run History
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Presents a sub menu of the recent history of launch configurations launched in run mode
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run As
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Presents a sub menu of registered run launch shortcuts. Launch shortcuts provide support for workbench or active editor selection sensitive launching.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run...
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command realizes the launch configuration dialog to manage run mode launch configurations.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Debug History
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Presents a sub menu of the recent history of launch configurations launched in debug mode.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Debug As
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Presents a sub menu of registered debug launch shortcuts. Launch shortcuts provide support for workbench or active editor selection sensitive launching.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Debug...
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command realizes the launch configuration dialog to manage debug mode launch configurations.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Various step commands
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              These commands allow you to step through code being debugged.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Inspect
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              When a thread suspends, this command uses the Expressions view to show the result of inspecting the selected expression or variable in the context of a stack frame
-              or variable in that thread.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Display
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              When a thread suspends, this command uses the Display view to show the result of evaluating the selected expression in the context of a stack frame or variable in
-              that thread. If the current active part is a Java Snippet Editor, the result is displayed there.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Snippet
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Within the context of the Java snippet editor, this command allows you to evaluate an expression but does not display a result.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run to Line
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              When a thread is suspended, it is possible to resume execution until a specified line is executed. This is a convenient way to suspend execution at a line without
-              setting a breakpoint.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Add/Remove Breakpoint
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command allows you to add or remove a Java line breakpoint at the current selected line in the active Java editor.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Add Java Exception Breakpoint
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command allows you to create an exception breakpoint. It is possible to suspend the execution of thread or VM when an exception is thrown by specifying an
-              exception breakpoint. Execution can be suspended at locations where the exception is uncaught, caught, or both.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Add/Remove Method Breakpoint
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command allows you to add or remove a method breakpoint for the current binary method. The binary method can be selected in source of a Java class file editor,
-              or be selected in any other view (such as the Outline view).
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Run Menu
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              Add/Remove Watchpoint
-            </p>
-          </td>
-          <td rowspan="1" colspan="1" valign="top" align="left">
-            <p>
-              This command allows you to add or remove a field watchpoint for the current Java field. The field can be selected in the source of a Java editor, or be selected in
-              any other view (such as the Outline view).
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/clocdbug.htm">Local Debugging</a><br>
-       <a href="../concepts/cremdbug.htm">Remote Debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <br>
-       <a href="../tasks/tasks-126.htm">Running and Debugging</a><br>
-       <a href="../tasks/tasks-141.htm">Connecting to a remote VM with the Remote Java application launch configuration</a><br>
-       <a href="../tasks/tasks-144.htm">Line breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a><br>
-       <a href="../tasks/tasks-147.htm">Catching exceptions</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related Reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="ref-51.htm">Debug View</a><br>
-       <a href="../reference/ref-11.htm">Debug Preferences</a><br>
-       <a href="../reference/ref-4.htm">Run and Debug actions</a>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-40.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-40.htm
deleted file mode 100644
index 0dc4bfc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-40.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Add Java exception breakpoint
-    </title>
-  </head>
-  <body>
-    <h1>
-      Add Java exception breakpoint
-    </h1>
-    <p>
-      This command allows you to add a Java exception breakpoint. In the resulting dialog:
-    </p>
-    <ul>
-      <li>
-        In the <strong>Choose an Exception</strong> field, type a string that is contained in the name of the exception you want to add. You can use wildcards as needed
-        (&quot;<em>*</em> &quot; for any string and &quot;<em>?</em> &quot; for any character).
-      </li>
-      <li>
-        In the exceptions list, select the exception you want to add.
-      </li>
-      <li>
-        Check or clear the <strong>Caught</strong> and <strong>Uncaught</strong> check boxes as needed to indicate on which exception type you want to suspend the program.
-      </li>
-    </ul>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-    	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-	    <a href="../tasks/tasks-130.htm">Launching a Java program</a> <br>
-     <a href="../tasks/tasks-126.htm">Running and debugging</a> 
-    <p>
-      <br>
-    </p>
-    <p>
-      &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-      </a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-41.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-41.htm
deleted file mode 100644
index bd8c425..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-41.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Uncaught
-    </title>
-  </head>
-  <body>
-    <h1>
-      Uncaught
-    </h1>
-    <p>
-      When this option is turned on, execution stops when the exception is thrown and is not caught in the program.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <br>
-       <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-       <a href="../tasks/tasks-147.htm">Catching exceptions</a><br>
-    	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-        <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-        <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-      <br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-40.htm">Add Java exception breakpoint</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-42.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-42.htm
deleted file mode 100644
index 7ea156b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-42.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Caught
-    </title>
-  </head>
-  <body>
-    <h1>
-      Caught
-    </h1>
-    <p>
-      When this option is turned on, execution stops when the exception is thrown and is caught in the program.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <br>
-     <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"> <br>
-     <a href="../tasks/tasks-147.htm">Catching exceptions</a><br>
-    	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-	    <a href="../tasks/tasks-130.htm">Launching a Java program</a> <br>
-     	<a href="../tasks/tasks-126.htm">Running and debugging</a> 
-    <p>
-      <br>
-       <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-40.htm">Add Java exception breakpoint</a>
-    </p>
-    <p>
-      &nbsp;<br>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-43.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-43.htm
deleted file mode 100644
index 8d827e4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-43.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Hit count
-    </title>
-  </head>
-  <body>
-    <h1>
-      Hit count
-    </h1>
-    <p>
-      This option sets the hit count for the selected breakpoint. The hit count keeps track of the number of times that the breakpoint is hit. When the breakpoint is hit for the
-      <em>n</em>th time, the thread that hit the breakpoint suspends. The breakpoint is disabled until either it is re-enabled or its hit count is changed.<br>
-      <br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-      	<a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-    	<a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-	    <a href="../tasks/tasks-130.htm">Launching a Java program</a> <br>
-     <a href="../tasks/tasks-126.htm">Running and debugging</a> 
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-44.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-44.htm
deleted file mode 100644
index 06b7745..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-44.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Enable
-    </title>
-  </head>
-  <body>
-    <h1>
-      Enable
-    </h1>
-    <p>
-      This command enables the selected breakpoints.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-44a.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-44a.htm
deleted file mode 100644
index d8cfe48..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-44a.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Disable
-    </title>
-  </head>
-  <body>
-    <h1>
-      Disable
-    </h1>
-    <p>
-      This command disables the selected breakpoints. A disabled breakpoint does not cause the execution of a program to be suspended.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-45.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-45.htm
deleted file mode 100644
index 0eb98d6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-45.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Console view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Console view
-    </h1>
-    
-<p> This view shows the output of a process and allows you to provide keyboard 
-  input to a process. The console shows three different kinds of text, each in 
-  a different color. </p>
-    <ul>
-      <li>
-        Standard output
-      </li>
-      <li>
-        Standard error
-      </li>
-      <li>
-        Standard input
-      </li>
-    </ul>
-    <p>
-      You can choose the different colors for these kinds of text on the preferences pages (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Debug</strong>
-      &gt; <strong>Console</strong>).
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-consoleAppearance.htm">Changing the appearance of the console view</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a>
-    </p>
-    <p>
-      <a href="../reference/ref-4.htm">Run menu</a> <a href="../reference/ref-35.htm">Breakpoints view</a> <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-45b.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-45b.htm
deleted file mode 100644
index b0d37a4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-45b.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Terminate
-    </title>
-  </head>
-  <body>
-    <h1>
-      Terminate
-    </h1>
-    <p>
-      This command terminates the process that is currently associated with the console
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-46.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-46.htm
deleted file mode 100644
index 464b11e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-46.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Clear
-    </title>
-  </head>
-  <body>
-    <h1>
-      Clear
-    </h1>
-    <p>
-      This command clears all content in the Console view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-47.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-47.htm
deleted file mode 100644
index 57d08f0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-47.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Copy
-    </title>
-  </head>
-  <body>
-    <h1>
-      Copy
-    </h1>
-    <p>
-      This command copies all selected text from the Console view onto the clipboard.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-48.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-48.htm
deleted file mode 100644
index 2767861..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-48.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Select All
-    </title>
-  </head>
-  <body>
-    <h1>
-      Select all
-    </h1>
-    <p>
-      This command selects all text in the current pane of the Console view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-49.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-49.htm
deleted file mode 100644
index cbde5fb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-49.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Find/Replace
-    </title>
-  </head>
-  <body>
-    <h1>
-      Find/Replace
-    </h1>
-    <p>
-      This command allows you to search for an expression and replace it with another expression.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-50.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-50.htm
deleted file mode 100644
index 61b5303..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-50.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Go to line
-    </title>
-  </head>
-  <body>
-    <h1>
-      Go to line
-    </h1>
-    <p>
-      This command allows you to go to the specified line in the console. The line is specified in the resulting dialog.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-51.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-51.htm
deleted file mode 100644
index 3909be5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-51.htm
+++ /dev/null
@@ -1,284 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Debug view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Debug view
-    </h1>
-    <p>
-      This view allows you to manage the debugging or running of a program in the workbench. It displays the stack frame for the suspended threads for each target you are
-      debugging. Each thread in your program appears as a node in the tree. It displays the process for each target you are running.
-    </p>
-    <p>
-      If the thread is suspended, its stack frames are shown as child elements.
-    </p>
-    
-<table border="1" cellspacing="0" width="697">
-  <caption> Debug View Commands </caption>
-  <thead> 
-  <tr> 
-    <th rowspan="1" colspan="1" width="78"> 
-      <p> Command </p>
-    </th>
-    <th rowspan="1" colspan="1" width="111"> 
-      <p> Name </p>
-    </th>
-    <th rowspan="1" colspan="1" width="494"> 
-      <p> Description </p>
-    </th>
-  </tr>
-  </thead> <tbody> 
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-25.gif" align="baseline" width="16" height="16" alt="Resume button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Resume </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command resumes a suspended thread. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-26.gif" align="baseline" width="16" height="16" alt="Suspend button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Suspend </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command suspends the selected thread of a target so that you can 
-        browse or modify code, inspect data, step, and so on. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-27.gif" align="baseline" width="16" height="16" alt="Terminate button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Terminate </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command terminates the selected debug target. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> 
-      <p> <img src="../images/terminate_rem_co.gif" align="baseline" width="16" height="16" alt="Terminate &amp; Remove command in context menu"><br>
-        Context menu only </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Terminate &amp; Remove </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command terminates the selected debug target and removes it from 
-        the view. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> 
-      <p> <img src="../images/terminate_all_co.gif" align="baseline" width="16" height="16" alt="Terminate All command in context menu"><br>
-        Context menu only </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Terminate All </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command terminates all active launches in the view. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-28.gif" align="baseline" width="16" height="16" alt="Disconnect button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Disconnect </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command disconnects the debugger from the selected debug target 
-        when debugging remotely. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-29.gif" align="baseline" width="16" height="16" alt="Remove All Terminated Launches button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Remove All Terminated Launches </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command clears all terminated debug targets from the view display. 
-      </p>
-    </td>
-  </tr>
-  <tr>
-    <td colspan="1" valign="top" align="left" width="78"><img src="../images/stepbystep_co.gif" align="baseline" width="16" height="16" alt="Step with Filters button">
-    </td>
-    <td colspan="1" valign="top" align="left" width="111">Step with Filters</td>
-    <td colspan="1" valign="top" align="left" width="494">This command steps into 
-      the highlighted statement applying the current set of step filters.</td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-30.gif" align="baseline" width="16" height="16" alt="Step Into button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Step Into </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command steps into the highlighted statement. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-31.gif" align="baseline" width="16" height="16" alt="Step Over button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Step Over </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command steps over the highlighted statement. Execution will continue 
-        at the next line either in the same method or (if you are at the end of 
-        a method) it will continue in the method from which the current method 
-        was called. </p>
-      <p> The cursor jumps to the declaration of the method and selects this line. 
-      </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-32.gif" align="baseline" width="16" height="16" alt="Run to Return button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Run to Return </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command steps out of the current method. This option stops execution 
-        after exiting the current method. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> <img src="../images/ref-33.gif" align="baseline" width="16" height="16" alt="Show Qualified Names button"> 
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Show Qualified Names </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This option can be toggled to display or hide qualified names. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> 
-      <p> <img src="../images/copy_edit_co.gif" align="baseline" width="16" height="16" alt="Copy Stack command in context menu"><br>
-        Context menu only </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Copy Stack </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command copies the selected stack of suspended threads as well 
-        as the state of the running threads to the clipboard. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> 
-      <p> Context menu only </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Drop to Frame </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command lets you drop back and reenter a specified stack frame. 
-        This feature is similar to &quot;running backwards&quot; and restarting 
-        your program part-way through. </p>
-      <p> To drop back and reenter a specified stack frame, select the stack frame 
-        that you want to &quot;drop&quot; to, and select <strong>Drop to Frame</strong> 
-        from the context menu. </p>
-      <p> Some caveats apply to this feature: </p>
-      <ul>
-        <li> You cannot drop past a native method on the stack. </li>
-        <li> Global data are unaffected and will retain their current values. 
-          For example, a static vector containing elements will not be cleared. 
-        </li>
-      </ul>
-      <em>Note: This command is only enabled if the underlying VM supports this 
-      feature.</em> </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> 
-      <p> <img src="../images/runlast_co.gif" align="baseline" width="16" height="16" alt="Relaunch command in context menu"><br>
-        Context menu only </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Relaunch </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command re-launches the selected debug target. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> 
-      <p> Context menu only </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Properties </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This command displays the properties of the selected launch. It also 
-        allows you to view the full command line for a selected process. </p>
-    </td>
-  </tr>
-  <tr> 
-    <td rowspan="1" colspan="1" valign="top" align="left" width="78"> 
-      <p> Context menu only </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="111"> 
-      <p> Use Step Filters </p>
-    </td>
-    <td rowspan="1" colspan="1" valign="top" align="left" width="494"> 
-      <p> This option can be toggled to apply step filters when performing <strong>Step 
-        Into</strong>. </p>
-    </td>
-  </tr>
-  </tbody> 
-</table>
-    <p>&nbsp;
-      
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/clocdbug.htm">Local debugging</a><br>
-       <a href="../concepts/cremdbug.htm">Remote debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-9.htm">Changing debugger launch options</a><br>
-       <a href="../tasks/tasks-141.htm">Connecting to a remote VM with the Remote Java application launch configuration</a><br>
-       <a href="../tasks/tasks-142.htm">Disconnecting from a VM</a><br>
-       <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-       <a href="../tasks/tasks-133.htm">Preparing to debug</a><br>
-       <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a><br>
-       <a href="../tasks/tasks-134.htm">Suspending threads</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-11.htm">Debug preferences</a><br>
-       <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      <br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-51a.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-51a.htm
deleted file mode 100644
index 94fc1e0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-51a.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Open Declared Type
-    </title>
-  </head>
-  <body>
-    <h1>
-      Open declared type
-    </h1>
-    <p>
-      This command allows you open an editor on the declared type of the currently selected stack frame in the <strong>Debug view</strong>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-51b.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-51b.htm
deleted file mode 100644
index e1bf77a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-51b.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Open Declared Type
-    </title>
-  </head>
-  <body>
-    <h1>
-      Open receiving type
-    </h1>
-    <p>
-      This command allows you open an editor on the receiving type of the currently selected stack frame in the <strong>Debug view</strong>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-51c.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-51c.htm
deleted file mode 100644
index 942cc96..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-51c.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Open Declared Type
-    </title>
-  </head>
-  <body>
-    <h1>
-      Copy stack
-    </h1>
-    <p>
-      This command allows you copy the labels of the currently selected element and its children in the <strong>Debug view</strong> to the system clipboard.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-51d.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-51d.htm
deleted file mode 100644
index 14b0de6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-51d.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Open Declared Type
-    </title>
-  </head>
-  <body>
-    <h1>
-      Drop to frame
-    </h1>
-    <p>
-      This command allows you re-enter the currently stack frame in the <strong>Debug view</strong>.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-52.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-52.htm
deleted file mode 100644
index 1be9797..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-52.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Display view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Display view
-    </h1>
-    <p>
-      This view displays the result of evaluating an expression in the context of the current stack frame. You can evaluate and display a selection either from the editor or
-      directly from the Display view.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-138.htm">Evaluating expressions</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-53.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-53.htm
deleted file mode 100644
index b50910b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-53.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Clear the display
-    </title>
-  </head>
-  <body>
-    <h1>
-      Clear the display
-    </h1>
-    <p>
-      This command clears the display view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-54.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-54.htm
deleted file mode 100644
index 87b95b6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-54.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Display
-    </title>
-  </head>
-  <body>
-    <h1>
-      Display
-    </h1>
-    <p>
-      You can type an expression in the Display view and then use the <strong>Display</strong> command to display its value.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-55.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-55.htm
deleted file mode 100644
index c633155..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-55.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Inspect
-    </title>
-  </head>
-  <body>
-    <h1>
-      Inspect
-    </h1>
-    <p>
-      You can type an expression in the Display view and then use the <strong>Inspect</strong> command to evaluate the expression and inspect the result in the Expressions view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-56.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-56.htm
deleted file mode 100644
index 36256af..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-56.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Expressions view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Expressions view
-    </h1>
-    <p>
-      Data can be inspected in the Expressions view. You can inspect data from a scrapbook page, a stack frame of a suspended thread, and other places. The Expressions view opens
-      automatically when the <strong><strong>Inspect</strong></strong> command is activated.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a><br>
-       <a href="../concepts/concepts-11.htm">Scrapbook</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-       <a href="../tasks/tasks-134.htm">Suspending threads</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-56a.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-56a.htm
deleted file mode 100644
index c0d7285..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-56a.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Select All
-    </title>
-  </head>
-  <body>
-    <h1>
-      Select all
-    </h1>
-    <p>
-      This command selects all expressions in the <strong>Expressions view</strong>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-56b.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-56b.htm
deleted file mode 100644
index b5cde76..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-56b.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Copy Variables
-    </title>
-  </head>
-  <body>
-    <h1>
-      Copy
-    </h1>
-    <p>
-      This command copies a text representation of all selected expressions and variables onto the clipboard.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-56c.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-56c.htm
deleted file mode 100644
index 0eda0c8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-56c.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show Detail Pane
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show detail pane
-    </h1>
-    <p>
-      This command toggles showing the detail pane for the <strong>Expressions view</strong>. The details pane shows the <em>toString</em> for selected objects. For primitive
-      variables, it shows the value.<br>
-       Code completion in the context of selected variable or the current stack frame is available as well. Evaluation can occur on expressions using <strong>Inspect</strong> and
-      <strong>Display</strong>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-56d.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-56d.htm
deleted file mode 100644
index 0585dca..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-56d.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Add/Remove Watchpoint
-    </title>
-  </head>
-  <body>
-    <h1>
-      Add/Remove watchpoint
-    </h1>
-    <p>
-      This command allows you to add or remove a field watchpoint for the current selected variable in the <strong>Expressions</strong> view.
-    </p>
-    <p>
-      <br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-56e.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-56e.htm
deleted file mode 100644
index 211bea3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-56e.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Open Declared Type
-    </title>
-  </head>
-  <body>
-    <h1>
-      Open declared type
-    </h1>
-    <p>
-      This command allows you open an editor on the declared type of the currently selected variable in the <strong>Expressions view</strong>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-57.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-57.htm
deleted file mode 100644
index 593026a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-57.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show type names
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show type names
-    </h1>
-    <p>
-      This option can be toggled to show or hide type names.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-58.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-58.htm
deleted file mode 100644
index fdee945..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-58.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show qualified names
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show qualified names
-    </h1>
-    <p>
-      This option can be toggled to show or hide qualified names.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-59.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-59.htm
deleted file mode 100644
index d0c937e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-59.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Remove selected expressions
-    </title>
-  </head>
-  <body>
-    <h1>
-      Remove selected expressions
-    </h1>
-    <p>
-      This command removes the selected expressions from the Expressions view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-6.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-6.htm
deleted file mode 100644
index 0c0d933..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-6.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      JDT perspectives
-    </title>
-  </head>
-  <body>
-    <h1>
-      JDT perspectives
-    </h1>
-    <p>
-      Several predefined perspectives are included in the workbench by default.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-60.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-60.htm
deleted file mode 100644
index cc0e675..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-60.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Remove all expressions
-    </title>
-  </head>
-  <body>
-    <h1>
-      Remove all expressions
-    </h1>
-    <p>
-      This command removes all expressions from the <strong>Expressions</strong> view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-62.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-62.htm
deleted file mode 100644
index d0c5f25..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-62.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show static fields
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show static fields
-    </h1>
-    <p>
-      This option can be toggled to show or hide static fields.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-63.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-63.htm
deleted file mode 100644
index 6d6986d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-63.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show constants
-    </title>
-  </head>
-  <body>
-    
-<h1> Show constants </h1>
-    
-<p> This option can be toggled to show or hide constants (static final fields). 
-</p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-64.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-64.htm
deleted file mode 100644
index befc214..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-64.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Inspect
-    </title>
-  </head>
-  <body>
-    <h1>
-      Inspect
-    </h1>
-    <p>
-      This command causes the selected variables to be inspected.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-65.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-65.htm
deleted file mode 100644
index 5c52ab9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-65.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Change variable value
-    </title>
-  </head>
-  <body>
-    <h1>
-      Change variable value
-    </h1>
-    <p>
-      This command allows you to change the value of the selected variable.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-67.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-67.htm
deleted file mode 100644
index 5459b96..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-67.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Terminate
-    </title>
-  </head>
-  <body>
-    <h1>
-      Terminate
-    </h1>
-    <p>
-      This command terminates the launch associated with the selected element.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-68.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-68.htm
deleted file mode 100644
index d1863a3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-68.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Disconnect
-    </title>
-  </head>
-  <body>
-    <h1>
-      Disconnect
-    </h1>
-    <p>
-      This command disconnects the debugger from the selected remote debug launch.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-69.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-69.htm
deleted file mode 100644
index a9548c5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-69.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Remove all terminated launches
-    </title>
-  </head>
-  <body>
-    <h1>
-      Remove all terminated launches
-    </h1>
-    <p>
-      This command clears all terminated launches from the view display.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-7.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-7.htm
deleted file mode 100644
index 33c2dcd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-7.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Java
-    </title>
-  </head>
-  <body>
-    <h1>
-      Java
-    </h1>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="ref-view-package-explorer.htm">See Packages View</a>
-      </li>
-      <li>
-        <a href="ref-type-hierarchy.htm">See Hierarchy View</a>
-      </li>
-      <li>
-        <a href="ref-45.htm">See Console View</a>
-      </li>
-      <li>
-        <a href="ref-view-outline.htm">See Outline View for Java</a>
-      </li>
-    </ul>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-70.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-70.htm
deleted file mode 100644
index d5501ac..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-70.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Terminate and remove
-    </title>
-  </head>
-  <body>
-    <h1>
-      Terminate and remove
-    </h1>
-    <p>
-      This command terminates the launch associated with the selected element and removes it from the view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-71.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-71.htm
deleted file mode 100644
index 8ca9a16..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-71.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Terminate all
-    </title>
-  </head>
-  <body>
-    <h1>
-      Terminate all
-    </h1>
-    <p>
-      This command terminates all active launches in the view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-72.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-72.htm
deleted file mode 100644
index dc1909d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-72.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Relaunch
-    </title>
-  </head>
-  <body>
-    <h1>
-      Relaunch
-    </h1>
-    <p>
-      This command re-launches the selected launch.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-73.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-73.htm
deleted file mode 100644
index 1753d2b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-73.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Properties
-    </title>
-  </head>
-  <body>
-    <h1>
-      Properties
-    </h1>
-    <p>
-      This command displays the various properties of the selected launch. For example, you can view the full command line that launched the selected process.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-74.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-74.htm
deleted file mode 100644
index aaaad40..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-74.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Variables view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Variables view
-    </h1>
-    <p>
-      This view displays information about the variables in the currently-selected stack frame.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-134.htm">Suspending threads</a>
-    </p>
-    <p>
-      <a href="../tasks/tasks-138.htm">Evaluating expressions</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-74a.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-74a.htm
deleted file mode 100644
index e0ec537..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-74a.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Add/Remove Watchpoint
-    </title>
-  </head>
-  <body>
-    <h1>
-      Add/Remove watchpoint
-    </h1>
-    <p>
-      This command allows you to add or remove a field watchpoint for the current selected variable in the <strong>Variables</strong> view.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-75.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-75.htm
deleted file mode 100644
index 593026a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-75.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show type names
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show type names
-    </h1>
-    <p>
-      This option can be toggled to show or hide type names.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-76.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-76.htm
deleted file mode 100644
index fdee945..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-76.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show qualified names
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show qualified names
-    </h1>
-    <p>
-      This option can be toggled to show or hide qualified names.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-78.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-78.htm
deleted file mode 100644
index d0c5f25..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-78.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show static fields
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show static fields
-    </h1>
-    <p>
-      This option can be toggled to show or hide static fields.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-8.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-8.htm
deleted file mode 100644
index e84860b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-8.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Java type hierarchy
-    </title>
-  </head>
-  <body>
-    <h1>
-      Java type hierarchy
-    </h1>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="ref-82.htm">See Hierarchy View</a>
-      </li>
-    </ul>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-80.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-80.htm
deleted file mode 100644
index 30c8d5f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-80.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Inspect
-    </title>
-  </head>
-  <body>
-    <h1>
-      Inspect
-    </h1>
-    <p>
-      This command causes the selected variable(s) to be inspected.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-81.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-81.htm
deleted file mode 100644
index 5c52ab9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-81.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Change variable value
-    </title>
-  </head>
-  <body>
-    <h1>
-      Change variable value
-    </h1>
-    <p>
-      This command allows you to change the value of the selected variable.
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-9.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-9.htm
deleted file mode 100644
index cdbfc83..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-9.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Debug
-    </title>
-  </head>
-  <body>
-    <h1>
-      Debug
-    </h1>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="ref-51.htm">See Debug View</a>
-      </li>
-      <li>
-        <a href="ref-35.htm">See Breakpoints View</a>
-      </li>
-      <li>
-        <a href="ref-56.htm">See Expressions View</a>
-      </li>
-      <li>
-        <a href="ref-74.htm">See Variables View</a>
-      </li>
-      <li>
-        <a href="ref-52.htm">See Display View</a>
-      </li>
-      <li>
-        <a href="ref-102.htm">See Outline View for Java</a>
-      </li>
-      <li>
-        <a href="ref-45.htm">See Console View</a>
-      </li>
-    </ul>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-gettersetter.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-gettersetter.htm
deleted file mode 100644
index 628d57d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-gettersetter.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Generate Getter and Setter
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Create getter and setter
-    </h1>
-    <p>
-      This dialog lets select the Getter and Setter methods to create.
-    </p>
-	<p>
-     Use <strong>Generate Getter and Setter</strong> from the <a href="ref-menu-source.htm">Source menu</a> or the context menu on a selected field or type, or a text selection in
-    a type to open the dialog.
-     The Generate Getter and Setter dialog shows Getter and Setters for all fields of the selected type. The methods are grouped by the type's fields. 
-	 </p>
-    <p>
-      The names of the getting and setting methods are derived from the field name. If you use a prefix or suffix for fields (e.g. fValue, _value, val_m), you can specify the
-      suffixes and prefixes in the <a href="ref-preferences-code-generation.htm">Code Generation preference page</a> (Windows &gt; Preferences &gt; Java &gt; Code Generation).
-    </p>
-    <p>
-      When pressing&nbsp;<strong>OK</strong>, all selected Getter and Setters are created
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Select methods to create</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Tree containing Getter and Setter methods that can be created. Getter and Setters are grouped by field.&nbsp;
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Select All</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Select all Getters and Setter methods
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Deselect All</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Deselect all Getters and Setter methods
-          </p>
-        </td>
-      </tr>
-    </table>
-	<p>
-    You can control whether Javadoc comments are added to the created methods
-    with the <strong>Automatically add comments for new methods and types</strong> option
-    on the <strong>Code and Comments</strong> tab of the <a href="ref-preferences-code-generation.htm">Code Generation preference page</a>.
-    <strong>(Window &gt; Preferences &gt; Java &gt; Code Generation)</strong>
-    <p> 
-	  <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-57.htm">Generating getters and setters</a><br>
-      <a href="../reference/ref-menu-source.htm">Source actions</a>
-	</p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-java-element-filters.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-java-element-filters.htm
deleted file mode 100644
index 9ee6f6f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-java-element-filters.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Java Element Filters dialog
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Java element filters dialog
-    </h1>
-    <p>
-      This dialog lets you define Java element filters for the Package Explorer view.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Name filter patterns</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, a comma separated list of patterns can be specified additionally.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Select the elements to exclude from the view</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              List of pre-defined filters which can be enabled.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              	.* files<br>
-			  	Empty parent packages<br>
-				Import declarations<br>
-				Inner class files<br>
-				Package declarations
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      The <strong>Filter description</strong> field displays the description for the currently selected filter.
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-47.htm">Filtering elements</a><br>
-       <a href="../tasks/tasks-2.htm">Showing and hiding elements</a><br>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer view</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-javadoc-location.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-javadoc-location.htm
deleted file mode 100644
index 126681a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-javadoc-location.htm
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Javadoc location page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Javadoc location page
-    </h1>
-    <p>
-      This dialog lets you define the location of the Javadoc documentation for a JAR or a Java project.
-    </p>
-	<p>
-     You can reach this dialog the following ways: 
-	</p>
-    <ul>
-      <li>
-        Select a JAR or Java project, open the context menu and select Properties &gt; Javadoc Location or use&nbsp;<strong>Properties</strong> from the <a href=
-        "ref-menu-file.htm">File menu</a>
-      </li>
-      <li>
-        In the Javadoc generation wizard, on the Standard doclet settings page, choose&nbsp;<strong>Configure</strong>
-      </li>
-    </ul>
-	<p>
-    Javadoc can be attached to JARs or Java projects. For projects it documents the elements of all source folders, 
-	for JARs, elements contained in the JAR are documented. The location is used by 
-	</p>
-    <ul>
-      <li>
-        <strong>Open External Javadoc</strong> in the <a href="ref-menu-navigate.htm">Navigate menu</a> to find the Javadoc location of an element
-      </li>
-      <li>
-        Context Help (F1) to point to a Javadoc location
-      </li>
-      <li>
-        <a href="ref-export-javadoc.htm">Javadoc Export Wizard</a> to link to other documentation or as default destination for a project's documentation
-      </li>
-    </ul>
-	<p>
-    Valid locations are URLs that point to a folder containing the API documentation's&nbsp;<em>index.html</em> and&nbsp;<em>package-list</em> file. Examples are: 
-	</p>
-    <blockquote>
-      file:///M:/JAVA/JDK1.2/DOCS/API/<br>
-       http://java.sun.com/j2se/1.4/docs/api/
-    </blockquote>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-        <th>
-          <p>
-            Default
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Javadoc Location</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Specify the location of the generated Javadoc documentation. You can&nbsp;<strong>Browse</strong> in the local file system for a Javadoc location (will result in a
-            file:// URL)&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          &lt;empty&gt;
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Validate</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Validate the current location by trying to access the&nbsp;<em>index.html</em> and&nbsp;<em>package-list</em> file with the given URL. If the validation was
-            successful, you can directly open the documentation.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>&nbsp;
-            
-          </p>
-        </td>
-      </tr>
-    </table>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-196.htm">Creating Javadoc documentation</a> <br>
-      <a href="../tasks/tasks-197.htm">Specifying the location of the Javadoc command</a> <br>
-      <a href="../tasks/tasks-71.htm">Viewing Javadoc information</a><br><br>
-      <a href="../reference/ref-export-javadoc.htm">Export Javadoc wizard</a> <a href="../reference/ref-preferences-javadoc.htm">Javadoc preferences</a>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-override-method.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-override-method.htm
deleted file mode 100644
index 21bb2c9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-dialog-override-method.htm
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Override Methods
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Override methods
-    </h1>
-    <p>
-      This dialog lets you define methods to override.
-    </p>
-	<p>
-     Use <strong>Override/Implement Methods</strong> from the <a href="ref-menu-source.htm">Source menu</a> or the context menu on a selected type or on a text selection in a type. 
-	</p>
-    <p>
-      The dialog presents all methods that can be overridden from superclasses or implemented from interfaces. Abstract methods or unimplemented methods are selected by default.
-    </p>
-    <p>
-      The tree view groups methods by the type declaring the method. If more than one type in the hierarchy declare the same method, the method is only shown once, grouped to the
-      first type in the list of supertypes that implements or defines this method.
-    </p>
-    <p>
-      The flat view shows only methods, sorted alphabetically.
-    </p>
-    <p>
-      When pressing&nbsp;<strong>OK</strong>, method stubs for all selected methods are created.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-        <th>
-          <p>
-            Default
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Select methods to override or implement</strong>
-          </p>
-        </td>
-        <td valign="top">
-          Select methods to override or implement
-        </td>
-        <td valign="top">
-          Abstract methods from superclasses and unimplemented methods from interfaces are selected
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Group methods by types</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Shows methods grouped by a list of the super types in which they are declared.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            selected&nbsp;
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Select All</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Select all methods
-          </p>
-        </td>
-        <td valign="top">
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Deselect All</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Deselect all methods
-          </p>
-        </td>
-        <td valign="top">
-        </td>
-      </tr>
-    </table>
-	<p>
-    To enable / disable that Javadoc comments are added to the created methods go to the <a href="ref-preferences-code-generation.htm">Code Generation preference page</a> (Window
-    &gt; Preferences &gt; Java &gt; Code Generation) and enable / disable&nbsp;<strong>Create Javadoc comments for methods and types</strong>.
-	</p>
-	<p>
-     For overridden methods you can choose to create non-Javadoc comments (<strong>Create non-Javadoc comments for overridden methods</strong>). The reason for creating
-    non-Javadoc comments is a feature of the Javadoc tool: Methods that override a method automatically get the comment of the overridden method if they don't specify an own
-    Javadoc comment. 
-	</p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-43.htm">Overriding a method using the Hierarchy view</a><br>
-      <a href="../reference/ref-menu-source.htm">Source actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-export-jar.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-export-jar.htm
deleted file mode 100644
index 1615f58..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-export-jar.htm
+++ /dev/null
@@ -1,273 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      JAR file exporter
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      JAR file exporter
-    </h1>
-    <p>
-      This wizard allows you to create a JAR file.
-    </p>
-    <h2>
-      JAR package specification
-    </h2>
-	<p>
-	  JAR Specification Options:
-	</p>
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Select the resources to export
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              In the list, check or clear the boxes to specify exactly the files that you want to export to the JAR file. This list is initialized by the workbench selection.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Export generated class files and resources
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              If you want to export generated CLASS files and resources, select this option.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Export java source files and resources
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              If you want to export JAVA source files and resources, select this option.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Select the export destination
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Enter an external file system path and name for a JAR file (either new or existing). Either type a valid file path in the field or click Browse to select a file via
-              a dialog.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Options
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              You can select any of the following options:
-            </p>
-            <ul>
-              <li>
-                <strong>Compress the contents of the JAR file&nbsp;</strong>: to create a compressed JAR file
-              </li>
-              <li>
-                <strong>Overwrite existing files without warning</strong> : if an existing file might be overwritten, you are prompted for confirmation. This option is applied to
-                the JAR file, the JAR description, and the manifest file.
-              </li>
-            </ul>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2>
-      JAR packaging options
-    </h2>
-	<p>
-        JAR Options:
-	</p>
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Select options for handling problems
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Choose whether to export classes with certain problems:
-            </p>
-            <ul>
-              <li>
-                Export class files with compile errors
-              </li>
-              <li>
-                Export class files with compile warnings
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Create source folder structure
-          </td>
-          <td>
-            Selected this option if you want the source folder structure to be rebuilt in the JAR. This option is only enabled when source files but no class files are
-            exported.&nbsp;
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Build projects if not build automatically
-          </td>
-          <td>
-            Select this option to force a rebuild before exporting. It is recommended to build be before exporting so the exported class files ar up to date.
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Save the description of this JAR in the workspace
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              If you select this option, you can create a file in the workbench describing the JAR file you are creating. Either type and/or browse to select a path and name for
-              this new file.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2>
-      JAR manifest specification
-    </h2>
-	<p>
-        JAR Manifest Specification Options (Available when class file are exported):
-	</p>
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Specify the manifest
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Choose the source of the manifest file for this JAR file:
-            </p>
-            <ul>
-              <li>
-                Generate the manifest file (you can also choose either to save or reuse and save the new manifest file)
-              </li>
-              <li>
-                Use existing manifest from workspace
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Seal contents
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Choose which packages in the JAR file must be sealed:
-            </p>
-            <ul>
-              <li>
-                Seal the JAR: to seal the entire JAR file; click&nbsp;<strong>Details</strong> to exclude selectively
-              </li>
-              <li>
-                Seal some packages; click&nbsp;<strong>Details</strong> to choose selectively
-              </li>
-            </ul>
-             <em>Note: This option is only available if the manifest is generated.</em>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Select the class of the application entry point&nbsp;
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Type or click&nbsp;<strong>Browse</strong> to select the main class for the JAR file, if desired.
-            </p>
-             <em>Note: This option is only available if the manifest is generated.</em>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-32.htm">Creating JAR Files</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference"><br>
-      <a href="../reference/ref-menu-file.htm">File actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-export-javadoc.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-export-javadoc.htm
deleted file mode 100644
index da9f60b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-export-javadoc.htm
+++ /dev/null
@@ -1,344 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Javadoc generation
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Javadoc generation
-    </h1>
-    <p>
-      This wizard allows you to generate Javadoc Generation.It is a user interface for the javadoc.exe tool available in the Java JDK. Visit <a href=
-      "http://java.sun.com/j2se/1.4/docs/tooldocs/javadoc/index.html">Sun's Javadoc Tool</a> page for a complete documentation of the Javadoc tool.
-	</p>
-	<p>  
-       To run this wizard a Javadoc command must be configured in the <a href="ref-preferences-javadoc.htm">Javadoc preference page</a> (Window &gt; Preferences &gt; Java &gt;
-      Javadoc).
-    </p>
-    <h2>
-      First page
-    </h2>
-	<p>
-        Type Selection:
-	</p>
-    <table border="1" cellspacing="0">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Select types for which Javadoc will be generated
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            In the list, check or clear the boxes to specify exactly the types that you want to export to the JAR file. This list is initialized by the workbench selection. Only
-            one project can be selected at once as only one project's classpath can be used at a time when running the Javadoc tool.
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Create Javadoc for members with visibility
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <ul>
-            <li>
-              <strong>Private</strong>: All members will be documented
-            </li>
-            <li>
-              <strong>Package</strong>: Only members with default, protected or public visibility will be documented
-            </li>
-            <li>
-              <strong>Protected</strong>: Only members with protected or public visibility will be documented
-            </li>
-            <li>
-              <strong>Public</strong>: Only members with public visibility will be documented (default)
-            </li>
-          </ul>
-          <br>
-          <br>
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Use Standard Doclet
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Start the Javadoc command with the standard doclet (default)&nbsp;
-          </p>
-          <ul>
-            <li>
-              <strong>Destination</strong>: select the destination to which the standard doclet will write the generated documentation. The destination is a doclet specific
-              argument, and therefore not enabled when using a custom doclet.
-            </li>
-          </ul>
-          <br>
-          <br>
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Use Custom Doclet
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Use a custom doclet to generate documentation&nbsp;
-          </p>
-          <ul>
-            <li>
-              <strong>Doclet name</strong>: Qualified type name of the doclet
-            </li>
-            <li>
-              <strong>Doclet class path</strong>: Classpath needed by the doclet class
-            </li>
-          </ul>
-          <br>
-          <br>
-        </td>
-      </tr>
-    </table>
-	
-    <h2>
-      Standard doclet arguments
-    </h2>
-	<p>
-        Standard Doclet Arguments (available when&nbsp;<strong>Use standard doclet</strong> has been selected):
-	</p>
-    <table border="1" cellspacing="0">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Document title
-          </p>
-        </td>
-        <td align="left" valign="top">
-          Specify a document title.
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Generate use page
-        </td>
-        <td>
-          Selected this option if you want the documentation to contain a Use page.
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Generate hierarchy tree
-        </td>
-        <td>
-          Selected this option if you want the documentation to contain a Tree page.
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Generate navigator bar
-          </p>
-        </td>
-        <td align="left" valign="top">
-          Selected this option if you want the documentation to contain a navigation bar (header and footer).
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Generate index
-        </td>
-        <td>
-          Selected this option if you want the documentation to contain a Index page.
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Generate index per letter
-        </td>
-        <td>
-          Create an index per letter. Enabled when <strong>Generate Index</strong> is selected.&nbsp;
-        </td>
-      </tr>
-      <tr>
-        <td>
-          @author
-        </td>
-        <td>
-          Selected this option if you want to the @author tag to be documented.
-        </td>
-      </tr>
-      <tr>
-        <td>
-          @version
-        </td>
-        <td>
-          Selected this option if you want to the @version tag to be documented.
-        </td>
-      </tr>
-      <tr>
-        <td>
-          @deprecated
-        </td>
-        <td>
-          Selected this option if you want to the @deprecated tag to be documented.
-        </td>
-      </tr>
-      <tr>
-        <td>
-          deprecated list
-        </td>
-        <td>
-          Selected this option if you want the documentation to contain a Deprecated page. Enabled when the&nbsp;<strong>@deprecated</strong> option is selected.
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Select referenced classes to which Javadoc should create links
-        </td>
-        <td>
-          Specify to which other documentation Javadoc should create links when other types are referenced.&nbsp; 
-          <ul>
-            <li>
-              Select All: Create links to all other documentation locations
-            </li>
-            <li>
-              Clear All: Do not create links to other documentation locations
-            </li>
-            <li>
-              Configure: Configure the Javadoc location of a referenced JAR or project.
-            </li>
-          </ul>
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Style sheet
-        </td>
-        <td>
-          Select the style sheet to use
-        </td>
-      </tr>
-    </table>
-     
-    <h2>
-      General arguments
-    </h2>
-	<p>
-        General Javadoc Options:
-	</p>
-    <table border="1" cellspacing="0">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Overview
-          </p>
-        </td>
-        <td align="left" valign="top">
-          Specifies that Javadoc should retrieve the text for the overview documentation from the given file. It will be placed in overview-summary.html.
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Extra Javadoc options
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Add any number of extra options here: Custom doclet options,VM options or JRE 1.4 compatibility options.<br>
-             Note that arguments containing spaces must enclosed in quotes. For arguments specifying html code (e.g. -header) use the &amp;nbsp; or &amp;quot; to avoid spaces and
-            quotes.
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Save the settings of this Javadoc export as an Ant script
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Specify to store an Ant script that will perform the specified Javadoc export without the need to use the wizard. Existing Ant script can be modified with this wizard
-            (Use Open Javadoc wizard' from the context menu on the generated Ant script)
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Open generated index file in browser
-        </td>
-        <td>
-          Opens the generated index.html file in the browser (Only available when using the standard doclet)
-        </td>
-      </tr>
-    </table>
-    <p>
-      Press&nbsp;<strong>Finish</strong> to start the Javadoc generation.
-       If the destination is different to the location configured the project's <a href="ref-dialog-javadoc-location.htm"> Javadoc Location page</a> , you will be asked if you
-      want to set the project's Javadoc location to the new destination folder. By doing this, all invocations of Open External Javadoc will use the now created
-      documentation.
-    </p>
-    <p>
-      A new process will be started and the generation performed in the background. Open the <a href="ref-45.htm">Console view</a> (Window &gt; Show View &gt; Console) to see the
-      progress and status of the generation.
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-196.htm">Creating Javadoc documentation</a><br>
-       <a href="../reference/ref-menu-file.htm">File actions</a><br>
-       <a href="../reference/ref-preferences-javadoc.htm">Javadoc preferences</a><br>
-       <a href="../reference/ref-dialog-javadoc-location.htm">Javadoc Location properties</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-java-editor-quickfix.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-java-editor-quickfix.htm
deleted file mode 100644
index 9c5435b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-java-editor-quickfix.htm
+++ /dev/null
@@ -1,277 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Quick fix
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Quick fix
-    </h1>
-    <p>
-      For certain problems underlined with a problem highlight line, the Java editor can offer corrections. This is shown by the light bulb shown in the editor marker bar.
-    </p>
-	<p>
-    <img src="../images/qs-37a.gif" width=330 height=132 alt="A Java editor indicating a quick-fixable problem with a lightbulb in the editor marker bar"> <br>
-	</p>
-     To see the correction proposals use the Quick Fix action 
-    <ul>
-      <li>
-        Set the cursor inside the highlight range, and select&nbsp;<strong>Quick Fix</strong> from the <a href="ref-menu-edit.htm">Edit menu</a> or the context menu.
-      </li>
-      <li>
-        Set the cursor inside the highlight range, and press Ctrl + 1
-      </li>
-      <li>
-        Click on the light bulb
-      </li>
-    </ul>
-	<p>
-    Note that the light bulb is only a hint. It is possible that even with the light bulb shown, it turns out that no corrections can be offered.
-	</p>
-	<p>
-	Provided corrections:
-	</p>     
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Problem
-            </p>
-          </th>
-          <th>
-            <p>
-              Correction Proposals
-            </p>
-          </th>
-        </tr>
-        <tr align="left" valign="top">
-          <td align="left" valign="top">
-            <p>
-              Unresolved method reference
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <ul>
-              <li>
-                Change to a method with a similar name
-              </li>
-              <li>
-                Create method
-              </li>
-            </ul>
-            <br>
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Unresolved variable name&nbsp;
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <ul>
-              <li>
-                Change to a variable with a similar name
-              </li>
-              <li>
-                Create field
-              </li>
-              <li>
-                Create local variable
-              </li>
-              <li>
-                Create parameter
-              </li>
-            </ul>
-            <br>
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Unresolved type name&nbsp;
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <ul>
-              <li>
-                Change to a type with a similar name
-              </li>
-              <li>
-                Create class
-              </li>
-              <li>
-                Create interface
-              </li>
-              <li>
-                Add import statement
-              </li>
-            </ul>
-            <br>
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Undefined constructor
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <ul>
-              <li>
-                Create constructor
-              </li>
-            </ul>
-            <br>
-            <br>
-          </td>
-        </tr>
-        <tr valign="top">
-          <td>
-            Parameter mismatch
-          </td>
-          <td>
-            <ul>
-              <li>
-                Change method name to matching method
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Unhandled exception
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <ul>
-              <li>
-                Add try / catch statement
-              </li>
-              <li>
-                Add throws declaration to enclosing method
-              </li>
-            </ul>
-            <br>
-            <br>
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Type name does not match compilation unit name
-          </td>
-          <td>
-            <ul>
-              <li>
-                Change type name
-              </li>
-              <li>
-                Change file name
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Package declaration does not match file location
-          </td>
-          <td>
-            <ul>
-              <li>
-                Change package declaration
-              </li>
-              <li>
-                Move file
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Unused import
-          </td>
-          <td>
-            <ul>
-              <li>
-                Remove import
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Type mismatch
-          </td>
-          <td>
-            <ul>
-              <li>
-                Add cast statement
-              </li>
-              <li>
-                Change declared type
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Unterminated string
-          </td>
-          <td>
-            <ul>
-              <li>
-                Terminate string
-              </li>
-            </ul>
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Non-Externalized string
-          </td>
-          <td>
-            <ul>
-              <li>
-                Open Externalize String wizard
-              </li>
-            </ul>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      To enable / disable problem indication &amp; the light bulb go to the <a href="ref-21.htm">Java Editor preference page</a> &gt; Annotations
-    </p>
-	<p>	  
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-7.htm">Java editor</a><a href="../concepts/concepts-7.htm"><br>
-       Java Development Tools (JDT)<br>
-      </a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-175.htm">Using quick fix<br>
-      </a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference"><br>
-      <a href="../reference/ref-21.htm">Java editor preferences</a><br>
-       <a href="../reference/ref-menu-edit.htm">Edit menu</a><br>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-java-editor.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-java-editor.htm
deleted file mode 100644
index f0ba38a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-java-editor.htm
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Java editor
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Java editor
-    </h1>
-    <h2 class="Head">
-      Toolbar actions
-    </h2>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Command
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show Source of Selected Element Only</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This option can be toggled to display a segmented view of the source of the selected Java element. This button applies to the currently-active editor and to all
-              editors opened in the future; other currently-open editors are not affected.
-            </p>
-            <p>
-              For example, if a method is selected in the Outline view, the <strong>Show Source Of Selected Element Only</strong> option causes only that method to be displayed in
-              the editor, as opposed to the entire class.
-            </p>
-            <dl>
-              <dt>
-                <strong>Off</strong>:
-              </dt>
-              <dd>
-                The entire compilation unit is displayed in the editor, with the selected Java element highlighted in the marker bar with a range indicator.
-              </dd>
-              <dt>
-                <strong>On</strong>:
-              </dt>
-              <dd>
-                Only the selected Java element is displayed in the editor, which is linked to the selection in the Outline or Hierarchy view.
-              </dd>
-            </dl>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Go to Next Problem</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This command navigates to the next problem marker in the active editor.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Go to Previous Problem</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This command navigates to the previous problem marker in the active editor.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2 class="Head">
-      Key binding actions
-    </h2>
-    <p>
-      The following actions can only be reached through key bindings. The <strong>Key bindings</strong> field in <strong>Window &gt; Preferences &gt; Workbench &gt;
-      Keys </strong> must be set to 'Emacs'.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Key binding
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <kbd>Alt</kbd>+<kbd>0</kbd> <kbd>Ctrl</kbd>+<kbd>K</kbd>, <kbd>Esc</kbd> <kbd>0</kbd> <kbd>Ctrl</kbd>+<kbd>K</kbd>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Deletes from the cursor position to the beginning of the line.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <kbd>Ctrl</kbd>+<kbd>K</kbd>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Deletes from the cursor position to the end of the line.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <kbd>Ctrl</kbd>+<kbd>Space</kbd>, <kbd>Ctrl</kbd>+<kbd>2</kbd>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Sets a mark at the current cursor position.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <kbd>Ctrl</kbd>+<kbd>X</kbd> <kbd>Ctrl</kbd>+<kbd>X</kbd>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Swaps the cursor and mark position if any.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-      <a href="../tasks/tasks-69.htm">Viewing documentation and information</a><br>
-       <a href="../tasks/tasks-6.htm">Showing single elements or whole Java files</a><br>
-       <a href="../tasks/tasks-73.htm">Opening an editor for a selected element</a> <a href="../tasks/tasks-54.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference"><br>
-      <a href="../reference/ref-view-outline.htm">Outline view for Java</a> <a href="../reference/ref-21.htm">Java editor preferences</a> <a href="../reference/ref-2.htm">JDT
-      actions</a> <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-edit.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-edit.htm
deleted file mode 100644
index 8e537c3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-edit.htm
+++ /dev/null
@@ -1,320 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Edit actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Edit actions
-    </h1>
-	<p>
-        Edit menu commands shown when a Java Editor is visible:
-	</p>     
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Name
-            </p>
-          </th>
-          <th>
-            <p>
-              Function
-            </p>
-          </th>
-          <td>
-            <strong>Keyboard Shortcut</strong>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td align="left" valign="top">
-            <p>
-              Undo
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Revert the last change in the editor
-            </p>
-          </td>
-          <td>
-            Ctrl + Z
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Redo&nbsp;
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Revert an undone change
-            </p>
-          </td>
-          <td>
-            Ctrl + Y
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Cut
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Copies the currently selected text or element to the clipboard and removes the element. On elements, the remove is not performed before the clipboard is pasted.
-            </p>
-          </td>
-          <td>
-            Ctrl + X
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Copy
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Copies the currently selected text or elements to the clipboard
-            </p>
-          </td>
-          <td>
-            Ctrl + C
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Paste
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Paste the current content as text to the editor, or as a sibling or child element to the a currently selected element.&nbsp;
-            </p>
-          </td>
-          <td>
-            Ctrl + V
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Delete
-          </td>
-          <td>
-            Delete the current text or element selection.
-          </td>
-          <td>
-            Delete
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Select All
-          </td>
-          <td>
-            Select all the editor content..
-          </td>
-          <td>
-            Ctrl + A
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Find / Replace
-          </td>
-          <td>
-            Open the Find / Replace dialog. Editor only.
-          </td>
-          <td>
-            Ctrl + F
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Find Next
-          </td>
-          <td>
-            Finds the next occurrence of the currently selected text. Editor only.
-          </td>
-          <td>
-            Ctrl + K
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Find Previous
-          </td>
-          <td>
-            Finds the previous occurrence of the currently selected text. Editor only.
-          </td>
-          <td>
-            Ctrl + Shift + K
-          </td>
-        </tr>
-        
-        <tr>
-          <td>
-            Incremental Find Next
-          </td>
-          <td>
-            Starts the incremental find mode. After invocation, enter the search text as instructed in the status bar. Editor only.
-          </td>
-          <td>
-            Ctrl + J
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Incremental Find Previous
-          </td>
-          <td>
-            Starts the incremental find mode. After invocation, enter the search text as instructed in the status bar. Editor only.
-          </td>
-          <td>
-            Ctrl + Shift + J
-          </td>
-        </tr>
-        
-        <tr align="left" valign="top">
-          <td>
-            Add Bookmark
-          </td>
-          <td>
-            Add a bookmark to the current text selection or selected element.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Add Task
-          </td>
-          <td>
-            Add a user defined task to the current text selection or selected element.
-          </td>
-          <td>
-            Alt + Enter
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Expand Selection to
-          </td>
-          <td>
-            <ul>
-              <li>
-                Enclosing Element: Selects the enclosing expression, block, method in the code. This action is aware of the Java syntax. It may not function properly when the code
-                has syntax errors. (Arrow Up)
-              </li>
-              <li>
-                Next Element: Selects the current and next element. (Arrow Right)
-              </li>
-              <li>
-                Previous Element: Selects the current and the previous element (Arrow Left)
-              </li>
-              <li>
-                Restore Last Selection: After an invocation of&nbsp;<em>Expand Selection to</em> restore the previous selection. (Arrow Down)
-              </li>
-            </ul>
-          </td>
-          <td>
-            Alt + Shift + Arrow Keys
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Show Tooltip Description
-          </td>
-          <td>
-            Shows the value of a hover that would appear at the current cursor location. The dialog shown is scrollable and does not shorten descriptions.
-          </td>
-          <td>
-            F2
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Content Assist
-          </td>
-          <td>
-            Opens a context assist dialog at the current cursor position to bring up Java code assist proposals and templates. See the <a href=
-            "ref-preferences-templates.htm">Templates preference page</a> for available templates (Window &gt; Preferences &gt; Java &gt; Editor &gt; Templates) and go to the <a href=
-            "ref-21.htm">Editor preference page</a> (Window &gt; Preferences &gt; Java &gt; Editor &gt; Code Assist) for configuring the behaviour of code assist.
-          </td>
-          <td>
-            Ctrl + Space
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Quick Fix
-          </td>
-          <td>
-            If the cursor is located at a location with problem indication this opens a context assist dialog at the current cursor to present possible corrections.&nbsp;
-          </td>
-          <td>
-            Ctrl + 1
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Parameter Hints
-          </td>
-          <td>
-            If the cursor is located at the parameter specification for method reference, this actions shows a hover with parameter types information.The parameter at the current
-            cursor location is shown in bold.
-          </td>
-          <td>
-            Ctrl + Shift + Space
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Encoding
-          </td>
-          <td>
-            Toggles the encoding of the currently shown text content.
-          </td>
-          <td>&nbsp;
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-       <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-      <a href="../concepts/concepts-7.htm">Java editor</a> <a href="../concepts/concepts-1.htm"><br>
-       Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-175.htm">
-      </a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="ref-java-editor.htm">Java editor</a><br>
-       <a href="ref-21.htm">Java editor preferences</a><br>
-       <a href="ref-view-outline.htm">Outline view for Java</a><br>
-       <a href="ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-file.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-file.htm
deleted file mode 100644
index 657d546..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-file.htm
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      File actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      File actions
-    </h1>
-    <p>
-        File Menu Commands:
-    </p>
-    <table border="1" cellspacing="0">
-      <caption>
-      </caption>
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Name
-            </p>
-          </th>
-          <th>
-            <p>
-              Function
-            </p>
-          </th>
-          <td>
-            <strong>Keyboard Shortcut</strong>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td align="left" valign="top">
-            <p>
-              New
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Create a Java element or a new resource. Configure which elements are shown in the submenu in Window &gt; Customize Perspective. In a Java perspective, by default
-              action for creating a project, <a href="ref-125.htm">package</a>, <a href="ref-126.htm">class</a>, <a href="ref-127.htm">interface</a> , <a href="ref-128.htm">source
-              folder</a>, <a href="ref-129.htm">scrapbook</a>, file and folder are available.
-            </p>
-          </td>
-          <td>
-            Ctrl + N
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Close&nbsp;
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Close the current editor. If the editor contains unsaved data, a save request dialog will be shown.
-            </p>
-          </td>
-          <td>
-            Ctrl + F4
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Close All
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Close all editors. If editors contains unsaved data, a save request dialog will be shown.
-            </p>
-          </td>
-          <td>
-            Ctrl + Shift + F4
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Save
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Save the content of the current editor. Disabled if the editor does not contain unsaved changes.
-            </p>
-          </td>
-          <td>
-            Ctrl + S
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Save As
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Save the content of the current editor under a new name.
-            </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Save All
-          </td>
-          <td>
-            Save the content of all editors with unsaved changes. Disabled if no editor contains unsaved changes.
-          </td>
-          <td>
-            Ctrl + Shift + S
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Revert
-          </td>
-          <td>
-            Revert the content of the current editor back to the content of the saved file. Disabled if the editor does not contain unsaved changes.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Move
-          </td>
-          <td>
-            Move a resource. Disabled on Java Elements. To move Java elements use Refactor &gt; Move (with updating all references to the file) or <a href=
-            "ref-menu-edit.htm">Edit</a> &gt; Cut / Paste (no updating of references).
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Rename
-          </td>
-          <td>
-            Renames a resource. Disabled on Java Elements. To rename Java elements use Refactor &gt; Rename (with updating all references to the file).
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Refresh
-          </td>
-          <td>
-            Refreshes the content of the selected element with the local file system.When launched from no specific selection, this command refreshes all projects.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Print
-          </td>
-          <td>
-            Prints the content of the current editor. Enabled when an editor has the focus.
-          </td>
-          <td>
-            Ctrl + P
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Import
-          </td>
-          <td>
-            Opens the import wizard dialog. JDT does not contribute any import wizards.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Export
-          </td>
-          <td>
-            Opens the export wizard dialog. JDT contributes the <a href="ref-export-jar.htm">JAR file export wizard</a> and the <a href=
-            "ref-export-javadoc.htm">Javadoc generation wizard</a>.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Properties
-          </td>
-          <td>
-            Opens the property pages of the select elements. Opened on Java projects the <a href="ref-123.htm">Java Build Path</a> page and the <a href=
-            "ref-dialog-javadoc-location.htm">Javadoc Location page</a> are available. For JAR archives, configure the JAR's <a href="ref-124.htm">Source Attachment</a> and <a
-            href="ref-dialog-javadoc-location.htm">Javadoc Location</a> here.
-          </td>
-          <td>
-            Alt + Enter
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Exit
-          </td>
-          <td>
-            Exit Eclipse
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"> <br>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"> <br>
-      <a href="../tasks/tasks-11.htm">Creating Java elements</a><br>
-       <a href="../tasks/tasks-32.htm">Creating JAR Files</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="ref-121.htm">New Java Project wizard</a><br>
-	  <a href="ref-125.htm">New Java Package wizard</a><br> 
-	  <a href="ref-126.htm">New Java Class wizard</a><br>
-	  <a href="ref-127.htm">New Java Interface wizard</a><br>
-	  <a href="ref-129.htm">New Java Scrapbook Page wizard</a><br>
-	  <a href="ref-export-jar.htm">JAR file exporter</a><br>
-	  <a href="ref-export-javadoc.htm">Javadoc generation</a><br>
-	  <a href="ref-dialog-javadoc-location.htm">Javadoc Location properties</a><br>
-	  <a href="ref-123.htm">Java Build Path properties</a><br>
-	  <a href="ref-124.htm">Source Attachment properties</a>
-    </p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-navigate.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-navigate.htm
deleted file mode 100644
index e1066fc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-navigate.htm
+++ /dev/null
@@ -1,266 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Navigate actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Navigate actions
-    </h1>
-	<p>
-        Navigate menu commands:
-	</p>
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Name
-            </p>
-          </th>
-          <th>
-            <p>
-              Function
-            </p>
-          </th>
-          <td>
-            <strong>Keyboard Shortcut</strong>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td align="left" valign="top">
-            <p>
-              Go Into
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Sets the view input to the currently selected element. Supported by the <a href="ref-view-package-explorer.htm">Packages Explorer view</a>.
-            </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Go To
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <ul>
-              <li>
-                Back: Sets the view input to the input back in history: Only enabled when a history exists (<strong>Go Into</strong> was used)
-              </li>
-              <li>
-                Forward: Sets the view input to the input forward in history: Only enabled when a history exists (<strong>Go Into</strong>,&nbsp; <strong>Go To &gt; Back</strong>
-                were used)
-              </li>
-              <li>
-                Up One Level: Sets the input of the current view to its input's parent element
-              </li>
-              <li>
-                Referring Tests: Browse for all JUnit tests that refer to the currently selected type
-              </li>
-              <li>
-                Type: Browse for a type and reveal it in the current view. Supported by the Package Explorer view
-              </li>
-              <li>
-                Package: Browse for a package and reveal it in the current view. Supported by the Package Explorer view
-              </li>
-              <li>
-                Resource: Browse for a resource and reveal it in the current view.
-              </li>
-            </ul>
-          </td>
-          <td>&nbsp;
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Open
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Tries to resolve the element referenced at the current code selection and opens the file declaring the reference.&nbsp;
-            </p>
-          </td>
-          <td>
-            F3
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Open Type Hierarchy
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Tries to resolve the element referenced at the current code selection and opens the element in the <a href="ref-type-hierarchy.htm">Type Hierarchy view</a>. Invoked
-              on elements, opens the type hierarchy of the element. Supported in the Java editor and views showing Java elements.
-            </p>
-          </td>
-          <td>
-            F4
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Open Super Implementation
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Open an editor for the super implementation of the currently selected method or method surrounding the current cursor position. No editor is opened if no method is
-              selected or the method has no super implementation.
-            </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Open External Javadoc
-          </td>
-          <td>
-            Opens the Javadoc documentation of the currently selected element or text selection. The location of the Javadoc of a JAR or a project is specified in the <a href=
-            "ref-dialog-javadoc-location.htm">Javadoc Location property page</a> on projects or JARs. Note that this external Javadoc documentation may not be up to date with the
-            Javadoc specified in the current code. You can create Javadoc documentation for source files in a Java project using the <a href="ref-export-javadoc.htm">Javadoc
-            export wizard</a>.&nbsp;
-          </td>
-          <td>
-            Shift + F2
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Open Type
-          </td>
-          <td>
-            Brings up the Open Type selection dialog to open a type in the editor.The Open Type selection dialog shows all types existing in the workspace.
-          </td>
-          <td>
-            Ctrl + Shift + T
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Open Type In Hierarchy
-          </td>
-          <td>
-            Brings up the Open Type selection dialog to open a type in the editor and the <a href="ref-type-hierarchy.htm">Type Hierarchy view</a>. The Open Type selection dialog
-            shows all types that exist in the workspace.
-          </td>
-          <td>
-            Ctrl + Shift + H
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Show in &gt; Package Explorer
-          </td>
-          <td>
-            Reveals the currently selected element (or the element surrounding the current cursor position) in the <a href="ref-view-package-explorer.htm">Package Explorer
-            view</a>.
-          </td>
-          <td>&nbsp;
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Show Outline
-          </td>
-          <td>
-            Opens the lightweight outliner for the currently selected type.
-          </td>
-          <td>Ctrl + O
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Go to Next Problem
-          </td>
-          <td>
-            Selects the next problem. Supported in the Java editor.
-          </td>
-          <td>
-            Ctrl + .
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Go to Previous Problem
-          </td>
-          <td>
-            Selects the previous problem. Supported in the Java editor.
-          </td>
-          <td>
-            Ctrl + ,
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Go to Last Edit Location
-          </td>
-          <td>
-            Reveal the location where the last edit occurred.
-          </td>
-          <td>
-            Ctrl + Q
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Go to Line
-          </td>
-          <td>
-            Opens an a dialog which allows entering the line number to which the editor should jump to. Editor only.
-          </td>
-          <td>
-            Ctrl + L
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"> <br>
-      <a href="../concepts/concepts-6.htm">Java views</a> <a href="../concepts/concepts-1.htm"><br>
-       Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-    <a href="../tasks/tasks-73.htm">Opening an editor for a selected element</a><br>
-     <a href="../tasks/tasks-74.htm">Showing an element in the Package Explorer</a><br>
-     <a href="../tasks/tasks-75.htm">Opening a type in the Package Explorer</a><br>
-     <a href="../tasks/tasks-76.htm">Opening an editor on a type</a><br>
-     <a href="../tasks/tasks-77.htm">Opening a package</a><br>
-     <a href="../tasks/tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-     <a href="../tasks/tasks-40.htm">Opening a type hierarchy on the current text selection</a><br>
-     <a href="../tasks/tasks-41.htm">Opening a type hierarchy in the workbench</a><br>
-     <a href="../tasks/tasks-42.htm">Opening a type hierarchy in its own perspective</a><br>
-    </p> 
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="ref-view-package-explorer.htm">Package Explorer view</a><br>
-	  <a href="ref-type-hierarchy.htm">Type Hierarchy view</a><br>
-	  <a href="ref-dialog-javadoc-location.htm">Javadoc Location properties</a><br>
-	  <a href="ref-export-javadoc.htm">Javadoc export wizard</a>
-    </p>
-	<p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-project.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-project.htm
deleted file mode 100644
index c3b1213..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-project.htm
+++ /dev/null
@@ -1,164 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Project actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Project actions
-    </h1>
-	<p>
-        Project menu commands:
-	</p>
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Name
-            </p>
-          </th>
-          <th>
-            <p>
-              Function
-            </p>
-          </th>
-          <td>
-            <strong>Keyboard Shortcut</strong>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td align="left" valign="top">
-            <p>
-              Open Project
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Shows a dialog that can be used to select a closed project and open it
-            </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Close Project
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Closes the currently selected projects
-            </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Build Project
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Builds the currently selected project. This is an incremental build, means that the builder analyzes the changes since the last time of build and minimizes the
-              number of changed files.
-            </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Rebuild Project
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Rebuilds the currently selected project. This is a full build, all files in the project are rebuild.
-            </p>
-          </td>
-          <td>&nbsp;
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Build All
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Builds the all projects in the workspace. This is an incremental build, means that the builder analyzes the changes since the last time of build and minimizes the
-              number of changed files.
-            </p>
-          </td>
-          <td>
-            Ctrl + B&nbsp;
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Rebuild All
-          </td>
-          <td>
-            Rebuilds all projects in the workspace. This is a full build, all files are rebuild.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Generate Javadoc...
-          </td>
-          <td>
-            Opens the Generate Javadoc wizard on the currently selected project.
-          </td>
-          <td>&nbsp;
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Properties
-          </td>
-          <td>
-            Opens the property pages on the currently selected project.
-          </td>
-          <td>&nbsp;
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-       <a href="../concepts/concepts-4.htm">Java builder</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-106.htm">Building a Java program</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-refactor.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-refactor.htm
deleted file mode 100644
index cc3ce54..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-refactor.htm
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Refactor actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Refactor actions
-    </h1>
-	<p>
-        Refactor menu commands:
-	</p>
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Name
-            </p>
-          </th>
-          <th>
-            <p>
-              Function
-            </p>
-          </th>
-          <td>
-            <strong>Keyboard Shortcut</strong>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td align="left" valign="top">
-            <p>
-              Undo
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Does an Undo of the last refactoring. The refactoring undo buffer is only valid as long as no other source changes than refactoring have been performed.
-            </p>
-          </td>
-          <td>
-            Alt + Shift + Z
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Redo
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Does a Redo of the last undone refactoring. The refactoring undo/redo buffer is only valid as long as no other source changes than refactoring have been performed.
-            </p>
-          </td>
-          <td>
-            Alt + Shift + Y
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Rename
-            </p>
-          </td>
-          <td align="left" valign="top">
-            
-      <p> Starts the Rename refactoring dialog:&nbsp; Renames the selected element 
-        and (if enabled) corrects all references to the elements (also in other 
-        files). Is available on methods, fields, local variables, method parameters, 
-        types, compilation units, packages, source folders, projects and on a 
-        text selection resolving to one of these element types.&nbsp; </p>
-          </td>
-          <td>
-            Alt + Shift + R
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Move
-            </p>
-          </td>
-          
-    <td align="left" valign="top"> 
-      <p> Starts the Move refactoring dialog: Moves the selected elements and 
-        (if enabled) corrects all references to the elements (also in other files). 
-        Can be applied to one instance method (which can be moved to a component), 
-        one or more static methods, static fields, types, compilation units, packages, 
-        source folders and projects and on a text selection resolving to one of 
-        these element types.&nbsp; </p>
-          </td>
-          <td>
-            Alt + Shift + V
-          </td>
-        </tr>
-   <tr>
-    <td>Change Method Signature </td>
-    <td> 
-      <p>Starts the Change Method Signature refactoring dialog. Changes parameter 
-        names, parameter types, parameter order and updates all references to 
-        the corresponding method. Additionally, parameters can be removed or added 
-        and method return type as well as its visibility can be changed. This 
-        refactoring can be applied to methods or on text selection resolving to 
-        a method.&nbsp; </p>
-      </td>
-   <td>&nbsp;</td>
-  </tr>
-   <tr>
-     
-    <td>Convert Anonymous Class to Nested</td>
-     
-    <td> 
-      <p>Start the Convert Anonymous Class to Nested Class refactoring dialog. 
-        Helps you convert an anonymous inner class to a member class. This refactoring 
-        can be applied to anonymous inner classes.</p>
-      </td>
-     <td>&nbsp;</td>
-   </tr>
-   <tr>
-     
-    <td>Convert Nested Type to Top Level</td>
-     
-    <td> 
-      <p>Starts the Convert Nested Type to Top Level Type refactoring dialog. 
-        Creates a new Java compilation unit for the selected member type, updating 
-        all references as needed. For non-static member types, a field is added 
-        to allow access to the former enclosing instance. This refactoring can 
-        be applied to member types or text resolving to a member type.</p>
-     </td>
-     <td>&nbsp;</td>
-   </tr>
-   <tr>
-     
-    <td>Push Down</td>
-     
-    <td> 
-      <p>Starts the Push Down refactoring dialog. Moves a set of methods and fields 
-        from a class to its subclasses. This refactoring can be applied to one 
-        or more methods and fields declared in the same type or on a text selection 
-        inside a field or method.&nbsp; </p>
-     </td>
-     <td>&nbsp;</td>
-   </tr>
-
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Pull Up
-            </p>
-          </td>
-          
-    <td align="left" valign="top"> 
-      <p> Starts the Pull Up refactoring wizard. Moves a field or method to a 
-        superclass of its declaring class or (in the case of methods) declares 
-        the method as abstract in the superclass. This refactoring can be applied 
-        on one or more methods, fields and member types declared in the same type 
-        or on a text selection inside a field, method or member type.&nbsp; </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-   <tr>
-     
-    <td>Extract Interface</td>
-     
-    <td> 
-      <p>Starts the Extract Interface refactoring dialog. Creates a new interface 
-        with a set of methods and makes the selected class implement the interface, 
-        optionally changing references to the class to the new interface wherever 
-        possible. This refactoring can be applied to types.</p>
-     </td>
-     <td>&nbsp;</td>
-   </tr>
-   <tr>
-     
-    <td>Use Supertype Where Possible</td>
-     
-    <td> 
-      <p>Starts the Use Supertype Where Possible dialog. Replaces occurrences 
-        of a type with one of its supertypes after identifying all places where 
-        this replacement is possible.This refactoring is available on types.</p>
-     </td>
-     <td>&nbsp;</td>
-   </tr>
-	        <tr align="left" valign="top">
-          
-    <td> Inline</td>
-          
-    <td> Starts the Inline refactoring dialog. Inlines local variables, methods 
-      or constants. This refactoring is available on methods, static final fields 
-      and text selections that resolve to methods, static final fields or local 
-      variables.</td>
-          <td>
-            Alt + Shift + I
-          </td>
-        </tr>
-	
-        <tr align="left" valign="top">
-          <td>
-            Extract Method
-          </td>
-          
-    <td> Starts the Extract Method refactoring dialog. Creates a new method containing 
-      the statements or expression currently selected and replaces the selection 
-      with a reference to the new method. You can use&nbsp;<em>Expand Selection 
-      to</em> from the <a href="ref-menu-edit.htm">Edit</a> menu to get a valid 
-      selection range.<br>
-             This feature is useful for cleaning up lengthy, cluttered, or overly-complicated methods.&nbsp;
-          </td>
-          <td>
-            Alt + Shift + M
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          
-    <td> Extract Local Variable </td>
-    <td> 
-      <p>Starts the Extract Variable refactoring dialog. Creates a new variable 
-        assigned to the expression currently selected and replaces the selection 
-        with a reference to the new variable. This refactoring is available on 
-        text selections that resolve to local variables. You can use&nbsp;<em>Expand 
-        Selection to</em> from the <a href="ref-menu-edit.htm">Edit</a> menu to 
-        get a valid selection range. </p>
-      </td>
-          <td>
-            Alt + Shift + L
-          </td>
-        </tr>
-   <tr>
-     
-    <td>Extract Constant</td>
-     
-    <td> 
-      <p>Starts the Extract Constant refactoring dialog. Creates a static final 
-        field from the selected expression and substitutes a field reference, 
-        and optionally rewrites other places where the same expression occurs. 
-        This refactoring is available on static final fields and text selections 
-        that resolve to static final fields.</p>
-     </td>
-     <td>&nbsp;</td>
-   </tr>
-   <tr>
-     
-    <td>Convert Local Variable to Field</td>
-     
-    <td> 
-      <p>Start the Convert Local Variable to Field refactoring dialog. Turn a 
-        local variable into a field. If the variable is initialized on creation, 
-        then the operation moves the initialization to the new field's declaration 
-        or to the class's constructors. This refactoring is available on text 
-        selections that resolve to local variables.</p>
-     </td>
-     <td>&nbsp;</td>
-   </tr>
-        <tr>
-          
-    <td> Encapsulate Field </td>
-          
-    <td> Starts the Self Encapsulate Field refactoring dialog. Replaces all references 
-      to a field with getting and setting methods. Is applicable to a selected 
-      field or a text selection resolving to a field. </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      Refactoring commands are also available from the context menus in many views and the Java editor.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-80.htm">Refactoring</a><br>
-      <a href="../tasks/tasks-176.htm">Using Structured Selection</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" width=159 height=27 alt="Related reference"><br>
-      <a href="ref-23.htm">Refactoring preference page</a><br>
-       <a href="ref-117.htm">Refactoring dialogs</a><br>
-       <a href="ref-154.htm">Extract Method Errors</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-      "324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-search.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-search.htm
deleted file mode 100644
index a065f2f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-search.htm
+++ /dev/null
@@ -1,295 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Search actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Search actions
-    </h1>
-	<p>
-        Search menu commands:
-	</p>
-    <table border="1" cellspacing="0" width="100%">
-      <tr>
-        <th>
-          <p>
-            Name
-          </p>
-        </th>
-        <th>
-          <p>
-            Function
-          </p>
-        </th>
-        <td>
-          <strong>Keyboard Shortcut</strong>
-        </td>
-      </tr>
-      <tr align="left" valign="top">
-        <td align="left" valign="top">
-          <p>
-            Search...
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Opens the search dialog
-          </p>
-        </td>
-        <td>
-          Ctrl + H
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            File...
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Opens the search dialog on the File search page
-          </p>
-        </td>
-        <td>&nbsp;
-          
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Help...
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Opens the search dialog on the Help search page
-          </p>
-        </td>
-        <td>&nbsp;
-          
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Java...
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Opens the search dialog on the Java search page
-          </p>
-        </td>
-        <td>&nbsp;
-          
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            References
-          </p>
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Finds all references to the selected Java element
-          </p>
-        </td>
-        <td>&nbsp;
-        </td>
-      </tr>
-      <tr>
-        <td>
-          Declarations
-        </td>
-        <td>
-          Finds all declarations of the selected Java element
-        </td>
-        <td>&nbsp;          
-        </td>
-      </tr>
-      <tr align="left" valign="top">
-        <td>
-          Implementors
-        </td>
-        <td>
-          Finds all implementors of the selected interface.
-        </td>
-        <td>&nbsp;
-        </td>
-      </tr>
-      <tr align="left" valign="top">
-        <td>
-          Read Access
-        </td>
-        <td>
-          Finds all read accesses to the selected field
-        </td>
-        <td>&nbsp;   
-        </td>
-      </tr>
-      <tr align="left" valign="top">
-        <td>
-          Write Access
-        </td>
-        <td>
-          Finds all write accesses to the selected field
-        </td>
-        <td>&nbsp;
-        </td>
-      </tr>
-
-      <tr>
-        <td valign="top">
-          <p>Occurrences in File</p>
-        </td>
-
-        <td valign="top">
-          <p>Finds all occurrences of the selected Java element in its file</p>
-        </td>
-        <td>
-        	Ctrl + Shift + U
-        </td>
-
-      </tr>
-
-    </table>
-	
-	<p>
-        Search Scopes Submenu:
-	</p>
-    <table border="1" cellspacing="0">
-      <tr>
-        <th>
-          <p>
-            Scope
-          </p>
-        </th>
-        <td>
-          <strong>Availability</strong>
-        </td>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Workspace
-          </p>
-        </td>
-        <td>
-          all elements
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Searches in the full workspace
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Project
-          </p>
-        </td>
-        <td>
-          all elements
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Searches in the project enclosing the selected element
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Hierarchy
-          </p>
-        </td>
-        <td>
-          types and members
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Searches in the type's hierarchy
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td align="left" valign="top">
-          <p>
-            Workings Set
-          </p>
-        </td>
-        <td>
-          all elements
-        </td>
-        <td align="left" valign="top">
-          <p>
-            Searches in a working set
-          </p>
-        </td>
-      </tr>
-    </table>
-    <p>
-      Scopes can be saved and names in the working set dialog. Existing instances of working sets 
-	  are also available in the Search Scope submenu
-    </p>
-    <p>
-      A Java search can also be conducted via the context menu of selected resources and elements in the following views:
-    </p>
-    <ul>
-      <li>
-        Package Explorer
-      </li>
-      <li>
-        Outline view
-      </li>
-      <li>
-        Search result view
-      </li>
-      <li>
-        Hierarchy view
-      </li>
-      <li>
-        Browsing views
-      </li>
-    </ul>
-    <p>
-      The search context menu is also available in the Java editor. The search is only performed if the currently selected text can be resolved to a Java element.
-    </p>
-    <p>
-      The type of the selected Java element defines which search context menus are available. The Java editor does not constrain the list of available Java searches based on the
-      selection.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-8.htm">Java search</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-103.htm">Conducting a Java search using the search dialog</a><br>
-       <a href="../tasks/tasks-104.htm">Conducting a Java search using pop-up menus</a>
-    </p>
-    <p>
-       <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-     <a href="../reference/ref-131.htm">Java Search tab</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-source.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-source.htm
deleted file mode 100644
index cb88b4b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-menu-source.htm
+++ /dev/null
@@ -1,283 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Source actions
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Source actions
-    </h1>
-	<p>
-        Source menu commands:
-	</p>
-    <table border="1" cellspacing="0">
-      <tbody>
-        <tr>
-          <th>
-            <p>
-              Name
-            </p>
-          </th>
-          <th>
-            <p>
-              Function
-            </p>
-          </th>
-          <td>
-            <strong>Keyboard Shortcut</strong>
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td align="left" valign="top">
-            <p>
-              Comment
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Comments out all lines containing the current selection.
-            </p>
-          </td>
-          <td>
-            Ctrl + /
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Uncomment
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Uncomments all lines containing the current selection.
-            </p>
-          </td>
-          <td>
-            Ctrl + \
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Shift Right
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Increments the level of indentation of the currently select lines. Only activated when the selection covers multiple lines or a single whole line.
-            </p>
-          </td>
-          <td>
-            Tab
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Shift Left
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Decrements the level of indentation of the currently select lines. Only activated when the selection covers multiple lines or a single whole line.
-            </p>
-          </td>
-          <td>
-            Shift + Tab
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Format
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Uses the code formatter to format the current text selection. The formatting options are configured on the <a href="ref-17.htm">Code Formatter preference page</a>
-              (Window &gt; Preferences &gt; Java &gt; Code Formatter)
-            </p>
-          </td>
-          <td>
-            Ctrl + Shift + F
-          </td>
-        </tr>
-        <tr>
-          <td align="left" valign="top">
-            <p>
-              Sort Members
-            </p>
-          </td>
-          <td align="left" valign="top">
-            <p>
-              Sorts the members of a type according to the sorting order specified in 
-              (Window &gt; Preferences &gt; Java &gt; Appearance &gt; Members Sort Order)
-            </p>
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Organize Imports
-          </td>
-          <td>
-            Organizes the import declarations in the compilation unit currently open or selected. Unnecessary import declarations are removed, and required import declarations are
-            ordered as specified in the <a href="ref-22.htm">Organize Import preference page</a> (Window &gt; Preferences &gt; Java &gt; Organize Import). Organize import can be
-            executed on incomplete source and will prompt you when a referenced type name can not be mapped uniquely to a type in the current project.<br>
-             You can also organize multiple compilation units by invoking the action on a package or selecting a set of compilation units.
-          </td>
-          <td>
-            Ctrl + Shift + O
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Add Import
-          </td>
-          <td>
-            Creates an import declaration for a type reference currently selected. If the type reference if qualified, the qualification will be removed if possible. If the
-            referenced type name can not be mapped uniquely to a type of the current project you will be prompted to specify the correct type. Add Import tries to follow the
-            import order as specified in the <a href="ref-22.htm">Organize Import preference page</a>
-          </td>
-          <td>
-            Ctrl + Shift + M
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Override/Implement Methods
-          </td>
-          <td>
-            Opens the <a href="ref-dialog-override-method.htm">Override Method dialog</a> that allows you to override or implement a method in the current type. Available on types
-            or on a text selection inside a type.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Generate Getter and Setter
-          </td>
-          <td>
-            Opens the <a href="ref-dialog-gettersetter.htm">Generate Getter and Setter dialog</a> that allows you to create Getter and Setters for fields in the current type.
-            Available on fields and types or on a text selection inside a type.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Generate Delegate Methods
-          </td>
-          <td>
-            Opens the Generate Delegate Methods dialog that allows you to create method delegates for fields 
-            in the current type. Available on fields.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>        <tr>
-          <td>
-            Add Constructor from Superclass
-          </td>
-          <td>
-            For the currently selected type adds constructors as defined in the super class. Available on types or on a text selection inside a type.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Surround with try/catch
-          </td>
-          <td>
-            For the selected statements all exception that have to be caught are evaluated. A try catch block is created around these expressions. You can use&nbsp;<em>Expand
-            Selection to</em> from the <a href="ref-menu-edit.htm">Edit</a> menu to get a valid selection range.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr>
-          <td>
-            Externalize Strings
-          </td>
-          <td>
-            Opens the Externalize strings wizard. This wizards allows you to replace all strings in the code by statements accessing a property file.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Find Strings to Externalize
-          </td>
-          <td>
-            Shows a dialog presenting a summary of number of strings not externalized. Available on projects, source folders and packages.
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-        <tr align="left" valign="top">
-          <td>
-            Convert Line Delimiters To
-          </td>
-          <td>
-            Changes all line delimiter in the currently open editor to use line delimiters as used in the following operating systems : 
-            <ul>
-              <li>
-                CRLF (Windows)
-              </li>
-              <li>
-                LF (Unix, MacOS X)
-              <li>
-                CR (Classic MacOS)
-              </li>
-            </ul>
-            The Java editor is tolerant for a mixed usage of line delimiters. However, many other tools require an OS conform usage of line delimiters or at least line delimiter
-            consistency.&nbsp;
-          </td>
-          <td>&nbsp;
-            
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-       <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-    <a href="../concepts/concepts-7.htm">Java editor</a><br>
-     <a href="../concepts/cnls.htm">String externalization</a><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> 
-    <p>
-       <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-      <a href="../tasks/tasks-54.htm">Using the Java editor</a><br>
-      <a href="../tasks/tasks-206.htm">Externalizing Strings</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="ref-java-editor.htm">Java editor</a><br>
-       <a href="ref-21.htm">Java editor preferences</a><br>
-       <a href="ref-view-outline.htm">Outline view for Java</a><br>
-       <a href="ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-appearance.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-appearance.htm
deleted file mode 100644
index 0a840e5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-appearance.htm
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Appearance
-    </h1>
-    <p>
-      On this preference page, the appearance of Java elements in views can be configured. The options are:
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show method return types</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, methods displayed in views display the return type.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show override indicators in outline and hierarchy</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, an indicator is displayed for overridden and implemented methods in the Outline and Type Hierarchy views.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show members in Package Explorer</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, Java elements below the level of Java files and Class files are displayed as well.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Compress package name segments</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, package names are compressed according to the compression pattern.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Stack views vertically in the Java Browsing perspective</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, views in Java Browsing perspective will be stacked vertically, rather than horizontally.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Off
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-2.htm">Showing and hiding elements</a><br>
-       <a href="../tasks/tasks-194.htm">Showing full or compressed package names</a><br>
-    </p>
-    <p>
-     <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer view</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-code-generation.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-code-generation.htm
deleted file mode 100644
index b2b2df3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-code-generation.htm
+++ /dev/null
@@ -1,189 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Code Generation
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Code generation
-    </h1>
-<p>The code generation preferences are separated in two sections:</p>
-<ul>
-	<li>Names</li>
-	<li>Code and Comments</li></ul>
-
-<h2 class="Head">Names</h2>
-<p>This page defines the naming conventions for fields (static and non-static), parameters and local variables. For each variable type it is possible to configure a list of prefix or suffix or both.<br>
-Naming conventions are used by the <b>Generate Getter and Setter</b> action and by all actions and 'Quick Fix' proposals that create fields, parameters and local variables.</p>
-<table border="1" cellspacing="0" cellpadding="5" width="600">
-	<thead>
-		<tr>
-			<th>
-			<p>Action</p>
-			</th>
-			<th>
-			<p>Description</p>
-			</th>
-		</tr>
-	</thead>
-	<tbody>
-		<tr>
-			<td valign="top" width="25%">
-			<p><strong>Edit...</strong></p>
-			</td>
-			<td valign="top">
-			<p>Opens a dialog to edit the list of prefix and suffixes for the currently  selected variable type</p>
-			</td>
-		</tr>
-	</tbody>
-</table>
-
-<h2>Code and Comments</h2>
-<p>The code and comment page contains code templates that are used by actions that generate code. Templates contain variables that are substituted when the template is applied. Some variables are available in all templates, some are specific to templates.</p><table
-	border="1" cellspacing="0" cellpadding="5" width="600">
-	<thead>
-		<tr>
-			<th>
-			<p>Action</p>
-			</th>
-			<th>
-			<p>Description</p>
-			</th>
-		</tr>
-	</thead>
-	<tbody>
-		<tr>
-			<td valign="top" width="25%">
-			<p><strong>Edit...</strong></p>
-			</td>
-			<td valign="top">
-			<p>Opens a dialog to edit the currently selected code template.</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top">
-			<p><strong>Import...</strong></p>
-			</td>
-			<td valign="top">
-			<p>Imports code templates from the file system.</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top">
-			<p><strong>Export...</strong></p>
-			</td>
-			<td valign="top">
-			<p>Exports all selected code templates to the file system.</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top">
-			<p><strong>Export All...</strong></p>
-			</td>
-			<td valign="top">
-			<p>Exports all code templates to the file system.</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top"><b>Automatically add comments for new methods and
-			types</b></td>
-			<td valign="top">This setting specifies if comment code templates are automatically added to all new methods. If disabled, the comment code templates are only used when comment is explicitly added (e.g. using the <b>Add
-			Javadoc Comment</b> action). Note that this setting does not apply to comments contained in the code templates like <b>New
-			Java files</b></td>
-		</tr>
-	</tbody>
-</table>
-
-
-
-
-<h3>Comment templates</h3>
-<p>Comment templates can   contain the variable <b>${tags}</b> that will be substituted by the standard Javadoc tags (@param, @return..) for the commented element.
-The 'Overriding method' comment can additionally contain the template <b>${see_to_overridden}</b></p><ul>
-	<li>Constructor comment: Template that speciyfies the comment for new constructors</li>
-	<li>Type  comment: Template that speciyfies the comment for new types. Note that this template can be referenced in the 'New Java File' template</li>
-	<li>Method comment: Template that speciyfies the comment for new methods that do not override an method in a base class</li>
-	<li>Overriding method comment: Template that speciyfies the comment for new methods that override an method in a base class. By default the comment is defined as a non-Javadoc comment (Javadoc will replace this comment with the comment of the overridden method). You can change this to a real Javadoc comment if you want</li>
-</ul>
-<h3>New Java files template</h3>
-<p>The 'New Java files' template is used by the Class and Interface wizards when a new file is created. The template can specify where comments are added. Note that the template can contain the variable <b>${typecomment}</b> that will be substituted by the evaluation of the type comment template.</p>
-<h3>Catch block body template</h3>
-<p>The 'Catch block body' template is used when a catch block body is
-created. It can use the variables <b>${exception_type}</b> and <b>${exception_var}</b>.</p>
-<h3>Method body template</h3>
-<p>The 'Method body'  templates are used when
-new method  with body is created. It contains the variable
-<b>${body_statement}</b> that resolves to a return statement or/and a super-call. </p>
-
-<h3>Constructor body templates</h3>
-<p>The 'Constructor body' templates are used when new method or constructor with body is
-created. It contains the variable <b>${body_statement}</b> that resolves  a super call.<b></b></p>
-<h2>Code Template dialog</h2>
-
-<p>The following fields and buttons appear in the dialog:</p>
-<table border="1" cellspacing="0" cellpadding="5" width="100%">
-	<thead>
-		<tr>
-			<th>
-			<p>Option</p>
-			</th>
-			<th>
-			<p>Description</p>
-			</th>
-		</tr>
-	</thead>
-	<tbody>
-		<tr>
-			<td valign="top">
-			<p><strong>Description</strong></p>
-			</td>
-			<td valign="top">
-			<p>A description of the template</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top">
-			<p><strong>Pattern</strong></p>
-			</td>
-			<td valign="top">
-			<p>The template pattern.</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top">
-			<p><strong>Insert Variables...</strong></p>
-			</td>
-			<td valign="top">
-			<p>Displays a list of pre-defined template specific variables.</p>
-			</td>
-		</tr>
-	</tbody>
-</table><p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0"
-	height="27" width="159"><br>
-<a href="../tasks/tasks-57.htm">Generating getters and setters</a><br>
-</p>
-
-
-
-
-
-
-<p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>	
-      <a href="../reference/ref-menu-source.htm">Source actions</a><br>
-	  <a href="../reference/ref-java-editor.htm">Java editor</a><br>
-	  <a href="../reference/ref-21.htm">Java editor preferences</a><br>
-	  <a href="../reference/ref-preferences-templates.htm">Templates preferences</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-compiler.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-compiler.htm
deleted file mode 100644
index 319b6f0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-compiler.htm
+++ /dev/null
@@ -1,770 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Compiler
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Compiler
-    </h1>
-    <p>
-      The compiler preferences are separated in the following sections:
-    </p>
-    <ul>
-      <li>
-        Problems
-      </li>
-      <li>
-        Style
-      </li>
-      <li>
-        Compliance and Class files
-      </li>
-      <li>
-        Build Path
-      </li>
-    </ul>
-	
-    <h2 class="Head">
-      Problems
-    </h2>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-        <th>
-          <p>
-            Default
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Unreachable code</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Unreachable code can optionally be reported as an error, warning or simply ignored. The byte code generation will always optimized it out. 
-            Note that according to the Java language specification, unreachable code should be an error.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Error
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Unresolvable import statements</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            An import statement that cannot be resolved might optionally be reported as an error, as a warning or ignored.
-            Note that according to the Java language specification, unresolved import statements should be an error.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Error
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Unused local variables (i.e. never read)</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning for unused local variables (i.e. variables never read from).
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Ignore
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Unused parameters (i.e. never read)</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning for unused method parameters (i.e. parameters never read from).
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Ignore
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Unused imports</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning for unused import reference.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Unused private types, methods or fields</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning whenever a private 
-			method or field is declared but never used within the same unit.            
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Ignore
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Usage of non-externalized strings</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning for non externalized String literal (i.e. non tagged with //$NON-NLS-&lt;n&gt;$).&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Ignore
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Usage of deprecated API</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will signal use of deprecated API either as an error or a warning.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Signal use of deprecated API inside deprecated code</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will signal use of deprecated API inside deprecated code.
-            The severity of the problem is controlled with option "Usage of deprecated API".
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Off
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Maximum number of problems reported per compilation unit</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Specifies the maximum number of problems reported per compilation unit.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            100
-          </p>
-        </td>
-      </tr>
-    </table>
-	
-    <h2 class="Head">
-      Style
-    </h2>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-        <th>
-          <p>
-            Default
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Methods overridden but not package visible</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            A package default method is not visible in a different package, and thus cannot be overridden. When enabling this option, the compiler will signal such scenario either
-            as an error or a warning.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Methods with a constructor name</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Naming a method with a constructor name is generally considered poor style programming. When enabling this option, the compiler will signal such scenario either as an
-            error or a warning.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Conflict of interface method with protected 'Object' method</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning whenever an interface defines a method incompatible with a 
-            non-inherited Object method. Until this conflict is resolved, such an interface cannot be implemented, e.g.
-          </p>
-          <code>interface I {</code><br>
-          <code>&nbsp;&nbsp;&nbsp;int clone();</code><br>
-          <code>}</code><br>
-          <br>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Hidden catch blocks</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Locally to a try statement, some catch blocks may hide others , e.g.
-          </p>
-          <code>try { throw new java.io.CharConversionException();</code><br>
-           <code>} catch (java.io.CharConversionException e) {</code><br>
-           <code>} catch (java.io.IOException e) {}.</code><br>
-          <br>
-           
-          <p>
-            When enabling this option, the compiler will issue an error or a warning for hidden catch blocks corresponding to checked exceptions.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Non-static access to a static member</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning whenever a static field or method is accessed with an expression receiver.
-            A reference to a static member should be qualified with a type name.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Access to a non-accessible member of an enclosing type</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning whenever it emulates access to a non-accessible member of an enclosing type. Such accesses can have
-            performance implications.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Ignore
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Assignment has no effect (e.g. 'x = x')</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning whenever an assignment has no effect (e.g. 'x = x').
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Using a char array in string concatenation</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning whenever a char[] expression is used in String concatenations, 
-          </p>
-            <code>"hello" + new char[]{'w','o','r','l','d'}</code>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-    </table>
-
-    <h2 class="Head">
-      Compliance and Class files
-    </h2>
-     
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-        <th>
-          <p>
-            Default
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Compiler compliance level</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Specifies the JDK compiler compliance level.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            1.3
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Use default compliance settings</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            If enabled, the default compliance settings for the compiler compliance level are applied.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Generated class files compatibility</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Specifies the generated class file compatibility.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            1.1
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Source compatibility</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Specify whether source is 1.3 or 1.4 compatible. From 1.4 on, 'assert' is a keyword reserved for assertion support.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            1.3
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Report 'assert' as identifier</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When enabled, the compiler will issue an error or a warning whenever 'assert' is used as an identifier (reserved keyword in JDK 1.4).
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Ignore
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Add variable attributes to generated class files</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            If enabled, variable attributes are added to the class file. This will enable local variable names to be displayed in the debugger (in places where variables are
-            definitely assigned) The resulting .class file is then bigger.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Add line number attributes to generated class files</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            If enabled, line number information is added to the class file. This will enable source code highlighting in the debugger.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Add source file name to generated class file</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            If enabled, the source file name is added to the class file. This will enable the debugger to present the corresponding source code.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Preserve unused local variables</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            If enabled, unused local variables (i.e. never read) are not stripped from the class file. If stripped this potentially alters debugging.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-    </table>
-	
-    <h2 class="Head">
-      Build Path
-    </h2>
-     
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-        <th>
-          <p>
-            Default
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Incomplete build path</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Indicate the severity of the problem reported when an entry on the classpath does not exist,
-            is not legitimate or is not visible (e.g. a reference project is closed).
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Error
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Circular dependencies</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Indicate the severity of the problem reported when a project is involved in a cycle.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Error
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Duplicated resources</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Indicate the severity of the problem reported when more than one occurrence of a resource
-            is to be copied into the output location.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Warning
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Abort building on build path errors</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Allow to toggle the builder to abort if the classpath is invalid.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Scrub output folders on full build</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Indicate whether the Java Builder is allowed to clean the output folders
-	 	    when performing full build operations.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Enable using exclusion patterns in source folders</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            When disabled, no entry on a project classpath can be associated with
-			an exclusion pattern.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Enable using multiple output locations for source folders</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-             When disabled, no entry on a project classpath can be associated with
-	         a specific output location, preventing thus usage of multiple output locations.
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            On
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Filtered resources</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            A comma separated list of file patterns which are not copied to the output folder.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            ''
-          </p>
-        </td>
-      </tr>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-4.htm">Java builder</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-106.htm">Building a Java program</a><br>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-JREs.htm">Working with JREs</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="../reference/ref-15.htm">Classpath Variables preferences</a><br>
-	  <a href="../reference/ref-123.htm">Java Build Path properties</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-javadoc.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-javadoc.htm
deleted file mode 100644
index a35858a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-javadoc.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Javadoc
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Javadoc
-    </h1>
-	<p>
-	Javadoc supports the following settings:
-	</p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <tr>
-        <th>
-          <p>
-            Option
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-        <th>
-          <p>
-            Default
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Javadoc command</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            The location of the&nbsp;<em>Javadoc</em> tool.&nbsp;
-          </p>
-          <p>
-            The&nbsp;<em>Javadoc</em> tool is used by Javadoc export wizard.&nbsp;
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            empty
-          </p>
-        </td>
-      </tr>
-    </table>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-196.htm">Creating Javadoc documentation</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="../reference/ref-export-javadoc.htm">Export Javadoc wizard</a><br>
-	  <a href="../reference/ref-dialog-javadoc-location.htm">Javadoc Location properties</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-junit.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-junit.htm
deleted file mode 100644
index 87f48e2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-junit.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      JUnit
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      JUnit
-    </h1>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Show the JUnit results view only when an error or failure occurs</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the JUnit view is only brought to the front when an error or failure occurs.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              On
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Stack trace filter patterns</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Packages, classes, or patterns that should not be shown in the
-              stack trace of a test failure.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              default filter patterns
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../gettingStarted/qs-junit.htm">Using JUnit</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-new-project.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-new-project.htm
deleted file mode 100644
index 5094116..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-new-project.htm
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      New Project
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      New project
-    </h1>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-          <th>
-            <p>
-              Default
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Source and output folder</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <dl>
-              <dt>
-                Project:
-              </dt>
-              <dd>
-                <p>
-                  Both source and output locations are set to the project's root.
-                </p>
-              </dd>
-              <dt>
-                Folders:
-              </dt>
-              <dd>
-                <p>
-                  Source and output locations can be set individually.
-                </p>
-                <p>
-                  To specify the source and output locations, set <strong>Source folder name</strong> and <strong>Output location name</strong>.
-                </p>
-              </dd>
-            </dl>
-          </td>
-          <td valign="top">
-            <p>
-              Project
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Source folder name</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The location of source files.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              'src'
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Output location name</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The location of output files.
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              'bin'
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>As JRE library use</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specify which JRE library to use.
-            </p>
-            <dl>
-              <dt>
-                JRE container
-              </dt>
-              <dd>
-                A JRE container.
-              </dd>
-              <dt>
-                JRE_LIB variable
-              </dt>
-              <dd>
-                The JRE specified by the <var>JRE_LIB</var> variable.
-              </dd>
-            </dl>
-          </td>
-          <td valign="top">
-            <p>
-              JRE container
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-12.htm">Creating a new Java project</a><br>
-       <a href="../tasks/tasks-JREs.htm">Working with JREs</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="../reference/ref-121.htm">New Java Project wizard</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-task-tags.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-task-tags.htm
deleted file mode 100644
index 3f5e93a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-task-tags.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Compiler
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Task Tags
-    </h1>
-    <p>
-      On this preference page, the task tags can be configured.
-      When the tag list is not empty, the compiler will issue a task marker whenever it encounters
-      one of the corresponding tag inside any comment in Java source code.
-      Generated task messages will include the tag, and range until the next line separator or comment ending.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <caption>
-      </caption>
-      <tr>
-        <th>
-          <p>
-            Command
-          </p>
-        </th>
-        <th>
-          <p>
-            Description
-          </p>
-        </th>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>New...</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Adds a new task tag. In the resulting dialog, specify a name and priority for the new task tag.&nbsp;
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Remove</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Removes the selected task tag.&nbsp;
-          </p>
-        </td>
-      </tr>
-      <tr>
-        <td valign="top">
-          <p>
-            <strong>Edit...</strong>
-          </p>
-        </td>
-        <td valign="top">
-          <p>
-            Allows you to edit the selected task tag. In the resulting dialog, edit the name and/or priority for the task tag.&nbsp;
-          </p>
-        </td>
-      </tr>
-    </table>
-    <p>
-    There is a default task tag named <b>TODO</b> with a <b>Normal</b> priority.
-	</p>
-	<p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-templates.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-templates.htm
deleted file mode 100644
index 2aea31f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-preferences-templates.htm
+++ /dev/null
@@ -1,536 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Templates
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Templates
-    </h1>
-    <p>
-      The Templates preference page allows to create new and edit existing templates. A template is a convenience for the programmer to quickly insert often reoccurring source
-      code patterns.
-    </p>
-    <p>
-      The following buttons allow manipulation and configuration of templates:
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Action
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>New...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Opens a dialog to create a new template.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Edit...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Opens a dialog to edit the currently selected template.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Remove</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Removes all selected templates.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Import...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Imports templates from the file system.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Export...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Exports all selected templates to the file system.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Export All...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Exports all templates to the file system.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Enable All</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Enables all templates.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Disable All</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Disables all templates.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Use Code Formatter</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the template is formatted according to the code formatting rules specified in the <strong>Code Formatter</strong> preferences, prior to insertion.
-              Otherwise, the template is inserted as is, but correctly indented.
-            </p>
-            <p>
-              <a href="ref-17.htm">See Code Formatter preference page</a>
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2>
-      Template dialog
-    </h2>
-    <p>
-      Creating a new template and editing an existing template uses the same dialog, which is described here.
-    </p>
-    <p>
-      The following fields and buttons appear in the dialog:
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Name</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The name of the template.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Context</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The context determines where the template can be used and the set of available pre-defined template variables.
-            </p>
-            <dl>
-              <dt>
-                Java
-              </dt>
-              <dd>
-                The Java context
-              </dd>
-              <dt>
-                Javadoc
-              </dt>
-              <dd>
-                The Javadoc context
-              </dd>
-            </dl>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Description</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              A description of the template, which is displayed to the user when choosing the template.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Pattern</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The template pattern.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Insert Variables...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Displays a list of pre-defined context specific variables.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2>
-      Template variables
-    </h2>
-    <p>
-      Both Java and Javadoc context define the following variables:
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Variable
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${cursor}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies the cursor position when the template edit mode is left. This is useful when the cursor should jump to another place than to the end of the template on
-              leaving template edit mode.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${date}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the current date.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${dollar}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the dollar symbol '$'.
-            </p>
-            <p>
-              Alternatively, two dollars can be used: '$$'.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${enclosing_method}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the name of the enclosing name.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${enclosing_method_arguments}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to a comma separated list of argument names of the enclosing method. This variable can be useful when generating log statements for many methods.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${enclosing_package}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the name of the enclosing package.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${enclosing_project}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the name of the enclosing project.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${enclosing_type}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the name of the enclosing type.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${file}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the name of the file.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${return_type}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the return type of the enclosing method.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${time}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the current time.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${user}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to the user name.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      The Java context additionally defines the following variables:
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Variable
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${array}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to a proposal for a declared array name.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${array_element}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to a proposal for an element name of a declared array.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${array_type}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to a proposal for the element type of a declared array.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${collection}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to a proposal for a declared collection implementing <code>java.util.Collection</code>.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${index}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to a proposal for an undeclared array index iterator.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>${iterator}</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Evaluates to a proposal for an undeclared collection iterator.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/ctemplates.htm">Templates</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-171.htm">Using templates</a><br>
-       <a href="../tasks/tasks-203.htm">Writing your own templates</a><br>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="../reference/ref-143.htm">Java Content Assist</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-properties-compiler.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-properties-compiler.htm
deleted file mode 100644
index 3cc62b9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-properties-compiler.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Java Compiler page</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Java Compiler page</h1>
-
-    <p>The options in this page indicate the compiler settings for a Java project.<br>
-     You can reach this page through</p>
-
-    <ul>
-      <li>the Java Compiler property page (File &gt; Properties &gt; Java Compiler) from the context menu on a created project or the <a href="ref-menu-file.htm">File
-      menu</a></li>
-    </ul>
-
-	<p> A project can either reuse workspace default settings or use its own custom settings.</p>
-
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Use workspace settings</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Default mode indicating that the project is using the global workspace settings.
-              When selected, it allows to open the page for configuring the workspace <a href="../reference/ref-preferences-compiler.htm">compiler preferences</a>.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Use project settings</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Once selected, compiler settings can be configured for this project. 
-              All <a href="../reference/ref-preferences-compiler.htm">compiler preferences</a> can be customized.
-              At any time, it is possible to revert to workspace defaults, by using the button <strong>Restore Defaults</strong>.  
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/cbuildcp.htm">Build classpath</a><br>
-    </p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-compiler.htm">Global compiler preferences</a><br>
-     <a href="../reference/ref-152.htm">Frequently asked questions on JDT</a><br>
-     <a href="../reference/ref-123.htm">Java Build Path properties</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-properties-task-tags.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-properties-task-tags.htm
deleted file mode 100644
index ce8888d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-properties-task-tags.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Java Compiler page</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Java Task Tags page</h1>
-
-    <p>The options in this page indicate the task tags for a Java project.<br>
-     You can reach this page through</p>
-
-    <ul>
-      <li>the Java task tags property page (File &gt; Properties &gt; Java Task Tags) from the context menu on a created project or the <a href="ref-menu-file.htm">File
-      menu</a></li>
-    </ul>
-
-	<p> A project can either reuse workspace default settings or use its own custom settings.</p>
-
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Use workspace settings</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Default mode indicating that the project is using the global workspace settings.
-              When selected, it allows to open the page for configuring the workspace <a href="../reference/ref-preferences-task-tags.htm">task tags preferences</a>.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Use project settings</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Once selected, task tags can be configured for this project as in <a href="../reference/ref-preferences-task-tags.htm">task tags preferences</a>.
-              At any time, it is possible to revert to workspace defaults, by using the button <strong>Restore Defaults</strong>.  
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-task-tags.htm">Global task tags preferences</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-showdetailpane.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-showdetailpane.htm
deleted file mode 100644
index 4a4b213..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-showdetailpane.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Show Detail Pane
-    </title>
-  </head>
-  <body>
-    <h1>
-      Show detail pane
-    </h1>
-    <p>
-      This command toggles showing the detail pane for the <strong>Variables view</strong>. The details pane shows the <em>toString</em> for selected objects. For primitive
-      variables, it shows the value.<br>
-       Code completion in the context of selected variable or the current stack frame is available as well. Evaluation can occur on expressions using <strong>Inspect</strong> and
-      <strong>Display</strong>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-type-hierarchy.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-type-hierarchy.htm
deleted file mode 100644
index ecb79e3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-type-hierarchy.htm
+++ /dev/null
@@ -1,281 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Type Hierarchy view
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Type Hierarchy view
-    </h1>
-    <p>
-      This view shows the hierarchy of a type. The Type Hierarchy view consists of two panes:
-    </p>
-    <ul>
-      <li>
-        Type Hierarchy tree pane
-      </li>
-      <li>
-        Member list pane (optional)
-      </li>
-    </ul>
-    <h2 class="Head">
-      Type Hierarchy tree pane toolbar buttons
-    </h2>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Button
-            </p>
-          </th>
-          <th>
-            <p>
-              Command
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Previous Hierarchy Inputs</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This menu displays a history of previously displayed type hierarchies.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Show the Type Hierarchy</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This command displays the type in its full context (i.e., superclasses and subclasses) in the Hierarchy view. To see for which type the hierarchy is shown, hover
-              over the view title (e.g., &quot;Types&quot;).
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Show the Supertype Hierarchy</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This command displays the supertypes and the hierarchy of all implemented interfaces of the type in the Hierarchy view. The tree starts at the selected type and
-              displays the result of traversing up the hierarchy.
-            </p>
-             <em>Note: The selected type is always at the top level, in the upper-left corner.</em>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Show the Subtype Hierarchy</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This command displays the subtypes of the selected class and/or all implementers of the interface in the Hierarchy view. The tree starts at the selected type and
-              displays the result of traversing down the hierarchy
-            </p>
-             <em>Note: The selected type is always at the top level, in the upper-left corner.</em>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Vertical View Orientation</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Arranges the two panes vertically.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Horizontal View Orientation</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Arranges the two panes horizontally.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hierarchy View Only</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Hides the member list pane.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2 class="Head">
-      Member list pane toolbar buttons
-    </h2>
-    <p>
-      The member list pane displays the members of the currently selected type in the type hierarchy tree pane.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Button
-            </p>
-          </th>
-          <th>
-            <p>
-              Command
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Lock View and Show Members in Hierarchy</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows the members implementing the selected method Only types implementing the method are shown.
-            </p>
-            <p>
-              When the view is locked, the member list pane no longer tracks the selection in the hierarchy pane above.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Show All Inherited Members</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides all methods and fields inherited by base classes. When this option is set, the name of the type that defines the method is appended to the method
-              name.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Sort Members by the Defining Type</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Sorts the members according to the type in which they are defined.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Fields</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the fields.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Static Members</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the static fields and methods.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Non-Public Members</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the static fields and methods.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-view-outline.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-view-outline.htm
deleted file mode 100644
index 7211d79..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-view-outline.htm
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>
-      Outline view for Java
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Outline view for Java
-    </h1>
-    <p>
-      This view displays an outline of the structure of the currently-active Java file in the editor area.
-    </p>
-    <h2 class="Head">
-      Toolbar buttons
-    </h2>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Button
-            </p>
-          </th>
-          <th>
-            <p>
-              Command
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Go into Top Level Type</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Makes the top level type of the compilation unit the new input for this view.
-              Package declaration and import statements are no longer shown.
-            </p>
-         </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Sort</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              This option can be toggled to either sort the outline elements in alphabetical order or sequential order, as defined inside the compilation unit.
-            </p>
-             <em>Note: Static members are always listed first.</em>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Fields</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the fields.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Static Members</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the static fields and methods.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Non-Public Members</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the static fields and methods.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-      <a href="../concepts/concepts-7.htm">Java editor</a><br>
-      <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-       <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-       <a href="../tasks/tasks-57.htm">Generating getters and setters</a><br>
-       <a href="../tasks/tasks-64.htm">Restoring a deleted workbench element</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a><br>
-       <a href="../tasks/tasks-191.htm">Showing and hiding members in Java views</a><br>
-       <a href="../tasks/tasks-192.htm">Showing and hiding override indicators</a><br>
-       <a href="../tasks/tasks-193.htm">Showing and hiding method return types in Java views</a><br>
-       <a href="../tasks/tasks-195.htm">Sorting elements in Java views</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-dialog-override-method.htm">Override methods</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-view-package-explorer.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-view-package-explorer.htm
deleted file mode 100644
index ac166fd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-view-package-explorer.htm
+++ /dev/null
@@ -1,264 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>
-      Package Explorer view
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Package Explorer view
-    </h1>
-    <p>
-      The Package Explorer view, shown by default in the Java perspective, shows the Java element hierarchy of the Java projects in your workbench. It provides you with a
-      Java-specific view of the resources shown in the Navigator. The element hierarchy is derived from the project's build paths.
-    </p>
-    <p>
-      For each project, its source folders and referenced libraries are shown in the tree. You can open and browse the contents of both internal and external JAR files. Opening a
-      Java element inside a JAR opens the CLASS file editor, and if there is a source attachment for the JAR file, its corresponding source is shown.
-    </p>
-    <h1>
-      Toolbar buttons
-    </h1>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Button
-            </p>
-          </th>
-          <th>
-            <p>
-              Command
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Back</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Navigates to the most recently-displayed state of the view with a different element at the top level.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Forward</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Navigates to the state of the view with a different element at the top level that was displayed immediately after the current state.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Up</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Navigates to the parent container of the package that is currently displayed at the top level in the view.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Collapse All</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Collapses all tree nodes.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Link with Editor</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-            Links the package explorer's selection to the active editor.</p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Select Working Set...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Opens the <strong>Select Working Set</strong> dialog to allow selecting a working set.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Deselect Working Set</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Deselects the current working set.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Edit Active Working Set</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Opens the <strong>Edit Working Set</strong> wizard..
-            </p>
-          </td>
-        </tr>
-        
-        <tr>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Non-Public Members</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the static fields and methods.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Static Members</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides the static fields and methods.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Hide Fields</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Shows or hides fields.
-            </p>
-          </td>
-        </tr>
-        
-        <tr>
-          <td valign="top">
-            <p>
-              n/a
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              <strong>Filters...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Opens the <strong>Java Element Filters</strong> dialog.
-            </p>
-            <p>
-              <a href="ref-dialog-java-element-filters.htm">See Java Element Filters dialog</a>
-            </p>
-          </td>
-        </tr>
-        
-      </tbody>
-    </table>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-45.htm">Using the Package Explorer</a><br>
-      <a href="../tasks/tasks-2.htm">Showing and hiding elements</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters dialog</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-	<p>
-    <a href="../hglegal2003.htm"></a><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0"
-    width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/reference/ref-wizard-externalize-strings.htm b/bundles/org.eclipse.jdt.doc.user/reference/ref-wizard-externalize-strings.htm
deleted file mode 100644
index a80e909..0000000
--- a/bundles/org.eclipse.jdt.doc.user/reference/ref-wizard-externalize-strings.htm
+++ /dev/null
@@ -1,279 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>
-      Externalize Strings wizard
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Externalize Strings wizard
-    </h1>
-    <p>
-      The Externalize Strings wizard allows you to refactor a compilation unit such that strings used in the compilation unit can be translated to different languages. The wizard
-      consists of the following pages:
-    </p>
-    <ul>
-      <li>
-        String selection page
-      </li>
-      <li>
-        Translation settings page
-      </li>
-      <li>
-        Error page
-      </li>
-      <li>
-        Preview page
-      </li>
-    </ul>
-    <h2 class="Head">
-      String selection page
-    </h2>
-    <p>
-      This page specifies which strings are translated and which not.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Field
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Enter common prefix for generated keys</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies an optional prefix for every generated key. For example, the fully qualified name of the compilation unit could be used.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Strings to externalize</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Displays the list of non-externalized strings with proposed keys and values.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Translate</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Marks the selected strings to be translated.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Never Translate</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Marks the selected strings as not to be translated.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Skip</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Marks the selected strings as to be skipped.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Edit Key...</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Opens a dialog for entering a new key.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Context</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Displays the occurrence of the string in the context of the compilation unit.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2 class="Head">
-      Translation settings page
-    </h2>
-    <p>
-      This page specifies translation specific settings.
-    </p>
-    <table border="1" cellspacing="0" cellpadding="5" width="100%">
-      <thead>
-        <tr>
-          <th>
-            <p>
-              Option
-            </p>
-          </th>
-          <th>
-            <p>
-              Description
-            </p>
-          </th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Package</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies the destination package for the property file.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Property file name</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies the property file name.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Create resource bundle accessor class in &quot;<var>package</var>&quot;</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the wizard creates a class to access the language specific resource bundle.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Class name</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              The name of the class to access the resource bundle.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Use default substitution pattern</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              If enabled, the wizard will use default substitution patterns.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Substitution pattern</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies the source pattern to replace the string to externalize.
-            </p>
-          </td>
-        </tr>
-        <tr>
-          <td valign="top">
-            <p>
-              <strong>Add import declaration</strong>
-            </p>
-          </td>
-          <td valign="top">
-            <p>
-              Specifies additional import declarations. This might be required depending on referenced types by the substitution pattern.
-            </p>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <h2 class="Head">
-      Error page
-    </h2>
-    <p>
-      Displays a list of errors and warnings if any.
-    </p>
-    <h2 class="Head">
-      Preview page
-    </h2>
-    <p>
-      Displays a preview of the actions which will be performed on 'Finish'.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/cnls.htm">String externalization</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="../tasks/tasks-206.htm">Externalizing Strings</a><br>
-      <a href="../tasks/tasks-180.htm">Using the Externalize Strings wizard</a>
-      <a href="../tasks/tasks-110.htm"></a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="../reference/ref-menu-source.htm">Source actions</a>
-    </p>
-	<p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-100.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-100.htm
deleted file mode 100644
index 24ef84c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-100.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Undoing a refactoring operation
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Undoing a refactoring operation
-    </h1>
-    <p>
-      The most recent refactoring can be undone as long as you have not modified any Java elements in the workbench.
-      After performing a refactoring operation, you can build the
-      project, run and debug it, and execute any test cases, and still undo the refactoring action.
-    </p>
-    <p>
-      To undo the most recent refactoring, select <strong>Refactor</strong> &gt; <strong>Undo</strong> from the menu bar.
-    </p>
-    <p>
-      <strong>Note</strong>: If the workbench contains unsaved files that affect undoing the refactoring, an error dialog appears.
-      The dialog contains a list of files that must be
-      reverted to their saved editions before the refactoring can be completed.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-82.htm">Refactoring without preview</a><br>
-       <a href="tasks-83.htm">Refactoring with preview</a><br>
-       <a href="tasks-84.htm">Previewing refactoring changes</a><br>
-       <a href="tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialog</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-101.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-101.htm
deleted file mode 100644
index be8e8ff..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-101.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Redoing a refactoring operation
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Redoing a refactoring operation
-    </h1>
-    <p>
-      To redo a previously undone refactoring operation, select <strong>Refactor</strong> &gt; <strong>Redo</strong> from the menu bar.
-    </p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-82.htm">Refactoring without preview</a><br>
-       <a href="tasks-83.htm">Refactoring with preview</a><br>
-       <a href="tasks-84.htm">Previewing refactoring changes</a><br>
-       <a href="tasks-100.htm">Undoing a refactoring operation</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-       <a href="../reference/ref-view-outline.htm">Outline view for Java</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-102.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-102.htm
deleted file mode 100644
index accb813..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-102.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Searching
-    </title>
-  </head>
-  <body>
-    <h1>
-      Searching
-    </h1>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-103.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-103.htm
deleted file mode 100644
index a4af865..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-103.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <meta name="Author" content="Adam Kiezun">
-    <title>
-      Conducting a Java search using the Search dialog
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Conducting a Java search using the Search dialog
-    </h1>
-    <p>
-      Java search allows you to quickly find references to and declarations of Java elements.
-    </p>
-    <ul>
-      <li>
-        Open the Search dialog by either: 
-        <ul>
-          <li>
-            Clicking the <strong>Search</strong> button in the toolbar or
-          </li>
-          <li>
-            Pressing <strong>Ctrl+H</strong> or
-          </li>
-          <li>
-            Selecting <strong>Search &gt; Search...</strong> from the menu bar.
-          </li>
-        </ul>
-      </li>
-      <li>
-        Select the <strong>Java Search</strong> tab.
-      </li>
-      <li>
-        In the <strong>Search string</strong> field, type the string for which you want to search, using wildcards as needed.
-      </li>
-      <li>
-        You can also choose a previous search expression from the drop-down list. Selecting a previous search expression restores all values associated with that previous search
-        in the dialog.
-      </li>
-      <li>
-        Select the Java element type in the <strong>Search For</strong> area.
-      </li>
-      <li>
-        Narrow your search in the <strong>Limit To</strong> area, or select <strong>All occurrences</strong> to search for references
-        and declarations to a Java element.
-      </li>
-      <li>
-        Optionally, use the <strong>Scope</strong> area to narrow the scope of your search.
-      </li>
-      <li>
-        Click <strong>Search</strong>, and the search is carried out. The results are displayed in the Search view in the workbench window.
-      </li>
-    </ul>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-8.htm">Java search</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="tasks-104.htm">Conducting a Java search using pop-up menus</a>
-    </p>
-    <p>
-      <br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-131.htm">Java search tab</a><br>
-       <a href="../reference/ref-menu-search.htm">Search menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-104.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-104.htm
deleted file mode 100644
index 65a9c2a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-104.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Conducting a Java search using pop-up menus
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Conducting a Java search using pop-up menus
-    </h1>
-    <p>
-      Open the context menu on any Java element visible in a view.
-    </p>
-    <ul>
-      <li>
-        Search, Outline, and Hierarchy views: The selected Java element in these views can be searched for declarations and references.
-      </li>
-      <li>
-        Package Explorer: Packages, Java compilation units, types and their members can be searched for declarations and references.
-        If a compilation unit or CLASS file contains
-        more than one type, a dialog prompts you to choose one.
-      </li>
-    </ul>
-    The search pop-up menu is also available in the Java editor. If the selection in the Java editor can be resolved to a Java element,
-	then you can search for declarations and references. 
-    <p>
-      To conduct a search from a pop-up menu, follow these steps:
-    </p>
-    <ol>
-      <li>
-        Select a Java element (for example a Java compilation unit in the Package Explorer or a method in the Outline view) or some text in a Java editor.
-      </li>
-      <li>
-        From the selection's pop-up menu, navigate to the available Java searches. After you select a search to perform, the search progress is shown in a dialog. Note: in the
-        editor searches are available under the&nbsp;<strong><strong>Search</strong></strong> submenu.
-      </li>
-      <li>
-        You may stop the search process by clicking&nbsp;<strong><strong>Cancel</strong></strong> in the progress dialog.
-      </li>
-    </ol>
-    <p>
-      The type of the selected Java element defines which search pop-up menus are available. The Java editor does not constrain the list of available Java searches based on the
-      selection.
-    </p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-8.htm">Java search</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-79.htm">Searching Java code</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-131.htm">Java search tab</a><br>
-       <a href="../reference/ref-menu-search.htm">Search menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-105.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-105.htm
deleted file mode 100644
index 928155a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-105.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Building
-    </title>
-  </head>
-  <body>
-    <h1>
-      Building
-    </h1>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-106.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-106.htm
deleted file mode 100644
index 852ea6d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-106.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Building a Java program
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Building a Java program
-    </h1>
-    <p>
-      A build command compiles workbench resources. A build command can be triggered in different ways:
-    </p>
-    <ul>
-      <li>
-        Building automatically: If auto build is turned on (<strong>Window &gt; Preferences &gt;
-        Perform build automatically on resource modification</strong>), then an
-        incremental build occurs every time you save a modified workbench resource.
-      </li>
-      <li>
-        Building manually: You can perform a manual build using a keyboard shortcut, a project's pop-up menu or the <strong>Project</strong> menu in the menu bar.
-      </li>
-    </ul>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/cbuildcp.htm">Build classpath</a><br>
-       <a href="../concepts/concepts-4.htm">Java builder</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="tasks-108.htm">Building automatically</a><br>
-       <a href="tasks-109.htm">Building manually</a><br>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-       <a href="tasks-110.htm">Working with build paths</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build Path</a><br>
-       <a href="../reference/ref-menu-project.htm">Project menu</a><br>
-       <a href="../reference/ref-preferences-compiler.htm">Compiler preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-107.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-107.htm
deleted file mode 100644
index b0852de..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-107.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Viewing compilation errors and warnings
-    </title>
-  </head>
-  <body>
-    <h1>
-      Viewing compilation errors and warnings
-    </h1>
-    <p>
-      The workbench supports different ways to examine errors and warnings:
-    </p>
-    <ul>
-      <li>
-        Error ticks in Java views (e.g. Package Explorer)
-      </li>
-      <li>
-        Marker annotations in the editor
-      </li>
-      <li>
-        Tasks in the task list
-      </li>
-    </ul>
-    <p>
-      If an expression you select to evaluate has a compilation error, it will be reported in the Scrapbook editor.
-    </p>
-    <p>
-      For example, if you type and select the (invalid) expression <em>System.println(&quot;hi&quot;)</em> in the editor and click <strong><strong>Run</strong></strong> in the
-      toolbar, the error message:
-    </p>
-    <p>
-      <em>The method println(java.lang.String) is undefined for the type java.lang.System</em>
-    </p>
-    <p>
-      is displayed in the editor at the point of the error.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-11.htm">Scrapbook</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-108.htm">Building automatically</a><br>
-       <a href="../tasks/tasks-109.htm">Building manually</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-executionArgs.htm">Setting execution arguments</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-108.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-108.htm
deleted file mode 100644
index 54bb6b1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-108.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Building automatically
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Building automatically
-    </h1>
-    <p>
-      To enable automatic building:
-    </p>
-    <blockquote>
-      Select the <strong>Window &gt; Preferences &gt; Perform build automatically on resource modification</strong> check box.
-    </blockquote>
-    To disable automatic building: 
-    <blockquote>
-      Clear the <strong>Window &gt; Preferences &gt; Perform build automatically on resource modification</strong> check box.
-    </blockquote>
-    <p>
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build class path</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-		<a href="tasks-106.htm">Building a Java program</a><br>
-		<a href="tasks-109.htm">Building manually</a><br>
-		<a href="tasks-107.htm">Viewing compilation errors and warnings</a><br>
-		<a href="tasks-110.htm">Working with build paths</a><br>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build path</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109.htm
deleted file mode 100644
index f38afc7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Building manually
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Building manually
-    </h1>
-    <h2>
-      Incremental build
-    </h2>
-    <p>
-      The <strong>Build</strong> command performs an incremental build that compiles all
-      resources modified since the last build. To trigger an incremental build, either:
-    </p>
-    <ul>
-      <li>
-        press <strong>Ctrl+B</strong> or
-      </li>
-      <li>
-        from the menu bar, select <strong>Project &gt; Build All</strong>
-      </li>
-    </ul>
-    <h2>
-      Incremental project build
-    </h2>
-    <p>
-      You can also incrementally build single projects. Select the project that you want to build and:
-    </p>
-    <ul>
-      <li>
-        Select <strong>Project &gt; Build Project</strong> from the menu bar or
-      </li>
-      <li>
-        Select <strong>Build Project</strong> from the project's pop-up menu
-      </li>
-    </ul>
-    <h2>
-      Full build
-    </h2>
-    <p>
-      To rebuild all workbench resources that have an associated builder (e.g. Java projects),
-      select <strong>Project</strong> &gt; <strong>Rebuild All</strong> from the menu bar.
-    </p>
-    <h2>
-      Full project build
-    </h2>
-    <p>
-      To rebuild all resources contained in a project, select the project and select <strong>Project</strong> &gt; <strong>Rebuild Project</strong> from the menu bar.
-    </p>
-     
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="tasks-106.htm">Building a Java program</a><br>
-       <a href="tasks-108.htm">Building automatically</a><br>
-       <a href="tasks-110.htm">Working with build paths</a><a href="tasks-110.htm"></a><br>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build path</a><br>
-       <a href="../reference/ref-menu-project.htm">Project menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109a.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109a.htm
deleted file mode 100644
index aea152e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109a.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Building circular projects
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Building circular projects
-    </h1>
-    <p>
-      To enable building circular projects:
-    </p>
-    <blockquote>
-      Select the <strong>Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path</strong> page.<br>
-      Then set the option <strong>Circular dependencies</strong> to <strong>Warning</strong>.
-    </blockquote>
-    To disable building circular projects:
-    <blockquote>
-      Select the <strong>Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path</strong> page.<br>
-      Then set the option <strong>Circular dependencies</strong> to <strong>Error</strong>.
-    </blockquote>
-    <p>
-      To enable building a single project involved in a cycle:
-    </p>
-    <blockquote>
-      Select the project, and from its pop-up menu, select <strong>Properties</strong>.<br>
-      In the Properties dialog, select the <strong>Java Compiler &gt; Build Path</strong> page.<br>
-      Then set the option <strong>Circular dependencies</strong> to <strong>Warning</strong>.
-    </blockquote>
-    To disable building a single project involved in a cycle:
-    <blockquote>
-      Select the project, and from its pop-up menu, select <strong>Properties</strong>.<br>
-      In the Properties dialog, select the <strong>Java Compiler &gt; Build Path</strong> page.<br>
-      Then set the option <strong>Circular dependencies</strong> to <strong>Error</strong>.
-    </blockquote>
-    <p>
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build class path</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-		<a href="tasks-106.htm">Building a Java program</a><br>
-		<a href="tasks-109.htm">Building manually</a><br>
-		<a href="tasks-107.htm">Viewing compilation errors and warnings</a><br>
-		<a href="tasks-110.htm">Working with build paths</a><br>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build path</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109b.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109b.htm
deleted file mode 100644
index e92386a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-109b.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Building without cleaning the output location
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Building without cleaning the output location
-    </h1>
-    <p>
-      To build projects without cleaning the output location:
-    </p>
-    <blockquote>
-      Select the <strong>Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path</strong> page.<br>
-      Then set the <strong>Scrub output folders on full build</strong> check box.
-    </blockquote>
-    To build projects after cleaning the output location:
-    <blockquote>
-      Select the <strong>Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path</strong> page.<br>
-      Then clear the <strong>Scrub output folders on full build</strong> check box.
-    </blockquote>
-    <p>
-      To build a single project without cleaning the output location:
-    </p>
-    <blockquote>
-      Select the project, and from its pop-up menu, select <strong>Properties</strong>.<br>
-      In the Properties dialog, select the <strong>Java Compiler &gt; Build Path</strong> page.<br>
-      Then set the <strong>Scrub output folders on full build</strong> check box.
-    </blockquote>
-      To build a single project after cleaning the output location:
-    <blockquote>
-      Select the project, and from its pop-up menu, select <strong>Properties</strong>.<br>
-      In the Properties dialog, select the <strong>Java Compiler &gt; Build Path</strong> page.<br>
-      Then clear the <strong>Scrub output folders on full build</strong> check box.
-    </blockquote>
-    <p>
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build class path</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-		<a href="tasks-106.htm">Building a Java program</a><br>
-		<a href="tasks-109.htm">Building manually</a><br>
-		<a href="tasks-107.htm">Viewing compilation errors and warnings</a><br>
-		<a href="tasks-110.htm">Working with build paths</a><br>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build path</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-11.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-11.htm
deleted file mode 100644
index c2e7171..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-11.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating Java elements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating Java elements
-    </h1>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-       <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="tasks-12.htm">Organizing Java projects</a><br>
-       <a href="tasks-13.htm">Creating a Java project as its own source container</a><br>
-       <a href="tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="tasks-26.htm">Creating a new source folder</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a><br>
-       <a href="tasks-17.htm">Creating a new Java class</a> <a href="tasks-21.htm">Creating a new Java interface</a><br>
-       <a href="tasks-149.htm">Creating a Java scrapbook page</a><br>
-       <a href="tasks-114.htm">Adding a variable class path entry</a><br>
-       <a href="tasks-85.htm">Copying and moving Java elements</a><br>
-       <a href="tasks-117.htm">Defining a class path variable</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-121.htm">New Java Project wizard</a><br>
-       <a href="../reference/ref-128.htm">New Source Folder wizard</a><br>
-       <a href="../reference/ref-125.htm">New Java Package wizard</a><br>
-       <a href="../reference/ref-126.htm">New Java Class wizard</a><br>
-       <a href="../reference/ref-127.htm">New Java Interface wizard</a><br>
-       <a href="../reference/ref-129.htm">New Scrapbook Page wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-110.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-110.htm
deleted file mode 100644
index 2113824..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-110.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Working with build paths
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Working with build paths
-    </h1>
-    <p>
-      Setting up the proper Java build path is an important task when doing Java development.
-      Without the correct Java build path, you cannot compile your code. In addition, you
-      cannot search or look at the type hierarchies for Java elements.
-    </p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-31.htm">Adding source code as individual files</a><br>
-       <a href="tasks-120.htm">Assigning the default JRE for the workbench</a><br>
-       <a href="tasks-106.htm">Building a Java program</a><br>
-       <a href="tasks-108.htm">Building automatically</a><br>
-       <a href="tasks-109.htm">Building manually</a><br>
-       <a href="tasks-124.htm">Choosing a JRE for launching a project</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build path</a><br>
-       <a href="../reference/ref-19.htm">Installed JREs preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-111.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-111.htm
deleted file mode 100644
index 64675be..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-111.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Viewing and editing a project's build class path
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Viewing and editing a project's Java build path
-    </h1>
-    <p>
-      A project's Java build path can either be defined when creating the project with the <strong>New Wizard</strong> or later in the project's property dialog. The Java
-      build path settings dialog is the same in both cases. To view and edit a project's Java build path, follow these steps:
-    </p>
-    <ol>
-      <li>
-        Select the project you want to view or edit
-      </li>
-      <li>
-        From the project's pop-up menu, select <strong>Properties</strong>
-      </li>
-      <li>
-        Select the <strong>Java Build Path</strong> page
-      </li>
-      <li>
-        Define the source entries for the build path on the <strong>Source</strong> page: 
-        <ul>
-          <li>
-             Click the <strong>Add Folder</strong> button to add source folders to the Java build path.<br>
-             The <strong>Remove</strong> button removes the selected folder(s) from the build path.<br>
-             <strong>Edit</strong> lets you modify the selected entry.
-          </li>
-        </ul>
-      </li>
-      <li>
-        On the <strong>Projects</strong> page, identify the other projects that are required for building this project. The list shows all the existing Java projects from the
-        workbench. <strong>Note</strong>: Each selected project is automatically added to the list of referenced projects.
-      </li>
-      <li>
-        On the <strong>Libraries</strong> page, define the libraries required by your project. Libraries come in different forms. There are buttons for adding a library in each
-        form. By default, each Java project has a 'JRE System Library' entry on the build path. This entry stands for the workbench's default JRE.
-      </li>
-      <li>
-        On the <strong>Order and Export</strong> page, define the Java build path order. The recommended ordering is to have source entries before the library entries and the
-        required projects.
-      </li>
-    </ol>
-    <p>
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-114.htm">Adding a variable class path entry</a><br>
-       <a href="tasks-106.htm">Building a Java program</a><br>
-       <a href="tasks-110.htm">Working with build paths</a><br>
-       <a href="tasks-JREs.htm">Working with JREs</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build path</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-112.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-112.htm
deleted file mode 100644
index c24ecb8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-112.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Adding a library folder to the build path
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding a library folder to the build path
-    </h1>
-    <p>
-      A library folder is an ordinary folder containing a collection of class files inside the workbench. Use this format for a library when a library is not packaged as a JAR
-      file.
-    </p>
-      To add a library folder to the project's build class path, follow these steps: 
-    <ol>
-      <li>
-        Select the project, and from its context menu, select <strong>Properties</strong>.
-      </li>
-      <li>
-        In the Properties dialog, select the <strong>Java Build Path</strong> page.
-      </li>
-      <li>
-        Click the <strong>Libraries</strong> tab.
-      </li>
-      <li>
-        Click the <strong>Add Class Folder</strong> button.
-      </li>
-      <li>
-        In the dialog that appears, select a folder to add press the <strong>OK</strong> button.
-      If you want to add a not yet existing folder use first  <strong>Create
-	New Folder.</strong> After the folder is created select the new folder and press the <strong>OK</strong> button</li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><a href="../concepts/concepts-4.htm"></a>
-    </p>
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-106.htm">Building a Java program</a><br>
-       <a href="tasks-108.htm">Building automatically</a><br>
-       <a href="tasks-109.htm">Building manually</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-       <a href="tasks-110.htm">Working with build paths</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><a href="../reference/ref-123.htm"></a>
-    </p>
-    <p>
-      <a href="../reference/ref-123.htm">Java Build Path</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-113.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-113.htm
deleted file mode 100644
index c3ec127..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-113.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Adding a JAR file to the build path
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding a JAR file to the build path
-    </h1>
-    <p>
-      You can add a JAR file stored either in the workbench or anywhere in your file system to the build class path.
-    </p>
-    <p>
-       To add a JAR to your build class path follow these steps:
-    </p>
-    <ol>
-      <li>
-        Select the project, and from its pop-up menu, select <strong>Properties</strong>.
-        In the Properties dialog, select the <strong>Java Build Path</strong> page.<br>
-         Click the <strong>Libraries</strong> tab.<br>
-         You can now either add a JAR file which is contained in your workspace or which is somewhere else:
-   
-        <ul>
-          <li>
-            to add a JAR file which is inside your workspace click the <strong>Add JARs</strong> button
-          </li>
-          <li>
-            to add an external JAR file click the <strong>Add External JARs</strong> button
-          </li>
-        </ul>
-      </li>
-      <li>
-        In the dialog that appears, select the JAR file that you want to add.
-      Note that you can add multiple JARs at once.</li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-112.htm">Adding a library folder to the build path</a><br>
-       <a href="tasks-106.htm">Building a Java program</a><br>
-       <a href="tasks-108.htm">Building automatically</a><br>
-       <a href="tasks-109.htm">Building manually</a><br>
-       <a href="tasks-33.htm">Creating a new JAR file</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a><br>
-       <a href="tasks-110.htm">Working with build paths</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build path</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-114.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-114.htm
deleted file mode 100644
index 07e3ec5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-114.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Adding a classpath variable to the build path
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding a classpath variable to the build path
-    </h1>
-    <p>
-      To add a classpath variable to the Java build path of a project, follow these steps:
-    </p>
-    <ol>
-      <li>
-        Select the project to which you want to add the classpath&nbsp;variable
-      </li>
-      <li>
-        From the project's pop-up menu, select <strong>Properties</strong><br>
-      </li>
-      <li>
-        In the Properties page, select the <strong>Java Build Path</strong> page.
-      </li>
-      <li>
-        On the <strong>Libraries</strong> tab, click <strong>Add Variable</strong> for adding a variable that refers to a JAR file.<br>
-         The <strong>New Variable Classpath Entry</strong> dialog appears which shows all available classpath variables.
-         <p><img src="../images/classpathVar.gif" width=389 height=462 alt="Classpath variable dialog"></p>
-      </li>
-      <li>
-        Select a classpath variable then press <strong>OK</strong>.
-      <ul>
-		<li>
-        If the variable resolves to a folder, you can specify a path extension that points to a JAR.
-        To do this press the <strong>Extend...</strong> button. </li>
-		<li>Press <strong>Edit...</strong> to create a new classpath variable or edit an existing one.
-      </li>
-	</ul>
-	</li>
-</ol>
-    <p>
-      <strong>Hint</strong>: You can add multiple variable entries at once to the Java build path:
-      Select more than one variable in the <strong>New Variable Classpath
-      Entry</strong> dialog, or multiple JAR files in the <strong>Variable Extension</strong> dialog.<br>
-    </p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/cclsspthv.htm">Classpath variables</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-116.htm">Attaching source to a class path variable</a><br>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-117.htm">Defining a class path variable</a><br>
-       <a href="tasks-118.htm">Deleting a class path variable</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-15.htm">Classpath Variables preference page</a><br>
-       <a href="../reference/ref-123.htm">Build path properties page</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-115.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-115.htm
deleted file mode 100644
index 4311f13..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-115.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Attaching source to a JAR file
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Attaching source to a JAR file
-    </h1>
-    <p>
-      You can attach source to a JAR file to enable source-level stepping and browsing of classes contained in a binary JAR file.
-      Unless its source code is attached to a JAR file
-      in the workbench, you will not be able to view the source for the JAR file.
-    </p>
-    <p>
-      To attach source to a JAR file:
-    </p>
-    <ol>
-      <li>
-        Select the project, and from its pop-up menu, select <strong>Properties</strong>.<br>
-         In the Properties dialog, select the Java Build Path page.
-      </li>
-      <li>
-        On the <strong>Libraries</strong> tab, select the JAR file to which you want to attach source.<br>
-         Expand the node by clicking on the plus and select the node <em>Source Attachment</em>.
-         Click the <strong>Edit </strong> button to bring up the source attachment dialog.
-      </li>
-      <li>
-        Fill in the <strong>Location path</strong> field depending on the location, choose between the workspace, an external file or external folder.
-      </li>
-      <li>
-        Click <strong>OK</strong>.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-116.htm">Attaching source to variables</a><br>
-       <a href="tasks-33.htm">Creating a new JAR file</a><br>
-       <a href="tasks-136.htm">Stepping through the execution of a program</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build Path</a><br>
-       <a href="../reference/ref-124.htm">Source Attachment dialog</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-115a.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-115a.htm
deleted file mode 100644
index 065fd51..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-115a.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Attaching source to a library folder
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Attaching source to a library folder
-    </h1>
-    <p>
-      You can attach source to a library folder to enable source-level stepping and browsing of classes contained in a library folder.
-      Unless its source code is attached to a library folder in the workbench, you will not be able to view the source for the library folder.
-    </p>
-    <p>
-      To attach source to a library folder:
-    </p>
-    <ol>
-      <li>
-        Select the project, and from its pop-up menu, select <strong>Properties</strong>.<br>
-         In the Properties dialog, select the Java Build Path page.
-      </li>
-      <li>
-        On the <strong>Libraries</strong> tab, select the library folder to which you want to attach source.<br>
-         Expand the node by clicking on the plus and select the node <em>Source Attachment</em>.
-         Click the <strong>Edit </strong> button to bring up the source attachment dialog.
-      </li>
-      <li>
-        Fill in the <strong>Location path</strong> field depending on the location, choose between the workspace, an external file or external folder.
-      </li>
-      <li>
-        Click <strong>OK</strong>.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-116.htm">Attaching source to variables</a><br>
-       <a href="tasks-33.htm">Creating a new JAR file</a><br>
-       <a href="tasks-136.htm">Stepping through the execution of a program</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-123.htm">Java Build Path</a><br>
-       <a href="../reference/ref-124.htm">Source Attachment dialog</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-116.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-116.htm
deleted file mode 100644
index f26a67a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-116.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Attaching source to a class path variable
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Attaching source to a class path variable
-    </h1>
-    <p>
-      When attaching source for a class path variable entry, both the path to the&nbsp;<strong>Archive</strong> and the <strong>Root Path</strong> must be defined by
-      variables. Follow these steps to make a source attachment for a variable:
-    </p>
-    <ol>
-      <li>
-        Select the project, and from its pop-up menu, select <strong>Properties</strong>.<br>
-         In the Properties dialog, select the Java Build Path page.
-      </li>
-      <li>
-        On the <strong>Libraries</strong> tab, select the class path variable to which you want to attach source.<br>
-         Expand the node by clicking on the plus and select the node <em>Source Attachment</em>. Click the <strong>Edit </strong> button to bring up the source attachment dialog.
-      </li>
-      <li>
-        In <strong>Location variable path</strong> field, use a variable to define the location of the archive. Use
-        the <strong>Variable</strong> button to select an existing variable and the <strong>Extension</strong> button to append an
-        optional path extension.</li>
-      <li>
-        Click <strong>OK</strong>.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/cclsspthv.htm">Classpath variables</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-114.htm">Adding a variable class path entry</a><br>
-       <a href="tasks-117.htm">Defining a class path variable</a><br>
-       <a href="tasks-118.htm">Deleting a class path variable</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-15.htm">Classpath Variables preference page</a><br>
-       <a href="../reference/ref-124.htm">Source Attachment dialog</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-117.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-117.htm
deleted file mode 100644
index 8f263ef..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-117.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Defining a classpath variable
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Defining a classpath variable
-    </h1>
-    <p>
-       Classpath variables are stored global to the workbench; in other words, all projects in the workbench can share the classpath variables.
-    </p>
-    <p>
-      To add or change a class path variable, follow these steps:
-    </p>
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences</strong>.<br>
-         Expand the <strong>Java</strong> category in the left pane, and select <strong>Classpath Variables</strong>.
-      </li>
-      <li>
-        This page allows you to add, edit, or remove class path variables. 
-        <ul>
-          <li>
-            To add a new class path variable, click the <strong>New...</strong> button. The New Variable Entry page opens.
-          </li>
-          <li>
-            To edit an existing class path variable, select the variable in the <strong>Defined class path variables</strong> list and click
-            the <strong>Edit...</strong> button. The Edit Variable Entry page opens. <em>Note: The reserved class path variables, JRE_LIB, JRE_SRC, and
-            JRE_SRCROOT cannot be edited in this page. To change them, change the default workbench JRE on the Installed JREs page (<strong>Window</strong> &gt;
-            <strong>Preferences</strong> &gt; <strong>Java</strong> &gt; <strong>Installed JREs</strong>).</em>
-          </li>
-        </ul>
-        Type a name for the variable in the <strong>Name</strong> field.
-      </li>
-      <li>
-        Type a path to be referenced by the variable in the <strong>Path</strong> field. You can also click the <strong>File</strong>
-        or <strong>Folder</strong> buttons to browse the file system.
-      </li>
-      <li>
-        Click <strong>OK</strong> when you are done. The new or modified variable appears in the <strong>Defined class path variables</strong> list on the Preferences page.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/cclsspthv.htm">Classpath variables</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-114.htm">Adding a variable class path entry</a><br>
-       <a href="tasks-116.htm">Attaching source to a class path variable</a><br>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-118.htm">Deleting a class path variable</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-15.htm">Classpath Variables preference page</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-118.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-118.htm
deleted file mode 100644
index 11316e6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-118.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Deleting a classpath variable
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Deleting a classpath variable
-    </h1>
-     To delete an existing class path variable: 
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences</strong>.
-      </li>
-      <li>
-        Expand the <strong>Java</strong> category in the left pane, and select <strong>Classpath Variables</strong>.
-      </li>
-      <li>
-        Select the variable(s) you want to delete in the <strong>Defined class path variables</strong> list and click the <strong>Remove</strong>
-        button. The variable(s) are removed from the classpath variables list on the preferences page.
-      </li>
-    </ol>
-    <p>
-      <strong>Note</strong>: The reserved class path variables, JRE_LIB, JRE_SRC, and JRE_SRCROOT cannot be deleted.&nbsp;
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/cclsspthv.htm">Classpath variables</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-114.htm">Adding a variable class path entry</a><br>
-       <a href="tasks-116.htm">Attaching source to a class path variable</a><br>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-117.htm">Defining a class path variable</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-15.htm">Classpath Variables preference page</a><br>
-       &nbsp;
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-12.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-12.htm
deleted file mode 100644
index c62f977..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-12.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a new Java project
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new Java project
-    </h1>
-	<p>
-    You can organize Java projects in two different ways. 
-    </p>
-	<ul>
-      <li>
-        Use the project as the container of packages. In this organization, all Java packages are created directly inside the project. This is the selected organization by
-        default. The generated CLASS files are stored along with the JAVA source files.
-      </li>
-      <li>
-        Use source folders as the container for packages. In this project organization, packages are not created directly inside the project but in source folders. You create
-        source folders as children of the project and create your packages inside these source folders.
-      </li>
-    </ul>
-	<p>
-    The default organization for new projects can be changed on the preference pages (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Java &gt; New
-    Project</strong>). 
-    </p>
-	<p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-13.htm">Creating a Java project as its own source container</a><br>
-       <a href="tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="tasks-17.htm">Creating a new Java class</a><br>
-       <a href="tasks-21.htm">Creating a new Java interface</a><br>
-       <a href="tasks-26.htm">Creating a new source folder</a><br>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-110.htm">Working with build paths</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-121.htm">New Java Project wizard</a><br>
-       <a href="../reference/ref-preferences-new-project.htm">New Project preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-120.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-120.htm
deleted file mode 100644
index 0462985..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-120.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Assigning the default JRE for the workbench
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Assigning the default JRE for the workbench
-    </h1>
-    <p>
-      The default JRE is used for compiling and launching Java programs in all projects unless you specifically override the default JRE.
-      The default JRE is the installed JRE to which JRE_LIB, JRE_SRC and JRE_SRCROOT are bound.
-      A project is not compiled against the default JRE if the JRE_LIB variable has been removed from its build path.
-      A program is not launched with the default JRE if a custom runtime JRE has been set for its project.
-    </p>
-    <p>
-      Here is how you can change the default JRE:
-    </p>
-    <ol>
-      <li>
-        From the workbench's menu bar, select <strong>Window</strong> &gt; <strong>Preferences</strong>.
-      </li>
-      <li>
-        Expand the <strong>Java</strong> category in the left pane and select <strong>Installed JREs</strong>.
-      </li>
-      <li>
-        Check the box on the line for the JRE that you want to assign as the default JRE in your workbench.
-        If the JRE you want to assign as the default does not appear in the list, you must <a href="tasks-121.htm">add it</a>.
-      </li>
-      <li>
-        Click <strong>OK</strong>.
-      </li>
-    </ol>
-    <strong>Note</strong>: The JRE_LIB, JRE_SRC and JRE_SRCROOT system variables are automatically updated when you change the default JRE. This may cause a build to occur if you
-    have auto build enabled (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Workbench</strong> &gt; <strong>Perform build automatically on resource
-    modification</strong>). 
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-121.htm">Adding a new JRE definition</a><br>
-       <a href="tasks-124.htm">Choosing a JRE for launching a project</a><br>
-       <a href="tasks-110.htm">Working with build paths</a><br>
-       <a href="tasks-JREs.htm">Working with JREs</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-19.htm">Installed JREs preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-121.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-121.htm
deleted file mode 100644
index 99d3701..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-121.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Adding a new JRE definition
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding a new JRE definition
-    </h1>
-    <p>
-      You can add any number of JRE definitions.
-    </p>
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences.</strong>
-      </li>
-      <li>
-        In the left pane, expand the <strong>Java</strong> category and select <strong>Installed JREs</strong>.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Add...</strong> button. The Create JRE dialog opens.
-      </li>
-      <li>
-        In the <strong>JRE type</strong> field, select the type of JRE you want to add from the drop-down list.
-      </li>
-      <li>
-        In the&nbsp;<strong>JRE name</strong> field, type a name for the new JRE definition. All JREs of the same type must have a unique name.
-      </li>
-      <li>
-        In the&nbsp;<strong>JRE home directory</strong> field, type or click&nbsp;<strong>Browse</strong> to select the path to the root
-        directory of the JRE installation (usually the directory containing the&nbsp;<em>bin</em> and&nbsp;<em>lib</em> directories for the JRE). This location is checked
-        automatically to make sure it is a valid path.
-      </li>
-      <li>
-        In the&nbsp;<strong>Javadoc URL</strong> field, type or click&nbsp;<strong>Browse</strong> to select the URL location. The location is
-        used by the Javadoc export wizard as a default value and by the 'Open External Javadoc' action.
-      </li>
-      <li>
-        If you want to use the default libraries and source files for this JRE, select the <strong>Use default system libraries</strong> check box. Otherwise,
-        clear it and customize as desired. Source can be attached for the referenced JARs as well.
-      </li>
-      <li>
-        Click&nbsp;<strong>OK</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-     <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> <br>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="tasks-JREs.htm">Working with JREs</a><br>
-       <a href="tasks-120.htm">Assigning the default JRE for the workbench</a><br>
-       <a href="tasks-123.htm">Editing a JRE definition</a><br>
-       <a href="tasks-122.htm">Overriding the default system libraries for a JRE definition</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-19.htm">Installed JREs preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm">
-       <img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-122.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-122.htm
deleted file mode 100644
index ce673f5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-122.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Overriding the default system libraries for a JRE definition
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Overriding the default system libraries for a JRE definition
-    </h1>
-    <p>
-      <br>
-       You can override the system libraries and the corresponding source attachments when adding a JRE.
-    </p>
-    <ol>
-      <li>
-        Begin adding a new JRE definition.
-      </li>
-      <li>
-        In the Create JRE dialog, clear the <strong><strong>Use default system libraries</strong></strong> check box.<br>
-         If the system was able to determine the set of system libraries, these libraries will already be displayed.
-      </li>
-      <li>
-        Order and/or remove the system libraries that were determined. Add external JARs to the list of system libraries.
-      </li>
-      <li>
-        Associate source with the system libraries using the&nbsp;<strong><strong>Attach source</strong></strong> button.
-      </li>
-      <li>
-        When you are finished with this dialog, click <strong>OK</strong> to create the new JRE definition.
-        The new JRE definition will use the customized
-        system libraries (and attached source).
-      </li>
-    </ol>
-    <p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br> 
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="tasks-JREs.htm">Working with JREs</a><br>
-       <a href="tasks-121.htm">Adding a new JRE definition</a><br>
-       <a href="tasks-123.htm">Editing a JRE definition</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-19.htm">Installed JREs preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm">
-       <img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-123.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-123.htm
deleted file mode 100644
index 5e1e582..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-123.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Editing a JRE definition
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Editing a JRE definition
-    </h1>
-    <p>
-      <br>
-       You can modify all settings for a JRE definition except its JRE type.
-    </p>
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences</strong>.
-      </li>
-      <li>
-        In the left pane, expend the <strong>Java</strong> category, and select <strong>Installed JREs</strong>.
-      </li>
-      <li>
-        Select the JRE definition that you want to edit and click <strong>Edit...</strong>. The Edit JRE page opens.
-      </li>
-      <li>
-        In the <strong>JRE name</strong> field, edit the name for the JRE definition. All JREs of the same type must have a unique name.
-      </li>
-      <li>
-        In the <strong>JRE home directory</strong> field, edit or click <strong>Browse...</strong> to select the path to the root
-        directory of the JRE installation (usually the directory containing the <em>bin</em> and <em>lib</em> directories for the JRE). This location is checked
-        automatically to make sure it is a valid path.
-      </li>
-      <li>
-        In the <strong>Javadoc URL</strong> field, edit or click <strong>Browse...</strong> to select the URL location. The location is
-        used by the Javadoc export wizard as a default value and by the 'Open External Javadoc' action.
-      </li>
-      <li>
-        If you want to use the default libraries and source files for this JRE, select the <strong>Use default system libraries</strong> check box.
-        Otherwise, clear it and customize as desired. Source can be attached for the referenced jars as well.
-      </li>
-      <li>
-        Click <strong>OK</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-     <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> <br>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="tasks-121.htm">Adding a new JRE definition</a><br>
-       <a href="tasks-deleteJRE.htm">Deleting a JRE definition</a><br>
-       <a href="tasks-122.htm">Overriding the default system libraries for a JRE definition</a><br>
-       <a href="tasks-JREs.htm">Working with JREs</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-19.htm">Installed JREs preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm">
-       <img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-124.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-124.htm
deleted file mode 100644
index 642c491..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-124.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Choosing a JRE for a launch configuration
-    </title>
-  </head>
-  <body>
-    <h1>
-      Choosing a JRE for a launch configuration
-    </h1>
-    <p>
-      Instead of using the default JRE for running and debugging all Java Application launch configurations, you can specifically assign a JRE for launching an individual
-      configuration.
-    </p>
-    <ol>
-      <li>
-        With a Java Application configuration selected in the Launch Configuration Dialog, select the JRE tab.
-      </li>
-      <li>
-        In the list of available JREs, select the JRE you want to use to launch this configuration and click <strong>Apply</strong>,
-        <strong>Run</strong>, or <strong>Debug</strong>.
-      </li>
-    </ol>
-    <p>
-      <strong>Note</strong>: Changing the JRE used for running does not affect the way Java source is compiled. You can adjust the build path to compile against custom
-      libraries.&nbsp;
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="tasks-120.htm">Assigning the default JRE for the workbench</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-110.htm">Working with build paths</a><br>
-       <a href="../tasks/tasks-JREs.htm">Working with JREs</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-126.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-126.htm
deleted file mode 100644
index 21a65f1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-126.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Running and debugging
-    </title>
-  </head>
-  <body>
-    <h1>
-      Running and debugging
-    </h1>
-    <p>
-      You may launch your Java programs from the workbench.&nbsp; The programs may be launched in either run or debug mode.
-    </p>
-    <ul>
-      <li>
-        In run mode, the program executes, but the execution may not be suspended or examined.
-      </li>
-      <li>
-        In debug mode, execution may be suspended and resumed, variables may be inspected, and expressions may be evaluated.
-      </li>
-    </ul>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/cremdbug.htm">Remote debugging</a><br>
-       <a href="../concepts/clocdbug.htm">Local debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-9.htm">Changing debugger launch options</a><br>
-       <a href="tasks-124.htm">Choosing a JRE for launching a project</a><br>
-       <a href="../tasks/tasks-149.htm">Creating a Java scrapbook page</a><br>
-       <a href="../tasks/tasks-142.htm">Disconnecting from a VM</a><br>
-       <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-       <a href="../concepts/clocdbug.htm">Local debugging</a><br>
-       <a href="../tasks/tasks-133.htm">Preparing to debug</a><br>
-       <a href="../tasks/tasks-131.htm">Re-launching a program</a><br>
-       <a href="../concepts/cremdbug.htm">Remote debugging</a><br>
-       <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-       <a href="../tasks/tasks-executionArgs.htm">Setting execution arguments</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a><br>
-       <a href="../tasks/tasks-134.htm">Suspending threads</a><br>
-       <a href="../tasks/tasks-107.htm">Viewing compilation errors and warnings</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-       <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-11.htm">Debug preferences</a><br>
-       <a href="../reference/ref-12.htm">Console preferences</a>
-    </p>
-    <p>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-13.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-13.htm
deleted file mode 100644
index fa222be..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-13.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a Java project as its own source container
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a Java project as its own source container
-    </h1>
-    For simple projects, the project itself acts as the source container. 
-    <ol>
-      <li>
-        From the main workbench window, click <strong>File</strong> &gt; <strong>New</strong> &gt; <strong>Project</strong>. The New Project wizard opens.
-      </li>
-      <li>
-        Select <strong>Java</strong> from the left pane and <strong>Java Project</strong> from the right pane, then click <strong>Next</strong>. The New Java Project wizard opens.
-      </li>
-      <li>
-        In the&nbsp;<strong><strong>Project Name</strong></strong> field, type a name for your new Java project.
-      </li>
-      <li>
-        Select or clear the <strong>Use default</strong> check box&nbsp; to indicate whether you want to use the default location for your new project. If you clear this check
-        box, then type or click <strong>Browse</strong> to select a location for the project.
-      </li>
-      <li>
-        Click <strong>Next</strong>. The Java Settings Page opens.
-      </li>
-      <li>
-        On the <strong>Source</strong> tab, check that the project is the only source folder and the default output folder.
-      </li>
-      <li>
-        Optionally, on the <strong>Projects</strong> tab, select the required projects to be on the build path for this project. Use these options only if your project depends on
-        other projects.
-      </li>
-      <li>
-        Optionally, on the <strong>Libraries</strong> tab, select JAR files and CLASS folders to add to the build path for this new project and attach source to the JAR
-        files. Use these options only if your project requires additional libraries.
-      </li>
-      <li>
-        On the <strong>Order and Export</strong> tab, use the&nbsp;<strong><strong>Up</strong></strong> and&nbsp;<strong><strong>Down</strong></strong> buttons to move the
-        selected JAR file or CLASS folders  up or down in the build path order for this new project.
-      </li>
-      <li>
-        Click&nbsp;<strong><strong>Finish</strong></strong> when you are done.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-12.htm">Creating a new Java project</a><br>
-       <a href="tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a><br>
-       <a href="tasks-17.htm">Creating a new Java class</a><br>
-       <a href="tasks-25.htm">Creating a new interface in a compilation unit</a><br>
-       <a href="tasks-110.htm">Working with build paths</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-121.htm">New Java Project wizard</a><a href="../reference/ref-121.htm"></a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-130.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-130.htm
deleted file mode 100644
index 95e2593..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-130.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Launching a Java program
-    </title>
-  </head>
-  <body>
-    <h1>
-      Launching a Java program
-    </h1>
-    <p>The simplest way to launch a Java program is to run it using the <strong> Java Application </strong>
-    launch configuration.&nbsp; This launch configuration uses information
-    derived from the workbench preferences and your program's Java project to launch the program.
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer, select the Java compilation unit or class file you want to launch.
-      </li>
-      <li>
-        Select
-        <strong>Run &gt; Run As &gt; Java Application </strong>in the workbench
-        menu bar.&nbsp;<br>
-        or Select
-        <strong>Run As &gt; Java Application </strong>in the drop-down menu on the <strong>Run</strong> tool bar button.&nbsp;
-      </li>
-      <li>
-        Your program is now launched, and text output is shown in the Console.
-      </li>
-    </ol>
-    <p>You can also launch a Java program by selecting a project instead of the
-    compilation unit or class file.&nbsp; You will be prompted to select a class
-    from those classes that define a <em>main</em> method.&nbsp; (If only one class with a main method is
-        found in the project, that class is launched as if you selected it.)</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-10.htm">Debugger</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-141.htm">Connecting to a remote VM with the Java Remote Application launcher</a><br>
-       <a href="../tasks/tasks-131.htm">Re-launching a program</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-executionArgs.htm">Setting execution arguments</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-130a.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-130a.htm
deleted file mode 100644
index 0cd4ba1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-130a.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Launching a Java program
-    </title>
-  </head>
-  <body>
-    <h1>
-      Launching a Java applet
-    </h1>
-    <p>If your Java program is structured as an applet, you can use the <strong> Java
-    Applet </strong>launch configuration.&nbsp; This launch configuration uses information
-    derived from the workbench preferences and your program's Java project to launch the program.
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer, select the Java compilation unit or class file you want to launch.
-      </li>
-      <li>
-        Select
-        <strong>Run &gt; Run As &gt; Java Applet </strong>in the workbench
-        menu bar.&nbsp;<br>
-        or Select
-        <strong>Run As &gt; Java Applet </strong>in the drop-down menu on the <strong>Run</strong> tool bar button.&nbsp;
-      </li>
-      <li>
-        Your program is now launched.
-      </li>
-    </ol>
-    <p>You can also launch a Java applet by selecting a project instead of the
-    compilation unit or class file.&nbsp; You will be prompted to select a class
-    from those classes that extend Applet.&nbsp; (If only one applet class is
-        found in the project, that class is launched as if you selected it.)</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-       <a href="../concepts/concepts-10.htm">Debugger</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-       <a href="../tasks/tasks-131.htm">Re-launching a program</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-131.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-131.htm
deleted file mode 100644
index 1dd1ff0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-131.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Re-launching a program
-    </title>
-  </head>
-  <body>
-    <h1>
-      Re-launching a program
-    </h1>
-    <p>
-      The workbench keeps a history of each launched and debugged program. To
-      relaunch a program, do one of the following:
-    </p>
-    <ul>
-      <li>
-        Select a previous launch from <strong>Run</strong> or <strong>Debug</strong> button pull-down menus.
-      </li>
-      <li>
-        From the menu bar, select <strong>Run</strong> &gt; <strong>Run History</strong> or <strong>Run</strong> &gt; <strong>Debug History</strong> and select a previous launch
-        from these sub-menus.
-      </li>
-      <li>
-        In the Debug view, select a process that you want to relaunch, and select <strong>Relaunch</strong> from the process's pop-up menu.
-      </li>
-    </ul>
-    <p>
-      To relaunch the most recent launch, do one of the following:
-    </p>
-    <ul>
-      <li>
-        Click the <strong>Run</strong> or <strong>Debug</strong>  buttons
-        (without using the button pull-down menu).
-      </li>
-      
-  <li> Select <strong>Run</strong> &gt; <strong>Run Last Launched</strong> (<kbd>Ctrl+F11</kbd>), 
-    or <strong>Run</strong> &gt; <strong>Debug Last Launched</strong> (<kbd>F11</kbd>)
-    from the workbench menu bar. 
-  </li>
-    </ul>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-133.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-133.htm
deleted file mode 100644
index 2952ee4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-133.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Preparing to debug
-    </title>
-  </head>
-  <body>
-    <h1>
-      Preparing to debug
-    </h1>
-    <p>
-      You can make your programs easier to debug by following these guidelines:
-    </p>
-    <ul>
-      <li>
-        Where possible, do not put multiple statements on a single line, because some debugger features operate on a line basis. For example, you cannot step over or set line
-        breakpoints on more than one statement on the same line.
-      </li>
-      <li>
-        Attach source code to JAR files if you have the source code.
-      </li>
-    </ul>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/cremdbug.htm">Remote debugging</a><br>
-       <a href="../concepts/clocdbug.htm">Local debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-9.htm">Changing debugger launch options</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-11.htm">Debug preferences</a><br>
-       <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-4.htm">Run and debug actions</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-134.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-134.htm
deleted file mode 100644
index 676d380..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-134.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Suspending threads
-    </title>
-  </head>
-  <body>
-    <h1>
-      Suspending threads
-    </h1>
-    <p>
-      To suspend an executing thread:
-    </p>
-    <ol>
-      <li>
-        Select the thread in the Debug view.
-      </li>
-      <li>
-        Click the <strong><strong>Suspend</strong></strong> button in the Debug view toolbar. The thread suspends its execution. The current call stack for the thread is
-        displayed, and the current line of execution is highlighted in the editor in the Debug perspective.
-      </li>
-    </ol>
-    <p>
-      When a thread suspends, the top stack frame of the thread is automatically
-      selected.&nbsp; The Variables view shows the stack frame's variables and
-      their values.&nbsp; Complex variables can be further examined by expanding
-      them to show the values of their members.
-    </p>
-    <p>
-      When a thread is suspended and the cursor is hovered over a variable in the Java editor, the value of that variable is displayed.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-       <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-       <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-74.htm">Variables view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-135.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-135.htm
deleted file mode 100644
index 485f47f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-135.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Resuming the execution of suspended threads
-    </title>
-  </head>
-  <body>
-    <h1>
-      Resuming the execution of suspended threads
-    </h1>
-    <p>
-      To resume the execution of a suspended threads:
-    </p>
-    <ol>
-      <li>
-        Select the thread or its stack frame in the Debug view.
-      </li>
-      <li>
-        Click the <strong>Resume</strong> button in the Debug view toolbar (or press the <kbd>F8</kbd> key). The thread resumes its execution, and stack
-        frames are no longer displayed for the thread.&nbsp; The Variables view is cleared.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-10.htm">Debugger</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-138.htm">Evaluating expressions</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a><br>
-       <a href="../tasks/tasks-134.htm">Suspending threads</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a>
-    </p>
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-136.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-136.htm
deleted file mode 100644
index 027c463..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-136.htm
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Stepping through the execution of a Java program
-    </title>
-  </head>
-  <body>
-    <h1>
-      Stepping through the execution of a Java program
-    </h1>
-    <p>
-      When a thread is suspended, the step controls can be used to step through the execution of the program line-by-line.
-      If a breakpoint is encountered while performing a step operation,&nbsp;
-      the execution will suspend at the breakpoint and the step operation is
-      ended.
-    </p>
-    <h2>
-      Step over
-    </h2>
-    <ol>
-      <li>
-        Select a stack frame in the Debug view. The current line of execution in that stack frame is highlighted in the editor in the Debug perspective.
-      </li>
-      <li>
-        Click the <strong>Step Over</strong> button in the Debug view toolbar, or press the <kbd>F6</kbd> key. The currently-selected line is executed and
-        suspends on the next executable line.
-      </li>
-    </ol>
-    <h2>
-      Step into
-    </h2>
-    <ol>
-      <li>
-        Select a stack frame in the Debug view. The current line of execution in the selected frame is highlighted in the editor in the Debug perspective.
-      </li>
-      <li>
-        Click the <strong>Step Into</strong> button in the Debug view toolbar, or press the <kbd>F5</kbd> key. The next expression on the currently-selected
-        line to be executed is invoked, and execution suspends at the next executable line in the method that is invoked.
-      </li>
-    </ol>
-    
-<h2> Step into Selection</h2>
-<ol>
-  <li> Select a stack frame in the Debug view. The current line of execution in 
-    the selected frame is highlighted in the editor in the Debug perspective. 
-  </li>
-  <li>In the Java editor, within the current line of execution, place the cursor 
-    on the name of a method that you would like to step into.</li>
-  <li> Click the <strong>Step into Selection </strong>action in the Run menu or 
-    Java editor context menu, or press the <kbd>Ctrl-F5</kbd> key. Execution resumes 
-    until the selected method is invoked. </li>
-</ol>
-    <h2>
-      Step with filters
-    </h2>
-    <ol>
-      <li>
-        Select a stack frame in the Debug view. The current line of execution in the selected frame is highlighted in the editor in the Debug perspective.
-      </li>
-      <li>
-        Click the <strong>Step with Filters</strong> button in the Debug view toolbar, or use <kbd>Shift+F5</kbd>. The next expression on the currently-selected
-        line to be executed is invoked, and execution suspends at the next executable line in the next executed method which is not filtered out
-        (see <strong>Window &gt; Preferences &gt; Java &gt; Debug &gt; Step Filtering</strong>).
-      </li>
-    </ol>
-    <h2>
-      Run to return
-    </h2>
-    <ol>
-      <li>
-        Select a stack frame in the Debug view. The current line of execution in the selected frame is highlighted in the editor in the Debug perspective.
-      </li>
-      <li>
-        Click the <strong>Run to Return</strong> button in the Debug view toolbar or press the <kbd>F7</kbd> key. Execution resumes until the next return
-        statement in the current method is executed, and execution suspends on the next executable line.
-      </li>
-    </ol>
-    <h2>
-      Run to line
-    </h2>
-    <p>
-      When a thread is suspended, it is possible to resume execution until a specified line is executed. This is a convenient way to suspend execution at a line without setting a
-      breakpoint.
-    </p>
-    <ol>
-      <li>
-        Place your cursor on the line at which you want the program to run.
-      </li>
-      <li>
-        Select <strong>Run to Line</strong> from the pop-up menu or use
-        <kbd>Ctrl+R</kbd>. Program execution is resumed and suspends just before the specified line is to be executed.
-      </li>
-    </ol>
-    <p>It is possible that the line will never be hit and that the program will not suspend.&nbsp;</p>
-    <p> Breakpoints and exceptions can cause the thread to suspend before reaching the specified
-        line.</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/cbrkpnts.htm">Breakpoints</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-       <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-       <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-executionArgs.htm">Setting execution arguments</a><br>
-       <a href="../tasks/tasks-134.htm">Suspending threads</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-137.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-137.htm
deleted file mode 100644
index 013ad4e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-137.htm
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Inspecting values
-    </title>
-  </head>
-  <body>
-    <h1>
-      Inspecting values
-    </h1>
-    <p>
-      When stack frame is selected, you can see the visible variables in that
-      stack frame in the Variables view.
-    </p>
-    <p>
-      The Variables view shows the value of primitive types.&nbsp; Complex
-      variables can be examined by expanding them to show their members.
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-138.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-138.htm
deleted file mode 100644
index b77acb2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-138.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Evaluating expressions
-    </title>
-  </head>
-  <body>
-    <h1>
-      Evaluating expressions
-    </h1>
-    <p>When the VM suspends a thread (due to hitting a breakpoint or stepping
-    through code), you can evaluate expressions in the context of that thread's
-    stack frame.
-    </p>
-    <ol>
-      <li>
-        Select the stack frame in which an evaluation is to be performed. For the detail panes of the <strong>Variables</strong> and <strong>Expressions</strong> views, the
-        evaluation context will be a selected variable. If no variable is selected, the selected stack frame will be the context.
-      </li>
-      <li>
-        Expressions can be entered and evaluated in the following areas: 
-        <ul>
-          <li>
-            <strong>Display</strong> view
-          </li>
-          <li>
-            Detail pane of the <strong>Expressions</strong> view
-          </li>
-          <li>
-            Detail pane of the <strong>Variables</strong> view
-          </li>
-          <li>
-            Java editor when it is displaying source and it is not read-only
-          </li>
-        </ul>
-      </li>
-      <li>
-        Select the expression to be evaluated and select <strong>Display</strong>, <strong>Inspect</strong> or <strong>Execute</strong> from the context pop-up menu. The
-        result of evaluating the expression is shown in the Display view (if <strong>Display</strong> was chosen), or in the Expressions view (if <strong>Inspect</strong> was
-        chosen).
-      </li>
-    </ol>
-    <p><strong>Note:</strong> Evaluations cannot be performed in threads that have been manually suspended.</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-134.htm">Suspending threads</a><br>
-       <a href="../tasks/tasks-135.htm">Resuming the execution of suspended threads</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-52.htm">Display view</a><br>
-       <a href="../reference/ref-56.htm">Expressions view</a><br>
-       <a href="../reference/ref-56c.htm">Expressions view Show Detail Pane</a><br>
-       <a href="../reference/ref-74.htm">Variables view</a><br>
-       <a href="../reference/ref-showdetailpane.htm">Variables view Show Detail Pane</a>
-    </p>
-    <p>
-	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-14.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-14.htm
deleted file mode 100644
index f66a113..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-14.htm
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a Java project with source folders
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a Java project with source folders
-    </h1>
-    For larger projects, create a project with source folders. 
-    <blockquote>
-      <em>Note: When using source folders, non-Java resources are copied to the output folder by the Java builder.
-      If you have non-Java resources (documentation, for example) that should not be copied into the output folder, 
-      you can create an ordinary folder and store the resources there. You can also use the preferences page
-      <strong>Window &gt; Preferences &gt; Java &gt; Compiler &gt; Build Path</strong>
-	  to specify a list of resources that will not be automatically copied to the output folder.</em>
-    </blockquote>
-    <ol>
-      <li>
-        From the main workbench window, click <strong>File</strong> &gt; <strong>New</strong> &gt; <strong>Project</strong>. The New Project wizard opens.
-      </li>
-      <li>
-        Select <strong>Java</strong> from the left pane and <strong>Java Project</strong> from the right pane, then click <strong>Next</strong>. The New Java Project wizard opens.
-      </li>
-      <li>
-        In the <strong>Project name</strong> field, type a name for your new Java project.
-      </li>
-      <li>
-        Check or clear the <strong>Use default</strong> check box to indicate whether you want to use the default location for your new project. If you clear this check box, then
-        type a path or click <strong>Browse</strong> to select a location for the project. Click&nbsp;<strong><strong>Next</strong></strong>. The Java Settings Page opens.
-      </li>
-      <li>
-        On the <strong>Source</strong> tab, click the&nbsp;<strong>Add Folder</strong> button. The <strong>Source
-	Folder Selection</strong> dialog opens.</li>
-      <li>
-        Click the&nbsp;<strong><strong>Create New Folder</strong></strong> button to create new source folder. You can also create new source folders at any time
-        later.
-      </li>
-	<li>Select the newly created folders in the <strong>Source Folder Selection</strong> and press <strong>OK</strong></li>
-      <li>
-        Optionally, replace the default name in the&nbsp;<strong><strong>Default output folder</strong></strong> field to use a different name for the output folder.
-      </li>
-      <li>
-        On the <strong>Projects</strong> tab, select the required projects to be on the build path for this project.
-      </li>
-      <li>
-        On the <strong>Libraries</strong> tab, select JAR files and CLASS file containers to add to the build path for this new project and attach source to the JAR files.
-      </li>
-      <li>
-        On the <strong>Order and Export</strong> tab, use the <strong>Up</strong> and <strong>Down</strong> buttons to move the
-        selected JAR file or CLASS file container up or down in the build path order for this new project.
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <blockquote>
-      <em>Note: When you are using CVS as your repository, it is recommended that you create a .cvsignore file inside the project. In this file, add a line with the name of the
-      output folder (&quot;bin&quot; for example). Adding the output folder in the .cvsignore file ensures that the CVS versioning support ignores the output folder in versioning
-      operations.</em>
-    </blockquote>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-       <a href="../concepts/concepts-4.htm">Java builder</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-12.htm">Creating a new Java project</a><br>
-       <a href="tasks-26.htm">Creating a new source folder</a><br>
-       <a href="tasks-13.htm">Creating a Java project as its own source container</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a><br>
-       <a href="tasks-17.htm">Creating a new Java class</a><br>
-       <a href="tasks-149.htm">Creating a Java scrapbook page</a><br>
-       <a href="tasks-110.htm">Working with build paths</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-121.htm">New Java Project wizard</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-141.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-141.htm
deleted file mode 100644
index d91e620..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-141.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Using the remote Java application launch configuration
-    </title>
-  </head>
-  <body>
-    <h1>
-      Using the remote Java application launch configuration
-    </h1>
-    <p>The <strong>Remote Java Application </strong> launch configuration should
-    be used when debugging an application that is running on a remote VM.&nbsp;
-    Since the application is started on the remote system, the launch
-    configuration does not specify the usual information about the JRE, program
-    arguments, or VM arguments.&nbsp; Instead, information about connecting to
-    the application is supplied.
-    </p>
-    <p>To create a <strong>Remote Java Application</strong>  launch
-    configuration, do the following:
-    </p>
-    <ol>
-      <li>
-        Select <strong>Run &gt;Debug...</strong>.from the workbench menu bar (or
-        <strong>Debug... </strong>from the drop-down menu on the <strong>Debug</strong> 
-        tool bar button) to show the launch configuration dialog.
-      </li>
-      <li>
-        Select the <strong>Remote Java Application</strong>  in the list of
-        configuration types on the left.
-      </li>
-      <li>
-        Click the <strong>New</strong> button. A new remote launch configuration is created and three tabs are shown: <strong>Connect</strong>,
-        <strong>Source</strong>, and <strong>Common</strong>.
-      </li>
-      <li>
-        In the <strong>Project</strong> field of the <strong>Connect</strong> tab, type or browse to select the project to use as a reference for
-        the launch (for source lookup). A project does not need to be specified.
-      </li>
-      <li>
-        In the <strong>Host</strong> field of the <strong>Connect</strong> tab, type the IP address or domain name of the host where the Java
-        program is running.<br>
-         If the program is running on the same machine as the workbench, type <em>localhost</em>.
-      </li>
-      <li>
-        In the <strong>Port</strong> field of the <strong>Connect</strong> tab, type the port where the remote VM is accepting connections.
-        Generally, this port is specified when the remote VM is launched.
-      </li>
-      <li>
-        The <strong>Allow termination of remote VM</strong> flag is a toggle that determines whether the <strong>Terminate</strong> command is
-        enabled in the debugger. Select this option if you want to be able to terminate the VM to which you are connecting.
-      </li>
-      <li>
-        Click <strong>Debug</strong>. The launch attempts to connect to a VM at the specified address and port, and the result is displayed in the Debug view. If
-        the launcher is unable to connect to a VM at the specified address, an error message appears.
-      </li>
-    </ol>
-    <p>Specific instructions for setting up the remote VM should be obtained
-    from your VM provider.&nbsp;</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-10.htm">Debugger</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-       <a href="../tasks/tasks-142.htm">Disconnecting from a VM</a><br>
-       <a href="../tasks/tasks-executionArgs.htm">Setting execution arguments</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-142.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-142.htm
deleted file mode 100644
index 502c7b4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-142.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Disconnecting from a VM
-    </title>
-  </head>
-  <body>
-    <h1>
-      Disconnecting from a VM
-    </h1>
-    <p>
-      To disconnect from a VM that was connected to with a Remote Java Application launch configuration:
-    </p>
-    <ol>
-      <li>
-        In the Debug view, select the launch.
-      </li>
-      <li>
-        Click the <strong>Disconnect</strong> button in the view's toolbar. Communication with the VM is terminated, and all threads in the remote VM are
-        resumed. Although the remote VM continues to execute, the debug session is now terminated.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-10.htm">Debugger</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-141.htm">Connecting to a remote VM with the Remote Java application launch configuration</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144.htm
deleted file mode 100644
index 1f86cd0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Adding breakpoints
-    </title>
-  </head>
-  <body>
-    <h1>
-      Adding breakpoints
-    </h1>
-    <p>
-      Line breakpoints are set on an executable line of a program.
-    </p>
-    <ol>
-      <li>
-        In the editor area, open the file where you want to add the breakpoint.
-      </li>
-      <li>
-        Directly to the left of the line where you want to add the breakpoint, open the
-        marker bar (vertical ruler) pop-up menu and select <strong>Add Breakpoint.</strong>&nbsp;&nbsp;
-        You can also double-click on the marker bar next to the source code
-        line.&nbsp; A new breakpoint marker
-        appears on the marker bar, directly to the left of the line where you added the breakpoint. Also, the new breakpoint appears in the Breakpoints view list.
-      </li>
-    </ol>
-    <p>
-      While the breakpoint is enabled, thread execution suspends before that line of code is executed. The debugger selects the thread that has suspended and displays the stack
-      frames on that thread's stack. The line where the breakpoint was set is highlighted in the editor in the Debug perspective.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-    <a href="../concepts/concepts-10.htm">Debugger</a><br>
-     <a href="../concepts/concepts-5.htm">Java perspectives</a><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-146.htm">Applying hit counts</a><br>
-       <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-       <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-       <a href="../tasks/tasks-144b.htm">Enabling and disabling breakpoints</a><br>
-       <a href="../tasks/tasks-144c.htm">Managing conditional breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-35.htm">Breakpoints view</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144a.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144a.htm
deleted file mode 100644
index b53a0f6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144a.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Removing breakpoints
-    </title>
-  </head>
-  <body>
-    <h1>
-      Removing breakpoints
-    </h1>
-    <p>
-      Breakpoints can be easily removed when you no longer need them.
-    </p>
-    <ol>
-      <li>
-        In the editor area, open the file where you want to remove the breakpoint.
-      </li>
-      <li>
-        Directly to the left of the line where you want to remove the breakpoint, open the marker bar pop-up menu and select <strong>Remove Breakpoint</strong>. The breakpoint is
-        removed from the workbench.&nbsp; You can also double-click directly on
-        the breakpoint icon to remove it.
-      </li>
-    </ol>
-    Breakpoints can also be removed in the <strong>Breakpoints view</strong>. Select the breakpoint(s) to be removed and from the context menu select <strong>Remove</strong>.<br>
-     All breakpoints can be removed from the workbench using the <strong>Remove All</strong> action in the context menu of the <strong>Breakpoints view</strong>.
-    <p>If you find yourself frequently adding and removing a breakpoint in the
-    same place, consider disabling the breakpoint when you don't need it (using <strong>Disable
-    Breakpoint </strong>in the breakpoint context menu or the <strong>Breakpoints view</strong>)
-    and enabling it when needed again.&nbsp;&nbsp;</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-    <a href="../concepts/concepts-10.htm">Debugger</a><br>
-     <a href="../concepts/concepts-5.htm">Java perspectives</a><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-	<p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-       <a href="../tasks/tasks-144b.htm">Enabling and disabling breakpoints</a><br>
-       <a href="../tasks/tasks-146.htm">Applying hit counts</a><br>
-       <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-       <a href="../tasks/tasks-144c.htm">Managing conditional breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-35.htm">Breakpoints view</a>
-    </p>
-    <p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144b.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144b.htm
deleted file mode 100644
index 2db78f1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144b.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Enabling and disabling breakpoints
-    </title>
-  </head>
-  <body>
-    <h1>
-      Enabling and disabling breakpoints
-    </h1>
-    <p>
-      Breakpoints can be enabled and disabled as needed.&nbsp; When a breakpoint is enabled, thread execution suspends before that line of code is executed.&nbsp;
-      When a breakpoint is disabled, thread execution is not suspended by the
-      presence of the breakpoint.
-    </p>
-    <p>
-      To disable a breakpoint:
-    </p>
-    <ol>
-      <li>
-        Locate the breakpoint in the marker bar of an editor or in the <strong>Breakpoints view</strong>.
-      </li>
-      <li>
-        Open the breakpoint's context menu and select <strong>Disable
-        Breakpoint</strong>.
-      </li>
-      <li>
-        The breakpoint image will change to a white circle.
-      </li>
-    </ol>
-    <p>To enable the breakpoint:</p>
-    <ol>
-      <li>
-        Locate the breakpoint in the marker bar of an editor or in the <strong>Breakpoints view</strong>.
-      </li>
-      <li>
-        Open the breakpoint's context menu and select <strong>Enable Breakpoint</strong>.
-      </li>
-      <li>
-        The breakpoint image will change back to a blue circle.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-    <a href="../concepts/concepts-10.htm">Debugger</a><br>
-     <a href="../concepts/concepts-5.htm">Java perspectives</a><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-146.htm">Applying hit counts</a><br>
-       <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-       <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a><br>
-       <a href="../tasks/tasks-144c.htm">Managing conditional breakpoints</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-35.htm">Breakpoints view</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144c.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144c.htm
deleted file mode 100644
index c1f0d3c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-144c.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title> Managing conditional breakpoints </title>
-</head>
-<body>
-<h1> Managing conditional breakpoints </h1>
-<p> 
-      An enabling condition can be applied to line breakpoints, so that the
-      breakpoint suspends execution of a thread in one of these cases: </p>
-<ul>
-  <li>when the enabling condition is true</li>
-  <li>when the enabling condition changes</li>
-</ul>
-<p> To set a condition on a breakpoint: </p>
-<ol>
-      <li>
-        Find the breakpoint to which an enabling condition is to be applied (in
-        the Breakpoints view or in the editor marker bar).
-      </li>
-      <li>
-        From the breakpoint's pop-up menu, select <strong>Breakpoint
-        Properties...</strong>.&nbsp; The Breakpoint properties dialog will open.
-      </li>
-  <li> In the properties dialog, check the <strong>Enable Condition</strong> checkbox.&nbsp; </li>
-  <li> In the <strong>Condition</strong> field enter the expression for 
-    the breakpoint condition. </li>
-  <li> Do one of the following:
-    <ul>
-      <li>If you want the breakpoint to stop every time the condition evaluates
-        to <em>true</em>, select the <strong>condition is 'true' </strong>option.&nbsp;
-        The expression provided must be a boolean expression.</li>
-      <li>If you want the breakpoint to stop only when the result of the
-        condition changes, select the <strong>value of condition changes </strong>option.</li>
-    </ul>
- </li>
-  <li> Click <strong>OK</strong> to close the dialog and commit the changes. While 
-    the breakpoint is enabled, thread execution suspends before that line of code 
-    is executed if the breakpoint condition evaluates to <em>true</em>.&nbsp; 
-  </li>
-</ol>
-<p>
-    A conditional breakpoint has a question mark overlay on the breakpoint icon.</p>
-<p> <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"> 
-  <br>
-  <a href="../concepts/concepts-10.htm">Debugger</a><br>
-  <a href="../concepts/concepts-5.htm">Java perspectives</a><br>
-  <a href="../concepts/concepts-7.htm">Java editor</a><br>
-</p>
-<p> <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"> 
-  <br>
-  <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-  <a href="../tasks/tasks-146.htm">Applying hit counts</a><br>
-  <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-  <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-  <a href="../tasks/tasks-145.htm">Setting method breakpoints</a><br>
-  <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a> 
-</p>  
-<p> <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height= "27"><br>
-  <a href="../reference/ref-35.htm">Breakpoints view</a> 
-</p>
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-          "14"></a> 
-</p>
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-145.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-145.htm
deleted file mode 100644
index 6c36a1c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-145.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Setting method breakpoints
-    </title>
-  </head>
-  <body>
-    <h1>
-      Setting method breakpoints
-    </h1>
-    <p>
-      Method breakpoints are used when working with types that have no source
-    code (binary types).
-    </p>
-    <ol>
-      <li>
-        Open the class in the Outline view, and select the method where you want to add a method breakpoint.
-      </li>
-      <li>
-        From the method's pop-up menu, select <strong>Add/Remove Method Breakpoint</strong>.
-      </li>
-      <li>
-        A breakpoint appears in the Breakpoints view. If source exists for the class, then a breakpoint also appears in the marker bar in the file's editor for the method that
-        was selected.
-      </li>
-      <li>
-        While the breakpoint is enabled, thread execution suspends when the method is entered, before any line in the method is executed.&nbsp;
-      </li>
-    </ol>
-    <p>Method breakpoints can also be setup to break on method exit.&nbsp; In the Breakpoints view, select the breakpoint and toggle the
-    <strong>Exit</strong>&nbsp; item in its context menu.</p>
-    <p>Method breakpoints can be removed, enabled, and disabled just like line
-    breakpoints.</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-       <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-       <a href="../tasks/tasks-144b.htm">Enabling and disabling breakpoints</a><br>
-       <a href="../tasks/tasks-146.htm">Applying hit counts</a><br>
-       <a href="../tasks/tasks-147.htm">Catching Java exceptions</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-35.htm">Breakpoints view</a><br>
-       <a href="../reference/ref-view-outline.htm">Outline view for Java</a>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-146.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-146.htm
deleted file mode 100644
index feee303..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-146.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Applying hit counts
-    </title>
-  </head>
-  <body>
-    <h1>
-      Applying hit counts
-    </h1>
-    <p>
-      A hit count can be applied to line breakpoints, exception breakpoints, watchpoints and method breakpoints. When a hit count is applied to a breakpoint, the breakpoint
-      suspends execution of a thread the <em>n</em>th time it is hit, but never again, until it is re-enabled or the hit count is changed or disabled.
-    </p>
-    <p>
-      To set a hit count on a breakpoint:
-    </p>
-    <ol>
-      <li>
-        Select the breakpoint to which a hit count is to be added.
-      </li>
-      <li>
-        From the breakpoint's pop-up menu, select <strong><strong>Hit Count</strong></strong>.
-      </li>
-      <li>
-        In the <strong><strong>Enter the new hit count for the breakpoint</strong></strong> field, type the number of times you want to hit the breakpoint before suspending
-        execution.<br>
-        <br>
-         <strong>Note:</strong> When the breakpoint is hit for the <em>n</em>th time, the thread that hit the breakpoint suspends. The breakpoint is disabled until either it is
-        re-enabled or its hit count is changed.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-       <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-       <a href="../tasks/tasks-144b.htm">Enabling and disabling breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-35.htm">Breakpoints view</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-147.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-147.htm
deleted file mode 100644
index 12670a5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-147.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Catching Java exceptions
-    </title>
-  </head>
-  <body>
-    <h1>
-      Catching Java exceptions
-    </h1>
-    <p>
-      It is possible to suspend the execution of thread when an exception is thrown by specifying an
-      exception breakpoint. Execution can be suspended at locations where the exception is
-      uncaught, caught, or both.
-    </p>
-    <ol>
-      <li>
-        Choose <strong>Add Java Exception Breakpoint</strong>  from the
-        Breakpoints view or the workbench Run menu.&nbsp;&nbsp;
-      </li>
-      <li>
-        A dialog listing all of the available exceptions is shown.
-      </li>
-      <li>
-        Either type the name of the exception you want to catch or select it from the list.
-      </li>
-      <li>
-        At the bottom of the page, use the check boxes to specify how you want execution to suspend at locations where the exception is thrown. 
-        <ul>
-          <li>
-            Select <strong>Caught</strong> if you want execution to suspend at locations where the exception is thrown but caught.
-          </li>
-          <li>
-            Select <strong>Uncaught</strong> if you want execution to suspend at locations where the exception is uncaught.
-          </li>
-        </ul>
-      </li>
-    </ol>
-    <p>
-      <strong>Note:</strong> Exception breakpoints can be enabled and disabled and have hit counts
-    just like regular breakpoints.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-       <a href="../concepts/cbrkpnts.htm">Breakpoints</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-134.htm">Suspending threads</a><br>
-       <a href="../tasks/tasks-144.htm">Adding breakpoints</a><br>
-       <a href="../tasks/tasks-144a.htm">Removing breakpoints</a><br>
-       <a href="../tasks/tasks-144b.htm">Enabling and disabling breakpoints</a><br>
-       <a href="../tasks/tasks-145.htm">Setting method breakpoints</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-35.htm">Breakpoints view</a>
-    </p>
-    <p>
-	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-149.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-149.htm
deleted file mode 100644
index 5158232..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-149.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Creating a Java scrapbook page
-    </title>
-  </head>
-  <body>
-    <h1>
-      Creating a Java scrapbook page
-    </h1>
-    <p>
-      The scrapbook allows Java expressions, to be run, inspected, and displayed under the control of the debugger. Breakpoints and exceptions
-      behave as they do in a regular debug
-      session.
-    </p>
-    <p>
-      Code is edited on a scrapbook page.&nbsp; A VM is launched for each scrapbook page in which expressions are being evaluated. The first time an expression is evaluated in a scrapbook page after it is opened, a VM is
-      launched. The VM for a page will remain active until the page is closed, terminated explicitly (in the debugger or via the <strong>Stop the Evaluation</strong> button in the
-      editor toolbar), or when a <em>System.exit()</em> is evaluated.
-    </p>
-    <p>
-      There are several ways to open the New Java Scrapbook Page
-      wizard.&nbsp;&nbsp;
-    </p>
-        <ul>
-          <li>
-            Click the <strong>Create a Scrapbook Page</strong> button in the workbench toolbar.
-          </li>
-          <li>
-            From the menu bar in the Java Perspective, select <strong>File</strong> &gt; <strong>New</strong> &gt; <strong>Scrapbook Page</strong>.
-          </li>
-          <li>
-            From the menu bar in any non-Java Perspective, select <strong>File</strong> &gt; <strong>New</strong> &gt; <strong>Other</strong>. Then select <strong>Java</strong> on
-            the left, and on the right, select <strong>Scrapbook Page</strong>. Then click
-            <strong>Next</strong>.
-          </li>
-        </ul>
-    Once you've opened the New Java Scrapbook Page wizard:.
-    <ol>
-      <li>
-        In the <strong><strong>Enter or select the folder</strong> field</strong>, type or click <strong>Browse</strong> to select the container for the new page.
-      </li>
-      <li>
-        In the <strong><strong>File name</strong></strong> field, type a name for the new page. The <em>.jpage</em> extension will be added automatically if you do not type it
-        yourself.
-      </li>
-      <li>
-        Click <strong><strong>Finish</strong></strong> when you are done. The new scrapbook page opens in an editor.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-11.htm">Scrapbook</a><br>
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-26.htm">Creating a new source folder</a><br>
-       <a href="../tasks/tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-126.htm">Running and debugging</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-34.htm">Java scrapbook page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-15.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-15.htm
deleted file mode 100644
index c0103c6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-15.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a new Java package
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new Java package
-    </h1>
-    <p>
-      To create new Java packages in the Package Explorer:
-    </p>
-    <ol>
-      <li>
-        Optionally, select the project or source folder where you want the package to reside.
-      </li>
-      <li>
-        Click the <strong>New Java Package</strong> button in the workbench toolbar. The New Java Package wizard opens.
-      </li>
-      <li>
-        Edit the&nbsp;<strong><strong>Source Folder</strong></strong> field to indicate in which container you want the new package to reside. You can either type a path or
-        click&nbsp;<strong><strong>Browse</strong></strong> to find the container. If a folder was selected when you chose to create the new package, that folder appears in
-        the&nbsp;<strong><strong>Source Folder</strong></strong> field as the container for the new package.
-      </li>
-      <li>
-        In the&nbsp;<strong><strong>Name</strong></strong> field, type a name for the new package.
-      </li>
-      <li>
-        Click&nbsp;<strong><strong>Finish</strong></strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <strong>Note:</strong> the default (unnamed) package always exists and does not need to be created.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-51.htm">Moving folders, packages, and files</a><br>
-       <a href="tasks-12.htm">Organizing Java projects</a><br>
-       <a href="tasks-77.htm">Opening a package</a><br>
-       <a href="tasks-90.htm">Renaming a package</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-125.htm">New Java Package wizard</a><br>
-       <a href="../reference/ref-128.htm">New Source Folder wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-150.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-150.htm
deleted file mode 100644
index 988a51b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-150.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Inspecting the result of evaluating an expression
-    </title>
-  </head>
-  <body>
-    <h1>
-      Inspecting the result of evaluating an expression
-    </h1>
-    <p>
-      Inspecting shows the result of evaluating an expression in the Expressions view.
-    </p>
-    <ol>
-      <li>
-        In the scrapbook page, either type an expression or highlight an existing expression to be inspected. For example: <code>System.getProperties();</code>
-      </li>
-      <li>
-        Click the <strong>Inspect</strong> button in the toolbar (or select <strong>Inspect</strong> from the selection's pop-up
-        menu).
-      </li>
-      <li>
-        The result of the inspection appears in the Expressions view, which opens if it is not already visible.&nbsp;
-      </li>
-      <li>
- The result can be inspected like a variable in the debugger (for
-        example, children of the result can be expanded).
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-11.htm">Scrapbook</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-149.htm">Creating a Java scrapbook page</a><br>
-       <a href="../tasks/tasks-151.htm">Displaying the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-152.htm">Executing an expression</a><br>
-       <a href="../tasks/tasks-156.htm">Viewing runtime exceptions</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-56.htm">Expressions view</a><br>
-       <a href="../reference/ref-34.htm">Java scrapbook page</a>
-    </p>
-    <p>
-	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-151.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-151.htm
deleted file mode 100644
index 8a8bfa9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-151.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Displaying the result of evaluating an expression
-    </title>
-  </head>
-  <body>
-    <h1>
-      Displaying the result of evaluating an expression
-    </h1>
-    <p>
-      Displaying shows the result of evaluating an expression in the scrapbook editor.
-    </p>
-    <ol>
-      <li>
-        In the scrapbook page, either type an expression or highlight an existing expression to be displayed. For example: <code>System.getProperties();</code>
-      </li>
-      <li>
-        Click the <strong>Display</strong> button in the toolbar (or select <strong>Display</strong> from the selection's pop-up menu.)
-      </li>
-      <li>
-        The result of the evaluation appears highlighted in the scrapbook editor. The result displayed is either 
-        <ul>
-          <li>
-            the value obtained by sending <code>toString()</code> to the result of the evaluation, or
-          </li>
-          <li>
-            when evaluating a primitive data type (e.g., an <em>int</em> ), the result is the simple value of the result.
-          </li>
-        </ul>
-      </li>
-    </ol>
-    <p>
-      For example:
-    </p>
-    <ul>
-      <li>
-        Type and highlight <code>new java.util.Date()</code> in the editor, and click <strong>Display</strong>. A result such as <code>(java.util.Date) Tue Jun 12
-        14:03:17 CDT 2001</code> appears in the editor.
-      </li>
-      <li>
-        As another example, type and highlight <code>3 + 4</code> in the editor, and press <strong>Display</strong>. The result <code>(int) 7</code> is displayed in the
-        editor.
-      </li>
-    </ul>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-11.htm">Scrapbook</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-152.htm">Executing an expression</a><br>
-       <a href="../tasks/tasks-150.htm">Inspecting the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-156.htm">Viewing runtime exceptions</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-34.htm">Java scrapbook page</a>
-    </p>
-    <p>
-	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-152.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-152.htm
deleted file mode 100644
index 288d540..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-152.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Executing an expression
-    </title>
-  </head>
-  <body>
-    <h1>
-      Executing an expression
-    </h1>
-    <p>
-      Executing an expression evaluates an expression but does not display a result.
-    </p>
-    <p>
-      If you select the expression to execute and click the <strong>Execute</strong> button in the toolbar, no result is
-      displayed, but the code is executed.&nbsp;&nbsp;
-    </p>
-    <p>
-      For example, if you type and highlight <code>System.out.println(&quot;Hello World&quot;)</code>, and click the <strong>Execute</strong> button, <em>Hello World</em>
-      appears in the Console view, but no result is displayed in the scrapbook editor or the Expressions view.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-151.htm">Displaying the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-150.htm">Inspecting the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-156.htm">Viewing runtime exceptions</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-56.htm">Expressions view</a><br>
-       <a href="../reference/ref-45.htm">Console view</a><br>
-    </p>
-    <p>
-	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-153.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-153.htm
deleted file mode 100644
index 9b72d07..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-153.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Using Content Assist/Code Assist
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using code assist
-    </h1>
-    <p>
-      The scrapbook editor supports code assist similarly to the regular Java
-      editor.
-    </p>
-    <p>
-      For example, type&nbsp;<em>TestCase&nbsp;</em>in the scrapbook editor and press <kbd>Ctrl+Space</kbd>. Code assist prompts you with possible completions.
-    </p>
-    <img src="../images/tasks-46.gif" width=402 height=203 alt="A Java editor with a content assist window at the caret position"> 
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-143.htm">Java Content Assist</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-154.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-154.htm
deleted file mode 100644
index fbfd6d8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-154.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Using Error Reporting
-    </title>
-  </head>
-  <body>
-    <h1>
-      Scrapbook error reporting
-    </h1>
-    <p>
-      Java scrapbook errors are reported in the scrapbook page editor.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="tasks-155.htm">Viewing compilation errors</a><br>
-      <a href="tasks-156.htm">Viewing runtime exceptions</a><br>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-155.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-155.htm
deleted file mode 100644
index cde9f61..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-155.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Viewing Compilation Errors
-    </title>
-  </head>
-  <body>
-    <h1>
-      Viewing compilation errors
-    </h1>
-    <p>
-      If you try to evaluate an expression containing a compilation error, it
-      will be reported in the scrapbook editor.
-    </p>
-    <p>
-      For example, type and select the (invalid) expression <code>System.println(&quot;hi&quot;)</code> in the editor and click <strong>Execute</strong> in the toolbar.
-    </p>
-    <p>
-      The error message <em>The method println(java.lang.String) is undefined for the type java.lang.System</em> appears in the editor at the point of the error.
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-156.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-156.htm
deleted file mode 100644
index 49a7260..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-156.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Viewing runtime exceptions
-    </title>
-  </head>
-  <body>
-    <h1>
-      Viewing runtime exceptions
-    </h1>
-    <p>
-      If an expression you evaluate causes a runtime exception, the exception will be reported in the editor. For example:
-    </p>
-    <p>
-      Type and select the expression <code>Object x = null; x.toString()</code> in the editor and click <strong>Display</strong> in the toolbar.
-    </p>
-    <p>
-      The error message:
-    </p>
-    <p>
-      <em>An exception occurred during evaluation: java.lang.NullPointerException</em>
-    </p>
-    <p>
-      will be displayed in the editor.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-151.htm">Displaying the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-150.htm">Inspecting the result of evaluating an expression</a><br>
-       <a href="../tasks/tasks-152.htm">Executing an expression</a>
-    </p>
-    <p>
-	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-157.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-157.htm
deleted file mode 100644
index 372c6bc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-157.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Changing method signature
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    
-<h1> Changing method signature</h1>
-    In addition to renaming a method, you can change other parts of the method's 
-signature. 
-<ul>
-  <li>Select the method in a Java view (e.g. Outline, Package Explorer, Members). 
-  </li>
-  <li> Do one of the following to open the Change Method Signature refactoring dialog: 
-    <ul>
-      <li> From the menu bar, select <strong>Refactor &gt; Change Method Signature</strong> 
-        or </li>
-      <li> From the method's pop-up menu, select <strong>Refactor &gt; </strong><strong>Change 
-        Method Signature</strong></li>
-    </ul>
-  </li>
-</ul>
-    <p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> <br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> 
-    </p>
-	<p>
- <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-96.htm">Renaming a method</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-158.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-158.htm
deleted file mode 100644
index d96cc4f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-158.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <h1>
-      <img src="../images/tasks-32.gif" width=482 height=389 alt="Parameters Page for the Reordering method parameters Refactoring Command">
-    </h1>
-    
-<p> Parameters Page for the Change Method Signature Refactoring Command </p>
-<ul>
-  <li>Select one or more parameters and use the <strong>Up</strong> and <strong>Down</strong> 
-    buttons to reorder the parameters (you can see a signature preview below the 
-    parameter list) </li>
-  <li>Use the <b>Add</b> button to add a parameter; you can then edit its type, 
-    name and default value in the table</li>
-  <li> Press <strong>Preview</strong> to see the preview or <strong>OK</strong> 
-    to perform the refactoring without seeing the preview </li>
-</ul>
-    
-<p> This refactoring changes the signature of the selected method and all methods 
-  that override it.<br>
-  Also, all references will be updated to use the signature. </p>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="tasks-82.htm">See Refactoring without Preview</a>
-      </li>
-      <li>
-        <a href="tasks-83.htm">See Refactoring with Preview</a>
-      </li>
-    </ul>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-159.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-159.htm
deleted file mode 100644
index b004ad1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-159.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Extracting a local variable
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Extracting a local variable
-    </h1>
-    To extract a local variable from an expression: 
-    <ul>
-      <li>
-        In a Java editor, select the expression that you want to extract to a local variable
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Extract 
-        Local Variable</strong> or </li>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Extract Local Variable</strong> 
-      </li>
-        </ul>
-      </li>
-    </ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a><br>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-160.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-160.htm
deleted file mode 100644
index 27baea3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-160.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <h1>
-      <img src="../images/tasks-160a.gif" width=462 height=245 alt="Parameters Page for the Extracting a local variable Refactoring Command">
-    </h1>
-    <p>
-      Parameters Page for the Extracting Local Variable Refactoring Command
-    </p>
-    <ul>
-      <li>
-        In the Variable name field, enter a name for the extracted variable
-      </li>
-      <li>
-        Optionally, clear the <strong>Replace all occurrences of the selected expression with references to the local variable</strong> checkbox if you want to replace only the
-        expression you selected when invoking the refactoring.
-      </li>
-      <li>
-        Optionally, select <strong>Define the local variable as 'final'</strong>
-      </li>
-      
-  <li> Press <strong>Preview</strong> to see the preview of the changes or <strong>OK</strong> 
-    to perform the refactoring without preview </li>
-    </ul>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="tasks-82.htm">See Refactoring without Preview</a>
-      </li>
-      <li>
-        <a href="tasks-83.htm">See Refactoring with Preview</a>
-      </li>
-    </ul>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-161.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-161.htm
deleted file mode 100644
index de59178..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-161.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Inlining a local variable
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Inlining a local variable
-    </h1>
-    To inline a local variable: 
-    <ul>
-      <li>
-        In a Java editor, select the variable that you want to inline (you can select a reference to the variable)
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Inline</strong> or 
-      </li>
-          
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Inline</strong> 
-      </li>
-        </ul>
-      </li>
-    </ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-162.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-162.htm
deleted file mode 100644
index 2d73111..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-162.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Self encapsulating a field
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Self encapsulating a field
-    </h1>
-    <p>
-      To self-encapsulate a field:
-    </p>
-    <ul>
-      <li>
-        Select the field in one of the Java views (e.g. Outline, Package Explorer or Members view)
-      </li>
-      <li>
-        Do one of the following 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Self Encapsulate</strong> 
-        or </li>
-      <li> From the field's pop-up menu, select <strong>Refactor &gt; Self Encapsulate</strong></li>
-        </ul>
-      </li>
-    </ul>
-    You can also invoke this refactoring from the Java editor: 
-    <ul>
-      <li>
-        In the Java editor, select the field (or a reference to it)
-      </li>
-      <li>
-        Do one of the following 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Self Encapsulate</strong> 
-        or </li>
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Self Encapsulate</strong></li>
-        </ul>
-      </li>
-    </ul>
-	<p>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    </p>
-	<p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-163.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-163.htm
deleted file mode 100644
index d84f247..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-163.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <h1>
-      <img src="../images/tasks-163a.gif" width=423 height=270 alt="Parameters Page for the Self Encapsulate Field Refactoring Command">
-    </h1>
-    <p>
-      Parameters Page for the Self Encapsulate Field Refactoring Command
-    </p>
-    <ul>
-      <li>
-        In the <strong>Getter name</strong> field, enter the name for the getter.
-      </li>
-      <li>
-        In the <strong>Setter name</strong> field, enter the name for the setter.
-      </li>
-      <li>
-        Use the <strong>Insert new method after</strong> combo-box to indicate the location for the getter and/or setter methods.
-      </li>
-      <li>
-        Select one radio button from the <strong>Access modifier</strong> group to specify the new method's visibility.
-      </li>
-      <li>
-        In the class in which the field is declared, read and write accesses can be direct or you can use getter and setter. 
-        <ul>
-          <li>
-            Select the <strong>use getter and setter</strong> radio button if you want the refactoring to convert all these accesses to use getter and setter.
-          </li>
-          <li>
-            Select the <strong>keep field reference</strong> radio button if you do not want the refactoring to modify the current field accesses in the class in which the field is
-            declared.
-          </li>
-        </ul>
-      </li>
-      
-  <li> Press <strong>Preview</strong> to perform refactoring with preview or press 
-    <strong>OK</strong> to perform refactoring without preview. </li>
-    </ul>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="tasks-82.htm">See Refactoring without Preview</a>
-      </li>
-      <li>
-        <a href="tasks-83.htm">See Refactoring with Preview</a>
-      </li>
-    </ul>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-164.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-164.htm
deleted file mode 100644
index acb9894..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-164.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Replacing a local variable with a query
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Replacing a local variable with a query
-    </h1>
-    <p>
-      To replace a local variable with a query:
-    </p>
-    <ul>
-      <li>
-        In the Java editor, select the expression with which the local variable is initialized
-      </li>
-      <li>
-        Invoke the Extract Method refactoring by either: 
-        <ul>
-          
-      <li> Selecting <strong>Refactor &gt; Extract Method</strong> from the editor's 
-        pop-up menu or </li>
-          
-      <li> Selecting <strong>Refactor &gt; Extract Method</strong> from the menu 
-        bar </li>
-        </ul>
-      </li>
-      <li>
-        Perform the Extract Method refactoring
-      </li>
-      <li>
-        Select the local variable (or a reference to it)
-      </li>
-      <li>
-        Invoke the Inline Local Variable by either: 
-        <ul>
-          
-      <li> Selecting <strong>Refactor &gt; Inline</strong> from the editor's pop-up 
-        menu or </li>
-          
-      <li> Selecting <strong>Refactor &gt; Inline</strong> from the menu bar </li>
-        </ul>
-      </li>
-      <li>
-        Perform the Inline Local Variable refactoring
-      </li>
-    </ul>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> <br>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="tasks-87.htm">Extracting a method</a><br>
-      <a href="tasks-161.htm">Inlining a local variable</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-165.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-165.htm
deleted file mode 100644
index 23ed067..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-165.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Pulling members up to superclass
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Pulling members up to superclass
-    </h1>
-    To pull up class members (fields and methods) to the class's superclass: 
-    <ul>
-      <li>
-        In a Java view (e.g. Outline, Package Explorer, Members), select the members that you want to pull up.
-      </li>
-      <li>
-        Do on of the following: 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Pull Up</strong> or 
-      </li>
-          
-      <li> From the pop-up menu, select <strong>Refactor &gt; Pull Up</strong> 
-      </li>
-        </ul>
-      </li>
-    </ul>
-    <strong>Note:</strong> the selected members must all have the same declaring type for this refactoring to be enabled. 
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-166.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-166.htm
deleted file mode 100644
index c059039..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-166.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    
-<h1> Parameters page </h1>
-<h1>&nbsp; </h1>
-    <h1>
-      <img src="../images/tasks-166a.gif" width=461 height=506 alt="Pulling members up to superclass Refactoring Command">
-    </h1>
-    
-<p> Parameters Page for the Pulling members up to superclass Refactoring Command 
-</p>
-<ul>
-  <li>Select the destination class</li>
-  <li>In the list, select the members that you want to pull up or declare abstract</li>
-  <li>Press the Edit button to specify the action that you want to perform for 
-    the selected members (you can also edit the table cells in-place.)</li>
-  <li> Press <strong>Next</strong> to see the next page or press <strong>Finish</strong> 
-    to perform the refactoring</li>
-</ul>
-<p><img src="../images/tasks-166b.gif" width=506 height=530 alt="Pull up refactoring dialog"></p>
-<ul>
-  <li>In the left pane, select the methods that you want to be deleted after pull 
-    up (so that the superclass implementation can be used instead). <br>
-    <strong>Note:</strong> the methods originally selected when invoking the refactoring 
-    are pre-selected in the left pane </li>
-  <li> Press <strong>Next</strong> to see the preview or press <strong>Finish</strong> 
-    to perform the refactoring</li>
-</ul>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="tasks-82.htm">See Refactoring without Preview</a>
-      </li>
-      <li>
-        <a href="tasks-83.htm">See Refactoring with Preview</a>
-      </li>
-    </ul>
-    <p>
-      <br>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-167.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-167.htm
deleted file mode 100644
index cff8155..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-167.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Moving static members between types
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Moving static members between types
-    </h1>
-    <p>
-       To move static members (fields and methods) between types:
-    </p>
-    <ul>
-      <li>
-        In a Java view, select the static members that you want to move
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Move</strong> or </li>
-          
-      <li> From the pop-up menu select, <strong>Refactor &gt; Move</strong> </li>
-        </ul>
-      </li>
-    </ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a><a href="../reference/ref-23.htm"></a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-168.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-168.htm
deleted file mode 100644
index 9ebb2db..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-168.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <h1>
-      <img src="../images/tasks-168a.gif" width=408 height=168 alt="Parameters Page for the Moving static members between types Refactoring Command">
-    </h1>
-    <p>
-      Parameters Page for the Moving static members between types Refactoring Command
-    </p>
-    <ul>
-      <li>
-        Use the text field to enter the destination type name or press the <strong>Browse</strong> button to see a list of types.
-      </li>
-      
-  <li> Press <strong>Preview</strong> to see a preview or press <strong>OK</strong> 
-    to perform the refactoring without preview. </li>
-    </ul>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="tasks-82.htm">See Refactoring without Preview</a>
-      </li>
-      <li>
-        <a href="tasks-83.htm">See Refactoring with Preview</a>
-      </li>
-    </ul>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-169.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-169.htm
deleted file mode 100644
index 5f863d4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-169.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Renaming a field
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Renaming a field
-    </h1>
-    You can rename a field by modifying its declaration in the compilation unit in which it is declared. However, if you also want to update all references to it, do one of the
-    following: 
-    <ol>
-      <li>
-        In a Java view presenting fields (for example in the Outline view) select a field.
-      </li>
-      <li>
-        From the view's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong> or select <strong>Refactor &gt; Rename</strong> from the global menu bar.
-      </li>
-    </ol>
-    or 
-    <ol>
-      <li>
-        In a Java editor, select a reference to the field (or the field's declaration).
-      </li>
-      <li>
-        From the editor's pop-up menu, select <strong>Refactor &gt; Rename</strong> or select <strong>Refactor &gt; Rename</strong> from the global menu bar.
-      </li>
-    </ol>
-    <p>
-      <br>
-       <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-17.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-17.htm
deleted file mode 100644
index 0ea333e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-17.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a new Java class
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new Java class
-    </h1>
-    <p>
-      Use the New Java Class wizard to create a new Java class. There are a number of ways to open this wizard:
-    </p>
-    <ol>
-      <li>
-        Select the container where you want the new class to reside.
-      </li>
-      <li>
-        Click the <strong>New Java Class</strong> button in the workbench toolbar.
-      </li>
-    </ol>
-    <p>
-      or
-    </p>
-    <ol>
-      <li>
-        Select the container where you want the new class to reside.
-      </li>
-      <li>
-        From the container's pop-up menu, select <strong>New</strong> &gt; <strong>Class</strong>.
-      </li>
-    </ol>
-    <p>
-      or
-    </p>
-    <ol start="1" type="1">
-      <li>
-        Select the container where you want the new class to reside.
-      </li>
-      <li>
-        From the drop-down menu on the <strong>New</strong> button in the workbench toolbar, select <strong>Class</strong>.
-      </li>
-    </ol>
-    <p>
-      or
-    </p>
-    <p>
-      Click the <strong>New</strong> button in the workbench toolbar to open the <strong>New</strong> wizard.
-      In the left pane, select <strong>Java</strong>, and in the right pane, select
-      <strong>Class</strong>.
-    </p>
-    <p>
-      or
-    </p>
-    <p>
-      Select the container where you want the new class to reside. Then, select from the menu bar <strong>File</strong> &gt; <strong>New</strong> &gt;
-      <strong>Class</strong>.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-12.htm">Creating a new Java project</a><br>
-       <a href="tasks-18.htm">Creating a top-level class</a><br>
-       <a href="tasks-19.htm">Creating a nested class</a><br>
-       <a href="tasks-20.htm">Creating a class in an existing compilation unit</a><br>
-       <a href="tasks-executionArgs.htm">Setting execution arguments</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-121.htm">New Java Project wizard</a><br>
-       <a href="../reference/ref-128.htm">New Source Folder wizard</a><br>
-       <a href="../reference/ref-125.htm">New Java Package wizard</a><br>
-       <a href="../reference/ref-126.htm">New Java Class wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-170.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-170.htm
deleted file mode 100644
index 6553e09..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-170.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <img src="../images/tasks-170a.gif" width=408 height=330 alt="Parameters Page for the Rename Field Refactoring Command"> 
-    <p>
-      Parameters Page for the Rename Field Refactoring Command
-    </p>
-    <ul>
-      <li>
-        In the <strong>Enter new name</strong> text field, type a new name for the field that you're renaming.
-      </li>
-      <li>
-        If you do not want to update references to the renamed field, deselect the&nbsp;<strong>Update references to the renamed element</strong> checkbox.
-      </li>
-      <li>
-        If you want to update Javadoc references to the renamed field, select the&nbsp;<strong>Update references in Javadoc comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in regular (not Javadoc) comments, select the&nbsp;<strong>Update references in regular comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in string literals, select the&nbsp;<strong>Update references in string literals</strong> checkbox.
-      </li>
-      <li>
-        If the refactoring finds accessor (getter/setter) methods to the field you're renaming, it offers you to rename them as well (and update all references to them): 
-        <ul>
-          <li>
-            If you want to rename the getter, select the <strong>Rename Getter</strong> checkbox
-          </li>
-          <li>
-            If you want to rename the setter, select the <strong>Rename Setter</strong> checkbox
-          </li>
-        </ul>
-      </li>
-      
-  <li> Click <strong>OK</strong> to perform a quick refactoring, or click&nbsp;<strong>Preview</strong> 
-    to perform a controlled refactoring. </li>
-    </ul>
-    
-<strong>Note:</strong> The refactoring detects getters / setters using preferences 
-set on <strong>Window &gt; Preferences &gt; Java &gt; Code Generation</strong> 
-preference page. <br>
-<strong>Note:</strong> References in Javadoc comments, regular comments and string 
-literals are updated based on textual matching. It is recommended that you perform 
-a controlled refactoring and review the suggested changes if you select one of 
-these options. 
-<p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="tasks-82.htm">See Refactoring without Preview</a>
-      </li>
-      <li>
-        <a href="tasks-83.htm">See Refactoring with Preview</a>
-      </li>
-    </ul>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-171.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-171.htm
deleted file mode 100644
index b366912..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-171.htm
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Using templates
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using templates
-    </h1>
-    <p>
-      To use templates:
-    </p>
-    <ol>
-      <li>
-        In the Java editor, position the caret in a place where you want to insert a template.
-      </li>
-      <li>
-        Invoke content assist by pressing <kbd>Ctrl</kbd>+<kbd>Space</kbd>.
-      </li>
-      <li>
-        Templates appear in the presented list. Note that the list is filtered as you type, so typing a few first characters of a template name will reveal it.
-      </li>
-      <li>
-        Note that a preview is presented for each selected template.
-      </li>
-    </ol>
-    <p>
-      <strong>Notes:</strong>
-    </p>
-    <p>
-      Templates can have variables, which are place-holders for the dynamic part of a template pattern, e.g. subject to change with every application of the particular template.
-    </p>
-    <p>
-      When a template is inserted in the Java editor and the template pattern contained a template variable, the editor enters the template edit mode.
-    </p>
-    <p>
-      The first variable is underlined and selected. The variable can be modified by typing in the editor. If the same variable existed multiple times in the template pattern, all
-      instances of the same variable are updated instantaneously to save typing.
-    </p>
-    <p>
-      Pressing <kbd>Tab</kbd> navigates to the next unique template variable, <kbd>Shift-Tab</kbd> navigates to the previous unique template variable.
-    </p>
-    <p>
-      The template edit mode is left by either pressing <kbd>Tab</kbd> on the last template variable or pressing <kbd>Esc</kbd> or <kbd>Enter</kbd>.
-    </p>
-    <p>
-      Example:
-    </p>
-    <ul>
-      <li>
-        Create a method <code>void m(int[] intarray){}</code> and position the caret inside the method.
-      </li>
-      <li>
-        Type <code>for</code> and press <kbd>Ctrl+Space</kbd> to open Code Assist
-      </li>
-      <li>
-        Select the first entry from the list (i.e.<strong>for - iterate over array</strong>). Note the template preview window.
-      </li>
-      <li>
-        Note also that the name of the array (i.e. <code>intarray</code>) is automatically detected.
-      </li>
-      <li>
-        The local variable <code>i</code> is now selected and you are in the template edit mode.
-		Typing another name instantaneously updates all occurrences of it.
-      </li>
-      <li>
-        Press <kbd>Tab</kbd>. You can now modify the suggested name for the array (pressing <kbd>Shift-Tab</kbd> will let you modify the name of the local variable again).
-      </li>
-      <li>
-        To leave the template edit mode
-        <ul>
-          <li>
-            press <kbd>Tab</kbd> or <kbd>Enter</kbd>, which will move the caret so that you can enter the body of the newly created loop or
-          </li>
-          <li>
-            press <kbd>Esc</kbd>, which will not move the caret and preserves the current selection in the editor.
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0"><br>
-      <a href="../concepts/concepts-7.htm">Java editor</a><br>
-      <a href="../concepts/ctemplates.htm">Templates</a><br>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-203.htm">Writing your own templates</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-      <a href="../reference/ref-preferences-templates.htm">Templates preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-172.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-172.htm
deleted file mode 100644
index aa4272a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-172.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Converting line delimiters
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Converting line delimiters
-    </h1>
-    <p>
-      The Java editor can handle Java files with heterogenous line delimiters.
-      However other external editors or tools may not be able to handle them correctly.
-    </p>
-    <p>
-    If you want to change line delimiters used by your Java files:
-    </p>
-    <ol>
-      <li>
-        Open a Java file in the Java editor
-      </li>
-      <li>
-        Select <strong>Source &gt; Convert Line Delimiters To</strong> from the menu bar
-      </li>
-      <li>
-        Select the delimiters to which you want to convert the file to (one of <em>CRLF</em>, <em>LF</em>, <em>CR</em>)
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-    <a href="../concepts/concepts-7.htm">Java editor</a> 
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="tasks-54.htm">Using the Java editor</a><a href="tasks-54.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-173.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-173.htm
deleted file mode 100644
index 175898e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-173.htm
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Finding and replacing
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Finding and replacing
-    </h1>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks"><br>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-181.htm">Using the Find/Replace dialog</a><br>
-       <a href="tasks-182.htm">Using Incremental Find</a><br>
-       <a href="tasks-187.htm">Finding Next or Previous Match</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-174.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-174.htm
deleted file mode 100644
index ff774a5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-174.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Changing the encoding used to show the source
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Changing the encoding used to show the source
-    </h1>
-    To change the encoding used by the Java editor to display source files: 
-    <ul>
-      <li>
-        With the Java editor open, select <strong>Edit &gt; Encoding</strong> from the menu bar
-      </li>
-      <li>
-        Select an encoding from the menu or select <strong>Others</strong> and, in the dialog that appears, type in the encoding's name.
-      </li>
-    </ul>
-    <strong>Note:</strong> this setting affects only the way the source is presented.
-    <p>
-    To change the encoding that the Java editor uses when saving files, specify a
-    text file encoding preference on
-    <strong>Window &gt; Preferences &gt; Workbench &gt; Editors</strong>.<br>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-54.htm">Using the Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-edit.htm">Edit menu</a><a href="../reference/ref-menu-source.htm"></a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-175.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-175.htm
deleted file mode 100644
index 93ea8e3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-175.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Using quick fix
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using Quick Fix
-    </h1>
-    To use the Quick Fix feature: 
-<ul>
-      
-  <li> You need to have the <strong>Window &gt; Preferences &gt; Java &gt; Editor 
-    &gt; Annotations &gt; Analyze annotations while typing</strong> checkbox selected. 
-  </li>
-      <li>
-        In the Java editor, if you see an error underlined with a squiggly line, position the caret inside the underlined range and do one of the following 
-        <ul>
-          <li>
-            Press <kbd>Ctrl+1</kbd> or
-          </li>
-          <li>
-            From the menu bar, select <strong>Edit &gt; Quick Fix</strong>
-          </li>
-        </ul>
-      </li>
-      <li>
-        A list of suggested corrections is presented, with a preview displayed when an entry is selected.
-      </li>
-      <li>
-        Select an entry form the list and press <kbd>Enter</kbd>.
-      </li>
-    </ul>
-    If you have the <strong>Window &gt; Preferences &gt; Java &gt; Editor &gt; 
-Annotations &gt; Indicate annotations solvable with Quick Fix in vertical 
-ruler</strong> checkbox selected, then light bulb icons appear on the left-hand 
-side vertical ruler to indicate Quick Fix'able problems. You can then click on 
-one of the the light bulb icons to invoke Quick Fix. 
-<p>
-      <strong>Note:</strong> Occasionally, invoking Quick Fix will not suggest any corrections. A message saying '<strong>No suggestions available</strong>' will be
-      displayed in such cases.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-<a href="../concepts/cquickfix.htm">Available Quick Fix proposals</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-54.htm">Using the Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-java-editor-quickfix.htm">Quick Fix</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-176.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-176.htm
deleted file mode 100644
index acee9e7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-176.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Using Structured Selection
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using Structured Selection
-    </h1>
-    <p>
-      Structured Selection lets you quickly select Java code in a syntax-aware way.
-    </p>
-    <p>
-      To use Structured Selection:
-    </p>
-    <ul>
-      <li>
-        In a Java editor, (optionally) select some text and press <kbd>Alt+Shift+Arrow Up</kbd> or select <strong>Edit &gt; Expands Selection To &gt; Enclosing
-        Element</strong> from the menu bar.
-      </li>
-      <li>
-        The current text selection is expanded to the inner-most syntax element (more precisely, <u>A</u>bstract <u>S</u>yntax <u>T</u>ree node) that encloses the selection.
-      </li>
-    </ul>
-    When a statement or a list of statements is selected, you can press <kbd>Alt+Shift+Arrow Right</kbd> or select <strong>Edit &gt; Expands Selection To &gt; Next
-    Element</strong>, which will expand the selection with the statement (if any exists) that is immediately <em>after</em> the selected statements. 
-    <p>
-      When a statement or a list of statements is selected, you can press <kbd>Alt+Shift+Arrow Left</kbd> or select <strong>Edit &gt; Expands Selection To &gt; Previous
-      Element</strong>, which will expand the selection with the statement (if any exists) that is immediately <em>before</em> the selected statements.<br>
-    </p>
-    <p>
-      Pressing <kbd>Alt+Shift+Arrow Down</kbd> or selecting <strong>Edit &gt; Expands Selection To &gt; Restore Last Selection</strong> from the menu bar lets you restore
-      the previous structured selection.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-179.htm">Using Surround with Try/Catch</a><br>
-       <a href="tasks-87.htm">Extracting a method</a><br>
-       <a href="tasks-159.htm">Extracting a local variable</a><br>
-       <a href="tasks-161.htm">Inlining a local variable</a><br>
-       <a href="tasks-164.htm">Replacing a local variable with a query</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-edit.htm">Edit menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-177.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-177.htm
deleted file mode 100644
index e229a6b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-177.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Commenting and uncommenting lines of code
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Commenting and uncommenting lines of code
-    </h1>
-    To comment lines of code in the Java editor: 
-    <ul>
-      <li>
-        Select the lines you wish to comment
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          <li>
-            Press <kbd>Ctrl+/</kbd> or
-          </li>
-          <li>
-            Select <strong>Source &gt; Comment</strong> from the menu bar
-          </li>
-        </ul>
-      </li>
-    </ul>
-    To uncomment lines of code in the Java editor: 
-    <ul>
-      <li>
-        Select the lines you wish to uncomment
-      </li>
-      <li>
-        Do one of the following 
-        <ul>
-          <li>
-            Press <kbd>Ctrl+\</kbd> or
-          </li>
-          <li>
-            Select <strong>Source &gt; Uncomment</strong> from the menu bar
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">    <br>
-     <a href="../concepts/concepts-7.htm">Java editor</a> 
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-54.htm">Using the Java editor</a><a href="tasks-54.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-178.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-178.htm
deleted file mode 100644
index 52dfcea..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-178.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Shifting lines of code left and right
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Shifting lines of code left and right
-    </h1>
-    To shift lines of code to the right (i.e. indent): 
-    <ul>
-      <li>
-        Select the lines you wish to shift right
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          <li>
-            Press <kbd>Tab</kbd> or
-          </li>
-          <li>
-            Select <strong>Source &gt; Shift Right</strong> from the menu bar
-          </li>
-        </ul>
-      </li>
-    </ul>
-    To shift lines of code to the left (i.e. outdent): 
-    <ul>
-      <li>
-        Select the lines you wish to shift left
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          <li>
-            Press <kbd>Shift+Tab</kbd> or
-          </li>
-          <li>
-            Select <strong>Source &gt; Shift Left</strong> from the menu bar
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a> 
-    </p> 
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-54.htm">Using the Java editor</a><a href="tasks-54.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-      "324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-179.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-179.htm
deleted file mode 100644
index e0e8b79..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-179.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Using Surround with Try/Catch
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using Surround with Try/Catch
-    </h1>
-    To surround a statement or a set of statements with a try/catch block: 
-    <ul>
-      <li>
-        In the Java editor, select the statement or a set of statements that you want to surround with a try/catch block.
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          <li>
-            From the menu bar, select <strong>Source &gt; Surround with try/catch Block</strong> or
-          </li>
-          <li>
-            From the editors pop-up menu, select <strong>Source &gt; Surround with try/catch Block</strong>
-          </li>
-        </ul>
-      </li>
-      <li>
-        'catch' blocks for all uncaught exceptions (if there are any) are created. If there are no uncaught exceptions, a dialog appears informing you about this fact and
-        asking if you want to create a 'catch' block for java.lang.RuntimeException.
-      </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a>
-	 </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-54.htm">Using the Java editor</a><br>
-      <a href="tasks-176.htm">Using Structured Selection</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-18.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-18.htm
deleted file mode 100644
index 32a5ebd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-18.htm
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a top-level class
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a top-level class
-    </h1>
-    <p>
-      You can create classes that are not enclosed in other types.
-    </p>
-    <ol>
-      <li>
-        Open the New Class wizard.
-      </li>
-      <li>
-        Edit the&nbsp;<strong>Source Folder</strong> field as needed to indicate in which folder you want the new class to reside. You can either type a path or
-        click the&nbsp;<strong>Browse</strong> button to find the folder. If a folder is found for the current selection, that folder appears in
-        the&nbsp;<strong>Source Folder</strong> field as the container for the new class.
-      </li>
-      <li>
-        In the&nbsp;<strong>Package</strong> field, type or click&nbsp;<strong>Browse</strong> to select the package where you want the new class
-        to reside. Leave this field empty to indicate that you want the new class to be created in the default package.
-      </li>
-      <li>
-        Leave the&nbsp;<strong>Enclosing type</strong> box deselected.
-      </li>
-      <li>
-        In the&nbsp;<strong>Name</strong> field, type a name for the new class.
-      </li>
-      <li>
-        Select the <strong>public</strong> or <strong>default</strong> access modifier using the&nbsp;<strong>Modifiers</strong> radio buttons.<br>
-         <strong>Note:</strong> The private and protected options are available only when creating a class enclosed in a type.
-      </li>
-      <li>
-        Optionally, select the <strong>abstract</strong> or <strong>final</strong> modifier for the new class using the appropriate check boxes:<br>
-         <strong>Note:</strong> The static option is available only when creating a class enclosed in a type.
-      </li>
-      <li>
-        In the&nbsp;<strong>Superclass</strong> field, type or click&nbsp;<strong>Browse</strong> to select a superclass for the new class.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Add</strong> button to add interfaces for the new class to implement.
-      </li>
-      <li>
-        If you want to create some method stubs in the new class: 
-        <ul>
-          <li>
-            Select the&nbsp;<strong>public static void main(String[] args)</strong> box if you want the wizard to add the main method to the new class, thus
-            making it a starting point of an application.
-          </li>
-          <li>
-            Select the&nbsp;<strong>Constructors from superclass</strong> check box if you want the wizard to create, in the new class, a set of constructors, one
-            for each of the constructors declared in the superclass. Each of them will have the same number of parameters (of the same types) as the respective constructor from
-            the superclass.
-          </li>
-          <li>
-            Select the&nbsp;<strong>Inherited abstract methods</strong> check box if you want the wizard to generate method stubs for each of the abstract methods
-            that the new class will inherit from its superclass and implemented interfaces.
-          </li>
-        </ul>
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="tasks-17.htm">Creating a new Java class</a><br>
-       <a href="tasks-19.htm">Creating a nested class</a><br>
-       <a href="tasks-20.htm">Creating a class in an existing compilation unit</a><a href="tasks-20.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-121.htm">New Java Project wizard</a><br>
-       <a href="../reference/ref-128.htm">New Source Folder wizard</a><br>
-       <a href="../reference/ref-125.htm">New Java Package wizard</a><br>
-       <a href="../reference/ref-126.htm">New Java Class wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-180.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-180.htm
deleted file mode 100644
index 6f82009..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-180.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>Using the Externalize Strings wizard</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-  <body>
-    <h1>
-      Using the Externalize Strings Wizard
-    </h1>
-    <p>
-      To open the Externalize Strings wizard, do one of the following: 
-    </p>
-    <ul>
-      <li>
-        Find strings to externalize (using the <strong>Find Strings To Externalize</strong> function), select an entry in the resulting dialog and press the
-        <strong>Externalize</strong> button or
-      </li>
-      
-  <li> Select the compilation unit in which you want to externalize strings and 
-    selecting <strong>Source &gt; Externalize Strings</strong> from the menu bar. 
-  </li>
-    </ul>
-    
-<p> <strong>Note:</strong> Externalizing strings is undoable (with the same restrictions 
-  as for refactorings). Use <strong>Refactor &gt; Undo</strong> from the menu 
-  bar to undo externalizing strings. </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-       <a href="../concepts/cnls.htm">String Externalization</a><br>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-       <a href="tasks-206.htm">Externalizing Strings</a><br>
-       <a href="tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="tasks-101.htm">Redoing a refactoring operation</a><br>
-      <a href="tasks-189.htm">Key/value page</a><br>
-       <a href="tasks-190.htm">Property file page</a><a href="tasks-190.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-wizard-externalize-strings.htm">Externalize Strings wizard</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-181.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-181.htm
deleted file mode 100644
index 9dacd4a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-181.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Using the Find/Replace dialog</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Using the Find/Replace dialog</h1>
-
-    <p>To open the Find / Replace dialog:</p>
-
-    <ol>
-      <li>Optionally, select some text in a text (or Java) editor</li>
-
-      <li>Press <kbd>Ctrl</kbd>+<kbd>F</kbd> or</li>
-
-      <li>From the menu bar, select <span class="control">Edit &gt; Find / Replace</span></li>
-    </ol>
-
-    <p>To use the Find / Replace dialog:</p>
-
-    <ol>
-      <li>In the <span class="control">Find</span> field, enter the text you want to replace</li>
-
-      <li>Optionally, in the <span class="control">Replace With</span> field, enter the next text</li>
-
-      <li>Use the radio buttons in the <span class="control">Direction</span> group to select the direction of finding occurrences (relative to the current caret position)</li>
-
-      <li>
-        In the <span class="control">Scope</span> radio button group: 
-
-        <ul>
-          <li>Select the <span class="control">Selected Lines</span> button if you want to limit find / replace to the lines you selected when opening the dialog</li>
-
-          <li>Select the <span class="control">All</span> button otherwise</li>
-        </ul>
-      </li>
-
-      <li>
-        In the <span class="control">Options</span> group: 
-
-        <ul>
-          <li>Select the <span class="control">Case Sensitive</span> checkbox if you want finding to be case sensitive.</li>
-
-          <li>Select the <span class="control">Whole Word</span> checkbox if you want to find / replace only those occurrences in which the text you entered in the <span class=
-          "control">Find</span> field is a whole word</li>
-
-          <li>Select the <span class="control">Wrap Search</span> checkbox if you want the dialog to continue from the top of the file once the bottom is reached (if you find /
-          replace in Selected Lines only, then this option applies to those lines only)</li>
-
-          <li>Select the <span class="control">Incremental</span> checkbox if you want to perform incremental find (e.g. the dialog will find matching occurrences while you are
-          typing in the Find field)</li>
-        </ul>
-      </li>
-
-      <li>
-        Press: 
-
-        <ul>
-          <li><span class="control">Find</span> if you want to find the next matching occurrence</li>
-
-          <li><span class="control">Replace</span>, if you want to replace the currently selected occurrence with the new text</li>
-
-          <li><span class="control">Replace / Find</span>, if you want to replace the currently selected occurrence with the new text and find the next matching occurrence</li>
-
-          <li><span class="control">Replace All</span>, if you want to replace all matching occurrences with the new text</li>
-        </ul>
-      </li>
-
-      <li>Press <span class="control">Close</span>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a><br>
-    </p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-54.htm">Using the Java editor</a><br>
-     <a href="tasks-173.htm">Finding and replacing</a><a href="tasks-173.htm"></a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-menu-edit.htm">Edit menu</a><a href="../reference/ref-menu-edit.htm"></a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a><br>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-182.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-182.htm
deleted file mode 100644
index 257dbcf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-182.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Using Incremental Find</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Using Incremental Find</h1>
-
-    <p>To use Incremental Find:</p>
-
-    <ol>
-      <li>In the text (or Java) editor, press <kbd>Ctrl</kbd>+<kbd>J</kbd> or select <span class="control">Edit &gt; Incremental Find Next</span> from the menu bar.</li>
-
-      <li>The workbench status line displays "Incremental Find:". The editor is now in the Incremental Find mode.</li>
-
-      <li>As you type, the editor finds the next occurrence of the text and updates the selection after each character typed.</li>
-
-      <li>Navigate to the next or previous match by pressing <kbd>Arrow Down</kbd> or <kbd>Arrow Up</kbd>.</li>
-
-      <li>Undo the last action within the Incremental Find mode by pressing <kbd>Backspace</kbd>.</li>
-
-      <li>You can leave the Incremental Find mode by pressing <kbd>Esc</kbd>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-54.htm">Using the Java editor</a><br>
-     <a href="tasks-173.htm">Finding and Replacing</a><br>
-     <a href="tasks-187.htm">Finding Next or Previous Match</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-menu-edit.htm">Edit menu</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a><br>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-183.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-183.htm
deleted file mode 100644
index 2ed703b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-183.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding empty packages</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding empty packages</h1>
-
-    <p>To show empty packages:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list clear the checkbox for <span class="control">Empty packages</span>.</li>
-    </ol>
-
-    <p>To hide empty packages:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list select the checkbox for <span class="control">Empty packages</span>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-184.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-184.htm
deleted file mode 100644
index a2e7211..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-184.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding empty parent packages</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding empty parent packages</h1>
-
-    <p>To show empty parent packages:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list clear the checkbox for <span class="control">Empty parent packages</span>.</li>
-    </ol>
-
-    <p>To hide empty parent packages:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list select the checkbox for <span class="control">Empty parent packages</span>.</li>
-    </ol>
-
-    <p class="Note">Note: As an example, the parent packages created for package org.eclipse.ui, would be:</p>
-
-    <p>(default package)<br>
-     org<br>
-     org.eclipse</p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-185.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-185.htm
deleted file mode 100644
index dc73e58..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-185.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding Java files</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding Java files</h1>
-
-    <p>To show Java files:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list clear the checkbox for <span class="control">Java files</span>.</li>
-    </ol>
-
-    <p>To hide Java files:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list select the checkbox for <span class="control">Java files</span>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-186.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-186.htm
deleted file mode 100644
index 5d2767a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-186.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding non-Java elements</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding non-Java elements</h1>
-
-    <p>To show non-Java elements:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list clear the checkbox for <span class="control">Non-Java elements</span>.</li>
-    </ol>
-
-    <p>To hide non-Java elements:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list select the checkbox for <span class="control">Non-Java elements</span>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-187.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-187.htm
deleted file mode 100644
index ee8a5bb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-187.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <title>Finding Next or Previous Match</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Finding next or previous match</h1>
-
-    <p>To find the next match:</p>
-
-    <ol>
-      <li>In the text (or Java) editor, press <kbd>Ctrl</kbd>+<kbd>K</kbd> or select <span class="control">Edit &gt; Find Next</span> from the menu bar.</li>
-
-      <li>The next occurrence of the text selected in the editor will be found.</li>
-    </ol>
-
-    <p>To find the previous match:</p>
-
-    <ol>
-      <li>In the text (or Java) editor, press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>K</kbd> or select <span class="control">Edit &gt; Find Previous</span> from the menu bar.</li>
-
-      <li>The next occurrence of the text selected in the editor will be found.</li>
-    </ol>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-54.htm">Using the Java editor</a><br>
-     <a href="tasks-173.htm">Finding and Replacing</a><br>
-     <a href="tasks-182.htm">Using Incremental Find</a><a href="tasks-182.htm"></a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-menu-edit.htm">Edit menu</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-188.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-188.htm
deleted file mode 100644
index dac1eca..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-188.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Finding strings to externalize</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Finding strings to externalize</h1>
-
-    <p>To find strings to externalize:</p>
-
-    
-<ul>
-  <li>In a Java view (e.g. Package Explorer), select a set of packages, source 
-    folders or projects.</li>
-  <li>From the menu bar, select <span class="control">Source &gt; Find Strings 
-    to Externalize</span></li>
-  <li>A dialog comes up with a list of all compilation units that have some non-externalized 
-    strings</li>
-  <li>In the dialog, you can double click on a listed compilation unit or press 
-    the <b>Externalize</b> button to open the Externalize Strings wizard</li>
-</ul>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/cnls.htm">String Externalization</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-206.htm">Externalizing Strings</a><br>
-     <a href="tasks-202.htm">Finding unused and incorrectly used keys in property files</a><br>
-     <a href="tasks-180.htm">Using the Externalize Strings wizard</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-wizard-externalize-strings.htm">Externalize Strings wizard</a><br>
-     <a href="../reference/ref-menu-source.htm">Source menu</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-189.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-189.htm
deleted file mode 100644
index a7a9344..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-189.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Key/value page</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Key/value page</h1>
-
-    
-<h1><img src="../images/tasks-189a.gif" width=493 height=589 alt="Externalize Strings Key/value page"></h1>
-
-    <p>Externalize Strings Key/value page</p>
-
-    
-<ul>
-  <li>In the <span class="control">Enter common prefix for generated keys</span> 
-    text field, you can specify an optional prefix that will be used for all keys.</li>
-  <li> Select one or more entries in the table and: 
-    <ul>
-      <li>Press the <span class="control">Translate</span> button to mark them 
-        as entries to externalize or</li>
-      <li>Press the <span class="control">Never Translate</span> button to mark 
-        them as entries to be not externalized</li>
-      <li>Press the <span class="control">Skip</span> button to mark them as entries 
-        excluded from externalization</li>
-    </ul>
-  </li>
-  <li>Icons on the left side of the entries are updated and so are the counter 
-    below the table</li>
-  <li>To edit a key, single-click on a row in the <span class="control">Key</span> 
-    column. You can edit the key in-place. You can also press the <b>Edit Key</b> 
-    button and edit the key in the dialog that appears then.</li>
-  <li>Press <span class="control">Next</span> to proceed to the Property File 
-    page or press <span class="control">Finish</span> to externalize strings without 
-    checking the settings from the Property File page (if you are not familiar 
-    with the externalize strings functionality, it is recommended that you press 
-    <span class="control">Next</span> to proceed to the Property File page).</li>
-</ul>
-Note: You can double-click on the icons that are displayed on the left side of 
-the table entries to alternate the state between <span class="control">Translate</span>, 
-<span
-    class="control">Never Translate</span> and <span class="control">Skip</span> 
-<p>Note (explanation of the table entry states):</p>
-
-    <ul>
-      <li>Strings from entries marked as <span class="control">'Translate'</span> will be externalized and marked as such in the Java file by adding non-nls tags.</li>
-
-      <li>Strings from entries marked as <span class="control">'Never Translate'</span> will not be externalized but an non-nls tag will be added to them to inform the wizard that
-      they need not be translated.</li>
-
-      <li>Strings from entries marked as <span class="control">'Skip'</span> will not be externalized and no tags will be added to them.</li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-206.htm">Externalizing Strings</a><br>
-     <a href="tasks-180.htm">Using the Externalize Strings wizard</a><br>
-     <a href="tasks-190.htm">Property file page</a><br>
-     <a href="tasks-100.htm">Undoing a refactoring operation</a><br>
-     <a href="tasks-101.htm">Redoing a refactoring operation</a><br>
-     <a href="tasks-82.htm">Refactoring with preview</a><br>
-     <a href="tasks-83.htm">Refactoring without preview</a><br>
-    </p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-wizard-externalize-strings.htm">Externalize Strings wizard</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-19.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-19.htm
deleted file mode 100644
index 115f3e0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-19.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a nested class
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a nested class
-    </h1>
-    <p>
-      You can create classes that are enclosed in other types (that is, nested classes).
-    </p>
-    <ol>
-      <li>
-        Open the New Java Class wizard.
-      </li>
-      <li>
-        Edit the&nbsp;<strong>Source Folder</strong> field to indicate in which folder you want the new class to reside. You can either type a path or
-        click&nbsp;<strong>Browse</strong> to find the folder. If a folder is found for the current selection, that folder appears in
-        the&nbsp;<strong>Source Folder</strong> field as the container for the new class.
-      </li>
-      <li>
-        Select the&nbsp;<strong>Enclosing Type</strong> check box and type the name of the enclosing type in the <strong>Enclosing Type</strong> field. You can
-        also click&nbsp;<strong>Browse</strong> to select the enclosing type for the new class.
-      </li>
-      <li>
-        In the&nbsp;<strong>Name</strong> field, type a name for the new class.
-      </li>
-      <li>
-        Select the desired modifiers by using the&nbsp;<strong>Modifiers</strong> radio buttons and check boxes.
-      </li>
-      <li>
-        In the&nbsp;<strong>Superclass</strong> field, type or click&nbsp;<strong>Browse</strong> to select a superclass for the new class.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Add</strong> button to add interfaces for the new class to implement.
-      </li>
-      <li>
-        If you want to create some method stubs in the new class:
-      </li>
-      <li>
-        <ul>
-          <li>
-            Select the&nbsp;<strong>public static void main(String[] args)</strong> check box if you want the wizard to add the main method to the new class, thus
-            making it a starting point of an application.
-          </li>
-          <li>
-            Select the&nbsp;<strong>Constructors from superclass</strong> check box if you want the wizard to create, in the new class, a set of constructors, one
-            for each of the constructors declared in the superclass. Each of them will have the same number of parameters (of the same types) as the respective constructor from
-            the superclass.
-          </li>
-          <li>
-            Select the&nbsp;<strong>Inherited abstract methods</strong> check box if you want the wizard to generate method stubs for each of the abstract methods
-            that the new class will inherit from its superclass and implemented interfaces.
-          </li>
-        </ul>
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <strong>Note:</strong> The new class is created in the same compilation unit as its enclosing type.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="tasks-17.htm">Creating a new Java class</a><br>
-       <a href="tasks-18.htm">Creating a top-level class</a><br>
-       <a href="tasks-20.htm">Creating a class in an existing compilation unit</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="../reference/ref-126.htm">New Java Class wizard</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-190.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-190.htm
deleted file mode 100644
index de6e2cd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-190.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Property File page</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Property File page</h1>
-    <img src="../images/tasks-190a.gif" width=519 height=421 alt="Externalize Strings Property File page"> 
-
-    <p>Externalize Strings Property File page</p>
-
-    <ol>
-      <li>In the <span class="control">Package</span> field, enter the name fo the package in which you want the wizard to locate the property file (you can use the <span class=
-      "control">Browse</span> button to display the list of all packages)</li>
-
-      <li>In the Property file name field, enter the name of the property file (new or existing) in which the externalized strings will be put (you can use the <span class=
-      "control">Browse</span> button to display the list of all .properties files located in the package selected in the Package field.)</li>
-
-      <li>Select the <span class="control">Create resource bundle accessor class</span> checkbox if you want to create a class that will be used to access the externalized strings
-      (Note: the class will be reused if it exists already).</li>
-
-      <li>In the <span class="control">Class name</span> field, if you have the above-mentioned checkbox selected, you can specify the name of the accessor class</li>
-
-      <li>Press <span class="control">Next</span> to see a preview of the modifications or press <span class="control">Finish</span> to externalize strings without previewing
-      changes.</li>
-    </ol>
-
-    <p class="Note">Note: The default behavior of the wizard (i.e. creating a class with a name specified in the <span class="control">Class name field</span> and using <span
-    class="control">getString</span> as the name of the method used to retrieve strings from the property file) can be overridden. You may want to do so if you already have an
-    accessor class in another package or your accessor class uses another method with another name to get strings from the property file.</p>
-
-    <ol>
-      <li>Clear the <span class="control">Use default substitution pattern</span> checkbox</li>
-
-      <li>In the <span class="control">Substitution pattern</span> field enter the new pattern that will be used to retrieve strings from the property file. For each externalized
-      string, the first occurrence of <span class="control">${key}</span> will be substituted with the key.</li>
-
-      <li>Use the <span class="control">Add import declaration</span> field if you want the wizard to add an additional import to the compilation unit (you can use the <span
-      class="control">Browse</span> button to help you find a class that you want to import.)</li>
-    </ol>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-206.htm">Externalizing Strings</a><br>
-     <a href="tasks-180.htm">Using the Externalize Strings wizard</a><br>
-     <a href="tasks-189.htm">Key/value page</a><br>
-     <a href="tasks-100.htm">Undoing a refactoring operation</a><br>
-     <a href="tasks-101.htm">Redoing a refactoring operation</a><br>
-     <a href="tasks-82.htm">Refactoring with preview</a><br>
-     <a href="tasks-83.htm">Refactoring without preview</a><a href="tasks-83.htm"></a><br>
-    </p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-wizard-externalize-strings.htm">Externalize Strings wizard</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-191.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-191.htm
deleted file mode 100644
index 45f38e6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-191.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding members</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding members</h1>
-
-    <p>Several Java views (e.g. Outline, Package Explorer, Members) offer filtering of members (fields, types and methods). The filters are available as toolbar
-    buttons or as view menu items, depending on the view. There are
-    3 member filters:</p>
-
-    <ul>
-      <li><span class="control">Hide Fields</span>: when activated, this filter causes all fields to be removed from the view.</li>
-
-      <li><span class="control">Hide Static Members</span>: when activated, this filter causes all static members to be removed from the view.</li>
-
-      <li><span class="control">Hide Non-Public Members</span>: when activated, this filter causes all non-public members to be removed from the view.</li>
-    </ul>
-    Additionally, the Package Explorer can display or hide all elements inside compilation units. 
-
-    <p>To show members in the Package Explorer:</p>
-
-    <ul>
-      <li>Select the <span class="control"> Show members in Package Explorer</span> checkbox
-        in the <span class="control">Window &gt; Preferences &gt; Java &gt; Appearance
-        </span>page.</li>
-    </ul>
-    To hide members in the Package Explorer: 
-
-    <ul>
-      <li>Clear the <span class="control"> Show members in Package Explorer</span> checkbox
-        in the <span class="control">Window &gt; Preferences &gt; Java &gt; Appearance
-        </span> page</li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-appearance.htm">Appearance preference page</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-192.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-192.htm
deleted file mode 100644
index 1be2558..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-192.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding override indicators</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding override indicators</h1>
-
-    <p>Outline and Hierarchy views can show special icons (override indicators) to indicate members that override or implement other members from supertypes.</p>
-
-    <p>To show the override indicators:</p>
-
-    <ul>
-      <li>Select the <span class="control"> Show override indicators in outline and hierarchy</span> checkbox
-        in the <span class="control">Window &gt; Preferences &gt; Java &gt; Appearance
-        </span>page&nbsp;</li>
-    </ul>
-    To hide the override indicators: 
-
-    <ul>
-      <li>Clear the <span class="control"> Show override indicators in outline and hierarchy</span> checkbox
-        in the <span class="control">Window &gt; Preferences &gt; Java &gt; Appearance
-        </span> page&nbsp;</li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a><br>
-     <a href="tasks-47.htm"></a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-appearance.htm">Appearance preference page</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-193.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-193.htm
deleted file mode 100644
index 6a020d5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-193.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding method return types</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding method return types</h1>
-
-    <p>Several Java views (e.g. Outline, Members) present methods and can also show their return types.</p>
-
-    <p>To show method return types in Java views:</p>
-
-    <ul>
-      <li>Open the <span class="control">Window &gt; Preferences &gt; Java &gt; Appearance</span>
-        page and select the <span class="control">Show method return types</span> checkbox</li>
-    </ul>
-
-    <p>To hide method return types in Java views:</p>
-
-    <ul>
-      <li>Clear the <span class="control"> Show method return types</span> checkbox
-        in the <span class="control">Window &gt; Preferences &gt; Java &gt; Appearance
-        </span> page</li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a><br>
-     <a href="tasks-47.htm"></a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-appearance.htm">Appearance preference page</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-194.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-194.htm
deleted file mode 100644
index f5e1956..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-194.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing full or compressed package names</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing full or compressed package names</h1>
-
-    <p>Package Explorer and Packages views can show full or compressed package names.</p>
-
-    <p>To show full package names:</p>
-
-    <ul>
-      <li>Clear the <span class="control"> Compress all package name segments, except the final segment</span> checkbox
-        on the <span class="control">Window &gt; Preference &gt; Java &gt; Appearance
-        </span> page</li>
-    </ul>
-    To show compressed package names: 
-
-    <ul>
-      <li>
-        <p>Check the <span class="control"> Compress all package name segments, except the final segment</span> 
-        checkbox on the <span class="control">Window &gt; Preference &gt; Java &gt; Appearance
-        </span> page</p>
-
-        <p>Compression patterns control how many characters of each package name
-        segment are displayed. The last segment of a package name is
-        always displayed.</p>
-        <p>A compression pattern of &quot;.&quot; indicates that only the
-        separating periods are shown to represent a segment. A digit (n)
-        in a compression pattern represents the first n characters of a package name segment.
-        Examples are the best way to understand compression patterns. The
-        package <span class="control">org.eclipse.jdt </span>would be displayed
-        as follows using the example compression patterns:</p>
-        <p> <span class="control">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>..jdt</p>
-        <p><span class="control">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>jdt</p>
-        <p><span class="control">2~&nbsp;&nbsp;&nbsp;&nbsp; </span>or~.ec~.jdt</p>
-        <p> <span class="control">3~&nbsp;&nbsp;&nbsp;&nbsp; </span>org.ecl~.jdt</p>
-      </li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-appearance.htm">Java Appearance preference page</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-appearance.htm">Appearance preference page</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-195.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-195.htm
deleted file mode 100644
index 31025f9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-195.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Sorting elements in Java views</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Sorting elements in Java views</h1>
-
-    <p>Members and Outline views can present members sorted
-    or in the order of declaration in the compilation unit.</p>
-
-    <p>To sort members:</p>
-
-    <ul>
-      <li>Toggle on the <span class="control">Sort</span> toolbar button in the Java view</li>
-    </ul>
-
-    <p class="Note">Note: the sorting order is defined as follows:</p>
-
-    <ul>
-      <li>Nested types are presented before other members</li>
-
-      <li>Fields are presented before methods</li>
-
-      <li>Static members are presented before non-static members</li>
-
-      <li>After the above sorting is performed, members in each group are sorted alphabetically</li>
-    </ul>
-    To present members in the order of declaration in the compilation unit. 
-
-    <ul>
-      <li>Toggle off the <span class="control">Sort</span> toolbar button in the Java view</li>
-    </ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-3.htm">Java Toolbar actions</a><a href="../reference/ref-3.htm"></a> 
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-196.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-196.htm
deleted file mode 100644
index 08f8bb3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-196.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Creating Javadoc documentation</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Creating Javadoc documentation</h1>
-    <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"> <br>
-     <a href="tasks-197.htm">Specifying the location of the Javadoc command</a> <br>
-     <a href="tasks-198.htm">Using the Generate Javadoc wizard</a> 
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-export-javadoc.htm">Javadoc Generation wizard</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-197.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-197.htm
deleted file mode 100644
index 0e9bbcd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-197.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Specifying location of the Javadoc command</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Specifying the location of the Javadoc command</h1>
-
-    <p>The JDT uses the Javadoc command (typically available in JRE distributions) to generate Javadoc documentation from source files.</p>
-
-    <p>To set the location of the Javadoc command:</p>
-
-    <ul>
-      <li>Use the <span class="control">Window &gt; Preferences &gt; Java &gt; Javadoc</span> preferences page to enter the absolute (e.g. C:\Java\14\jdk1.4\bin\javadoc.exe) path
-      to the Javadoc command.</li>
-    </ul>
-    <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"> <br>
-     <a href="tasks-196.htm">Creating Javadoc documentation</a> <br>
-     <a href="tasks-198.htm">Using the Generate Javadoc wizard</a> 
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-preferences-javadoc.htm">Javadoc preference page</a><br>
-     <a href="../reference/ref-export-javadoc.htm">Javadoc Generation wizard</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-198.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-198.htm
deleted file mode 100644
index 7cbff0c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-198.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Using the Generate Javadoc wizard</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Using the Generate Javadoc Wizard</h1>
-
-    <p>Select the set (containing one or more elements) of packages, source folders or projects for which you want to generate Javadoc documentation.</p>
-
-    <p>Open the Export wizard by doing one of the following:</p>
-
-    <ul>
-      <li>Selecting <span class="control">Export</span> from the selection's pop-up menu or</li>
-
-      <li>Selecting <span class="control">File &gt; Export</span> from the menu bar.</li>
-    </ul>
-
-    <p>In the resulting dialog, select <span class="control">Javadoc</span> from the list and press <span class="control">Next</span>.</p>
-    <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"> <br>
-     <a href="tasks-196.htm">Creating Javadoc documentation</a> <br>
-     <a href="tasks-197.htm">Specifying the location of the Javadoc command</a> <br>
-     <a href="tasks-199.htm">Selecting types for Javadoc generation</a> 
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-export-javadoc.htm">Javadoc Generation wizard</a><br>
-     <a href="../reference/ref-dialog-javadoc-location.htm">Javadoc Location property page</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-199.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-199.htm
deleted file mode 100644
index 5985755..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-199.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <title>Using the Generate Javadoc wizard</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Selecting types for Javadoc generation</h1>
-
-    <p><img src="../images/tasks-199a.gif" width=470 height=565 alt="Javadoc wizard page"></p>
-
-    <ul>
-      <li>In the tree control, select the elements for which you want to generate Javadoc.</li>
-
-      <li>Select the visibility using the radio buttons listed under <span class="control">Create Javadoc for members with visibility</span></li>
-
-      <li>Leave the <span class="control">Use Standard Doclet</span> radio button selected</li>
-
-      <li>Specify the location for the generated Javadoc using the <span class="control">Destination</span> field.</li>
-
-      <li>Press <span class="control">Finish</span> to create generate Javadoc for the elements you selected or press <span class="control">Next</span> to specify more
-      options.</li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-196.htm">Creating Javadoc documentation</a><br>
-     <a href="tasks-198.htm">Using the Generate Javadoc wizard</a><br>
-     <a href="tasks-200.htm">Configuring Javadoc arguments for standard doclet</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-export-javadoc.htm">Javadoc Generation wizard</a><br>
-     <a href="../reference/ref-dialog-javadoc-location.htm">Javadoc Location property page</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-2.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-2.htm
deleted file mode 100644
index db0b6c1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-2.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-    <title>
-      Showing and hiding elements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Showing and hiding elements
-    </h1>
-    <p>
-      You can use filters to control which files are displayed in the Package Explorer.
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-3.htm">Showing and hiding system files</a><br>
-       <a href="tasks-4.htm">Showing and hiding CLASS files generated for inner types</a><br>
-       <a href="tasks-5.htm">Showing and hiding libraries</a><br>
-       <a href="tasks-6.htm">Showing single elements or whole Java files</a><br>
-       <a href="tasks-183.htm">Showing and hiding empty packages</a><br>
-       <a href="tasks-184.htm">Showing and hiding empty parent packages</a><br>
-       <a href="tasks-185.htm">Showing and hiding Java files</a><br>
-       <a href="tasks-186.htm">Showing and hiding non-Java elements</a><br>
-       <a href="tasks-213.htm">Showing and hiding non-Java projects in Java views</a><br>
-       <a href="tasks-191.htm">Showing and hiding members in Java views</a><br>
-       <a href="tasks-192.htm">Showing and hiding override indicators</a><br>
-       <a href="tasks-193.htm">Showing and hiding method return types in Java views</a><br>
-       <a href="tasks-212.htm">Showing and hiding import declarations in Java views</a><br>
-       <a href="tasks-214.htm">Showing and hiding package declarations in Java views</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-20.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-20.htm
deleted file mode 100644
index 709256b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-20.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a class in an existing compilation unit
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new class in an existing compilation unit
-    </h1>
-    <p>
-      An alternative way to create a new class is to add it to an existing compilation unit.
-    </p>
-	<ol>
-    <li>
-      In the Package Explorer, double-click a compilation unit to open it in an editor.
-    </li>
-    <li>
-      Type the code for the class at the desired position in the compilation unit.
-    </li>
-	</ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="tasks-17.htm">Creating a new Java class</a><br>
-       <a href="tasks-18.htm">Creating a top-level class</a><br>
-       <a href="tasks-19.htm">Creating a nested class</a><br>
-       <a href="tasks-94.htm">Renaming a class, field, or interface</a><br>
-       <a href="tasks-92.htm">Renaming a compilation unit</a><br>
-       <a href="tasks-executionArgs.htm">Setting execution arguments</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-200.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-200.htm
deleted file mode 100644
index 3427823..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-200.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <title>Configuring Javadoc arguments for standard doclet</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Configuring Javadoc arguments for standard doclet</h1>
-
-    <p><img src="../images/tasks_200a.gif" width=470 height=565 alt="Javadoc generation wizard showing the page for specifying arguments for the standard doclet"></p>
-
-    <ul>
-      <li>Use the checkboxes listed under <span class="control">Basic Options</span> to specify Javadoc options.</li>
-
-      <li>You can change the tags that will be documented by using the checkboxes in the <span class="control">Document these tags</span> group.</li>
-
-      <li>If you want references to classes from a library to be linked to the library's Javadoc, select the library in the list and press <span class="control">Configure</span>
-      to specify the location of the library's Javadoc.</li>
-
-      <li>Press <span class="control">Finish</span> to generate Javadoc or press <span class="control">Next</span> to specify additional Javadoc generation options.</li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-196.htm">Creating Javadoc documentation</a><br>
-     <a href="tasks-198.htm">Using the Generate Javadoc wizard</a><br>
-     <a href="tasks-199.htm">Selecting types for Javadoc generation</a><br>
-     <a href="tasks-201.htm">Configuring Javadoc arguments</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-export-javadoc.htm">Javadoc Generation wizard</a><br>
-     <a href="../reference/ref-dialog-javadoc-location.htm">Javadoc Location property page</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-201.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-201.htm
deleted file mode 100644
index 8cbb90e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-201.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <title>Configuring Javadoc arguments</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Configuring Javadoc arguments</h1>
-
-    <p><img src="../images/tasks_201a.gif" width=470 height=565 alt="Javadoc generation wizard"></p>
-
-    <ul>
-      <li>You can specify more specific options for the Javadoc command by entering them in the text area.</li>
-
-      <li>Select the <span class="control">Save the settings of this Javadoc export as an Ant script</span> checkbox.</li>
-
-      <li>Specify the location for the <span class="control">Ant Script</span>.</li>
-
-      <li>Select the <span class="control">Open generated index file in browser</span> checkbox.</li>
-
-      <li>Press <span class="control">Finish</span> to generate Javadoc.</li>
-    </ul>
-
-    <p class="Note">Note: The output produced by the Javadoc command (including errors and warning) is shown in the Console view.</p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"></p>
-
-    <p><a href="tasks-196.htm">Creating Javadoc documentation</a><br>
-     <a href="tasks-198.htm">Using the Generate Javadoc wizard</a><br>
-     <a href="tasks-199.htm">Selecting types for Javadoc generation</a><br>
-     <a href="tasks-200.htm">Configuring Javadoc arguments for standard doclet</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-export-javadoc.htm">Javadoc Generation wizard</a><br>
-     <a href="../reference/ref-dialog-javadoc-location.htm">Javadoc Location property page</a><br>
-     &nbsp;</p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-202.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-202.htm
deleted file mode 100644
index 00666a2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-202.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Finding unused and incorrectly used keys in property files</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Finding unused and incorrectly used keys in property files</h1>
-
-    <p>Finding unused and incorrectly used keys in a property file:</p>
-
-    <ul>
-      <li>
-        Open the Search dialog by: 
-
-        <ul>
-          <li>pressing <kbd>Ctrl</kbd>+<kbd>H</kbd> or</li>
-
-          <li>selecting <span class="control">Search &gt; Search</span> from the menu bar</li>
-        </ul>
-      </li>
-
-      <li>See if a tab called <span class="control">NLS Keys</span> is visible. If it is, then select it.</li>
-
-      <li>If it is not visible, press the <span class="control">Customize</span> button and select the <span class="control">NLS Keys</span> checkbox, press <span class=
-      "control">OK</span> to close the dialog and switch to the <span class="control">NLS Key</span> tab.</li>
-
-      <li>In the <span class="control">Resource bundle accessor class</span> field, enter the name of the class that you use to retrieve strings from the property file. You can
-      use the <span class="control">Browse</span> button to select the class from a list.</li>
-
-      <li>In the <span class="control">Property file name</span> field, enter the name of the property file. You can use the <span class="control">Browse</span> button to select
-      the file.</li>
-
-      <li>Select the scope of the search by using the controls in the <span class="control">Scope</span> group.</li>
-
-      <li>Press <span class="control">Search</span></li>
-    </ul>
-
-    <p>After the search is finished, the Search Result view displays a list of unused keys in the property file and all incorrect references to non-existing keys.</p>
-
-    <p class="Note">Note: This feature assumes that the resource bundle accessor class used a method called <em>getString</em> with a single <em>String</em> parameter to retrieve
-    strings from the property file.</p>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/cnls.htm">String Externalization</a><br>
-    </p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-206.htm">Externalizing Strings</a><br>
-     <a href="tasks-188.htm">Finding strings to externalize</a><br>
-     <a href="tasks-180.htm">Using the Externalize Strings wizard</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-wizard-externalize-strings.htm">Externalize Strings wizard</a><br>
-     <a href="../reference/ref-menu-source.htm">Source menu</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-203.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-203.htm
deleted file mode 100644
index cc2ed62..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-203.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Writing your own templates</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Writing your own templates</h1>
-
-    <p>You can define your own templates.</p>
-
-    <ul>
-      <li>Go to <span class="control">Window &gt; Preferences &gt; Java &gt; Editor &gt; Templates</span> and press the <span class="control">New</span> button.</li>
-
-      <li>In the <span class="control">Name</span> field, enter the name for the template. This name need not be unique. It is used for selecting templates from the Code Assist
-      list.</li>
-
-      <li>
-        Specify the context for the template using the <span class="control">Context</span> combo-box: 
-
-        <ul>
-          <li>Select <span class="control">java</span> if the template is to be used in normal Java code</li>
-
-          <li>Select <span class="control">javadoc</span> if the template is to be used in Javadoc comments</li>
-        </ul>
-      </li>
-
-      <li>In the <span class="control">Description</span> field, enter a brief description of the template.</li>
-
-      <li>
-        Use the <span class="control">Pattern</span> text field to enter the the template pattern<br>
-         The pattern may contain pre-defined and custom template variables.<br>
-         Template variables are place-holders for the dynamic part of the template pattern, i.e. they are different in every application of the particular template. Before a
-        template is inserted, the variables in its pattern are evaluated and the place-holders are replaced with the evaluated values. Variables are of form
-        <code>${variable_name}</code>. 
-
-        <ul>
-          <li>To insert a pre-defined template variable, use the <span class="control">Insert Variable</span> button or press <kbd>Ctrl+Space</kbd> and select the variable from
-          the presented list.</li>
-
-          <li>You can insert your own template variables, which then evaluate to the name of the variable itself. You must, however, make sure that the name does not conflict with
-          the pre-defined template variable names in the specific context.</li>
-
-          <li>If the dollar symbol <code>$</code> should be displayed, it must be escaped by using two dollar symbols or using the variable <code>${dollar}</code>.<br>
-          </li>
-        </ul>
-      </li>
-    </ul>
-
-    <p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-     <a href="../concepts/ctemplates.htm">Templates</a></p>
-
-    <p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-     <a href="tasks-54.htm">Using the Java editor</a><br>
-     <a href="tasks-171.htm">Using templates</a></p>
-
-    <p><img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
-     <a href="../reference/ref-preferences-templates.htm">Template preference page</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-    "14"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-204.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-204.htm
deleted file mode 100644
index 7891c36..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-204.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Renaming a local variable</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Renaming a local variable</h1>
-
-    <p>To rename a local variable (or a method parameter):</p>
-
-    <ul>
-      <li>Select the variable (or a reference to it) in the Java editor</li>
-
-      <li>
-        Do one of the following: 
-
-        <ul>
-          <li>From the menu bar, select <span class="control">Refactor &gt; Rename</span> or</li>
-
-          <li>From the editor's pop-up menu, select <span class="control">Refactor &gt; Rename</span></li>
-        </ul>
-      </li>
-    </ul>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-205.htm">Parameters page</a><br>
-     <a href="tasks-159.htm">Extracting a local variable</a><br>
-     <a href="tasks-161.htm">Inlining a local variable</a><br>
-     <a href="tasks-98.htm">Renaming method parameters</a><br>
-     <a href="tasks-157.htm">Changing method signature</a><br>
-     <a href="tasks-164.htm">Replacing a local variable with a query</a><br>
-    </p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-205.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-205.htm
deleted file mode 100644
index a608f3e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-205.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Parameters page</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Parameters page</h1>
-    <img src="../images/tasks_205a.gif" width=408 height=199 alt="Parameters Page for the Rename Local Variable Refactoring Command"> 
-
-    <p>Parameters Page for the Rename Local Variable Refactoring Command</p>
-
-    <ul>
-      <li>In the <span class="control"><span class="control">Enter new name</span></span> field, type a new name for the local variable.</li>
-
-      <li>If you do not want to update references to the renamed local variable, deselect the <span class="control"><span class="control">Update references to the renamed
-      element</span></span> checkbox.</li>
-
-      
-  <li>Click <span class="control"><span class="control">OK</span></span> to perform 
-    a quick refactoring, or click&nbsp;<span class="control"><span class=
-      "control">Preview</span></span> to perform a controlled refactoring.</li>
-    </ul>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-204.htm">Renaming a local variable</a><br>
-     <a href="tasks-82.htm">See Refactoring without Preview</a><br>
-     <a href="tasks-83.htm">See Refactoring with Preview</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-    "14"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-206.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-206.htm
deleted file mode 100644
index d5b84fd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-206.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-
-    <title>Externalizing Strings</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-
-  <body>
-    <h1>Externalizing Strings</h1>
-
-    <p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-     <a href="../concepts/concepts-7.htm">Java editor</a><br>
-     <a href="../concepts/cnls.htm">String Externalization</a></p>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-188.htm">Finding strings to externalize</a><br>
-     <a href="tasks-202.htm">Finding unused and incorrectly used keys in property files</a><br>
-     <a href="tasks-180.htm">Using the Externalize Strings wizard</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-wizard-externalize-strings.htm">Externalize Strings wizard</a></p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-207.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-207.htm
deleted file mode 100644
index 9a2f2df..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-207.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Inlining a constant
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    
-<h1> Inlining a constant</h1>
-    To inline a constant: 
-<ul>
-      
-  <li> In a Java editor or in one of the java views, select the constant that 
-    you want to inline (you can select a reference to the constant) </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Inline</strong> or 
-      </li>
-          
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Inline</strong> 
-      </li>
-        </ul>
-      </li>
-    </ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-208.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-208.htm
deleted file mode 100644
index 4eb413a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-208.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Inlining a method
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    
-<h1> Inlining a method</h1>
-    To inline a method: 
-<ul>
-      
-  <li> In a Java editor or in one of the java views, select the method that you 
-    want to inline (you can also select an invocation site of the method) </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Inline</strong> or 
-          </li>
-          
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Inline</strong> 
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-209.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-209.htm
deleted file mode 100644
index 50bfd43..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-209.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Extracting a constant
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    
-<h1> Extracting a constant</h1>
-    To extract a constant from an expression: 
-<ul>
-  <li> In a Java editor, select the expression that you want to extract to a constant</li>
-  <li> Do one of the following: 
-    <ul>
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Extract 
-        Constant</strong> or </li>
-      <li> From the menu bar, select <strong>Refactor &gt; Extract Constant</strong></li>
-    </ul>
-  </li>
-</ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a><br>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-21.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-21.htm
deleted file mode 100644
index 6f18898..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-21.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a new Java interface
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new Java interface
-    </h1>
-    <p>
-      Use the New Java Interface wizard to create a new Java interface. There are a number of ways to open this wizard:
-    </p>
-    <ol>
-      <li>
-        Select the container where you want the new class to reside.
-      </li>
-      <li>
-        From the drop-down menu on the <strong>New Java Class</strong> button in the workbench toolbar, select <strong>Interface</strong>.
-      </li>
-    </ol>
-    <p>
-      or
-    </p>
-    <ol>
-      <li>
-        Select the container where you want the new class to reside.
-      </li>
-      <li>
-        From the container's pop-up menu, select <strong>New</strong> &gt; <strong>Interface</strong>.
-      </li>
-    </ol>
-    <p>
-      or
-    </p>
-    <ol>
-      <li>
-        Select the container where you want the new class to reside.
-      </li>
-      <li>
-        From the drop-down menu on the <strong>New</strong> button in the workbench toolbar, select <strong>Interface</strong>.
-      </li>
-    </ol>
-    <p>
-      or
-    </p>
-    <p>
-      Click the <strong>New</strong> button. In the left pane, select <strong>Java</strong>, and in the right pane, select
-      <strong>Interface</strong>.
-    </p>
-    <p>
-      or
-    </p>
-    <p>
-      Select the container where you want the new interface to reside. Then, from the menu bar select <strong>File</strong> &gt; <strong>New</strong> &gt;
-      <strong>Interface</strong>
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-23.htm">Creating a top-level interface</a><br>
-       <a href="tasks-24.htm">Creating a nested interface</a><br>
-       <a href="tasks-25.htm">Creating a new interface in an existing compilation unit</a><br>
-       <a href="tasks-94.htm">Renaming a class or interface</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-127.htm">New Java Interface wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-210.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-210.htm
deleted file mode 100644
index a73573a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-210.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Moving instance method to component
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    
-<h1> Moving an instance method to a component</h1>
-    
-<p> To move an instance method to a component: </p>
-    <ul>
-      
-  <li> In a Java view or in the Java editor, select the method that you want to 
-    move </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          <li>
-            From the menu bar, select <strong>Refactor &gt; Move</strong> or
-          </li>
-          <li>
-            From the pop-up menu select, <strong>Refactor &gt; Move</strong>
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a><a href="../reference/ref-23.htm"></a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-211.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-211.htm
deleted file mode 100644
index 46f1c5b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-211.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Inlining a constant
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-<h1> Converting a local variable to a field</h1>
-To convert a local variable to a field: 
-<ul>
-  <li> In a Java editor or in one of the java views, select the local variable</li>
-  <li> Do one of the following: 
-    <ul>
-      <li> From the menu bar, select <strong>Refactor &gt; Convert Local Variable 
-        to Field</strong> or </li>
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Convert 
-        Local Variable to Field</strong></li>
-    </ul>
-  </li>
-</ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-212.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-212.htm
deleted file mode 100644
index bb156e8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-212.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding non-Java elements</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding import declarations</h1>
-
-    <p>To show import declarations:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list clear the checkbox for <span class="control">Import declarations</span>.</li>
-    </ol>
-
-    <p>To hide non-Java elements:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list select the checkbox for <span class="control">Import declarations</span>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-213.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-213.htm
deleted file mode 100644
index 706b740..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-213.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding non-Java elements</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding non-Java projects</h1>
-
-    <p>To show non-Java projects:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list clear the checkbox for <span class="control">Non-Java projects</span>.</li>
-    </ol>
-
-    <p>To hide non-Java elements:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list select the checkbox for <span class="control">Non-Java projects</span>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-214.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-214.htm
deleted file mode 100644
index 8f01799..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-214.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-  <head>
-    <title>Showing and hiding non-Java elements</title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-  </head>
-
-  <body>
-    <h1>Showing and hiding package declarations</h1>
-
-    <p>To show non-Java elements:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list clear the checkbox for <span class="control">Package declarations</span>.</li>
-    </ol>
-
-    <p>To hide non-Java elements:</p>
-
-    <ol>
-      <li>Select the <span class="control">Filters</span> command from the Package Explorer's drop-down menu.</li>
-
-      <li>In the exclude list select the checkbox for <span class="control">Package declarations</span>.</li>
-    </ol>
-
-    <p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-     <a href="tasks-2.htm">Showing and hiding elements</a><br>
-     <a href="tasks-47.htm">Filtering elements</a></p>
-
-    <p><img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-     <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-     <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-
-    <p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width=
-    "324"></a></p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-216.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-216.htm
deleted file mode 100644
index f99f9930..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-216.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Converting an anonymous inner class to a nested class
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-<h1> Converting an anonymous inner class to a nested class</h1>
-To convert an anonymous inner class to a nested class: 
-<ul>
-  <li> In a Java editor, position the care inside the anonymous class</li>
-  <li> Do one of the following: 
-    <ul>
-      <li> From the menu bar, select <strong>Refactor &gt; Convert Anonymous Class 
-        to Nested</strong> or </li>
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Convert 
-        Anonymous Class to Nested</strong></li>
-    </ul>
-  </li>
-</ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-217.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-217.htm
deleted file mode 100644
index 3873d58..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-217.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Converting a nested type to a top level type
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-<h1> Converting a nested type to a top level type</h1>
-To convert a nested type to a top level type: 
-<ul>
-  <li> In a Java editor or a Java view, select the member type</li>
-  <li> Do one of the following: 
-    <ul>
-      <li> From the menu bar, select <strong>Refactor &gt; Convert Nested Type 
-        to Top Level</strong> or </li>
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Convert 
-        Nested Type to Top Level</strong> </li>
-    </ul>
-  </li>
-</ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-218.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-218.htm
deleted file mode 100644
index 0446672..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-218.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Extracting an interface from a type
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-<h1> Extracting an interface from a type</h1>
-To extract an interface from a type: 
-<ul>
-  <li> In a Java editor or a Java view, select the type from which you want to 
-    extract an interface</li>
-  <li> Do one of the following: 
-    <ul>
-      <li> From the menu bar, select <strong>Refactor &gt; Extract Interface</strong> 
-        or </li>
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Extract 
-        Interface</strong> </li>
-    </ul>
-  </li>
-</ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-219.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-219.htm
deleted file mode 100644
index 948ba1a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-219.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Replacing references to a type with references to one of its subtypes
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-<h1> Replacing references to a type with references to one of its subtypes</h1>
-To replace references to a type with references to one of its subtypes: 
-<ul>
-  <li> In a Java editor or a Java view, select the type</li>
-  <li> Do one of the following: 
-    <ul>
-      <li> From the menu bar, select <strong>Refactor &gt; Use Supertype Where 
-        Possible</strong> or </li>
-      <li> From the editor's pop-up menu, select <strong>Refactor &gt; Use Supertype 
-        Where Possible</strong> </li>
-    </ul>
-  </li>
-</ul>
-    <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"> <br>
-     <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a> <br>
-     <a href="../reference/ref-117.htm">Refactoring dialogs</a> <br>
-     <a href="../reference/ref-23.htm">Refactoring preferences</a> 
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-220.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-220.htm
deleted file mode 100644
index 5256ad9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-220.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Pushing members down to subclasses
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    
-<h1> Pushing members down to subclasses</h1>
-    To push down class members (fields and methods) to the class's subclasses: 
-<ul>
-      
-  <li> In a Java view (e.g. Outline, Package Explorer, Members), select the members 
-    that you want to push down. </li>
-      <li>
-        Do on of the following: 
-        <ul>
-          
-      <li> From the menu bar, select <strong>Refactor &gt; Push Down</strong> 
-        or </li>
-      <li> From the pop-up menu, select <strong>Refactor &gt; Push Down</strong></li>
-        </ul>
-      </li>
-    </ul>
-    <strong>Note:</strong> the selected members must all have the same declaring type for this refactoring to be enabled. 
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-221.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-221.htm
deleted file mode 100644
index f1ccb8e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-221.htm
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a new source folder with exclusion filter
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new source folder with exclusion filter
-    </h1>
-    In a project that uses source folders, you can create a new folder to contain Java source code with exclusion patterns. Exclusion
-    patterns are useful if you have nested source folders. There are two ways to do it:
-    <ol>
-    	<li>You don't already have an existing Java project in which you want to create a source folder with exclusion pattern.</li>
-    	<li>You already have an existing Java project.</li>
-    </ol>
-    <h2>Starting from scratch</h2>
-    <ol>
-	  <li>First follow the steps of the task &quot;Creating a new source folder&quot;.</li>
-      <li>Once a first source folder is created, if you want to create another source folder that is nested inside the first one, you
-      need to use the exclusion pattern.
-      </li>
-      <li>
-        Click <strong>Create New Folder</strong> to create new source folder. Create a folder that is nested inside the first one.
-      </li>
-      <li>You will get a dialog saying that exclusion filter has been added to the first source folder.
-      <blockquote>NOTE: The trailing '/' at the end of the exclusion pattern <b>is required</b> to exclude the children of this folder.
-      The exclusion pattern follows the ant exclusion pattern syntax.
-      </blockquote>
-      </li>
-      <li>
-        Click&nbsp;<strong>OK</strong> and <strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <h2>From an existing Java Project</h2>
-    <ol>
-      <li>Before you start, make sure that your project properties are enabled to handle exclusion filters in source folders.
-      </li>
-      <li>
-        In the Package Explorer, select the project where you want the new source folder to reside.
-      </li>
-      <li>
-        From the project's pop-up menu, select <strong>New</strong> &gt; <strong>Source Folder</strong>. The New Source Folder wizard opens.
-      </li>
-      <li>
-        In the&nbsp;<strong>Project Name</strong> field, the name of the selected project appears. If you need to edit this field, you can either type a path or
-        click&nbsp;<strong>Browse</strong> to choose a project that uses source folders.
-      </li>
-      <li>
-        In the&nbsp;<strong>Folder Name</strong> field, type a name for the new source folder. If you choose a path that is nested
-        inside an existing source folder, you will see an error saying that you have nested source folders.
-      </li>
-      <li>
-        Check&nbsp;<strong>Update exclusion filters in other source folders to solve nesting</strong>.
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	 </p>
-	 <p>	  
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	 </p>
-	 <p>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-12.htm">Creating a new Java project</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a><br>
-       <a href="tasks-13.htm">Creating a Java project as its own source container</a><br>
-       <a href="tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="tasks-26.htm">Creating a new source folder</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	 </p>
-	 <p>	  
-       <a href="../reference/ref-128.htm">New Source Folder wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-222.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-222.htm
deleted file mode 100644
index 48c37c7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-222.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a new source folder with specific output folder
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new source folder with specific output folder
-    </h1>
-	Any source folder can use either the default project output folder or its specific output folder.
-    <ol>
-	  <li>First follow the steps of the task &quot;Creating a new source folder&quot;.</li>
-      <li>Once a first source folder is created, you might want to change its default output folder.
-      </li>
-	  <li>Click on <strong>Allow output folders for source folders</strong>. This adds a new entry to the source folder tree.
-	  </li>
-	  <li>Expand the source folder tree.
-	  </li>
-	  <li>Double-click on the <strong>Output folder entry</strong>.
-	  </li>
-	  <li>A dialog asks you if you want to use the project's default output folder or a specific output folder. Choose the second
-	  option and click <strong>Browse...</strong>.
-	  </li>
-	  <li>Select the folder you want and click <strong>OK</strong> and then <strong>Finish</strong>.
-	  </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	 </p>
-	 <p>	  
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	 </p>
-	 <p>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-12.htm">Creating a new Java project</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a><br>
-       <a href="tasks-13.htm">Creating a Java project as its own source container</a><br>
-       <a href="tasks-14.htm">Creating a Java project with source folders</a><br>
-       <a href="tasks-26.htm">Creating a new source folder</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	 </p>
-	 <p>	  
-       <a href="../reference/ref-128.htm">New Source Folder wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-23.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-23.htm
deleted file mode 100644
index 6606571..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-23.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a top-level interface
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a top-level interface
-    </h1>
-    <p>
-      You can create interfaces that are not enclosed in other types.
-    </p>
-    <ol>
-      <li>
-        Open the New Java Interface wizard.
-      </li>
-      <li>
-        Edit the&nbsp;<strong>Source Folder</strong> field as needed to indicate in which folder you want the new interface to reside. You can either type a path
-        or click the&nbsp;<strong>Browse</strong> button to find the folder. If a folder is found for the current selection, that folder appears in
-        the&nbsp;<strong>Source Folder</strong> field as the container for the new interface.
-      </li>
-      <li>
-        In the&nbsp;<strong>Package</strong> field, type a name or click&nbsp;<strong>Browse</strong> to select the package where you want the
-        new interface to reside. If you want the new interface to be created in the default package, leave this field empty.
-      </li>
-      <li>
-        Clear the&nbsp;<strong>Enclosing type</strong> check box.
-      </li>
-      <li>
-        In the&nbsp;<strong>Name</strong> field, type a name for the new interface.
-      </li>
-      <li>
-        Select the <strong>public</strong> or <strong>default</strong> access modifier using the&nbsp;<strong>Modifiers</strong> radio buttons.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Add</strong> button to add interfaces for the new interface to extend.
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong>.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-21.htm">Creating a new Java interface</a><br>
-       <a href="tasks-24.htm">Creating a nested interface</a><br>
-       <a href="tasks-25.htm">Creating a new interface in a compilation unit</a><br>
-       <a href="tasks-94.htm">Renaming a class or interface</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-   </p>
-    <p>	  
-       <a href="../reference/ref-127.htm">New Java Interface wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-24.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-24.htm
deleted file mode 100644
index f6e1a86..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-24.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a nested interface
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a nested interface
-    </h1>
-    <p>
-      You can create interfaces that are enclosed in other types (that is, nested interfaces).
-    </p>
-    <ol>
-      <li>
-        Open the New Java Interface wizard.
-      </li>
-      <li>
-        Edit the&nbsp;<strong>Source Folder</strong> field to indicate in which folder you want the new interface to reside. You can either type a path or click
-        the&nbsp;<strong>Browse</strong> button to find the folder. If a folder is found for the current selection, that folder appears in the
-        <strong>Source&nbsp;</strong>Folder field as the container for the new interface.
-      </li>
-      <li>
-        Select the&nbsp;<strong>Enclosing type</strong> check box.
-      </li>
-      <li>
-        In the&nbsp;<strong>Enclosing type</strong> field, type the name of the enclosing type or click the&nbsp;<strong>Browse</strong> button
-        to select the enclosing type for the new interface.
-      </li>
-      <li>
-        In the&nbsp;<strong>Name</strong> field, type a name for the new interface.
-      </li>
-      <li>
-        Select the <strong>public</strong> or <strong>default</strong> access modifier by using the&nbsp;<strong>Modifiers</strong> radio buttons.
-      </li>
-      <li>
-        Select the&nbsp;<strong>static</strong> check box if you want the new interface to be static.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Add</strong> button to add interfaces for the new interface to extend.
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <strong>Note</strong>: The new interface is created in the same compilation unit as its enclosing type.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-21.htm">Creating a new Java interface</a><br>
-       <a href="tasks-23.htm">Creating a top-level interface</a><br>
-       <a href="tasks-25.htm">Creating a new interface in a compilation unit</a><br>
-       <a href="tasks-94.htm">Renaming a class or interface</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-   </p>
-    <p>	  
-       <a href="../reference/ref-127.htm">New Java Interface wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><a href="../reference/ref-view-package-explorer.htm"></a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-25.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-25.htm
deleted file mode 100644
index 7617a48..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-25.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Creating a new interface in a compilation unit
-    </title>
-  </head>
-  <body>
-    <h1>
-      Creating a new interface in an existing compilation unit
-    </h1>
-    <p>
-      An alternative way to create a new interface is to add it to an existing compilation unit.
-    </p>
-	<ol>
-    <li>
-      In the Package Explorer, double-click a compilation unit.
-    </li>
-    <li>
-      Type the code for the interface at the desired position in the compilation unit.
-    </li>
-	</ol>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-21.htm">Creating a new Java interface</a><br>
-       <a href="tasks-24.htm">Creating a nested interface</a><br>
-       <a href="tasks-23.htm">Creating a top-level interface</a><br>
-       <a href="tasks-92.htm">Renaming a compilation unit</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-26.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-26.htm
deleted file mode 100644
index 03983bd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-26.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <title>
-      Creating a new source folder
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new source folder
-    </h1>You can create a new folder to contain Java source code using the New Source Folder wizard.<ol>
-      <li>
-        In the Package Explorer, select the project where you want the new source folder to reside.
-      </li>
-      <li>
-        From the project's pop-up menu, select <strong>New</strong> &gt; <strong>Source Folder</strong>. The New Source Folder wizard opens.
-      </li>
-      <li>
-        In the&nbsp;<strong>Project Name</strong> field, the name of the selected project appears. If you need to edit this field, you can either type a path or
-        click&nbsp;<strong>Browse</strong> to choose a project that uses source folders.
-      </li>
-      <li>
-        In the&nbsp;<strong>Folder Name</strong> field, type a name for the new source folder.
-      </li>
-	<li>If the new folder nests with an existing source folder you can check <strong>Update
-	exclusion filters in other source folders to solve nesting</strong>. Otherwise you have to use the Java build path page <strong>(Project
-	&gt; Properties &gt; Java Build Path)</strong> to fix the nesting conflict by removing other source folders.</li>
-	<li>
-        Click&nbsp;<strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	 </p>
-	 <p>	  
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	 </p>
-	 <p>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-12.htm">Creating a new Java project</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a><br>
-       <a href="tasks-13.htm">Creating a Java project as its own source container</a><br>
-       <a href="tasks-14.htm">Creating a Java project with source folders</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	 </p>
-	 <p>	  
-       <a href="../reference/ref-128.htm">New Source Folder wizard</a><br>
-       <a href="../reference/ref-3.htm">Java Toolbar actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-27.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-27.htm
deleted file mode 100644
index dd2da98..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-27.htm
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Creating a New Java Scrapbook Page
-    </title>
-  </head>
-  <body>
-    <h1>
-      Creating a new Java Scrapbook Page
-    </h1>
-    <p>
-      You can create a new Java scrapbook page using any one of several different approaches. <a href="tasks-149.htm">See Creating a Scrapbook Page</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-3.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-3.htm
deleted file mode 100644
index 3d1cea0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-3.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-    <title>
-      Showing and hiding system files
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Showing and hiding system files
-    </h1>
-    To show system files: 
-    <ol>
-    <li>
-      Select the <strong>Filters</strong> command from the Package Explorer view drop-down menu.
-    </li>
-    <li>
-      In the exclude list clear the checkbox for <span class="control">.* files</span>.
-    </li>
-    </ol>
-    <p>
-      To hide system files:
-    </p>
-    <ol>
-    <li>
-      Select the <strong>Filters</strong> command from the Package Explorer view drop-down menu.
-    </li>
-    <li>
-      In the exclude list select the checkbox for <span class="control">.* files</span>.
-      This hides files that have only a file extension but no file name, such as <em>.classpath</em>.
-    </li>
-	</ol>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>	
-       <a href="tasks-2.htm">Showing and hiding elements</a><br>
-       <a href="tasks-47.htm">Filtering elements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-30.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-30.htm
deleted file mode 100644
index 7c5d381..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-30.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Adding a JAR file as a library
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding a JAR file as a library
-    </h1>
-    <p>
-      To add a JAR file as a library, you can either drag and drop the JAR file into the workbench from the file system or you can use the Import wizard to import the file.
-    </p>
-    <ol>
-      <li>
-        From the workbench menu bar, select <strong>File</strong> &gt; <strong>Import</strong>. The Import wizard opens
-      </li>
-      <li>
-        Select <strong>File System</strong>, then click <strong>Next</strong>.
-      </li>
-      <li>
-        In the <strong>From directory</strong> field, type or browse to select the directory where the JAR file resides.
-      </li>
-      <li>
-        In the import selection panes, expand the hierarchy and use the buttons to select the JAR file you want to import.
-      </li>
-      <li>
-        In the <strong>Into folder</strong> field, type or browse to select a workbench container for the JAR file.
-      </li>
-      <li>
-        Click <strong>Finish</strong> when you are done.
-      </li>
-      <li>
-        You now must add the JAR file to the build class path of any projects that need this library.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-4.htm">Java builder</a><br>
-       <a href="../concepts/cbuildcp.htm">Build classpath</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-115.htm">Attaching source to a JAR file</a><br>
-       <a href="tasks-110.htm">Working with build paths</a><br>
-       <a href="tasks-31.htm">Adding source code as individual files</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-   </p>
-    <p>	  
-       <a href="../reference/ref-123.htm">Java Build Path</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-31.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-31.htm
deleted file mode 100644
index d69ee4e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-31.htm
+++ /dev/null
@@ -1,139 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Adding source code as individual files
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding source code as individual files
-    </h1>
-    <h2>
-      From a ZIP or JAR file
-    </h2>
-    <ol>
-      <li>
-        In the Navigator or Package Explorer, you can optionally select the source folder into which you wish to import the source. <em>Note: It is important to choose a source
-        container; otherwise, the imported files will not be on the build path.</em>
-      </li>
-      <li>
-        From the workbench menu bar, select <strong>File</strong> &gt; <strong>Import</strong>.
-      </li>
-      <li>
-        In the Import wizard, select <strong>Zip file</strong>, then click&nbsp;<strong>Next</strong>.
-      </li>
-      <li>
-        In the&nbsp;<strong>Zip file</strong> field, type or browse to select the file from which you would like to add the resources. In the import selection
-        panes, use the following methods to select exactly the resources you want to add: 
-        <ul>
-          <li>
-            Expand the hierarchies in the left pane and check or clear the boxes representing the containers in the selected directory. Then in the right pane, select or clear
-            boxes for individual files.
-          </li>
-          <li>
-            Click <strong>Select Types</strong> to select specific file types to add.
-          </li>
-          <li>
-            Click <strong>Select All</strong> to select all files in the directory, then go through and deselect the ones that you don't want to add.
-          </li>
-          <li>
-            Click <strong>Deselect All</strong> to deselect all files in the directory, then go through and choose individual files to add.
-          </li>
-        </ul>
-      </li>
-      <li>
-        In the <strong>Select the destination for imported resources</strong> field, type or browse to select a workbench container for the added resources (if it was not
-        already selected when you activated the&nbsp;<strong>Import</strong> command).
-      </li>
-      <li>
-        In the <strong>Options</strong> area, you can choose whether or not to overwrite existing resources without warning.
-      </li>
-      <li>
-        Click <strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-    <h2>
-      From a directory
-    </h2>
-    <ol>
-      <li>
-        In the Navigator or Package Explorer, select the source folder into which you wish to import the source. <em>Note: It is important to choose a source container; otherwise,
-        the imported files will not be on the build path.</em>
-      </li>
-      <li>
-        From the workbench menu bar, select <strong>File</strong> &gt; <strong>Import</strong>.
-      </li>
-      <li>
-        In the import wizard, select <strong>File System</strong>, then click&nbsp;<strong>Next</strong>.
-      </li>
-      <li>
-        In the <strong>Directory</strong> field, type or browse to select the directories from which you would like to add the resources.
-      </li>
-      <li>
-        In the import selection panes, use the following methods to select exactly the resources you want to add: 
-        <ul>
-          <li>
-            Expand the hierarchies in the left pane and check or clear the boxes representing the containers in the selected directory. Then in the right pane, select or clear
-            boxes for individual files.
-          </li>
-          <li>
-            Click&nbsp;<strong>Select Types</strong> to select specific file types to add.
-          </li>
-          <li>
-            Click&nbsp;<strong>Select All</strong> to select all files in the directory, then go through and deselect the ones that you don't want to add.
-          </li>
-          <li>
-            Click&nbsp;<strong>Deselect All</strong> to deselect all files in the directory, then go through and choose individual files to add.
-          </li>
-        </ul>
-      </li>
-      <li>
-        In the <strong>Select the destination for imported resources</strong> field, type or browse to select a workbench container for the added resources (if
-        it was not already selected when you activated the&nbsp;<strong>Import</strong> command).
-      </li>
-      <li>
-        In the <strong>Options</strong> area, you can choose whether you want to:
-      </li>
-	  <ul>
-      <li>
-        overwrite existing resources without warning
-      </li>
-      <li>
-        create a complete file structure for the imported files
-      </li>
-	  </ul>
-      <li>
-        Click&nbsp;<strong>Finish</strong> when you are done.
-      </li>
-    </ol>
-	<p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> <br>
-     <a href="../concepts/cbuildcp.htm">Build classpath</a> 
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="tasks-30.htm">Adding a JAR file as a library</a><br>
-       <a href="tasks-110.htm">Working with build paths</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-123.htm">Java Build Path</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-32.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-32.htm
deleted file mode 100644
index bd85de7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-32.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-	   Creating JAR files
-    </title>
-  </head>
-  <body>
-    <h1>
-      Creating JAR files
-    </h1>
-    <p>
-      You can create and regenerate JAR files in the workbench.
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-33.htm">Creating a new JAR file</a><br>
-       <a href="tasks-36.htm">Regenerating a JAR file</a><a href="tasks-36.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-export-jar.htm">JAR file exporter</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-33.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-33.htm
deleted file mode 100644
index 23bef86..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-33.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Creating a new JAR file
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Creating a new JAR file
-    </h1>
-    <p>
-      To create a new JAR file in the workbench:
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer, you can optionally pre-select one or more Java elements to export. (These will be automatically selected in the <strong>JAR Package
-        Specification</strong> wizard page, described in Step 4.)
-      </li>
-      <li>
-        Either from the context menu or from the menu bar's <strong>File</strong> menu, select <strong>Export</strong>.
-      </li>
-      <li>
-        Select <strong>JAR file</strong>, then click&nbsp;<strong>Next</strong>.
-      </li>
-      <li>
-        In the <strong>JAR Package Specification</strong> page, select the resources that you want to export in the <strong>Select the resources to
-        export&nbsp;</strong>field.
-      </li>
-      <li>
-        Select the appropriate check box to specify whether you want to <strong>Export generated class files and resources</strong> or <strong>Export java source files and
-        resources</strong>. <strong>Note</strong>: Selected resources are exported in both cases.
-      </li>
-      <li>
-        In the&nbsp;<strong>Select the export destination</strong> field, either type or click&nbsp;<strong>Browse</strong> to select a location
-        for the JAR file.
-      </li>
-      <li>
-        Select or clear the&nbsp;<strong>Compress the contents of the JAR file</strong> check box.
-      </li>
-      <li>
-        Select or clear the&nbsp;<strong>Overwrite existing files without warning</strong> check box. If you clear this check box,&nbsp;then you will be prompted
-        to confirm the replacement of each file that will be overwritten.
-      </li>
-      <li>
-        <strong>Note</strong>: The overwrite option is applied when writing the JAR file, the JAR description, and the manifest file.
-      </li>
-      <li>
-        You have two options:
-        <ul>
-          <li>
-            Click&nbsp;<strong>Finish</strong> to create the JAR file immediately.
-          </li>
-          <li>
-            Click&nbsp;<strong>Next</strong> to use the JAR Packaging Options page to set advanced options, create a JAR description, or change the default
-            manifest.
-          </li>
-        </ul>
-      </li>
-    </ol>
-	<p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> 
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="tasks-113.htm">Adding a JAR file to the build path</a><br>
-       <a href="tasks-115.htm">Attaching source to a JAR file</a><br>
-       <a href="tasks-35.htm">Defining the JAR file's manifest</a><br>
-       <a href="tasks-34.htm">Setting advanced options</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="../reference/ref-export-jar.htm">JAR file exporter</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-34.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-34.htm
deleted file mode 100644
index f38f382..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-34.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Setting advanced options
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Setting advanced options
-    </h1>
-    <ol>
-      <li>
-        Follow the procedure for creating a JAR file, but click <strong>Next</strong> in the last step to go to the JAR Packaging Options page.
-      </li>
-      <li>
-        If you want to save the JAR file description, select the <strong>Save the description of this JAR in the workspace</strong> check box.
-      </li>
-      <li>
-        The compiler is able to generate CLASS files even when source contains errors. You have the option to exclude CLASS (but not source) files with compile errors. These files
-        will be reported at the end, if reporting is enabled.
-      </li>
-      <li>
-        You can choose to exclude CLASS (but not source) files that have compile warnings. These files will be reported at the end.<br>
-         <strong>Note</strong>: This option does not automatically exclude class files with compile errors.
-      </li>
-      <li>
-        You can choose to include the source folder path by selecting the <strong>Create source folder structure</strong> checkbox.
-      </li>
-      <li>
-        Select the <strong>Build projects if not built automatically</strong> checkbox if you want the export to perform a build before creating the JAR file.
-      </li>
-      <li>
-        Click <strong>Finish</strong> to create the JAR file immediately or <strong>Next</strong> if you want to change the default manifest.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="tasks-33.htm">Creating a new JAR file</a><br>
-       <a href="tasks-35.htm">Defining the JAR file's manifest</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="../reference/ref-export-jar.htm">JAR file exporter</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-35.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-35.htm
deleted file mode 100644
index 8c449f9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-35.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Defining the JAR File's Manifest
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Defining the JAR file's manifest
-    </h1>
-    <p>
-      You can either define the important parts of the JAR file manifest directly in the wizard or choose to use a manifest file that already exists in your workbench.
-    </p>
-    <h2>
-      Creating a new manifest
-    </h2>
-    <ol>
-      <li>
-        Follow the procedure for creating a JAR file, but click&nbsp;<strong>Next</strong> in the last step to go to the JAR Packaging Options page.
-      </li>
-      <li>
-        Set any advanced options that you want to set, and then click&nbsp;<strong>Next</strong> again to go to the JAR Manifest Specification page.
-      </li>
-      <li>
-        If it is not already selected, click the&nbsp;<strong>Generate the manifest file</strong> button.
-      </li>
-      <li>
-        You can now choose to save the manifest in the workbench. This will save the manifest for later use. Click&nbsp;<strong>Save the manifest in the workspace</strong>, then
-        click&nbsp;<strong>Browse</strong> next to the&nbsp;<strong>Manifest file</strong> field to specify a path and file name for the
-        manifest.
-      </li>
-      <li>
-        If you decided to save the manifest file in the previous step and you chose to save the JAR description on the previous wizard page, then you can choose to reuse it in the
-        JAR description (by selecting the <strong>Reuse and save the manifest in the workspace</strong> checkbox). This means that the saved file will be used when the JAR file is
-        recreated from the JAR description.This option is useful if you want to modify or replace the manifest file before recreating the JAR file from the description.
-      </li>
-      <li>
-        You can choose to seal the JAR and optionally exclude some packages from being sealed or specify a list with sealed packages. By default, nothing is sealed.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Browse</strong> button next to the&nbsp;<strong>Main class</strong> field to specify the entry point for your
-        applications.<br>
-         <strong>Note</strong>: If your class is not in the list, then you forgot to select it at the beginning.
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong>. This will create the JAR, and optionally a JAR description and a manifest file.
-      </li>
-    </ol>
-    <h2>
-      Using an existing manifest
-    </h2>
-    You can use an existing manifest file that already exists in your workbench. 
-    <ol>
-      <li>
-        Follow the procedure for creating a JAR file, but click&nbsp;<strong>Next</strong> in the last step to go to the JAR Packaging Options page.
-      </li>
-      <li>
-        Set any advanced options that you want to set, and the click&nbsp;<strong>Next</strong> again to go to the JAR Manifest Specification page.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Use existing manifest from workspace</strong> radio button.
-      </li>
-      <li>
-        Click the&nbsp;<strong>Browse</strong> button to choose a manifest file from the workbench.
-      </li>
-      <li>
-        Click&nbsp;<strong>Finish</strong>. This will create the JAR and optionally a JAR description.
-      </li>
-    </ol>
-	<p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> 
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p> 
-       <a href="tasks-33.htm">Creating a new JAR file</a><br>
-       <a href="tasks-34.htm">Setting advanced options</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-export-jar.htm">JAR file exporter</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-36.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-36.htm
deleted file mode 100644
index c718fe9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-36.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Regenerating a JAR file
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Regenerating a JAR file
-    </h1>
-    <p>
-      You can use a JAR file description to regenerate a previously created JAR file.
-    </p>
-    <ol>
-      <li>
-        Select one or more JAR file descriptions in your workbench.
-      </li>
-      <li>
-        From the selection's pop-up menu, select&nbsp;<strong>Create JAR</strong>. The JAR file(s) are regenerated.
-      </li>
-    </ol>
-	<p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>	
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> 
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="tasks-33.htm">Creating a new JAR file</a><br>
-       <a href="tasks-35.htm">Defining the JAR file's manifest</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="../reference/ref-export-jar.htm">JAR file exporter</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-37.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-37.htm
deleted file mode 100644
index f45067b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-37.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Using the Hierarchy view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Using the Hierarchy view
-    </h1>
-    <p>
-       <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-       <a href="tasks-38.htm">Changing the appearance of the Hierarchy view</a><br>
-       <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-40.htm">Opening a type hierarchy on the current text selection</a><br>
-       <a href="tasks-42.htm">Opening a type hierarchy in its own perspective</a><br>
-       <a href="tasks-43.htm">Overriding a method using the Hierarchy view</a><br>
-       <a href="tasks-44.htm">Finding overridden methods</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-24.htm">Views and editors</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-38.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-38.htm
deleted file mode 100644
index f18f0df..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-38.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Changing the appearance of the Hierarchy view
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Changing the appearance of the Hierarchy view
-    </h1>
-    <p>
-      The Hierarchy view offers three different ways to look at a type hierarchy (use the toolbar buttons to alternate between them):
-    </p>
-    <ul>
-      <li>
-        <strong>Show the Type Hierarchy</strong> displays the type hierarchy of a type. This view shows all super- and subtypes of the selected type. Type
-        <em>java.lang.Object</em> is shown in the top-left corner. Interfaces are not shown.
-      </li>
-      <li>
-        <strong>Show the Supertype Hierarchy</strong> displays the supertype hierarchy of a type. This view shows all supertypes and the hierarchy of all
-        implemented interfaces. The selected type is always shown in the top-left corner.
-      </li>
-      <li>
-        <strong>Show the Subtype Hierarchy</strong> displays the subtype hierarchy of a type. This view shows all subtypes of the selected type and all
-        implementers of the selected interface (if the view is opened on an interface). The selected type is always shown in the top-left corner.
-      </li>
-    </ul>
-	<p>	
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-     <a href="../concepts/concepts-6.htm">Java views</a> 
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="tasks-37.htm">Using the Hierarchy view</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="../reference/ref-24.htm">Views and editors</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-39.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-39.htm
deleted file mode 100644
index 2cbdbcd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-39.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening a type hierarchy on a Java element
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening a type hierarchy on a Java element
-    </h1>
-	<p>
-    There are several ways to open a type hierarchy. Select a Java element in a Java view and: 
-	</p>
-    <ul>
-      <li>
-        Press <strong>F4</strong> or
-      </li>
-      <li>
-        Choose <strong>Open Type Hierarchy</strong> from the view's pop-up menu or
-      </li>
-      <li>
-        Drag and drop the element to the Hierarchy view or
-      </li>
-      <li>
-        Press <strong>Ctrl+Shift+H</strong> and select a type from the list in the resulting dialog (this works only for classes and interfaces) or
-      </li>
-      <li>
-        Select <strong>Navigate &gt; Open Type in Hierarchy</strong> from the menu bar or
-      </li>
-      <li>
-        Select <strong>Focus On...</strong> from the pop-up menu of the type hierarchy viewer.
-      </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="tasks-7.htm">Changing new type hierarchy defaults</a><br>
-       <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-37.htm">Using the Hierarchy view</a><br>
-       <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-40.htm">Opening a type hierarchy on the current text selection</a><br>
-       <a href="tasks-41.htm">Opening a type hierarchy in the workbench</a><br>
-       <a href="tasks-42.htm">Opening a type hierarchy in its own perspective</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="../reference/ref-24.htm">Views and editors</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-4.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-4.htm
deleted file mode 100644
index 3b4afa8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-4.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-    <title>
-      Showing and hiding inner types
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Showing and hiding CLASS files generated for inner types
-    </h1>
-    <p>
-      To show CLASS files for inner types:
-    </p>
-    <ol>
-	<li>
-      Select the <strong>Filters</strong> command from the Package Explorer drop-down menu.
-    </li>
-    <li>
-      Ensure that the <strong>Inner class files</strong> filter is not selected.
-    </li>
-	</ol>
-    <p>
-      To hide CLASS files for inner types:
-    </p>
-    <ol>
-	<li>
-      Select the <strong>Filters</strong> command from the Package Explorer drop-down menu.
-    </li>
-    <li>
-      Ensure that the <strong>Inner class files</strong> filter is selected.
-    </li>
-	</ol>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-2.htm">Showing and hiding elements</a><br>
-      <a href="tasks-47.htm">Filtering elements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-40.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-40.htm
deleted file mode 100644
index c43cdcf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-40.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening a type hierarchy on the current text selection
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening a type hierarchy on the current text selection
-    </h1>
-    <p>
-      To open a type hierarchy on a text selection, select the name of a Java element in the editor, and do one of the following:
-    </p>
-    <ul>
-      <li>
-        Press <strong>F4</strong>
-      </li>
-      <li>
-        select&nbsp;<strong>Open Type Hierarchy</strong> from the editor's pop-up menu
-      </li>
-      <li>
-        select <strong>Navigate &gt; Open Type Hierarchy</strong> from the menu bar
-      </li>
-    </ul>
-    <strong>Note:</strong> If the selected Java element (or editor selection) is not a type or a compilation unit, the hierarchy opens on the type enclosing the current
-    selection. 
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="tasks-37.htm">Using the Hierarchy view</a><br>
-       <a href="tasks-7.htm">Changing new type hierarchy defaults</a><br>
-       <a href="tasks-38.htm">Changing the appearance of the Hierarchy view</a><br>
-       <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-41.htm">Opening a type hierarchy in the workbench</a><br>
-       <a href="tasks-42.htm">Opening a type hierarchy in its own perspective</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>	  
-       <a href="../reference/ref-24.htm">Views and editors</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a><br>
-       <a href="../reference/ref-menu-edit.htm">Edit menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-41.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-41.htm
deleted file mode 100644
index 5d017ee..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-41.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening a type hierarchy in the workbench
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening a type hierarchy in the workbench
-    </h1>
-    <p>
-      You can open a type hierarchy from a button in the workbench toolbar.
-    </p>
-    <ol>
-      <li>
-        In the workbench toolbar, click the&nbsp;<strong>Open a Type in the Editor</strong> button.
-      </li>
-      <li>
-        Select a type in the dialog.
-      </li>
-      <li>
-        Select the&nbsp;<strong>Open in Type Hierarchy</strong> check box.
-      </li>
-      <li>
-        Click&nbsp;<strong>OK</strong>.
-      </li>
-    </ol>
-	<p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>	
-     <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> 
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="tasks-7.htm">Changing new type hierarchy defaults</a><br>
-       <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-40.htm">Opening a type hierarchy on the current text selection</a><br>
-       <a href="tasks-42.htm">Opening a type hierarchy in its own perspective</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-24.htm">Views and editors</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-42.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-42.htm
deleted file mode 100644
index baa155d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-42.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening a type hierarchy in its own perspective
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening a type hierarchy in its own perspective
-    </h1>
-    <p>
-      The default behavior for opening the Hierarchy view is to replace the Hierarchy view that is already open in the perspective. If there are no open Hierarchy views, one is
-      opened automatically.
-    </p>
-    <p>
-      Sometimes, it is useful to look at or work with several type hierarchies in different perspectives. This can be achieved by changing a workbench preference.
-    </p>
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences</strong> and select the <strong>Java</strong> category. The general Java Preferences page opens.
-      </li>
-      <li>
-        In the <strong>When Opening a Type Hierarchy</strong> category, select the radio button <strong>Open a new Type Hierarchy Perspective</strong>.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-37.htm">Using the Hierarchy view</a><br>
-       <a href="tasks-7.htm">Changing new type hierarchy defaults</a><br>
-       <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-40.htm">Opening a type hierarchy on the current text selection</a><br>
-       <a href="tasks-41.htm">Opening a type hierarchy in the workbench</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-24.htm">Views and editors</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a><br>
-       <a href="../reference/ref-13.htm">Java Base preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-43.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-43.htm
deleted file mode 100644
index e544ea5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-43.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Overriding a method
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Overriding a method using the Hierarchy view
-    </h1>
-    <p>
-      You can use the Hierarchy view to override a method:
-    </p>
-    <ol>
-      <li>
-        Open the type hierarchy for the type in which you want to add the overriding method. <em>Note: It does not matter whether the subtypes, supertypes, or type hierarchy is
-        displayed.</em>
-      </li>
-      <li>
-        In the list pane of the Hierarchy view, make sure that the <strong>Show All Inherited Members</strong> button is active in order to see all the
-        inherited members. <em>Note: The selection might not show all members if a filter (such as <strong>Hide Fields</strong> or <strong>Hide Static Members</strong>) is
-        active.</em>
-      </li>
-      <li>
-        From the pop-up menu of one of the inherited methods, select <strong>Override in <em>class name</em></strong> (where <em>class name</em> is the name
-        of the class in which the method will be created).
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-37.htm">Using the Hierarchy view</a><br>
-       <a href="tasks-87.htm">Extracting a method</a><br>
-       <a href="tasks-44.htm">Finding overridden methods</a><br>
-       <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-96.htm">Renaming a method</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-dialog-override-method.htm">Override methods</a><br>
-       <a href="../reference/ref-menu-source.htm">Source menu</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-44.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-44.htm
deleted file mode 100644
index fd60ab6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-44.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Finding overridden methods
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Finding overridden methods
-    </h1>
-    <p>
-      You can discover which methods override a selected method.
-    </p>
-    <ol>
-      <li>
-        Open the type hierarchy for the selected method's declaring type. Toggle on the <strong>Show the Subtype Hierarchy</strong> toolbar button.
-      </li>
-      <li>
-        In the list pane of the Hierarchy view, make sure that the&nbsp;<strong><strong>Lock View and Show Members in Hierarchy</strong></strong> button is toggled on. This option
-        locks the current class in the method pane and shows only those classes in the upper view that implement the currently selected method of the locked class. 
-        <p>
-        <img src="../images/tasks-8.gif" width=193 height=199 alt="Hierarchy view in Filtered Subtypes mode">
-        </p>
-        The methods of interest are shown in the upper pane. You can select any method and open it in an editor.
-      </li>
-    </ol>
-     <em>Note: The selection might not show all members if a filter (such as <strong>Hide Fields</strong> or <strong>Hide Static Members</strong>) is active.<br>
-    </em> 
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"><br>
-    </p>
-	<p>
-	   <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a> 
-    </p>
-	<p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="tasks-37.htm">Using the Hierarchy view</a><br>
-       <a href="tasks-47.htm">Filtering elements</a><br>
-       <a href="tasks-73.htm">Opening an editor for a selected element</a><br>
-       <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-43.htm">Overriding a method</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-dialog-override-method.htm">Override methods</a><br>
-       <a href="../reference/ref-type-hierarchy.htm">Type Hierarchy view</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-45.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-45.htm
deleted file mode 100644
index b088caf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-45.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <title>
-      Using the Package Explorer view
-    </title>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using the Package Explorer view
-    </h1>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="tasks-47.htm">Filtering elements</a><br>
-       <a href="tasks-2.htm">Showing and hiding elements</a><br>
-       <a href="tasks-51.htm">Moving folders, packages and files</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-47.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-47.htm
deleted file mode 100644
index b37e34a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-47.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Filtering elements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Filtering elements
-    </h1>
-    <p>
-      To filter elements:
-    </p>
-    <ol>
-      <li>
-        On the Package Explorer toolbar, click the <strong>Menu</strong> button and choose <strong>Filters</strong>.
-      </li>
-      <li>
-        Select or clear the filters that you want to apply to the view (read <strong>Filter description</strong> to learn about the selected filter's functionality).
-      </li>
-      <li>
-        Optionally, you can select patterns for filtering the view:
-        <ul>
-          <li>
-            Select the <strong>Name filter patterns</strong> checkbox at the top of the dialog.
-          </li>
-          <li>
-            In the text field below, specify the desired patterns (names matching one of the patterns will be hidden).
-          </li>
-        </ul>
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-	<p>
-    <a href="../concepts/concepts-3.htm">Java projects</a> 
-    </p>
-	<p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="tasks-45.htm">Using the Package Explorer</a><br>
-       <a href="tasks-3.htm">Showing and hiding system files</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>	  
-       <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-5.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-5.htm
deleted file mode 100644
index 7be9461..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-5.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-    <title>
-      Showing and hiding libraries
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Showing and hiding libraries
-    </h1>
-	<p>
-    To show libraries: 
-	</p>
-    <ol>
-      <li>
-        Select the <strong>Filters</strong> command from the Package Explorer's drop-down menu.
-      </li>
-      <li>
-      	In the exclude list clear the checkbox for <span class="control">Referenced libraries</span>.
-      </li>
-    </ol>
-	<p>
-    To hide libraries: 
-    </p>
-	<ol>
-      <li>
-        Select the <strong>Filters</strong> command from the Package Explorer's drop-down menu.
-      </li>
-      <li>
-      	In the exclude list select the checkbox for <span class="control">Referenced libraries</span>.
-      </li>
-    </ol>
-	<p>
-    <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"> 
-    </p>
-	<p>
-      <a href="tasks-2.htm">Showing and hiding elements</a><br>
-       <a href="tasks-47.htm">Filtering elements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-dialog-java-element-filters.htm">Java Element Filters</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-51.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-51.htm
deleted file mode 100644
index 4feba5f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-51.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Moving folders, packages, and files
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Moving folders, packages, and files
-    </h1>
-    <ol>
-      <li>
-        In the Package Explorer, select the folder, package or file you want to move.
-      </li>
-      <li>
-        Drag-and-drop the selected resources onto the desired location.
-      </li>
-    </ol>
-    <p>
-      <strong>Note</strong>: You can use drag-and-drop to move resources between different workbench windows. Select a resource you want to move, and drag-and-drop it onto the
-      desired destination. If you want to copy rather than move, hold the <strong>Ctrl</strong> key down while dragging.
-    </p>
-    
-<p> You can also use drag-and-drop to copy resources between the workbench and 
-  the desktop (both ways), but you cannot move files from the desktop to the workbench 
-  using drag-and-drop. </p>
-    <p>
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-       <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-45.htm">Using the Package Explorer</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a><br>
-       <a href="tasks-85.htm">Copying and moving Java elements</a><br>
-       <a href="tasks-77.htm">Opening a package</a><br>
-       <a href="tasks-90.htm">Renaming a package</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-54.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-54.htm
deleted file mode 100644
index ab55650..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-54.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Using the Java editor
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using the Java editor
-    </h1>
-    <p>
-      <strong>Note:</strong> Keyboard shortcuts used in the section (Java editor-related tasks) are the default key bindings.<br>
-       You can change between the <strong>Standard</strong> and the <strong>Emacs</strong> key binding sets by using the
-       <strong>Active configuration</strong> combo box on 
-       <strong>Window &gt; Preferences &gt; Workbench &gt; Keys</strong>.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-57.htm">Generating getters and setters</a><br>
-       <a href="tasks-58.htm">Managing import statements</a><br>
-       <a href="tasks-62.htm">Using the local history</a><br>
-       <a href="tasks-66.htm">Formatting Java code</a><br>
-       <a href="tasks-69.htm">Viewing documentation and information</a><br>
-       <a href="tasks-171.htm">Using templates</a><br>
-       <a href="tasks-203.htm">Writing your own templates</a><br>
-       <a href="tasks-172.htm">Converting line delimiters</a><br>
-       <a href="tasks-173.htm">Finding and replacing</a><br>
-       <a href="tasks-174.htm">Changing the encoding used to show the source</a><br>
-       <a href="tasks-175.htm">Using quick fix</a><br>
-       <a href="tasks-176.htm">Using Structured Selection</a><br>
-       <a href="tasks-177.htm">Commenting and uncommenting lines of code</a><br>
-       <a href="tasks-178.htm">Shifting lines of code left and right</a><br>
-       <a href="tasks-179.htm">Using Surround with try/catch</a><br>
-       <a href="tasks-6.htm">Showing single elements or whole Java files</a><br>
-       <a href="tasks-73.htm">Opening an editor for a selected element</a><br>
-       <a href="tasks-65.htm">Using content/code assist</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-java-editor.htm">Java Editor</a><br>
-       <a href="../reference/ref-view-outline.htm">Outline view for Java</a><br>
-       <a href="../reference/ref-java-editor.htm">Java editor actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-57.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-57.htm
deleted file mode 100644
index da461e5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-57.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Generating getters and setters
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Generating getters and setters
-    </h1>
-    <p>
-      The Java editor allows you to generate accessors (&quot;getters and setters&quot;) for the fields of a type inside a compilation unit.
-    </p>
-    <ol>
-      <li>
-        In the editor, select the field for which you want to generate accessors (or a type in which you want to create these methods).
-      </li>
-      <li>
-        Select <strong>Generate Getter and Setter</strong> from the <strong>Source</strong> pop-up menu.
-      </li>
-      <li>
-        A dialog will open to let you select which methods you want to create.
-      </li>
-      <li>
-        Select the methods and press OK.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-20.htm">Creating a class in an existing compilation unit</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-	</p>
-	<p>
-       <a href="../reference/ref-dialog-gettersetter.htm">Generate Getter and Setter</a><br>
-       <a href="../reference/ref-view-outline.htm">Outline view for Java</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-58.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-58.htm
deleted file mode 100644
index 7f83ba0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-58.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Managing import statements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Managing import statements
-    </h1>
-    <p>
-      The default Java editor includes several features that help you manage import statements.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-59.htm">Adding required import statements</a><br>
-       <a href="tasks-60.htm">Organizing existing import statements</a><br>
-       <a href="tasks-61.htm">Setting the order of import statements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-59.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-59.htm
deleted file mode 100644
index b211c49..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-59.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Adding required import statements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Adding required import statements
-    </h1>
-    <p>
-      The Java editor can help you adding required import statements for a selected type inside a compilation unit.
-    </p>
-    <ol>
-      <li>
-        Select a reference to a type in your Java code, and do one of the following: 
-        <ul>
-          <li>
-            Select <strong>Source &gt; Add Import</strong> from the pop-up menu in the editor
-          </li>
-          <li>
-            Select <strong>Source &gt; Add Import</strong> from the menu bar.
-          </li>
-          <li>
-            Press <strong>Ctrl + Shift + M</strong>
-          </li>
-        </ul>
-      </li>
-      <li>
-        Either the editor can identify the type or you are prompted to choose the desired type from a list of possible types.
-      </li>
-      <li>
-        The import statement is generated and inserted as specified by the import order preference.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-58.htm">Managing import statements</a><br>
-       <a href="tasks-60.htm">Organizing existing import statements</a><br>
-       <a href="tasks-61.htm">Setting the order of import statements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-6.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-6.htm
deleted file mode 100644
index b18a793..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-6.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Showing single elements or whole files
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Showing single elements or whole Java files
-    </h1>
-    <ul>
-      <li>
-        To display the selected Java file in a single element view, click the&nbsp;<strong>Show Source of Selected Element Only</strong> button in the workbench
-        toolbar, so that it is pressed.
-      </li>
-      <li>
-        To display the selected Java file in a whole (non-segmented) view, click the&nbsp;<strong>Show Source of Selected Element Only</strong> button in the
-        workbench toolbar, so that it is not pressed.
-      </li>
-    </ul>
-    <p>
-      <strong>Note:</strong> this toolbar button is enabled only when a Java editor is open.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><a href="tasks-54.htm"></a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-java-editor.htm">Java editor</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-60.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-60.htm
deleted file mode 100644
index 394a20d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-60.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Organizing existing import statements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Organizing existing import statements
-    </h1>
-    <p>
-      The Java editor can help you improve the existing import statements inside a compilation unit.
-    </p>
-    <ol>
-      <li>
-        Do one of the following while editing your Java code: 
-        <ul>
-          <li>
-            Select <strong>Source &gt; Organize Imports </strong> from the pop-up menu in the editor
-          </li>
-          <li>
-            Select <strong>Source &gt; Organize Imports</strong> from the menu bar
-          </li>
-          <li>
-            Press <strong>Ctrl</strong>+<strong>Shift</strong>+<strong>O</strong>
-          </li>
-        </ul>
-      </li>
-      <li>
-        The Java editor generates a complete list of import statements, as specified by the import order preference, and new import statements replace the old ones.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-59.htm">Adding required import statements</a><br>
-       <a href="tasks-58.htm">Managing import statements</a><br>
-       <a href="tasks-61.htm">Setting the order of import statements</a><br>
-       <a href="tasks-74.htm">Showing a type's compilation unit in the Package Explorer view</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-source.htm">Source menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-61.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-61.htm
deleted file mode 100644
index a244a87..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-61.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Setting the order of import statements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Setting the order of import statements
-    </h1>
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences</strong>.
-      </li>
-      <li>
-        In the left pane, expand the <strong>Java</strong> category and select <strong>Organize Imports</strong>.
-      </li>
-      <li>
-        The Organize Imports page defines the sorting order of import statements.
-        In the Imports list, manage the list of package prefixes as follows: 
-        <ul>
-          <li>
-            <strong>New</strong> to add a new prefix
-          </li>
-          <li>
-            <strong>Edit</strong> to change the name of an existing prefix
-          </li>
-          <li>
-            Use <strong>Up</strong> and <strong>Down</strong> buttons to rearrange the sequence
-            of the list by moving the selected prefix up or down
-          </li>
-          <li>
-            <strong>Remove</strong> to remove the selected prefix from the list
-          </li>
-          <li>
-            Use <strong>Load...</strong> and <strong>Save...</strong> to load a list of prefixes from a file
-            or to store it to a file
-          </li>
-        </ul>
-      </li>
-      <li>
-        In the <strong>Number of imports needed before .*</strong> field,
-        type the number of import statements that are allowed to refer to the
-        same package before <em>&lt;package prefix&gt;.*</em> is used.
-        This number is called the import threshold.
-      </li>
-      <li>
-        Click <strong>OK</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-59.htm">Adding required import statements</a><br>
-       <a href="tasks-58.htm">Managing import statements</a><br>
-       <a href="tasks-60.htm">Organizing existing import statements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-22.htm">Organize Import preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-62.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-62.htm
deleted file mode 100644
index 8ab0e29..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-62.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Using the local history
-    </title>
-  </head>
-  <body>
-    <h1>
-      Using the local history
-    </h1>
-    <p>
-      The JDT extends the workbench concept of a local history in three ways:
-    </p>
-    <ul>
-      <li>
-        A file can be replaced with an edition from the local history not just in the Navigator but also in the Package Explorer view.
-      </li>
-      <li>
-        The JDT allows you to compare and/or replace individual Java elements (types and their members) with editions from the local history.
-      </li>
-      <li>
-        The JDT allows you to restore Java elements (and files) deleted from the workbench that have been kept in the local history.
-      </li>
-    </ul>
-    <p>
-      Note: Files and Java elements such as types and their members change in time. A 'snapshot' of what they look like a point in time (as saved in the local
-      history) is called an edition.
-    </p>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      	<a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-       	<a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-      <a href="tasks-63.htm">Replacing a Java element with a local history edition</a><br>
-      <a href="tasks-63a.htm">Comparing a Java element with a local history edition</a><br>
-      <a href="tasks-64.htm">Restoring a deleted workbench element</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-     </p>
-     <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-63.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-63.htm
deleted file mode 100644
index 28abac4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-63.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Replacing a Java element with a local history edition
-    </title>
-  </head>
-  <body>
-    <h1>
-      Replacing a Java element with a local history edition
-    </h1>
-    <ol>
-      <li>
-        Make sure that a Java view is visible.
-      </li>
-      <li>
-        Open a Java editor for the Java file in which you want to replace a Java element with an edition from the local history.
-      </li>
-      <li>
-        Activate the editor by clicking its tab in the editor area. The Java view also displays the Java file. <em>Note: The Package Explorer can be configured to show or not show
-        Java elements in files. Use <strong>Window &gt; Preferences &gt; Java &gt; Appearance &gt; Show Members in Package Explorer</strong> to set your preference.</em>
-      </li>
-      <li>
-        Select the element that you want to replace.
-      </li>
-      <li>
-        From the element's pop-up menu, select <strong>Replace With &gt; Element from Local History</strong>.
-      </li>
-      <li>
-        In the upper pane of the resulting dialog, all available editions of the selected element in the local history are displayed.
-      </li>
-      <li>
-        Select an edition in the upper pane to view the differences between the selected edition and the edition in the workbench.
-      </li>
-      <li>
-        When you have identified the edition with which you want to replace the existing Java element, click <strong>Replace</strong>.
-      </li>
-      <li>
-        The local history edition replaces the current one in the editor. <em>Note: The changed compilation unit has not yet been saved at this point.</em>
-      </li>
-    </ol>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-62.htm">Using the local history</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-view-outline.htm">Outline view for Java</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-63a.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-63a.htm
deleted file mode 100644
index 4d85be4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-63a.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Comparing a Java element with a local history edition
-    </title>
-  </head>
-  <body>
-    <h1>
-      Comparing a Java element with a local history edition
-    </h1>
-    <ol>
-      <li>
-        Make sure that a Java view is visible.
-      </li>
-      <li>
-        Open a Java editor for the Java file in which you want to compare a Java element with an edition from the local history.
-      </li>
-      <li>
-        Activate the editor by clicking its tab in the editor area. The Java view also displays the Java file.
-        <em>Note: The Package Explorer can be configured to show or not show
-        Java elements in files. Use <strong>Window &gt; Preferences &gt; Java &gt; Appearance &gt; Show Members in Package Explorer</strong>
-        to set your preference.</em>
-      </li>
-      <li>
-        Select the element that you want to compare.
-      </li>
-      <li>
-        From the element's pop-up menu, select <strong>Compare With &gt; Element from Local History</strong>.
-      </li>
-      <li>
-        In the upper pane of the resulting dialog, all available editions of the selected element in the local history are displayed.
-      </li>
-      <li>
-        Select an edition in the upper pane to view the differences between the selected edition and the edition in the workbench.
-      </li>
-      <li>
-        If you are done with the comparison, click OK to close the dialog.
-      </li>
-    </ol>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-62.htm">Using the local history</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-view-outline.htm">Outline view for Java</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-64.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-64.htm
deleted file mode 100644
index 670c796..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-64.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Restoring a deleted workbench element
-    </title>
-  </head>
-  <body>
-    <h1>
-      Restoring a deleted workbench element
-    </h1>
-    <ol>
-      <li>
-        Ensure that a Java view that show Java elements inside files (such as the Outline view) is visible.
-      </li>
-      <li>
-        Open the compilation unit to which you want to add a previously removed Java element from the local history.
-      </li>
-      <li>
-        Activate the editor by clicking its tab in the editor area, and the Java view shows the content of the Java file.
-      </li>
-      <li>
-        In the Java view, select the element to whose container type you want to restore the deleted element.
-      </li>
-      <li>
-        From the type's pop-up menu in the Java view, select <strong>Restore from Local History</strong>.
-      </li>
-      <li>
-        In the upper left pane of the resulting dialog, all available editions of the selected element in the local history are displayed.
-      </li>
-      <li>
-        In the left pane check all elements that you want to replace.
-      </li>
-      <li>
-      	For every checked element select an edition in the right hand pane and view its content in the bottom pane.
-      </li>
-      <li>
-        When you have identified the edition that you want to restore, press <strong>Restore</strong>.
-        The local history editions are loaded into the editor.
-      </li>
-    </ol>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-62.htm">Using the local history</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-view-outline.htm">Outline view for Java</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-65.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-65.htm
deleted file mode 100644
index 7bf7aec..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-65.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Using content/code assist
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Using content/code assist
-    </h1>
-    <p>
-      You can use content assist (also called code assist) when writing Java code or Javadoc comments.
-    </p>
-    <ol>
-      <li>
-        Place your cursor in a valid position on a line of code in an editor and either 
-        <ul>
-          <li>
-            Press <strong>Ctrl</strong>+<strong>Space</strong>
-          </li>
-          <li>
-            Select <strong>Edit</strong> &gt; <strong>Content Assist</strong> from the menu bar
-          </li>
-        </ul>
-        If the Java editor finds valid candidates for this position, a list of possible completions is shown in a floating window. You can type further to narrow the list. You can
-        also hover over the selected list items to view its Javadoc information, if it is available.
-      </li>
-      <li>
-        Use the arrow keys or the mouse pointer to navigate through the possible completions.
-      </li>
-      <li>
-        Select an item in the list to complete the fragment by doing one of the following: 
-        <ul>
-          <li>
-            Selecting it and pressing <strong>Enter</strong>
-          </li>
-          <li>
-            Double-clicking it
-          </li>
-          <li>
-            <em>Note: When a list item is selected, you can view any available Javadoc information for this item in hover help. Note that you must click an item to select it in
-            the list before you can view Javadoc hover help for it.</em>
-          </li>
-        </ul>
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-11.htm">Scrapbook</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-66.htm">Formatting Java code</a><br>
-       <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-71.htm">Viewing Javadoc information</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-143.htm">Java Content Assist</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-66.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-66.htm
deleted file mode 100644
index 89b23b1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-66.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Formatting Java code
-    </title>
-  </head>
-  <body>
-    <h1>
-      Formatting Java code
-    </h1>
-    <p>
-      The Java editor supports the formatting of Java code according to your personal preferences.
-    </p>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-68.htm">Setting code formatting preferences</a><br>
-       <a href="tasks-67.htm">Formatting files or portions of code</a><br>
-       <a href="tasks-65.htm">Using content/code assist</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-17.htm">Code Formatter preferences</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-67.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-67.htm
deleted file mode 100644
index 6984108..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-67.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Formatting files or portions of code
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Formatting files or portions of code
-    </h1>
-    <p>
-      To format Java code:
-    </p>
-    <ol>
-      <li>
-        Use the Code Formatting Preferences page (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Java</strong> &gt; <strong>Code Formatter</strong>) to
-        specify your preferences for code formatting.
-      </li>
-      <li>
-        Open a Java file and select the code you want to format. If nothing is selected, then all of the editor content is formatted.
-      </li>
-      <li>
-        Format the code by either 
-        <ul>
-          <li>
-            Selecting <strong>Source</strong> &gt; <strong>Format</strong> from the editor's pop-up menu or
-          </li>
-          <li>
-            Pressing <strong>Ctrl+Shift+F</strong> or
-          </li>
-          <li>
-            Selecting <strong>Source</strong> &gt; <strong>Format</strong> from the menu bar.
-          </li>
-        </ul>
-      </li>
-    </ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-      <a href="tasks-66.htm">Formatting Java code</a><br>
-      <a href="tasks-68.htm">Setting code formatting preferences</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-source.htm">Source menu</a><br>
-      <a href="../reference/ref-17.htm">Code Formatter preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-68.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-68.htm
deleted file mode 100644
index 0fd25d6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-68.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Setting code formatting preferences
-    </title>
-  </head>
-  <body>
-    <h1>
-      Setting code formatting preferences
-    </h1>
-    <ol>
-      <li>
-        From the workbench menu bar, select <strong>Window</strong> &gt; <strong>Preferences.</strong> The Workbench Preferences page opens.
-      </li>
-      <li>
-        In the left pane, expand the <strong>Java</strong> category and select <strong>Code Formatter</strong>. The Code Formatter Preferences page opens.
-      </li>
-      <li>
-        In the <strong>New Lines</strong>, <strong>Line Splitting,</strong> and <strong>Style</strong> tabs, select the code formatting
-        conventions that you want the formatter to follow.
-      </li>
-      <li>
-        Note that at the bottom of the page, you can observe an example effect of each individual code formatting option and see a preview of what your formatted code will look
-        like.
-      </li>
-      <li>
-        Click <strong>OK</strong> when you are done.
-      </li>
-    </ol>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-66.htm">Formatting Java code</a><br>
-       <a href="tasks-67.htm">Formatting files or portions of code</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-17.htm">Code Formatter preferences</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-69.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-69.htm
deleted file mode 100644
index f7cb9b4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-69.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Viewing documentation and information
-    </title>
-  </head>
-  <body>
-    <h1>
-      Viewing documentation and information
-    </h1>
-    <p>
-      You can view different kinds of documentation information while working in the workbench.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-71.htm">Viewing Javadoc information</a><br>
-       <a href="../tasks/tasks-70.htm">Viewing marker help</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-7.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-7.htm
deleted file mode 100644
index 6614304..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-7.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Changing new type hierarchy defaults
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Changing new type hierarchy defaults
-    </h1>
-    <p>
-      New type hierarchies can open in a Hierarchy view or in a Java Hierarchy perspective. You can indicate which is the default method for opening new type hierarchies on the
-      preferences pages.
-    </p>
-	<ol>
-    <li>
-      Select <strong>Window</strong> &gt; <strong>Preferences</strong>, and select the <strong>Java</strong> category. The general Java Preferences page opens.
-    </li>
-    <li>
-      Use the radio buttons that appear under <strong>When opening a Type Hierarchy</strong> to indicate your preference.
-    </li>
-	</ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-39.htm">Opening a type hierarchy on a Java element</a><br>
-       <a href="tasks-40.htm">Opening a type hierarchy on the current text selection</a><br>
-       <a href="tasks-41.htm">Opening a type hierarchy in the workbench</a><br>
-       <a href="tasks-42.htm">Opening a type hierarchy in its own perspective</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-13.htm">Java Base preference page</a><br>
-      <a href="../reference/ref-13.htm"></a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-70.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-70.htm
deleted file mode 100644
index ed66991..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-70.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Viewing marker help
-    </title>
-  </head>
-  <body>
-    <h1>
-      Viewing marker help
-    </h1>
-    <p>
-      You can use hover help to view various kinds of information in the marker bar in the editor area. For example:
-    </p>
-    <ul>
-      <li>
-        Information about problems
-      </li>
-      <li>
-        Information about breakpoints
-      </li>
-    </ul>
-    <p>
-      Hover your mouse pointer over the marker in the marker bar to view any available hover help.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="../tasks/tasks-69.htm">Viewing documentation and information</a><br>
-       <a href="../tasks/tasks-71.htm">Viewing Javadoc information</a>
-    </p>
-    <p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-71.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-71.htm
deleted file mode 100644
index d8fde9f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-71.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Viewing Javadoc information
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Viewing Javadoc information
-    </h1>
-    <p>
-    The JDT provides easy access to Javadoc information for the code edited in the Java editor.
-    </p>
-    <ol>
-      <li>
-        Open the Java editor on a Java file.
-      </li>
-      <li>
-        Place the mouse pointer over the element whose Javadoc information you want to view (a method name, for example).
-      </li>
-      <li>
-        If Javadoc information is available, a pop-up window opens, displaying the Javadoc information. HTML Javadoc can be viewed as any other resource in the workbench, through
-        an embedded or external editor or viewer. Import the Javadoc into the workbench and double-click it in the Package Explorer.
-      </li>
-    </ol>
-    <p>
-      You can also view Javadoc information by:
-    </p>
-    <ol>
-      <li>
-        Opening the Java editor on a Java file.
-      </li>
-      <li>
-        Placing the mouse pointer over the element whose Javadoc information you want to view (a method name, for example).
-      </li>
-      <li>
-        Pressing <kbd>F2</kbd> or selecting <strong>Edit &gt; Show Tooltip Description</strong> from the menu bar.
-      </li>
-    </ol>
-    <p>
-      To view Javadoc in an external browser:
-    </p>
-    <ol>
-      <li>
-        Opening the Java editor on a Java file.
-      </li>
-      <li>
-        Placing the caret over the element whose Javadoc information you want to view (a method name, for example).
-      </li>
-      <li>
-        Pressing <kbd>Shift+F2</kbd> or selecting <strong>Navigate &gt; Open External Javadoc</strong> from the menu bar.
-      </li>
-    </ol>
-    <p>
-       <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a><br>
-       <a href="tasks-65.htm">Using content/code assist</a><br>
-       <a href="tasks-69.htm">Viewing documentation and information</a><br>
-       <a href="tasks-70.htm">Viewing marker help</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-       <a href="../reference/ref-dialog-javadoc-location.htm">Javadoc Location</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-72.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-72.htm
deleted file mode 100644
index 5c51690..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-72.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Navigating the JDT Workbench
-    </title>
-  </head>
-  <body>
-    <h1>
-      Navigating the JDT Workbench
-    </h1>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-73.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-73.htm
deleted file mode 100644
index 656535c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-73.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening an editor for a selected element
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening an editor for a selected element
-    </h1>
-    <p>
-      You can select the name of a type, method, or field in the Java source editor or in the scrapbook and open an editor on the definition of the element.
-    </p>
-    <ol>
-      <li>
-        In the Java editor, select the name of a type, method, or field.
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          <li>
-            From the menu bar, select <strong>Navigate</strong> &gt; <strong>Open Declaration</strong>
-          </li>
-          <li>
-            From the editor's pop-up menu, select <strong>Open Declaration</strong>
-          </li>
-          <li>
-            Press <strong>F3</strong>
-          </li>
-        </ul>
-      </li>
-    </ol>
-    <p>
-      If there are multiple definitions of the same name, a dialog is shown, and you can select one definition that you want to open. 
-      An editor opens containing the selected element.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-54.htm">Using the Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-navigate.htm">Navigate menu</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-74.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-74.htm
deleted file mode 100644
index 519df2f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-74.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Showing an element in the Package Explorer
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Showing an element in the Package Explorer view
-    </h1>
-    <p>
-      You can reveal an element's location in the Package Explorer view
-    </p>
-    <ol>
-      <li>
-        In the Hierarchy or Outline view, select a type or one of its members.
-      </li>
-      <li>
-        From the menu bar, select <strong>Navigate</strong> &gt; <strong>Show In</strong> &gt; <strong>Package Explorer</strong>.
-        If the Package Explorer is not already open, then it opens in the
-        current perspective. The workbench navigates to the selected element.
-      </li>
-      <li>
-        From the Java editor's pop-up menu, select 
-        <strong>Show in Package Explorer</strong> (the currently edited compilation unit will be revealed)
-      </li>
-    </ol>
-    <p>
-      <strong>Note:</strong> The element might not be revealed if Package Explorer filters are active or the <strong>Window &gt; Preferences &gt; Java &gt; Appearance &gt; Show Members in Package
-      Explorer</strong> preference is cleared.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-executionArgs.htm">Setting execution arguments</a><br>
-       <a href="tasks-92.htm">Renaming a compilation unit</a><br>
-       <a href="tasks-75.htm">Opening a type in the Package Explorer</a><br>
-       <a href="tasks-60.htm">Organizing existing import statements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-13.htm">Java Base preference page</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-75.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-75.htm
deleted file mode 100644
index 259df3c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-75.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening a type in the Package Explorer
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening a type in the Package Explorer view
-    </h1>
-    <p>
-      You can open the Package Explorer on any type that is included on a project's class path.
-    </p>
-    <ol>
-		<li>
-			From the menu bar, select <strong>Navigate &gt; Go To &gt; Type.</strong> The Go to Type dialog opens.
-		</li>
-		<li>
-			In the <strong>Choose a type</strong> field, begin typing an expression to narrow the list of available types, using wildcards as needed. As you
-      		type, the list is filtered to display only types that match the current expression.
-      	</li>
-		<li>
-			In the <strong>Matching types</strong> list, select a type. When there is more than one definition of a type, then select a package in
-      		the <strong>Qualifier</strong> list.
-      	</li>
-		<li>
-			Click <strong>OK</strong> when you are done. The selected type is displayed in the Package Explorer.
-    	</li>
-    </ol>
-	<p>
-		<strong>Note:</strong> Revealing may not be possible if Package Explorer filters are applied.
-	</p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-74.htm">Showing a type's compilation unit in the Package Explorer</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-navigate.htm">Navigate actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-76.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-76.htm
deleted file mode 100644
index 965e8f7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-76.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening an editor on a type
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening an editor on a type
-    </h1>
-    <p>
-      You can open an editor on any type in the workbench.
-    </p>
-    <p>
-      <strong>Note:</strong> If you open a type from a CLASS or JAR file, you will see a special editor showing only method signatures unless you have attached source to it.
-    </p>
-    <ol>
-		<li>
-			Press <strong>Ctrl+Shift+T</strong> or, select <strong>Navigate</strong> &gt; <strong>Open Type</strong> from the menu bar. The Open Type dialog opens.
-		</li>
-		<li>
-			In the <strong>Choose a type</strong> field, begin typing an expression to narrow the list of available types, using wildcards as needed. As you
-			type, the list is filtered to display only types that match the current expression.
-		</li>
-		<li>
-			In the <strong>Matching types</strong> list, select a type. When there is more than one definition of a type, then select a package in
-			the <strong>Qualifier</strong> list.
-		</li>
-		<li>
-			Click <strong>OK</strong> when you are done. An editor opens on the selected type.
-		</li>
-	</ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-7.htm">Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-115.htm">Attaching source to a JAR file</a><br>
-       <a href="tasks-73.htm">Opening an editor for a selected element</a><br>
-       <a href="tasks-54.htm">Using the Java editor</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-navigate.htm">Navigate actions</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-77.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-77.htm
deleted file mode 100644
index 744edb0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-77.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Opening a package
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Opening a package
-    </h1>
-    <p>
-      To reveal a package in the tree of the Package Explorer:
-    </p>
-    <ol>
-		<li>
-			Select <strong>Navigate</strong> &gt; <strong>Go To</strong> &gt; <strong>Package</strong> from the menu bar. The Go to Package dialog opens.
-		</li>
-		<li>
-			Type a package name in the <strong>Choose a package</strong> field to narrow the list of available packages, using wildcards as needed. As you type,
-			the list is filtered to display only packages that match the current expression.
-		</li>
-		<li>
-			Select a package from the list, then click <strong>OK</strong>. The selected package is displayed in the Package Explorer.
-		</li>
-	</ol>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-74.htm">Showing a type's compilation unit in the Package Explorer</a><br>
-       <a href="tasks-90.htm">Renaming a package</a><br>
-       <a href="tasks-51.htm">Moving folders, packages, and files</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><a href="../reference/ref-menu-navigate.htm"></a>
-    </p>
-    <p>
-      <a href="../reference/ref-menu-navigate.htm">Navigate actions</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-78.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-78.htm
deleted file mode 100644
index 0ab549f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-78.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Viewing Source in a JAR File
-    </title>
-  </head>
-  <body>
-    <h1>
-      Viewing source in a JAR file
-    </h1>
-    <p>
-      Unless its source code is attached to a JAR file in the workbench, you will not be able to view the source for the JAR file.
-    </p>
-    <a href="tasks-115.htm">See Attaching Source to a JAR File</a> 
-    <p>
-    	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-79.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-79.htm
deleted file mode 100644
index 39df5a9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-79.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Searching Java code
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Searching Java code
-    </h1>
-    <p>
-      A Java search can be conducted using the Search dialog as well as using the pop-up menu of selected resources and elements.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-8.htm">Java search</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-104.htm">Conducting a Java search using pop-up menus</a><br>
-       <a href="tasks-103.htm">Conducting a Java search using the Search button</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><a href="../reference/ref-menu-search.htm"></a>
-    </p>
-    <p>
-      <a href="../reference/ref-menu-search.htm">Search menu</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-80.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-80.htm
deleted file mode 100644
index dbf7370..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-80.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Refactoring
-    </title>
-  </head>
-  <body>
-    <h1>
-      Refactoring
-    </h1>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-82.htm">Refactoring without preview</a><br>
-       <a href="../tasks/tasks-83.htm">Refactoring with preview</a><br>
-       <a href="../tasks/tasks-84.htm">Previewing refactoring changes</a><br>
-       <a href="../tasks/tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="../tasks/tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    
-<p> <a href="tasks-85.htm">Copying and moving Java elements</a><br>
-  <a href="tasks-87.htm">Extracting a method</a><br>
-  <a href="tasks-159.htm">Extracting a local variable</a><br>
-  <a href="tasks-209.htm">Extracting a constant</a><br>
-  <a href="tasks-90.htm">Renaming a package</a><br>
-  <a href="tasks-92.htm">Renaming a compilation unit</a><br>
-  <a href="tasks-94.htm">Renaming a class or interface</a><br>
-  <a href="tasks-96.htm">Renaming a method</a><br>
-  <a href="tasks-169.htm">Renaming a field</a><br>
-  <a href="tasks-204.htm">Renaming a local variable</a><br>
-  <a href="tasks-98.htm">Renaming method parameters</a><br>
-  <a href="tasks-159.htm">Changing method signature</a><br>
-  <a href="tasks-161.htm">Inlining a local variable</a><br>
-  <a href="tasks-208.htm">Inlining a method</a><br>
-  <a href="tasks-207.htm">Inlining a constant</a><br>
-  <a href="tasks-162.htm">Self encapsulating a field</a><br>
-  <a href="tasks-164.htm">Replacing a local variable with a query</a><br>
-  <a href="tasks-165.htm">Pulling members up to superclass</a><br>
-  <a href="tasks-220.htm">Pushing members down to subclasses</a><br>
-  <a href="tasks-167.htm">Moving static members between types</a><br>
-  <a href="tasks-210.htm">Moving an instance method to a component</a><br>
-  <a href="tasks-211.htm">Converting a local variable to a field</a><br>
-  <a href="tasks-216.htm">Converting an anonymous inner class to a nested class</a><br>
-  <a href="tasks-217.htm">Converting a nested type to a top level type</a><br>
-  <a href="tasks-218.htm">Extracting an interface from a type</a><br>
-  <a href="tasks-219.htm">Replacing references to a type with references to one of its subtypes</a><br>
- </p>
-<p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-81.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-81.htm
deleted file mode 100644
index dce3048..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-81.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Refactoring Steps
-    </title>
-  </head>
-  <body>
-    <h1>
-      Refactoring steps
-    </h1>
-    <p>
-      The goal of refactoring support is to improve your code without changing its behavior.
-    </p>
-    <p>
-      You can execute a refactoring in one of two different ways.
-    </p>
-    <p>
-		<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-82.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-82.htm
deleted file mode 100644
index 2ae6f24..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-82.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Refactoring without preview
-    </title>
-  </head>
-  <body>
-    <h1>
-      Refactoring without preview
-    </h1>
-    
-<ol>
-  <li> Activate a refactoring command. For example, rename a type by selecting 
-    it in the Outline view and choosing <strong>Refactor</strong> &gt; <strong>Rename</strong> 
-    from its pop-up menu. </li>
-  <li> The Refactoring Parameters page prompts you for information necessary for 
-    the action. For example, the Rename Type Refactoring dialog asks you for a 
-    new name for the selected type. </li>
-  <li> Provide the necessary data on the parameters page, and click <strong>OK</strong>. 
-  </li>
-  <li> If no problems more severe than the default level set in the Refactoring 
-    Preferences page (<strong>Window</strong> &gt; <strong>Preferences</strong> 
-    &gt; <strong>Java</strong> &gt; <strong>Refactoring</strong>) are anticipated, 
-    then the refactoring is carried out.<br>
-    If you chose in the Refactoring Preferences page to be notified of any problems 
-    after refactoring, then any detected problems are displayed at this time.<br>
-    If problems more severe than the default level set in the refactoring preferences 
-    are anticipated, then the problems page comes to the front to display the 
-    errors. </li>
-  <li> If a Stop problem was anticipated, then only the <strong>Back</strong> 
-    and <strong>Cancel</strong> buttons are enabled, and you are prevented from 
-    carrying out the refactoring. If the problems are related to data provided 
-    on the parameters page, click <strong>Back</strong> and attempt to remedy 
-    the problem. Otherwise, click <strong>Cancel</strong> to close the dialog. 
-  </li>
-  <li> If other kinds of problems were anticipated, you can click <strong>Continue</strong> 
-    to acknowledge the problems. The refactoring is carried out, and the dialog 
-    closes. </li>
-</ol>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-83.htm">Refactoring with preview</a><br>
-       <a href="tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-83.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-83.htm
deleted file mode 100644
index e7aeca2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-83.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Refactoring with preview
-    </title>
-  </head>
-  <body>
-    <h1>
-      Refactoring with preview
-    </h1>
-    <ol>
-      <li>
-        Activate a refactoring command. For example, rename a type by selecting it in the Outline view and choosing
-        <strong>Refactor</strong> &gt; <strong>Rename</strong> from its pop-up menu.
-      </li>
-      <li>
-        The Refactoring Parameters page prompts you for information necessary for the action. For example, the Rename Type Refactoring dialog
-        asks you for the new name for the selected type.
-      </li>
-      
-  <li> Provide the necessary data on the parameters page, and then click <strong>Preview</strong>. 
-  </li>
-      <li>
-        If problems more severe than the default level set in the Refactoring Preferences page (<strong>Window</strong> &gt; <strong>Preferences</strong> &gt;
-        <strong>Java</strong> &gt; <strong>Refactoring</strong>) are anticipated, then the problems page comes to the front to display anticipated errors. 
-        <ul>
-          
-      <li> If a Stop problem was anticipated, then only the <strong>Back</strong> 
-        and <strong>Cancel</strong> buttons are enabled, and you are prevented 
-        from carrying out the refactoring. If the problems are related to data 
-        provided on the parameters page, click <strong>Back</strong> and attempt 
-        to remedy the problem. Otherwise, click <strong>Cancel</strong> to close 
-        the dialog. </li>
-      <li> If other kinds of problems were anticipated, you can click <strong>Continue</strong> 
-        to acknowledge the problems and move on to the preview page. </li>
-        </ul>
-        The Refactoring Preview page opens.
-      </li>
-      
-  <li> Click <strong>OK</strong> to execute the refactoring and close the dialog. 
-  </li>
-    </ol>
-    <p>
-      <img width="159" height="27" src="../images/ngrelc.gif" alt="Related concepts" border="0">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelt.gif" alt="Related tasks">
-    </p>
-    <p>
-      <a href="tasks-82.htm">Refactoring without preview</a><br>
-       <a href="tasks-84.htm">Previewing refactoring changes</a><br>
-       <a href="tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    <p>
-      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-84.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-84.htm
deleted file mode 100644
index 8091247..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-84.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Previewing refactoring changes
-    </title>
-  </head>
-  <body>
-    <h1>
-      Previewing refactoring changes
-    </h1>
-    <p>
-      The Preview page shows the proposed effects of a refactoring action. You can use this page as follows.
-    </p>
-    <ul>
-      <li>
-        Select a node in the tree to examine a particular change.
-      </li>
-      <li>
-        To examine a change inside a compilation unit, expand a compilation unit node in the tree and select one of its children.
-      </li>
-      <li>
-        When selecting nodes, the compare viewer is adjusted only to show a preview for the selected node.
-      </li>
-      <li>
-        Deselect a node to exclude it from the refactoring.
-      </li>
-    </ul>
-    <p>
-      <strong>Note</strong>: Deselecting a node can result in compile errors when performing the refactoring. Only deselect a change if you are sure you want to exclude it from
-      the refactoring.
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="../tasks/tasks-83.htm">Refactoring with preview</a><br>
-       <a href="../tasks/tasks-100.htm">Undoing a refactoring operation</a><br>
-       <a href="../tasks/tasks-101.htm">Redoing a refactoring operation</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-85.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-85.htm
deleted file mode 100644
index 9ad31ed..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-85.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Copying and moving Java elements
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Copying and moving Java elements
-    </h1>
-    <p>
-      To move Java elements:
-    </p>
-    <ol>
-		<li>
-			From a Java view, select the Java elements you want to move.
-		</li>
-		<li>
-			From the menu bar, select <strong>Refactor &gt; Move</strong> or, from the view's pop-up menu, select <strong>Refactor &gt;&nbsp;</strong>Move.
-		</li>
-		<li>
-			In the resulting dialog, select the new location for the element and press <strong>OK</strong>.<br>
-			<strong>Note:</strong> Moving static members (such as methods and types), classes or compilation units allows you to choose to also update references to these elements.
-		</li>
-	</ol>
-    <p>
-      You can also move Java elements by dragging them and dropping in the desired new location.
-    </p>
-    <p>
-      <strong>Note</strong>: Dragging and dropping compilation units and types allows you to update references to these elements. In the dialog that appears on dropping, press
-      <strong>Yes</strong> if you want to update references, press <strong>Preview</strong> if you want to see the preview of the reference updates, press <strong>No</strong> if
-      you want to move the elements without updating references or press <strong>Cancel</strong> if you want to cancel the move operation.
-    </p>
-    <p>
-    </p>
-    <p>
-      To copy Java elements you need to copy them to the clipboard and paste them in the desired new location:
-    </p>
-    <ol>
-		<li>
-			From a Java view, select the Java elements you want to copy to the clipboard and do one of the following:
-		    <ul>
-			      <li>
-			        Press <strong>Ctrl+C</strong>
-			      </li>
-			      <li>
-			        From the menu bar, select <strong>Edit &gt; Copy</strong>
-			      </li>
-			      <li>
-			        From the view's pop-up menu, select <strong>Copy</strong>
-			      </li>
-		    </ul>
-		</li>
-		<li>
-			Now, to paste the elements, select the desired destination and do one of the following:
-		    <ul>
-		      <li>
-		        Press <strong>Ctrl+V</strong>
-		      </li>
-		      <li>
-		        From the menu bar, select <strong>Edit &gt; Paste</strong>
-		      </li>
-		      <li>
-		        From the view's pop-up menu, select <strong>Copy</strong>
-		      </li>
-		    </ul>
-		</li>
-	</ol>
-    <p>
-      You can also copy Java elements by dragging them and dropping in the desired new location. You will need to have <strong>Ctrl</strong> pressed while dragging to copy the
-      elements.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-11.htm">Creating Java elements</a><br>
-       <a href="tasks-51.htm">Moving folders, packages, and files</a><br>
-       <a href="tasks-85.htm">Copying and moving Java elements</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><a href="../reference/ref-menu-edit.htm"></a>
-    </p>
-    <p>
-      <a href="../reference/ref-menu-edit.htm">Edit menu</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-86.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-86.htm
deleted file mode 100644
index f012389..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-86.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Moving a compilation unit
-    </title>
-  </head>
-  <body>
-    <h1>
-      Moving a compilation unit
-    </h1>
-    <p>
-      You can move a compilation unit to a different package. Imports and references are automatically updated.
-    </p>
-    <p>
-      To move a selected compilation unit and update all references to it:
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer, select a compilation unit.
-      </li>
-      <li>
-        From the compilation unit's pop-up menu, select <strong>Move to Another Package</strong>. The Move Compilation Unit to Another Package page opens.
-      </li>
-      <li>
-        In the <strong>Choose package to move the compilation unit to</strong> field, type or click <strong>Browse</strong> to select the name of the package
-        where you want the compilation unit to move.
-      </li>
-      <li>
-        Click <strong>Next</strong> to perform a refactoring without preview, or click <strong>Finish</strong> to perform a refactoring with
-        preview.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="tasks-82.htm">Refactoring without preview</a><br>
-       <a href="tasks-83.htm">Refactoring with preview</a><br>
-       <a href="../tasks/tasks-92.htm">Renaming a compilation unit</a><br>
-       <a href="../tasks/tasks-51.htm">Moving folders, packages, and files</a><br>
-       <a href="../tasks/tasks-85.htm">Copying and moving Java elements</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a>
-    </p>
-    <p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-87.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-87.htm
deleted file mode 100644
index 8631ca6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-87.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Extracting a method
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Extracting a method
-    </h1>
-    <p>
-      To extract a method:
-    </p>
-    <ol>
-      <li>
-        In an editor, select a set of statements or an expression from a method body.
-      </li>
-      <li>
-        Do one of the following: 
-        <ul>
-          <li>
-            From the pop-up menu in the editor, select <strong>Refactor</strong> &gt; <strong>Extract Method</strong>.
-          </li>
-          <li>
-            From the menu bar, select <strong>Refactor</strong> &gt; <strong>Extract Method</strong>.
-          </li>
-        </ul>
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-43.htm">Overriding a method</a><br>
-       <a href="tasks-96.htm">Renaming a method</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><a href="../reference/ref-154.htm"></a>
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a><br>
-       <a href="../reference/ref-154.htm">Extract method errors</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-88.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-88.htm
deleted file mode 100644
index 0beb3b7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-88.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <img src="../images/tasks-27.gif" width=412 height=435 alt="Parameters page of the Extract Method refactoring dialog"> 
-    <p>
-      Extract Method Parameters Page
-    </p>
-    
-<ul>
-  <li> In the <strong>Method name</strong> field, type a name for the new method 
-    that will be extracted. </li>
-  <li> In the <strong>Access Modifier</strong> list, specify the method's visibility 
-    (public, default, protected, or private). </li>
-  <li> You can <strong>Add thrown runtime exceptions to method signature</strong> 
-    by selecting the corresponding checkbox. </li>
-  <li>You can rearrange and rename the parameters for the new method.</li>
-  <li> Click <strong>OK</strong> to perform a quick refactoring, or click <strong>Preview</strong> 
-    to perform a controlled refactoring. </li>
-</ul>
-    <p>
-      Related Topics:
-    </p>
-    <ul>
-      <li>
-        <a href="tasks-82.htm">See Refactoring without Preview</a>
-      </li>
-      <li>
-        <a href="tasks-83.htm">See Refactoring with Preview</a>
-      </li>
-    </ul>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-89.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-89.htm
deleted file mode 100644
index c729dd6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-89.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Problems page
-    </title>
-  </head>
-  <body>
-    <h1>
-      Problems page
-    </h1>
-    <p>
-      The three top-most mistakes when extracting a method are:
-    </p>
-    <ul>
-      <li>
-        The selection does not cover statements or an expression from a method body.
-      </li>
-      <li>
-        The selection does not cover a whole set of statements or an expression.
-      </li>
-    </ul>
-    <p>
-      You can use the <strong>Edit</strong> &gt; <strong>Expand Selection To</strong> actions to expand an selection to a valid expression or set of statements.
-    </p>
-    <p>
-      On the problems pages, you can press F1 to link to a detailed description of errors.
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-9.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-9.htm
deleted file mode 100644
index 4be87f8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-9.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Changing debugger launch options
-    </title>
-  </head>
-  <body>
-    <h1>
-      Changing the active perspective when launching
-    </h1>
-    You can control which perspective becomes active when a program is launched
-    in debug or run mode.
-    <p>To activate a particular perspective when a program is launched in debug
-    mode, do the following:</p>
-    <ol>
-      <li>Open the debugger preferences page (<strong>Window</strong>  &gt; <strong>Preferences</strong> 
-        &gt; <strong>Debug</strong>).</li>
-      <li>Select a perspective from the <strong>Default perspective for Debug</strong> 
-        combo box.&nbsp; This will cause the perspective you choose to become
-        active whenever a program is launched in debug mode.</li>
-      <li>To override your default choice for a particular launch configuration,
-        you can select a perspective from the <strong>Perspective to switch
-        to or open when launched in: Debug mode</strong> option in the <strong>Common</strong> tab in the launch configuration dialog.</li>
-    </ol>
-    <p>To activate a particular perspective when a program is launched in run
-    mode, do the following:</p>
-    <ol>
-      <li>Open the debugger preferences page (<strong>Window</strong>  &gt; <strong>Preferences</strong> 
-        &gt; <strong>Debug</strong>).</li>
-      <li>
-        Setting a perspective from the <strong>Default perspective for Run</strong>
-        combo box.&nbsp; This will cause the perspective you choose to become
-        active whenever a program is launched in run mode.
-      </li>
-      <li>
-        To override your default choice for a particular launch configuration,
-        you can select a perspective from the <strong>Perspective to switch to
-        or open when launched in: Run mode</strong> option in the <strong>Common</strong> tab in the launch configuration dialog.
-      </li>
-    </ol>
-    <p>If the selected perspective is not open at the time the program is
-    launched in run or debug mode, that perspective is created.&nbsp;</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/cremdbug.htm">Remote debugging</a><br>
-       <a href="../concepts/clocdbug.htm">Local debugging</a><br>
-       <a href="../concepts/concepts-5.htm">Java perspectives</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-      <br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-executionArgs.htm">Setting execution arguments</a><br>
-       <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-45.htm">Console view</a><br>
-       <a href="../reference/ref-11.htm">Debug preferences</a><br>
-       <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-4.htm">Run and debug actions</a><br>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-90.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-90.htm
deleted file mode 100644
index 192126f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-90.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Renaming a package
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Renaming a package
-    </h1>
-    <p>
-      To rename a package:
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer or the Packages view select the package that you want to rename.
-      </li>
-      <li>
-        From the view's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong>.
-      </li>
-    </ol>
-    <p>
-      This updates all import statements of any affected compilation units and all fully qualified references to types declared in the renamed package.
-    </p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a><br>
-       <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-77.htm">Opening a package</a><br>
-       <a href="tasks-51.htm">Moving folders, packages, and files</a><br>
-       <a href="tasks-15.htm">Creating a new Java package</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialog</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-91.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-91.htm
deleted file mode 100644
index ce352c0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-91.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <img src="../images/tasks-28.gif" width=412 height=341 alt="Parameters page of the Rename Package refactoring dialog"> 
-    <p>
-      Rename Package Parameters Page
-    </p>
-    <ul>
-      <li>
-        In the <strong>Enter new name</strong> field, type a new name for the package.
-      </li>
-      <li>
-        If you do not want to update references to the renamed package, deselect the <strong>Update references to the renamed element</strong> checkbox.
-      </li>
-      <li>
-        If you want to update Javadoc references to the renamed package, select the <strong>Update references in Javadoc comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in regular (not Javadoc) comments, select the <strong>Update references in regular comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in string literals, select the <strong>Update references in string literals</strong> checkbox.
-      </li>
-      
-  <li> Click <strong>OK</strong> to perform a quick refactoring, or click <strong>Preview</strong> 
-    to perform a controlled refactoring. </li>
-    </ul>
-    <p>
-    	<strong>Note:</strong> References in Javadoc comments, regular comments and string literals are updated based on textual matching. It is recommended that you
-    	perform a controlled refactoring and review the suggested changes if you select one of these options.
-    </p> 
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-    	<a href="tasks-82.htm">See Refactoring without Preview</a><br>
-    	<a href="tasks-83.htm">See Refactoring with Preview</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-92.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-92.htm
deleted file mode 100644
index 66b1557..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-92.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Renaming a compilation unit
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Renaming a compilation unit
-    </h1>
-    <p>
-      To rename a compilation unit:
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer, select the compilation unit you want to rename.
-      </li>
-      <li>
-        From the view's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong>.
-      </li>
-    </ol>
-    <p>
-      Renaming a compilation unit also renames (and updates all references to) the top-level type that has the same name as the compilation unit. For example, renaming a
-      compilation unit <em>A.java</em> in which a class <em>A</em> is declared also renames class <em>A</em> and updates all references to it.
-    </p>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-9.htm">Refactoring support</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-85.htm">Copying and moving Java elements</a><br>
-       <a href="tasks-107.htm">Viewing compilation errors and warnings</a><br>
-       <a href="tasks-20.htm">Creating a class in an existing compilation unit</a><br>
-       <a href="tasks-25.htm">Creating a new interface in a compilation unit</a><br>
-       <a href="tasks-74.htm">Showing a type's compilation unit in the Packages view</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-93.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-93.htm
deleted file mode 100644
index 50c734b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-93.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <img src="../images/tasks-29.gif" width=412 height=341 alt="Parameters page of the Rename Compilation Unit refactoring dialog"> 
-    <p>
-      Rename Compilation Unit Parameters Page
-    </p>
-    <ul>
-      <li>
-        In the <strong>Enter new name</strong> field, type a new name for the compilation unit.
-      </li>
-      <li>
-        If you do not want to update references to the renamed compilation unit, deselect the <strong>Update references to the renamed element</strong> checkbox.
-      </li>
-      <li>
-        If you want to update Javadoc references to the renamed compilation unit, select the <strong>Update references in Javadoc comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in regular (not Javadoc) comments, select the <strong>Update references in regular comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in string literals, select the <strong>Update references in string literals</strong> checkbox.
-      </li>
-      
-  <li> Click <strong>OK</strong> to perform a quick refactoring, or click <strong>Preview</strong> 
-    to perform a controlled refactoring. </li>
-    </ul>
-    <p>
-    	<strong>Note:</strong> References in Javadoc comments, regular comments and string literals are updated based on textual matching. It is recommended
-    	that you perform a controlled refactoring and review the suggested changes if you select one of these options.
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-    	<a href="tasks-82.htm">See Refactoring without Preview</a><br>
-    	<a href="tasks-83.htm">See Refactoring with Preview</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-94.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-94.htm
deleted file mode 100644
index b0d2e34..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-94.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <meta name="Author" content="Adam Kiezun">
-    <title>
-      Renaming a class or interface
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Renaming a class or an interface
-    </h1>
-    <p>
-      You can rename a class or an interface by modifying its declaration in the compilation unit in which it is declared. However, if you also want to update all references to
-      it, do one of the following:
-    </p>
-    <ol>
-      <li>
-        In a Java view presenting classes and/or interfaces (e.g. the Outline view, the Type Hierarchy views, etc.) select a class or interface.
-      </li>
-      <li>
-        From the class' or interface's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong> or use the
-        <strong>Refactor</strong> &gt; <strong>Rename</strong> action from the global menu bar.
-      </li>
-    </ol>
-    or 
-    <ol>
-      <li>
-        In a Java editor, select a reference to the class or interface.
-      </li>
-      <li>
-        From the editor's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong> or use the
-        <strong>Refactor</strong> &gt; <strong>Rename</strong> action from the global menu bar.
-      </li>
-    </ol>
-    <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> 
-    <p>
-      <a href="../concepts/concepts-3.htm">Java projects</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-17.htm">Creating a new Java class</a><br>
-       <a href="tasks-24.htm">Creating a nested interface</a><br>
-       <a href="tasks-23.htm">Creating a top-level interface</a><br>
-       <a href="tasks-18.htm">Creating a top-level class</a><br>
-       <a href="tasks-19.htm">Creating a nested class</a><br>
-       <a href="tasks-20.htm">Creating a class in an existing compilation unit</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-95.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-95.htm
deleted file mode 100644
index 1d30c10..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-95.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <img src="../images/tasks-30.gif" width=412 height=341 alt="Parameters page of the Rename Type refactoring dialog"> 
-    <p>
-      Rename Type Parameters Page
-    </p>
-    <ul>
-      <li>
-        In the <strong>Enter new name</strong> field, type a new name for the class or interface.
-      </li>
-      <li>
-        If you do not want to update references to the renamed class or interface, deselect the <strong>Update references to the renamed element</strong> checkbox.
-      </li>
-      <li>
-        If you want to update Javadoc references to the renamed class or interface, select the <strong>Update references in Javadoc comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in regular (not Javadoc) comments, select the <strong>Update references in regular comments</strong> checkbox.
-      </li>
-      <li>
-        If you want to update references in string literals, select the <strong>Update references in string literals</strong> checkbox.
-      </li>
-      
-  <li> Click <strong>OK</strong> to perform a quick refactoring, or click <strong>Preview</strong> 
-    to perform a controlled refactoring. </li>
-    </ul>
-    <p>
-    	<strong>Note:</strong> References in Javadoc comments, regular comments and string literals are updated based on textual matching. It is recommended that you
-    	perform a controlled refactoring and review the suggested changes if you select one of these options.
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-    	<a href="tasks-82.htm">Refactoring without Preview</a><br>
-    	<a href="tasks-83.htm">Refactoring with Preview</a>
-    </p>
-    <p>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-96.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-96.htm
deleted file mode 100644
index ba6fd27..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-96.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Renaming a method
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Renaming a method
-    </h1>
-    <p>
-      You can rename a method by modifying its declaration in the compilation unit in which it is declared. However, if you also want to update
-      all references to it, you must either:
-    </p>
-    <ol>
-      <li>
-        In a Java view presenting methods (for example the Outline view) select the method to be renamed.
-      </li>
-      <li>
-        From the view's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong> or select <strong>Refactor</strong> &gt; <strong>Rename</strong> from the global menu bar.
-      </li>
-    </ol>
-    <p>
-      or
-    </p>
-    <ol>
-      <li>
-        In a Java editor, select a reference to or the declaration of the method to be renamed.
-      </li>
-      <li>
-        From the editor's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong> or select <strong>Refactor</strong> &gt; <strong>Rename</strong> from the global menu bar.
-      </li>
-    </ol>
-    <p>
-    	<strong>Note 1:</strong> Renaming a method declared in an interface also renames (and updates all references to) all methods that are implementations of that method.
-    </p>
-    <p>
-    	<strong>Note 2:</strong> When renaming a non-static method declared as public, package visible, or protected, all methods overriding it are also renamed and all references
-    	to them are updated.
-	</p>
-	<p>
-		<strong>Note 3:</strong> Renaming a static method or a private method updates references only to that method.
-	</p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-87.htm">Extracting a method</a><br>
-       <a href="tasks-43.htm">Overriding a method</a><br>
-       <a href="tasks-98.htm">Renaming method parameters</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-dialog-override-method.htm">Override methods</a><br>
-       <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-97.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-97.htm
deleted file mode 100644
index f202216..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-97.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <img src="../images/tasks-31.gif" width=407 height=189 alt="Parameters page of the Rename Method refactoring dialog"> 
-    <p>
-      Parameters Page for the Rename Method Refactoring Command
-    </p>
-    <ul>
-      <li>
-        In the <strong>Enter new name</strong>  field, type a new name for the method.
-      </li>
-      <li>
-        If you do not want to update references to the renamed method, deselect the <strong>Update references to the renamed element</strong> checkbox.
-      </li>
-      
-  <li> Click <strong>OK</strong> to perform a quick refactoring, or click <strong>Preview</strong> 
-    to perform a controlled refactoring. </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-    	<a href="tasks-82.htm">See Refactoring without Preview</a><br>
-    	<a href="tasks-83.htm">See Refactoring with Preview</a><br>
-    	<a href="tasks-74.htm">See Showing a Type's Compilation Unit in the Packages View</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-98.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-98.htm
deleted file mode 100644
index fb5e03d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-98.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Renaming method parameters
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Renaming method parameters
-    </h1>
-    <p>
-      You can rename the parameters of a method by renaming the parameter's declaration as well as all references to the parameters inside the method body.
-    </p>
-    <p>
-      Use the <strong>Change Method Signature</strong> command to rename one or more parameters of a method as well as all references to these parameters.
-    </p>
-    <ul>
-      <li>
-        Select the method in a Java view (the Outline view, for example)
-      </li>
-      <li>
-        From the method's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Change Method Signature</strong> or, from the menu bar, select
-        <strong>Refactor</strong> &gt; <strong>Change Method Signature</strong>.<br>
-        <strong>Note:</strong> these menu entries will no be active if the method has no parameters.
-      </li>
-      <li>
-        Select a parameter, press the <strong>Edit</strong> button, enter a new name for the parameter and press <strong>OK</strong>
-      </li>
-    </ul>
-    <p>
-    To rename a single parameter, it is often easier to: 
-    </p>
-    <ul>
-      <li>
-        Select the parameter in the Java editor.
-      </li>
-      <li>
-        From the editor's pop-up menu, select <strong>Refactor</strong> &gt; <strong>Rename</strong> to open the Rename refactoring dialog.
-      </li>
-    </ul>
-    <p>
-    	<img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-157.htm">Changing method signature</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../reference/ref-menu-refactor.htm">Refactoring actions</a><br>
-       <a href="../reference/ref-117.htm">Refactoring dialogs</a><br>
-       <a href="../reference/ref-23.htm">Refactoring preferences</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-99.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-99.htm
deleted file mode 100644
index aee73ac..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-99.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Parameters page
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Parameters page
-    </h1>
-    <img src="../images/tasks-32.gif" width=482 height=389 alt="Parameters page of the Change Method Signature refactoring wizard"> 
-    <p>
-      Parameters Page for the Change Method Signature Refactoring Command
-    </p>
-    <ul>
-      <li>
-        Click in the <strong>Name</strong> column on the row containing the parameter you want to change or select the row and press
-        <strong>Edit</strong> and type a new name for the parameter.
-      </li>
-    </ul>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-    	<a href="tasks-82.htm">See Refactoring without Preview</a><br>
-    	<a href="tasks-83.htm">See Refactoring with Preview</a><br>
-    	<a href="tasks-74.htm">See Showing a Type's Compilation Unit in the Packages View</a>
-    </p>
-    </ul>
-    <p>
-    	<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-JREs.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-JREs.htm
deleted file mode 100644
index 3fdcebe..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-JREs.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Working with JREs
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Working with JREs
-    </h1>
-    <p>
-      You can install as many different Java Runtime Environments (JREs) as you like. A JRE definition consists of:
-    </p>
-    <ul>
-      <li>
-        The type of the JRE (e.g. Standard VM or Standard 1.x.x VM)
-      </li>
-      <li>
-        A name
-      </li>
-      <li>
-        The location where the JRE is installed
-      </li>
-      <li>
-        The location (URL) of the Javadoc
-      </li>
-      <li>
-        The system libraries containing the Java system classes (like java.lang.Object). Optionally, the system libraries can be associated with the source file containing the
-        source for the classes in the JRE's CLASS files
-      </li>
-    </ul>
-    <p>
-      You can switch the default JRE for the workbench. The default JRE is the JRE to which the pre-defined classpath variables JRE_LIB, JRE_SRC and JRE_SRCROOT are bound.
-    </p>
-    <p>
-      <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a><br>
-       <a href="../concepts/cclsspthv.htm">Classpath variable</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159">
-    </p>
-    <p>
-      <a href="tasks-121.htm">Adding a new JRE definition</a><br>
-       <a href="tasks-120.htm">Assigning the default JRE for the workbench</a><br>
-       <a href="tasks-124.htm">Choosing a JRE for launching a project</a><br>
-       <a href="tasks-deleteJRE.htm">Deleting a JRE definition</a><br>
-       <a href="tasks-123.htm">Editing a JRE definition</a><br>
-       <a href="tasks-122.htm">Overriding the default system libraries for a JRE definition</a><br>
-       <a href="tasks-111.htm">Viewing and editing a project's build path</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-19.htm">Installed JREs preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-consoleAppearance.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-consoleAppearance.htm
deleted file mode 100644
index 63e6f5a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-consoleAppearance.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Changing the appearance of the Console view
-    </title>
-  </head>
-  <body>
-    <h1>
-      Changing the appearance of the console view
-    </h1>
-    <p>
-      To set the types of output (and their colors) in the Console view:
-    </p>
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences
-        &gt; Debug &gt; Console</strong> to view the Console Preferences page.
-      </li>
-      <li>
-        Checking the <strong><strong>Show when program writes to standard out</strong></strong> 
-        checkbox will make the Console view visible each
-        time new output is written to the console from the program's standard output stream. If there is no Console view in the current perspective, one will be created.
-      </li>
-      <li>
-        Checking the <strong><strong>Show when program writes to standard err</strong></strong> 
-        checkbox will make the Console view visible each
-        time new output is written to the console from the program's standard error stream. If there is no Console view in the current perspective, one will be created.
-      </li>
-      <li>
-        Click any of the color buttons to change the color for the corresponding
-        text stream.&nbsp;&nbsp;
-      </li>
-    </ol>
-    <p>To set the fonts used in the Console view:</p>
-    <ol>
-      <li>
-        From the menu bar, select <strong>Window</strong> &gt; <strong>Preferences
-        &gt; Workbench &gt; Fonts </strong>to view the Fonts Preferences page.
-      </li>
-      <li>
-        Select <strong>Debug Console Text Font </strong>from the list of fonts
-        and use the <strong>Change... </strong>button to change the font.&nbsp;
-        (The <strong>Detail Pane Text Font</strong> can be used to change the
-        font of the debugger's detail pane).
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/concepts-6.htm">Java views</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-45.htm">Console view</a><br>
-       <a href="../reference/ref-24.htm">Views and editors</a>
-    </p>
-    <p>
-       <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-debug-launch.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-debug-launch.htm
deleted file mode 100644
index c96bb2f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-debug-launch.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Launching a Java program
-    </title>
-  </head>
-  <body>
-    <h1>
-      Launching a Java program in debug mode
-    </h1>
-    <p>
-      Launching a program in debug mode allows you to suspend and resume the
-      program, inspect variables, and evaluate expressions using the debugger.
-    </p>
-    <p>
-      To launch a Java program in debug mode,
-    </p>
-    <ol>
-      <li>
-        In the Package Explorer, select the Java compilation unit or class file you want to launch.
-      </li>
-      <li>
-        Select <strong>Run &gt; Debug As &gt; Java Application</strong>.&nbsp;<br>
-        or Select
-        <strong>Debug As &gt; Java Application </strong>in the drop-down menu on the <strong>Debug</strong> tool bar button.&nbsp;
-      </li>
-      <li>
-        Your program is now launched and the launched process appears in the Debug view.&nbsp;
-      </li>
-    </ol>
-    <p>If you want your program to stop in the <em>main</em>  method so that you
-    can step through its complete execution, create a <strong> Java Application</strong>
-    launch configuration and check the <strong>Stop in main </strong>checkbox on
-    the <strong>Main </strong>tab.&nbsp;</p>
-    <p>You can also debug a Java program by selecting a project instead of the
-    compilation unit or class file.&nbsp; You will be prompted to select a class
-    from those classes that define a <em>main</em> method.&nbsp; (If only one class with a main method is
-        found in the project, that class is launched as if you selected it.)</p>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-      <a href="../concepts/concepts-6.htm">Java views</a><br>
-       <a href="../concepts/concepts-7.htm">Java editor</a><br>
-       <a href="../concepts/concepts-10.htm">Debugger</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-141.htm">Connecting to a remote VM with the Java Remote Application launcher</a><br>
-       <a href="../tasks/tasks-131.htm">Re-launching a program</a><br>
-       <a href="../tasks/tasks-126.htm">Running and debugging</a><br>
-       <a href="../tasks/tasks-executionArgs.htm">Setting execution arguments</a><br>
-       <a href="../tasks/tasks-136.htm">Stepping through the execution of a program</a><br>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-      <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-view-package-explorer.htm">Package Explorer</a><br>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-deleteJRE.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-deleteJRE.htm
deleted file mode 100644
index 37cef37..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-deleteJRE.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-    <title>
-      Deleting a JRE definition
-    </title>
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-  </head>
-  <body>
-    <h1>
-      Deleting a JRE definition
-    </h1>
-    <p>
-      <br>
-       You can delete Java runtime environment definitions that are available for executing Java programs in the workbench.
-    </p>
-    <ol>
-      <li>
-        Select&nbsp; <strong>Window</strong> &gt; <strong>Preferences</strong> from the main menu bar.
-      </li>
-      <li>
-        From the left pane, expand the <strong>Java</strong> category and select <strong>Installed JREs</strong>.
-      </li>
-      <li>
-        Select the definition you want to delete and click&nbsp;<strong><strong>Remove</strong></strong>.
-      </li>
-      <li>
-        Check the box for the definition that you want to use as the default JRE for the workbench.
-      </li>
-    </ol>
-	<p>
-     <img src="../images/ngrelc.gif" alt="Related concepts" border="0" height="27" width="159"> <br>
-      <a href="../concepts/concepts-1.htm">Java development tools (JDT)</a>
-    </p>
-    <p>
-      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
-      <a href="tasks-JREs.htm">Working with JREs</a><br>
-       <a href="tasks-121.htm">Adding a new JRE definition</a><br>
-       <a href="tasks-123.htm">Editing a JRE definition</a>
-    </p>
-    <p>
-      <img src="../images/ngrelr.gif" alt="Related reference" border="0" height="27" width="159"><br>
-       <a href="../reference/ref-19.htm">Installed JREs preference page</a>
-    </p>
-    <p>
-      <a href="../hglegal2003.htm">
-       <img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" height="14" width="324"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-executionArgs.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-executionArgs.htm
deleted file mode 100644
index 6552176..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-executionArgs.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Setting execution arguments
-    </title>
-  </head>
-  <body>
-    <h1>
-      Setting execution arguments
-    </h1>
-    <p>
-      If you want to specify execution arguments for your program, you must
-      define a launch configuration that specifies the arguments.
-    </p>
-    <ol>
-      <li>
-        Select <strong>Run &gt;Run...</strong>
-        (or&nbsp;<strong>Run &gt;Debug...)</strong> from the workbench <strong>Run</strong>
-        menu to open the list of launch configurations.&nbsp;&nbsp; Launch
-        configurations for Java programs are shown underneath <strong>Java
-        Application </strong>in this list.&nbsp;
-      </li>
-      <li>
-        Create a new launch
-        configuration by pushing the <strong>New</strong> button after selecting
-        <strong>Java Application</strong>.
-      </li>
-      <li>
-        On the <strong>Arguments</strong> tab for the configuration, you can
-        specify the following fields as necessary: 
-        <ul>
-          <li>
-            <strong>Program Arguments</strong>: Application-specific values that your code is expecting (a user name or a URL for locating help files, for
-            example).
-          </li>
-          <li>
-            <strong>VM Arguments</strong>: Values meant to change the behavior of the Java virtual machine (VM). For example, you may need to tell the VM whether
-            to use a just-in-time (JIT) compiler, or you may need to specify the maximum heap size the VM should use. Refer to your VM's documentation for more information
-            about the available VM arguments.
-          </li>
-          <li>
-            <strong>Working Directory</strong>: The working directory used for the launched process. To change from using the default working directory, uncheck
-            <strong>Use default working directory</strong> and specify the workspace or local directory to use for the working directory of the launched process.
-          </li>
-        </ul>
-      </li>
-      <li>
-        Click <strong>Apply</strong> or&nbsp; <strong>Close</strong> when you are done. Every time you launch this configuration, these execution
-        arguments will be used.
-      </li>
-    </ol>
-    <p>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-      <a href="../tasks/tasks-java-local-configuration.htm">Creating a Java Application launch
-      configuration</a><br>
-      <a href="../tasks/tasks-130.htm">Launching a Java program</a><br>
-      <br>
-    </p>
-    <p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-java-local-configuration.htm b/bundles/org.eclipse.jdt.doc.user/tasks/tasks-java-local-configuration.htm
deleted file mode 100644
index 6497d7f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tasks/tasks-java-local-configuration.htm
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      Creating a local Java application launch configuration
-    </title>
-  </head>
-  <body>
-    <h1>
-      Creating a Java application launch configuration
-    </h1>
-    <p>
-      When you choose <strong>Run &gt;Run As &gt;Java Application </strong>to
-      launch your class, you are running your class using a generic <strong>Java
-      Application</strong> launch configuration that derives most of the launch
-      parameters from your Java project and your workbench preferences.&nbsp; In
-      some cases, you will want to override the derived parameters or specify
-      additional arguments.
-    </p>
-    <p>
-      You do this by creating your own <strong>Java Application</strong> launch
-      configuration.&nbsp;
-    </p>
-    <ol>
-      <li>
-        Select <strong>Run &gt;Run... </strong>or <strong>Run &gt;Debug...</strong>
-        from the workbench menu bar.&nbsp; This opens a dialog that lets you
-        create, modify, and delete launch configurations of different types.
-      </li>
-      <li>
-        Select <strong>Java Application</strong> in the left hand list of launch configuration types, and press <strong>New</strong>. This will create a new launch configuration
-        for a Java application.&nbsp;The tabs on the right hand side allow you
-        control specific aspects of the launch.
-      </li>
-    </ol>
-    <blockquote>
-      <ul>
-        <li>The <strong>Main</strong> tab defines the class to be launched. Enter the name of the project containing the class to launch in the project field, and the fully qualified
-        name of the main class in the the Main class field.&nbsp;Check the <strong>Stop
-          in main</strong> checkbox if you want the program to stop in the main method
-          whenever the program is launched in debug mode.<br>
-        Note:&nbsp; You do not have to specify a project, but doing so allows a
-        default classpath, source lookup path, and JRE to be chosen.</li>
-        <li>The <strong>Arguments</strong> tab defines the arguments to be passed to the application and to the virtual machine (if any).
-          You can also specify the working directory to be used by
-        the launched application.</li>
-        <li>The <strong>JRE</strong> tab defines the JRE used to run or debug the application.
-          You can select a JRE from the already defined JREs, or define a new
-          JRE.</li>
-        <li>The <strong>Classpath</strong> tab defines the location of class files used when running or debugging an application. By default, the user and bootstrap class locations
-        are derived from the associated project's build path. You may
-          override these settings here.</li>
-        <li>The <strong>Source</strong> tab defines the location of source files used to display source when debugging a Java application. By default, these settings are derived from
-        the associated project's build path. You may override these settings
-          here.</li>
-        <li>The <strong>Common</strong> tab defines general information about
-          the launch configuration.&nbsp; You may choose to store the launch
-          configuration in a specific file and specify which perspectives become
-          active when the launch configuration is launched.</li>
-      </ul>
-    </blockquote>
-    <p>
-      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-    </p>
-    <p>
-      <a href="../concepts/concepts-10.htm">Debugger</a><br>
-       <a href="../concepts/clocdbug.htm">Local debugging</a>
-    </p>
-    <p>
-      <br>
-      <img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-    </p>
-    <p>
-      <a href="tasks-124.htm">Choosing a JRE for launching a project</a><br>
-      <a href="tasks-130.htm">Launching a Java program</a><br>
-      <a href="tasks-executionArgs.htm">Setting execution arguments<br>
-      </a><a href="../tasks/tasks-9.htm">Changing debugger launch options</a>
-    </p>
-    <p>
-      <img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-    </p>
-    <p>
-      <a href="../reference/ref-11.htm">Debug preferences</a><br>
-       <a href="../reference/ref-51.htm">Debug view</a><br>
-       <a href="../reference/ref-4.htm">Run and debug actions</a>
-    </p>
-    <p>
-      &nbsp;<br>
-       &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height=
-      "14"></a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/breakpoint-context-menu.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/breakpoint-context-menu.gif
deleted file mode 100644
index d96d00b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/breakpoint-context-menu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/change-variable-value.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/change-variable-value.gif
deleted file mode 100644
index af692d2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/change-variable-value.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-anonym.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-anonym.gif
deleted file mode 100644
index 7ecbeba..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-anonym.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-argument-proposal-inserted.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-argument-proposal-inserted.gif
deleted file mode 100644
index dd7cd18..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-argument-proposal-inserted.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-argument-proposal.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-argument-proposal.gif
deleted file mode 100644
index 22a4bc2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-argument-proposal.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-fieldname.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-fieldname.gif
deleted file mode 100644
index e67db91..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-fieldname.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-javadoc.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-javadoc.gif
deleted file mode 100644
index 2057d9f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-javadoc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-newmethod.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-newmethod.gif
deleted file mode 100644
index c227a9c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist-newmethod.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist.gif
deleted file mode 100644
index f934c07..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-assist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/code-templates.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/code-templates.gif
deleted file mode 100644
index 7eb73f9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/code-templates.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/compare-java.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/compare-java.gif
deleted file mode 100644
index e680475..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/compare-java.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/compare-properties.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/compare-properties.gif
deleted file mode 100644
index ae4f660..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/compare-properties.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/compiler-projectspecific.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/compiler-projectspecific.gif
deleted file mode 100644
index 68219cf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/compiler-projectspecific.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/compress-packages1.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/compress-packages1.gif
deleted file mode 100644
index fabd4f2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/compress-packages1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/compress-packages2.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/compress-packages2.gif
deleted file mode 100644
index 6f167c7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/compress-packages2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/conditional-breakpoint-property.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/conditional-breakpoint-property.gif
deleted file mode 100644
index d5c64a3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/conditional-breakpoint-property.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/create-getter-setter.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/create-getter-setter.gif
deleted file mode 100644
index 4d2d707..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/create-getter-setter.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/cycle-warning.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/cycle-warning.gif
deleted file mode 100644
index 79a1c77..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/cycle-warning.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/debug-drop-down.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/debug-drop-down.gif
deleted file mode 100644
index 2126a38..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/debug-drop-down.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/detail-formatter.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/detail-formatter.gif
deleted file mode 100644
index 2dacb26..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/detail-formatter.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/display-view-code-assist.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/display-view-code-assist.gif
deleted file mode 100644
index 31192ab..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/display-view-code-assist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-code-hover.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/editor-code-hover.gif
deleted file mode 100644
index ecd31ba..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-code-hover.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-error-indicator.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/editor-error-indicator.gif
deleted file mode 100644
index b81f73c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-error-indicator.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-hover-window.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/editor-hover-window.gif
deleted file mode 100644
index 7e42ff3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-hover-window.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-link-style-open.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/editor-link-style-open.gif
deleted file mode 100644
index 26f7ba7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/editor-link-style-open.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/favorites-prefs.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/favorites-prefs.gif
deleted file mode 100644
index a171b6a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/favorites-prefs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/ff4.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/ff4.gif
deleted file mode 100644
index 30b31e6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/ff4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/hierarchy-lockview.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/hierarchy-lockview.gif
deleted file mode 100644
index 0e4daf1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/hierarchy-lockview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/inplace_outline.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/inplace_outline.gif
deleted file mode 100644
index 8b87e56..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/inplace_outline.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/javadoc-location.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/javadoc-location.gif
deleted file mode 100644
index ec884b6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/javadoc-location.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/juniterr.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/juniterr.gif
deleted file mode 100644
index adc4b32..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/juniterr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/junitsucc.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/junitsucc.gif
deleted file mode 100644
index 7b1d00c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/junitsucc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/localhistory-replace.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/localhistory-replace.gif
deleted file mode 100644
index dec1f22..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/localhistory-replace.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/localhistory-restore.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/localhistory-restore.gif
deleted file mode 100644
index 6739a12..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/localhistory-restore.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/matching-brackets.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/matching-brackets.gif
deleted file mode 100644
index 2fa9334..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/matching-brackets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/name-conventions.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/name-conventions.gif
deleted file mode 100644
index 8e9621f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/name-conventions.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/new-scrapbook-button.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/new-scrapbook-button.gif
deleted file mode 100644
index 7c11a2f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/new-scrapbook-button.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/override-method.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/override-method.gif
deleted file mode 100644
index 23006cd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/override-method.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/packages-compound.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/packages-compound.gif
deleted file mode 100644
index 49d1e32..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/packages-compound.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/packages-flat.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/packages-flat.gif
deleted file mode 100644
index 6b5c8ff..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/packages-flat.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/packages-hierarchical.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/packages-hierarchical.gif
deleted file mode 100644
index 3893806..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/packages-hierarchical.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/parameter-hints.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/parameter-hints.gif
deleted file mode 100644
index 3e44356..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/parameter-hints.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/process-info.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/process-info.gif
deleted file mode 100644
index bbefb1f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/process-info.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/project-specific-jre.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/project-specific-jre.gif
deleted file mode 100644
index f3954c4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/project-specific-jre.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-assign-statement.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-assign-statement.gif
deleted file mode 100644
index 27039bb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-assign-statement.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-catch-to-throws.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-catch-to-throws.gif
deleted file mode 100644
index 95a5be9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-catch-to-throws.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-remove-surrounding.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-remove-surrounding.gif
deleted file mode 100644
index 48bcae1..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-assist-remove-surrounding.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-create-method.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-create-method.gif
deleted file mode 100644
index a0a8e04..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-create-method.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-localrename.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-localrename.gif
deleted file mode 100644
index 183c19d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-localrename.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-uncaught-exception.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-uncaught-exception.gif
deleted file mode 100644
index 931d74f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-uncaught-exception.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-unimplemented-methods.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-unimplemented-methods.gif
deleted file mode 100644
index de66b48..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/quick-fix-unimplemented-methods.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/refactor.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/refactor.gif
deleted file mode 100644
index e312cfb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/refactor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/scrapbook-display.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/scrapbook-display.gif
deleted file mode 100644
index 3558695..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/scrapbook-display.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/search-returntype.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/search-returntype.gif
deleted file mode 100644
index 215140e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/search-returntype.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/search.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/search.gif
deleted file mode 100644
index 03589fa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/search.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/selective-output.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/selective-output.gif
deleted file mode 100644
index 13fe271..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/selective-output.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/smart-javadoc.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/smart-javadoc.gif
deleted file mode 100644
index 1897396..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/smart-javadoc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/sort-by-def.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/sort-by-def.gif
deleted file mode 100644
index dabbdb6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/sort-by-def.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/ss4.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/ss4.gif
deleted file mode 100644
index 6553766..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/ss4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/stack-trace-hyperlink.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/stack-trace-hyperlink.gif
deleted file mode 100644
index 2cef7fd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/stack-trace-hyperlink.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/stop-in-main.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/stop-in-main.gif
deleted file mode 100644
index 7557102..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/stop-in-main.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/surroundwith.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/surroundwith.gif
deleted file mode 100644
index 0f7fad4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/surroundwith.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/templates-create-method.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/templates-create-method.gif
deleted file mode 100644
index 30be6e3..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/templates-create-method.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/todo-example.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/todo-example.gif
deleted file mode 100644
index 435098f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/todo-example.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/variable-hover.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/variable-hover.gif
deleted file mode 100644
index 3e183ff..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/variable-hover.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/variables-details-pane.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/variables-details-pane.gif
deleted file mode 100644
index b58bed7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/variables-details-pane.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/warn-privates.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/warn-privates.gif
deleted file mode 100644
index 93b16cb..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/warn-privates.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/images/watchpoint-properties.gif b/bundles/org.eclipse.jdt.doc.user/tips/images/watchpoint-properties.gif
deleted file mode 100644
index 6acd185..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/images/watchpoint-properties.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/tips/jdt_tips.html b/bundles/org.eclipse.jdt.doc.user/tips/jdt_tips.html
deleted file mode 100644
index 7acd057..0000000
--- a/bundles/org.eclipse.jdt.doc.user/tips/jdt_tips.html
+++ /dev/null
@@ -1,1071 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-
-<meta http-equiv="Content-Language" content="en-us">
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
-	type="text/css">
-<title>JDT Tips and Tricks</title>
-
-</head>
-<body>
-
-<h2>Tips and Tricks</h2>
-
-
-<h3>Editing source</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600" bgcolor="white">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Content assist</b></td>
-   <td valign="top" align="left" width="80%">Content assist provides you with
-			a list of suggested completions for partially entered strings. In the
-			Java editor press <b>Ctrl+Space</b> or invoke <b>Edit &gt; Content
-			Assist</b>.
-			<p><img src="images/code-assist.gif" width=464 height=219 border="0" alt="Content assist selection dialog"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Content assist in Javadoc comments</b></td>
-			<td valign="top" align="left" width="80%">Content assist is also
-			available in Javadoc comments.
-			<p><img src="images/code-assist-javadoc.gif" width=456 height=108 border="0" alt="Content assist for Javadoc comments"></p>
-</td>
-		</tr>
-		<tr>
-			
-    <td width="20%" valign="top" align="right"><b>Content assist for variable, 
-      method parameter and field name completions</b></td>
-			
-    <td valign="top" align="left" width="80%">
-      <p>You can use content assist to speed up creation of fields, method parameters 
-        and local variables. With the cursor positioned after the type name of 
-        the declaration, invoke <b>Edit &gt; Content Assist</b> or press <b>Ctrl+Space</b>. 
-      </p>
-      <p><img src="images/code-assist-fieldname.gif" width="331" height="110" alt="Suggestions for field names"></p>
-      <p>If you use a name prefix or suffix for fields, local variables or method 
-        parameters, then be sure to specify this in the Code Generation preference 
-        page <b>(Window &gt; Preferences &gt; Java &gt; Code Generation &gt; Names)</b>.</p>
-    </td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Parameter Hints</b></td>
-			<td valign="top" align="left" width="80%">With the cursor in a method
-			argument, you can see a list of parameter hints. In the Java Editor
-			press <b>Ctrl+Shift+Space</b> or invoke <b>Edit &gt; Parameter Hints</b>.
-			<p><img src="images/parameter-hints.gif" width=466 height=58 border="0" alt="Parameter hint hover"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Content assist on
-			anonymous classes</b></td>
-			<td valign="top" align="left" width="80%">Content assist also
-			provides help when creating an anonymous class. With the cursor
-			positioned after the opening bracket of a class instance creation,
-			invoke <b>Edit &gt; Content Assist</b> or press <b>Ctrl+Space</b>.
-			<p><img src="images/code-assist-anonym.gif" width=457 height=79 border="0" alt="Content assist for an anonymous class"></p>
-			This will create the body of the anonymous inner class including all
-			methods that need to be implemented.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Toggle between
-			inserting and replacing code assist</b></td>
-			
-    <td valign="top" align="left" width="80%">When code assist is invoked on an 
-      existing identifier, code assist can either replace the identifier with 
-      the chosen completion or only do an insert. The default behaviour (overwrite 
-      or insert) is defined in <b>Window &gt; Preferences &gt; Java &gt; Editor 
-      &gt; Code Assist</b>.<br>
-			You can temporarily toggle the behaviour while inside the content assist selection dialog by pressing the <b>Ctrl</b> key while selecting the completion.<b></b></td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Create Getter and
-			Setters</b></td>
-			<td valign="top" align="left" width="80%">To create getter and setter
-   methods for a field, select the field's declaration and invoke <b>Source
-			&gt; Generate Getter and Setter</b>.
-			<p><img src="images/create-getter-setter.gif" width=327 height=135 border="0" alt="Generate Getter and Setter dialog"></p>
-			If you use a name prefix or suffix be sure to specify this in the
-			Code Generation preference page <b>(Window &gt; Preferences &gt; Java
-			&gt; Code Generation &gt; Names)</b></td>
-		</tr>
-		<tr>
-		<td width="20%" valign="top" align="right"><b>Delete Getters and Setters together with a field</b></td>
-		
-    <td valign="top" align="left" width="80%">When you delete a field, Eclipse 
-      can offer deleting Getter and Setter methods for it. If you use a name prefix 
-      or suffix for fields, then be sure to specify this in the Code Generation 
-      preference page <b>(Window &gt; Preferences &gt; Java &gt; Code Generation 
-      &gt; Names)</b>.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Create delegate methods</b></td>
-   <td valign="top" align="left" width="80%">To create a delegate method
-   for a field select the field's declaration and invoke <b>Source
-			&gt; <b>Generate Delegate Methods</b></b>. This adds the selected
-			methods to the type that contains a forward call to delegated methods.
-			This is an example of a delegate method:
-			<blockquote><tt>public void addModifyListener(ModifyListener
-			listener) {<br>
-			&nbsp;&nbsp;&nbsp;&nbsp;fTextControl.addModifyListener(listener);<br>
-			}</tt></blockquote></td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Drag &amp; Drop to
-			create a method</b></td>
-			<td valign="top" align="left" width="80%">To create a method that has
-			the same signature as an existing method, you can use Drag &amp; Drop
-			or Copy / Paste. For Drag &amp; Drop (Windows), hold <b>Ctrl+Shift</b>
-			while dropping to create a 'link'.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Drag &amp; Drop for refactoring</b></td>
-			<td valign="top" align="left" width="80%">You can move Java compilation units between packages by 
-			Drag &amp; Drop - all missing imports will be added and references updated.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Drag &amp; Drop to move and copy Java code elements</b></td>
-			<td valign="top" align="left" width="80%">You can move and copy Java elements such as methods and fields by 
-			Drag &amp; Drop. This will not trigger refactoring - only the code will be copied or moved.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>You can easily put code of Java elements in the system clipboard</b></td>
-			<td valign="top" align="left" width="80%">When you select a set of methods, fields and types and press <b>Ctrl + C</b>
-			(or invoke the <b>Edit > Copy</b> action), the source code of the selected elements is put in the system clipboard. 
-			You can then paste it (<b>Ctrl + V</b> or <b>Edit > Paste</b>) in another location within the workbench
-			or even in other applications (such as your email program).</td>
-		</tr>
-		
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Templates to create
-			a method</b></td>
-			<td valign="top" align="left" width="80%">You can define a new
-			template <b>(Preferences &gt; Java &gt; Editor &gt; Templates)</b>
-			that contains a method stub. Templates are shown together with the <b>Content
-			Assist (Ctrl+Space)</b> proposals.<br>
-   There are also existing templates, such as 'private_method', 'public_method',
-			'protected_method' and more.<br>
-   Use the <b>Tab</b> key to navigate between the values to enter (return
-			type, name and arguments).
-			<p><img src="images/templates-create-method.gif" width=378 height=82 border="0" alt="Content assist with new method template proposals"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Quick Fix to create
-			a new method</b></td>
-			<td valign="top" align="left" width="80%">Start with the method
-			invocation and use <b>Quick Fix (Ctrl+1)</b> to create the method.
-			<p><img src="images/quick-fix-create-method.gif" width=462 height=110 border="0" alt="'Create method' quick fix"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Content Assist to override a method</b></td>
-			<td valign="top" align="left" width="80%">Invoke <b>Content Assist
-			(Ctrl+Space)</b> in the type body at the location where the method
-			should be added. Content assist will offer all methods that can be
-   			overridden. A method body for the chosen method will be created.
-			<p><img src="images/code-assist-newmethod.gif" width=444 height=98 border="0" alt="'Override method' content assist"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Quick Fix to add
-			unimplemented methods</b></td>
-			<td valign="top" align="left" width="80%">To implement a new
-			interface, add the 'implements' declaration first to the type.
-			Without the need to save or build, the Java editor will underline the
-   type to signal that methods are missing and will show the Quick Fix light
-			bulb. Click on the light bulb or press <b>Ctrl+1 (Edit &gt; Quick
-			Fix)</b> to choose between adding the unimplemented methods or making
-			your class abstract.
-			<p><img src="images/quick-fix-unimplemented-methods.gif" width=454 height=84 border="0" alt="Quick Fix offering 'Add unimplemented methods' proposal"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Add methods that
-			override</b></td>
-			<td valign="top" align="left" width="80%">To create a method that
-			overrides a method from a base class: <br>
-   Select the type to add the methods to and invoke <b>Source &gt; Override /
-   			Implement Methods</b>. This opens a dialog that lets you choose which methods to override.
-			<p><img src="images/override-method.gif" width=329 height=188 border="0" alt="'Override / Implement method' dialog"></p>
-</td>
-		</tr>
-
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Local rename</b></td>
-			<td valign="top" align="left" width="80%">To quickly do a rename that
-   doesn't require full analysis of dependencies in other files, use
-   the 'local rename' Quick Assist. In the Java Editor, position the
-			cursor in an identifier of a variable, method or type and press <b>Ctrl+1
-			(Edit &gt; Quick Fix)</b><br>
-			The editor is switched to the linked edit mode (like templates) and
-			changing the identifier simultaneously changes all other references
-			to that variable, method or type.
-			<p><img src="images/quick-fix-localrename.gif" width=434 height=120 border="0" alt="Changing multiple identifiers using 'Local Rename' quick fix"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use Quick Fix to handle exceptions</b></td>
-			<td width="80%" valign="top">Dealing with thrown exceptions is made easy.
-			Unhandled exceptions are detected while typing and marked with a red
-			line in the editor.
-			<ul>
-				<li>Click on the light bulb or press <b>Ctrl+1</b> to surround the
-				call with a try catch block. If you want to include more statements
-				in the try block, select the statements and use <b>Source &gt;
-				Surround With try/catch Block</b>. You can also select individual
-				statements easily by using <b>Edit &gt; Expand Selection to </b> and
-				selecting <b>Enclosing</b>, <b>Next</b> or <b>Previous</b>.</li>
-    <li>If the call is already surrounded with a try block, Quick Fix
-				will suggest adding the catch block to the existing block.</li>
-    <li>If you don't want to handle the exception, let Quick Fix add a
-				new thrown exception to the enclosing method declaration</li>
-
-			</ul>
-			<p><img src="images/quick-fix-uncaught-exception.gif" width=464 height=101 border="0" alt="'Uncaught exception' quick fix proposals"></p>
-			At any time you can convert a catch block to a thrown exception. Use
-			<b>Ctrl+1 (Edit &gt; Quick Fix)</b> on a catch block.<br>
-			<p><img src="images/quick-assist-catch-to-throws.gif" width=446 height=77 border="0" alt="'Replace catch clause with throws' quick assist"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Less typing for assignments</b></td>
-			<td width="80%" valign="top">Instead of typing an assignment, start with the
-			expression that will be assigned.
-			<p><img src="images/quick-assist-assign-statement.gif" width=457 height=68 border="0" alt="'Assign statement to local variable' quick assist"></p>
-			Now use <b>Ctrl+1 (Edit &gt; Quick Fix)</b> and choose '<b>Assign
-   statement to new local variable</b>' and Quick Assist will guess a
-			variable name for you.
-			<blockquote><tt> Iterator iterator= vector.iterator();</tt><br>
-			</blockquote>
-			</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Surround lines</b></td>
-			<td width="80%" valign="top">To surround statements with an if / while / for
-			statement or a block, select the lines to surround and press <b>Ctrl+1
-			(Edit &gt; Quick Fix)</b>. This lists all templates that contain the
-			variable ${line_selection}.
-			<p><img src="images/surroundwith.gif" width=453 height=100 border="0" alt="'Surround with templates' quick assist"></p>
-			Templates can be configured on <b>Window &gt; Preferences &gt; Java
-			&gt; Editor &gt; Templates</b>. Edit the corresponding templates or
-			define your own templates to customize the resulting code.<br>
-			</td>
-		</tr>
-
-	<tr>
-     <td width="20%" valign="top" align="right"><b>Create your own templates</b></td>		
-     <td width="80%" valign="top">
-      <p>You can create your own templates. Go to the <b>Java &gt; Editor &gt; 
-        Templates</b> preference page and press the <b>New</b> button to create 
-        a template. For example, a template to iterate backwards in an array would 
-        look like this:</p>
-      <pre>for (int ${index} = ${array}.length - 1; ${index} &gt;= 0; ${index}--){
-   ${cursor}
-}</pre></td>
-</tr>
-    <tr>
-     <td width="20%" valign="top" align="right"><b>Code assist can insert argument names automatically</b></td>		
-     
-    <td width="80%" valign="top">
-      <p>You can have code assist insert argument names automatically on method 
-        completion. This behavior can be customized on the <b>Java > Editor > 
-        Code Assist</b> preference page (see the <b>Fill argument names on method 
-        completion</b> checkbox.) For example, when you select the second entry 
-        here:</p>
-      <p><img src="images/code-assist-argument-proposal.gif" alt="code assist window" width="466" height="104"></p>
-      <p>code assist will automatically insert argument names:</p>
-      <p><img src="images/code-assist-argument-proposal-inserted.gif" width="448" height="63" alt="code assist inserted argument names"></p>
-      <p>You can then use the <b>Tab</b> key to navigate between the insterted 
-        names.</p>
-      <p>Code assist can also guess filled argument names - basing on their declared 
-        types. This can be configured by the <b>Guess filled argument names</b> 
-        checkbox on the <b>Java > Editor > Code Assist</b> preference page.</p>
-    </td>
-	  
-    </tr>    
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Remove surrounding statement</b></td>
-			<td width="80%" valign="top">To remove a surrounding statement or block, position
-			the cursor at the opening bracket and press <b>Ctrl+1 (Edit &gt;
-			Quick Fix)</b>.
-			<p><img src="images/quick-assist-remove-surrounding.gif" width=458 height=96 border="0" alt="'Remove surrounding statement' quick assist"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Structured selections</b></td>
-			<td width="80%" valign="top">You can quickly select Java code syntactically
-			using the Structured Selection feature.<br>
-      Highlight the text and press <b>Alt+Shift+Arrow Up</b> or select <b>Edit 
-      &gt; Expands Selection To &gt; Enclosing Element</b> from the menu bar - 
-      the selection will be expanded to the smallest Java-syntax element that 
-      contains the selection. You can then further expand the selection by invoking 
-      the action again.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Find the matching bracket</b></td>
-   			<td width="80%" valign="top">To find a matching bracket select an opening or
-			closing bracket and press <b>Ctrl+Shift+P (Navigate &gt; Go To &gt;
-			Matching Bracket)</b>. You can also <b>double click</b> before an
-			opening or after a closing bracket: This selects the text between the
-			two brackets.
-			<p><img src="images/matching-brackets.gif" width=460 height=61 border="0" alt="Using 'double click' to select text between two brackets"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Smart Javadoc</b></td>
-			<td width="80%" valign="top">Enter '/**' and press <b>Enter</b>. This
-			automatically adds a Javadoc comment stub containing the standard
-			@param, @return and @exception tags.
-			<p><img src="images/smart-javadoc.gif" width=454 height=89 border="0" alt="Result of 'Smart Javadoc'"></p>
-			The templates of the added comment can be configured in <b>Window
-			&gt; Preferences &gt; Java &gt; Code Generation &gt; Code and Comment
-			&gt; Comments</b></td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>More speed in the Java editor</b></td>
-			<td width="80%" valign="top">You can speed up typing by:
-			<ul>
-
-				<li>Turning off problem indicators that appear while typing. Clear
-				all check boxes in <b>Window &gt; Preferences &gt; Java &gt;
-				Editor &gt; Annotations.</b></li>
-				<li>Hiding the overview ruler. Clear the check box, <b>Window
-				&gt; Preferences &gt; Java &gt; Editor &gt; Appearance &gt; Show
-				overview ruler</b>.</li>
-				<li>Turning off outline synchronization in the editor. Clear the
-				check box, <b>Window &gt; Preferences &gt; Java &gt; Editor
-				&gt; Appearance &gt; Synchronize outline selection on cursor move</b>.</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use the local history
-			to revert back to a previous edition of a method</b></td>
-			<td valign="top" align="left" width="80%">Whenever you edit a file,
-   its previous contents are kept in the local history. Java tooling
-			makes the local history available for Java elements, so you can
-			revert back to a previous edition of a single method instead of the
-   full file.
-			<p>Select an element and use <b>Replace With &gt; Local History</b>
-			to revert back to a previous edition of the element.
-			<p><img src="images/localhistory-replace.gif" width=460 height=279 border="0" alt="Replace form local history dialog">
-
-			</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use the local history
-			to restore removed methods</b></td>
-			<td valign="top" align="left" width="80%">Whenever you edit a file,
-   its previous contents are kept in the local history. Java tooling
-			makes the local history available for Java elements, so you can
-			restore deleted methods selectively.
-			<p>Select a container and use <b>Restore from Local History</b>
-			to restore any removed members.
-			<p><img src="images/localhistory-restore.gif" width=345 height=229 border="0" alt="Restore from local history dialog">
-			</td>
-		</tr>
-
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Customizable code generation</b></td>
-			<td width="80%" valign="top" align="left">The <b>Java &gt; Code Generation</b>
-			preference page allows you to customize generated code and comments
-			in a similar way to normal templates. These code templates are used
-			whenever code is generated. (These new templates are replacing the
-			'filecomment' and 'typecomment' templates previously used for code
-			generation.)
-			<p><img src="images/code-templates.gif" width=425 height=339 border="0" alt="Code templates preference page"></p>
-			The check box '<b>Automatically add comments</b>...' lets you decide
-			if features that create new methods or types add comments
-			automatically or if they are only added explicitly with '<b>Add
-			Javadoc Comment</b>'.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Sort members</b></td>
-			<td width="80%" valign="top" align="left">You can <b>Sort Members</b> of a Java
-			compilation unit according to a category order defined in the <b>Java
-			&gt; Appearance &gt; Member Sort Order</b> preference page.<br>
-			You'll find the action under <b>Source &gt; Sort Members</b></td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Wrap Strings</b></td>
-			<td width="80%" valign="top" align="left"> 
-      <p>You can have String literals wrapped when you edit them. For example, 
-        if you have code like this:</p>
-           <pre>String message= &quot;This is some long message.&quot;;</pre>
-           
-      <p>position your caret after the &quot;some&quot; word and press <b>Enter</b>. 
-        The code will be automatically changed to:</p>
-           <pre>String message= &quot;This is some&quot; + 
-           &quot; long message.&quot;;</pre>
-           <p>This behavior can be customized in the <b>Java &gt; Editor &gt; Typing</b> 
-           preference page. </p>
-    </td>
-		</tr>
-				
-	</tbody>
-</table>
-<h3>Searching</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600" bgcolor="white">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Locate variables and their read/write access</b></td>
-			<td valign="top" align="left" width="80%">You can locate variables
-			and easily see their read/write status by selecting an identifier
-			(variable, method or type reference or declaration) and invoking <b>Search
-			&gt; Occurrences in File</b>. This marks all references of this
-			identifier in the same file. The results are also shown in the search
-			view, along with icons showing the variable's read or write access.<br>
-			You can search over several files by using the general search
-			features (<b>Search &gt; References</b>).
-			<p><img src="images/search.gif" width=339 height=374 border="0" alt="Read and write accesses to a field"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Search for methods with a specific return type</b></td>
-			<td valign="top" align="left" width="80%">
-			<p>To search for methods with a specific return type, use &quot;*
-			&lt;return type&gt;&quot; as follows:</p>
-			
-      <ol>
-        <li>Open the search dialog and click on the <b>Java Search</b> tab.</li>
-        <li>Type '*' and the return type, separated by a space, in the <b>Search 
-          string</b>.</li>
-        <li>Select the <b>Case sensitive</b> checkbox.</li>
-        <li>Select <b>Method</b> and <b>Declarations</b> and then click <b>Search.</b></li>
-      </ol>
-			<p><img src="images/search-returntype.gif" width=466 height=173 border="0" alt="Search for method with given return type"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Find unused code</b></td>
-			<td width="80%" valign="top" align="left">The Java compiler detects unreachable
-			code, unused variables, parameters, imports and unused private types,
-			methods and fields<br>
-			The setting is on the <b>Java &gt; Compiler</b> preference page.
-			<p><img src="images/warn-privates.gif" width=428 height=315 border="0" alt="Compiler preference page"></p>
-			These settings are also detected as you type and a quick fix is
-			offered to remove the unneeded code.
-			</td>
-		</tr>
-	</tbody>
-</table>
-<h3>Code navigation and reading</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600" bgcolor="white">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Open on a selection in the Java editor</b></td>
-			<td valign="top" align="left" width="80%">There are two ways that you
-			can open an element from its reference in the Java editor.
-			<ul>
-    <li>Select the reference in the code and press <b>F3 (Navigate &gt; Open
-    Declaration)</b></li>
-				<li>Hold <b>Ctrl </b>and move the mouse pointer over the reference</li>
-			</ul>
-			<img src="images/editor-link-style-open.gif" width=465 height=53 border="0" alt="Hyperlink style navigation">
-			The hyperlink style navigation can be configured in <b>Preferences
-			&gt; Java &gt; Editor &gt; Navigation</b>.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>In-place outlines</b></td>
-   <td valign="top" align="left" width="80%">Press <b>Ctrl+F3</b> in the Java 
-   editor to pop up an in-place outline of the element at the current cursor position. Or 
-   press <b>Ctrl+O (Navigate &gt; Show Outline)</b> to pop up an in-place outline of the
-			current source file.
-			<p><img src="images/inplace_outline.gif" width=453 height=282 border="0" alt="Inplace outline"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Go to next / previous
-			method</b></td>
-			<td valign="top" align="left" width="80%">To quickly navigate to the
-			next or previous method or field use<br>
-			<b>Ctrl+Shift+Arrow Up (Navigate &gt; Go To &gt; Previous Member</b>)
-			or <b>Ctrl+Shift+Arrow Down (Navigate &gt; Go To &gt; Next Member)</b></td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Reminders in your Java
-			code</b></td>
-			<td valign="top" align="left" width="80%">When you tag a comment in
-			Java source code with "TODO" the Java compiler automatically creates
-			a corresponding task as a reminder. Opening the task navigates you
-			back to the "TODO" in the code. Use the <b>Java &gt; Task Tags </b>preference
-			page to configure any other special tags (like "FIXME") that you'd
-			like to track in the task list.
-			<p><img src="images/todo-example.gif" width=447 height=259 border="0" alt="Task tags in editor and task view"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Select variables on
-			endings in Open and Go To dialogs</b></td>
-			<td valign="top" align="left" width="80%"><b>Open</b> and <b>Go To</b>
-			dialogs now support the end character '&lt;'. To see all types in the
-			<b>Open Type</b> dialog that end with &quot;Test&quot; enter the pattern
-			&quot;*Test&lt;&quot;. <br>
-			If '&lt;' is not included in the pattern, a '*' will be appended to
-			the pattern. If you enter "*Test" in the <b>Open Type</b> dialog you
-			will see all types containing &quot;Test&quot; somewhere in the type name.</td>
-		</tr>
-		<tr>
-   <td width="20%" valign="top" align="right"><b> Make hovers sticky</b></td>
-			<td valign="top" align="left" width="80%">You can open the text from
-			a hover in a scrollable window by pressing <b>F2 (Edit &gt; Show
-			Tooltip Description)</b>. You can select and copy content from this
-			window.
-			<p><img src="images/editor-hover-window.gif" width=464 height=164 border="0" alt="Window containing content of the hover"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Hovers in the Java
-			editor</b></td>
-			<td valign="top" align="left" width="80%">Did you know that using the
-			modifier keys (Shift, Ctrl, Alt) you can see different hovers in the
-			Java editor?<br>
-			When you move the mouse over an identifier in the Java editor, by
-			default a hover with the Javadoc extracted from the corresponding
-			source of this element is shown. Holding down the Ctrl key shows you
-			the source code.
-			<p><img src="images/editor-code-hover.gif" width=463 height=111 border="0" alt="Hover showing code of the element in the hover"></p>
-			You can change this behavior and define the hovers for other modifier
-			keys in <b>Preferences &gt; Java &gt; Editor &gt; Hovers</b>.</td>
-		</tr>
-
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Open and configure
-			external Javadoc documentation</b></td>
-			<td valign="top" align="left" width="80%">If you want to open the
-   Javadoc documentation for a type, method or field with <b>Shift+F2
-			(Navigate &gt; Open External Javadoc)</b>, you have to first specify
-			the documentation locations to the elements parent library (JAR,
-			class folder) or project (source folder).<br>
-			For libraries open the build path page (<b>Project &gt; Properties
-			&gt; Java Build Path</b>), go to the <b>Libraries</b>, expand the
-			node of the library where you can edit the 'Javadoc location' node.
-			The documentation can be local on your file system or on a web
-			server.
-			<p><img src="images/javadoc-location.gif" width=432 height=161 border="0" alt="Configuring Javadoc location in the Java build path dialog"></p>
-   For types, methods or fields in source folders, go to the (<b>Project
-			&gt; Properties &gt; Javadoc Location</b>).</td>
-		</tr>
-	</tbody>
-</table>
-<h3>Java views</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600" bgcolor="white">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Type hierarchy view
-			supports grouping by defining type</b></td>
-			<td valign="top" align="left" width="80%">The type hierarchy method
-			view lets you sort the selected type's methods by its defining types.
-			For example, for AbstractList you can see that it contains methods
-			that were defined in Object, Collection and List:
-			<p><img src="images/sort-by-def.gif" width=426 height=245 border="0" alt="Sort members by the defining type in the type hierarchy"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Tricks in the type
-			hierarchy</b></td>
-			<td valign="top" align="left" width="80%">
-			<ul>
-				<li>Focus the type hierarchy on a new type by pressing <b>F4
-				(Navigate &gt; Open Type Hierarchy)</b> on an element or a selected
-				name</li>
-				<li>You can open the Hierarchy view not only on types but also on
-				packages, source folders, JAR archives and Java projects.</li>
-				<li>You can Drag &amp; Drop an element onto the Hierarchy view to
-				focus it on that element.</li>
-				<li>You can change the orientation (from the default vertical to
-    horizontal) of the Hierarchy view from the view's toolbar menu.
-				</li>
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Find out where a method
-			is implemented in the hierarchy</b></td>
-   <td valign="top" align="left" width="80%">To get an understanding of
-			which types in a hierarchy override a method use the 'Show Members in
-			Hierarchy' feature.
-			<ul>
-				<li>Select the method to look at and press <b>F4 (Navigate &gt; Open
-				Type Hierarchy)</b>. This opens the type hierarchy view on the
-				method's declaring type.</li>
-				<li>With the method selected in the Hierarchy view, press the 'Lock
-				View and Show Members in Hierarchy' tool bar button</li>
-				<li>The hierarchy view now shows only types that implement or define
-				the 'locked' method. You can for example see that 'isEmpty()' is
-				defined in 'List' and implemented in 'ArrayList' and 'Vector' but
-				not in 'AbstractList'</li>
-			</ul>
-			<p><img src="images/hierarchy-lockview.gif" width=414 height=266 border="0" alt="Lock view and show members in Hierarchy"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Hierarchical vs. flat
-			layout of packages</b></td>
-			<td valign="top" align="left" width="80%">An option on the Java
-			Packages view (and Package Explorer view) allows you to change the
-			way packages are displayed. <b>Hierarchical</b> displays packages in
-			a tree, with sub-packages below packages; <b>Flat</b> displays them in
-			the standard arrangement, as a flat list with all packages and
-			sub-packages as siblings.<br>
-			<table border="0">
-				<tbody>
-					<tr align="left" valign="top">
-						<td><img src="images/packages-flat.gif" width=200 height=114 border="0" alt="Flat packages layout">
-</td>
-						<td><img src="images/packages-hierarchical.gif" width=200 height=144 border="0" alt="Hierarchical package layout">
-</td>
-					</tr>
-				</tbody>
-			</table>
-			</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Logical packages</b></td>
-			<td valign="top" align="left" width="80%">The Java Packages view
-			(Java Browsing perspective) coalesces packages of the same name
-			across source folders within a project. This shows the Packages view
-			containing a logical package.
-			<p><img src="images/packages-compound.gif" width=464 height=115 border="0" alt="Java browsing perspective containing a logical package"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Compress package names</b></td>
-			<td valign="top" align="left" width="80%">If your package names are
-			very long you can configure that viewers show a compressed name.
-			Configuration of the compression pattern is done in <b>Preferences
-			&gt; Java &gt; Appearance</b>
-			<p><img src="images/compress-packages1.gif" width=408 height=83 border="0" alt="Compression pattern configuration in the Java appearance preference page"></p>
-			Using this example, packages are rendered the following way:<br>
-			<p><img src="images/compress-packages2.gif" width=157 height=190 border="0" alt="Compressed package names"></p>
-</td>
-		</tr>
-	</tbody>
-</table>
-<h3>Various</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600" bgcolor="white">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>JUnit</b></td>
-			<td valign="top" align="left" width="80%">Select a JUnit test method
-   in a view and choose <b>Run &gt; Run As &gt; JUnit Test</b>. This
-			creates a launch configuration to run the selected test.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Hide JUnit view until errors or failures occur</b></td>
-			
-    <td valign="top" align="left" width="80%">You can make the JUnit view open 
-      only when there are errors or failures. That way, you can have the view 
-      set as a fast view and never look at it when there are no failing tests. 
-      While there are no problems in your tests you will see this icon <img src="images/ss4.gif" width="16" height="16" alt="Successfully running"> 
-      (the number of the little green squares will grow, indicating progress) 
-      while running them and this icon <img src="images/junitsucc.gif" width="16" height="16" alt="Successfully finished"> 
-      after they are finished. If, however, errors or failures occur, the icon 
-		      will change to <img src="images/ff4.gif" width="16" height="16" alt="Failure or error occurred"> 
-      (or <img src="images/juniterr.gif" width="16" height="16" alt="Finished with failure or error"> 
-      if tests are finished) and the JUnit view will appear. This behavior can 
-      be configured via the <b>Java > JUnit </b>preference page.</td>
-		</tr>
-	<tr>
-		<td valign="top" align="right">
-			<b>Structural compare of Java source</b>
-		</td>
-		
-		<td valign="top" align="left">
-			A structural comparison of Java source 
-			ignores the textual order of Java elements like methods and fields and better shows
-			which elements were changed, added, or removed.
-			<br>
-			For initiating a structural comparison of Java files you have two options:
-			<ul>
-				<li>Select two Java compilation units and choose
-					<b>Compare With</b> &gt; <b>Each Other</b> from the view's context menu.
-					If the files have differences, they are opened into a Compare Editor.
-					The top pane shows the differing Java elements; double clicking on one of them
-					shows the source of the element in the bottom pane.
-				</li>
-				<li>
-					In any context where a file comparison is involved (e.g. a CVS
-					Synchronization) a double click on a Java file not only shows
-					the content of the file in a text compare viewer, but it also performs
-					a structural compare and opens a new pane showing the results.
-				</li>
-			</ul>
-			<p><img src="images/compare-java.gif" width="444" height="321" alt="Structural compare of Java source"></p>
-			You can even ignore comments and formatting changes when performing the structural compare:
-			turn on the <strong>Ignore Whitespace</strong> option via the Compare Editor's toolbar button, or 
-			the CVS Synchronization View's drop down menu.
-		</td>
-	</tr>		
-
-
-	<tr>
-		<td valign="top" align="right">
-			<b>Structural compare of property files</b>
-		</td>
-		
-		<td valign="top" align="left">
-			A structural comparison of Java property files (extension: .properties) 
-			ignores the textual order of properties and better shows
-			which properties were changed, added, or removed.
-			<br>
-			For initiating a structural comparison of property files you have two options:
-			<ul>
-				<li>Select two files in the Package Explorer or Navigator and choose
-					<b>Compare With</b> &gt; <b>Each Other</b> from the view's context menu.
-					If the files have differences, they are opened into a Compare Editor.
-					The top pane shows the affected properties; double clicking on one of them
-					shows the source of the property in the bottom pane.
-				</li>
-				<li>
-					In any context where a file comparison is involved (e.g. a CVS
-					Synchronization) a double click on a property file not only shows
-					the content of the file in a text compare viewer, but it also performs
-					a structural compare and opens a new pane showing the results.
-				</li>
-			</ul>
-			<p><img src="images/compare-properties.gif" width="466" height="240" alt="Structural compare of property files"></p>
-		</td>
-	</tr>		
-		
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Define prefixes or
-			suffixes for fields, parameters and local variables</b></td>
-			<td valign="top" align="left" width="80%">In addition to configuring
-			the prefix or suffix for fields, you can also specify the prefix or
-			suffix for static fields, parameters, and local variables. These
-			settings on the <b>Java &gt; Code Generation</b> preference page are
-			used in content assist, quick fix, and refactoring whenever a
-			variable name needs to be computed.
-			<p><img src="images/name-conventions.gif" width=405 height=161 border="0" alt="Name conventions in the code generation preference page"></p>
-</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Organize Imports works not only on single files</b></td>
-			<td valign="top" align="left" width="80%">You can invoke Organize Imports on sets of compilation units, packages, 
-			source folders or Java projects.</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use project specific
-			compiler settings</b></td>
-			<td valign="top" align="left" width="80%">Each project can decide to
-			use the global compiler settings or to define project specific
-			settings. Select the project and open the Java compiler page in the
-			project properties <b>(Project &gt; Properties &gt; Java Compiler)</b><br>
-			<p><img src="images/compiler-projectspecific.gif" width=438 height=196 border="0" alt="Project specific Java compiler settings"></p>
-			You can also configure project specific settings for the Java Task
-			tags (TODO tasks)</td>
-		</tr>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Use a specific JRE for
-			a project</b></td>
-			<td valign="top" align="left" width="80%">When created, by default
-			projects get the JRE added that is select in <b>Preferences &gt; Java
-			&gt; Installed JRE's.</b> To set a project specific JRE open the
-			project's Java Build path property page <b>(Project &gt; Properties
-			&gt; Java Build Path)</b>, open the<b> Libraries</b> page, select
-			'JRE System Library' and press <b>Edit</b>. In the 'Edit Library'
-			dialog you can select to take the default JRE or a project specific
-			JRE.
-			<p><img src="images/project-specific-jre.gif" width=438 height=226 alt="Edit JRE system library" border="0"></p>
-</td>
-		</tr>
- </tbody>
-</table>
- 
-<h3>Debugging</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600" bgcolor="white">
-	<tbody>
-		<tr>
-			<td width="20%" valign="top" align="right"><b>Stop in Main</b></td>
-			<td width="80%" valign="top" align="left">
-			<p>You can use <b>Stop in main </b>in a Java
-			Application launch configuration to cause your program to stop at the
-			first executable line of the main method when you run it under debug
-			mode.</p>
-			
-      <p><img src="images/stop-in-main.gif" alt="Main tab with Stop in Main option selected" width="426" height="210"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Conditional
-			breakpoints</b></td>
-			<td valign="top" align="left">You can use conditional breakpoints in
-			<b> Breakpoint Properties... </b>to control when a
-			breakpoint actually halts execution. You can specify whether
-			you want the breakpoint to suspend execution only when the condition
-			is true, or when the condition value changes.
-			<p><img src="images/conditional-breakpoint-property.gif" width=351 height=172 alt="Breakpoint properties dialog"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Disabling
-			breakpoints</b></td>
-			<td valign="top" align="left">If you find yourself frequently adding
-			and removing a breakpoint in the same place, consider disabling the
-			breakpoint when you don't need it (using <b>Disable Breakpoint </b>in
-			the breakpoint context menu or the <b>Breakpoints view</b>)
-			and enabling it when needed again.
-			<p><img src="images/breakpoint-context-menu.gif" width=411 height=124 alt="Disable Breakpoint action in the ruler context menu"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Changing variable values</b></td>
-			<td valign="top" align="left">
-			<p>When a thread is suspended in the debugger, you can change the
-			values of Java primitives and Strings in the <b>Variables</b> view.
-			From the variable's context menu, choose <b>Change Variable Value</b>.
-			</p>
-			
-      <p><img src="images/change-variable-value.gif" alt="Change variable value dialog" width="401" height="244"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Variable values in hover help</b></td>
-			<td valign="top" align="left">When a thread is suspended and the
-			cursor is placed over a variable in the Java editor, the value of
-			that variable is displayed as hover help.
-			<p><img src="images/variable-hover.gif" width=400 height=104 alt="Variable value hover in the editor"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Drop to Frame</b></td>
-			<td valign="top" align="left">When stepping through your code, you
-			might occasionally step too far, or step over a line you meant to
-			step into. Rather than restarting your debug session, you can use the
-			<b>Drop to Frame</b> action to quickly go back to the beginning of a
-			method. Select the stack frame corresponding to the Java method you
-			wish to restart, and select <b>Drop to Frame</b> from its context
-			menu. The current instruction pointer will be reset to the first
-			executable statement in the method. Note that this works for non-top
-   stack frames as well. Drop to frame is only available when debugging
-			with a 1.4 or higher VM, or the J9 VM.</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Hot code replace</b></td>
-			<td valign="top" align="left">The debugger supports Hot Code Replace
-			when debugging with a 1.4 or higher VM, or the J9 VM. This lets you
-			make changes to code you are currently debugging. Note that some
-			changes such as new or deleted methods, class variables or inner
-			classes cannot be hot loaded.</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Stepping into selections</b></td>
-			<td valign="top" align="left">
-			<p>The Java debugger allows you to step into a single method within a
-			series of chained or nested method calls. Simply highlight the method
-			you wish to step into and select <b>Step into Selection</b> from the
-			Java editor context menu.</p>
-			
-      <p><img src="../whatsNew/images/step-into-selection.gif" alt="Stepping into selection" width="404" height="147"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Controlling<br>
-			your console</b></td>
-			
-    <td valign="top" align="left">Output displayed in the console can be locked 
-      to a specific process via a drop-down menu in the Console view toolbar. 
-      There's also a new scroll lock button that stops the console from automatically 
-      scrolling as new output is appended. 
-      <p><img src="images/selective-output.gif" alt="Console view with process drop-down" width="409" height="151"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Creating watch items</b></td>
-			<td valign="top" align="left">A watch item is an expression in the <b>Expressions</b>
-			view whose value is updated as you debug. You can create watch items
-			from the Java editor by selecting an expression or variable and
-			choosing <b>Watch</b> from its context menu or the top-level <b>Run</b>
-			menu).
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Watch points</b></td>
-			<td valign="top" align="left">
-			<p>A watch point is a breakpoint that suspends execution whenever a
-			specified variable is accessed or modified. To set a watchpoint,
-			select a variable in the Outline view and choose <b>Add/Remove
-			Watchpoint</b> from its context menu. To configure a watchpoint,
-			select the watchpoint in the <b>Breakpoints</b> view and choose <b>Properties...</b>
-			from its context menu. The most important properties for this type of
-			breakpoint are the <b>Access</b> and <b>Modification</b> checkboxes
-			which control when the breakpoint can suspend execution.</p>
-			<p><img src="images/watchpoint-properties.gif" width=403 height=458 alt="Breakpoint properties dialog"></p>
-			</td>
-		</tr>
-		<tr>
-			
-    <td valign="top" align="right"><b>Threads and Monitors view</b></td>
-			<td valign="top" align="left">
-			<p>The debugger's<b> Threads and Monitors</b> view shows which
-			threads are holding locks and which are waiting to acquire locks.</p>
-			<p><img src="../whatsNew/images/threads-monitors.gif" width=373 height=260 alt="Monitors view showing deadlock cycles"></p>
-			
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Step filters</b></td>
-			<td valign="top" align="left">Step filters prevent the debugger from
-			suspending in specified classes and packages when stepping into code.
-   Step filters are established in <b>
-   Window &gt; Preferences &gt; Java &gt; Debug &gt; Step Filtering</b>. Step
-   filters are in effect when the <b>Step with Filters</b> action (on
-			the debug toolbar and menu) is invoked. In the Debug view, the
-			selected stack frame's package or declaring type can be quickly added
-			to the list of filters by selecting <b>Filter Type</b> or <b>Filter
-			Package</b> from the stack frame's context menu.</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Using the scrapbook</b></td>
-			<td valign="top" align="left">
-			<p>If you want to experiment with API or test out a new algorithm,
-			it's frequently easier to use a Java scrapbook page than create a new
-			class. A scrapbook page is a container for random snippets of code
-			that you can execute at any time without a context. To create a
-			scrapbook page in the Java Perspective, select
-   <b>File &gt; New &gt; Scrapbook Page</b> from the workbench menu, or click the
-			New Scrapbook Page button <img src="images/new-scrapbook-button.gif"
-				width="17" height="19" alt="New scrapbook toolbar button">on the
-			workbench toolbar. Enter whatever code you wish to execute, then
-			select it. There are three ways to execute your code:</p>
-			
-      <ul>
-        <li>Execute the selected code and place the returned result in the Expressions 
-          view</li>
-        <li>Execute the selected code and place the String result right in the 
-		          scrapbook page
-		          <p><img src="images/scrapbook-display.gif" alt="Scrapbook page displaying result" width="446" height="161"></p>
-		        </li>
-        <li>Execute the selected code (and ignore any returned result)</li>
-      </ul>
-			<p>These actions are in the workbench toolbar and also in the
-			scrapbook page's context menu.</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Editing<br>
-			launch<br>
-			configurations</b></td>
-   <td valign="top" align="left">Holding down the <b>Ctrl</b> key and making
-			a selection from the <b>Run</b> or <b>Debug</b> drop-down menu opens
-			the associated launch configuration for editing. The launch
-			configuration can also be opened from the context menu associated
-			with any item in the Debug view.</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Favorite launch configurations</b></td>
-			<td valign="top" align="left">
-			<p>Launch configurations appear in the Run/Debug drop-down menus in
-			most recently launched order. However it is possible to force a
-			launch configuration to always appear at the top of the drop-downs by
-   making the configuration a 'favorite'. In the <b>Debug &gt; Launch History</b>
-			preference page, you can establish favorites by launch type (Run,
-			Debug, External Tools).</p>
-			
-      <p><img src="images/favorites-prefs.gif" alt="Launch history preference page" width="355" height="427"></p>
-			<p>Now, the Debug drop-down menu shows the specified configurations
-			as favorites, with the rest of the configurations in history order.</p>
-			<p><img src="images/debug-drop-down.gif" width=191 height=206 alt="Debug drop-down menu on workbench toolbar"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Detail formatters</b></td>
-			<td valign="top" align="left">
-			<p>In the <b>Variables</b> &amp; <b>Expressions</b> views, the detail
-			pane shows an expanded representation of the currently selected
-			variable. By default, this expanded representation is the result of
-			calling <b>toString()</b> on the selected object, but you can create
-			a custom detail formatter that will be used instead by choosing <b>New
-			Detail Formatter</b> from the variable's context menu. This detail
-			formatter will be used for all objects of the same type. You can view
-   and edit all detail formatters in the <b>Java &gt; Debug &gt; Detail
-   Formatters</b> preference page.</p>
-			<p><img src="images/detail-formatter.gif" width=426 height=582 alt="Detail formatter dialog"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Running code with compile errors</b></td>
-			<td valign="top" align="left">
-			<p>You can run and debug code that did not compile cleanly. The only
-			difference between running code with and without compile errors is
-			that if a line of code with a compile error is executed, one of two
-			things will happen:</p>
-			<ul>
-				<li>If the 'Suspend execution on compilation errors' preference on
-    the <b>Java &gt; Debug</b> preference page is set and you are debugging, the
-				debug session will suspend as if a breakpoint had been hit. Note
-				that if your VM supports Hot Code Replace, you could then fix the
-				compilation error and resume debugging</li>
-				<li>Otherwise, execution will terminate with a 'unresolved
-				compilation' error</li>
-			</ul>
-			<p>It is important to emphasize that as long as your execution path
-			avoids lines of code with compile errors, you can run and debug just
-			as you normally do.</p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Word wrap in Variables view</b></td>
-			<td valign="top" align="left">The details area of the debugger's <b>Variables</b>
-			and <b>Expressions</b> views supports word wrap, available from the
-			view drop-down menu.
-			<p><img src="images/variables-details-pane.gif" width=352 height=218 alt="Word wrap action in Variables view drop-down menu"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Code assist in the debugger</b></td>
-			<td valign="top" align="left">
-			<p>Code assist is available in many contexts beyond writing code in
-			the Java editor:</p>
-			<ul>
-				<li>When entering a condition for a breakpoint</li>
-				<li>In the Details pane of the Variables &amp; Expressions view</li>
-				<li>When entering a Details Formatter code snippet</li>
-				<li>When entering code in a Scrapbook page</li>
-				<li>In the Display view</li>
-			</ul>
-			<p><img src="images/display-view-code-assist.gif" width=406 height=228 alt="Display view code assist pop-up"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Command line details</b></td>
-			
-    <td valign="top" align="left">You can always see the exact command line used 
-      to launch a program in run or debug mode by selecting <b>Properties</b> 
-      from the context menu of a process or debug target, even if the launch has 
-      terminated. 
-      <p><img src="images/process-info.gif" alt = "Command line details" width="459" height="210"></p>
-			</td>
-		</tr>
-		<tr>
-			<td valign="top" align="right"><b>Stack trace<br>
-			hyperlinks</b></td>
-			<td valign="top" align="left">
-			<p>Java stack traces in the console appear with hyperlinks. When you
-			place the mouse over a line in a stack trace, the pointer changes to
-			the hand and the stack trace is underlined. Pressing the mouse button
-			opens the associated Java source file and positions the cursor at the
-			corresponding line.</p>
-			<p><img src="images/stack-trace-hyperlink.gif" width=416 height=133 alt="Stack traces in Console view with hyperlinks"></p>
-			</td>
-		</tr>
-	</tbody>	
-</table>
-
-<p><a href="../hglegal2003.htm"><IMG SRC="../images/ngibmcpy2003.gif"
-	WIDTH=324 HEIGHT=14
-	alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved."
-	border="0"></a></p>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.jdt.doc.user/toc.xml b/bundles/org.eclipse.jdt.doc.user/toc.xml
deleted file mode 100644
index 496b8db..0000000
--- a/bundles/org.eclipse.jdt.doc.user/toc.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define the top level topics                                                   -->
-<!-- ============================================================================= -->
-
-<toc label="Java Development User Guide">
-	<topic label="Getting Started">
-		<link toc="topics_GettingStarted.xml" />
-	</topic>
-	<anchor id="jdt_getstart" />
-	<topic label="Concepts">
-		<link toc="topics_Concepts.xml" />
-	</topic>
-	<anchor id="jdt_concepts" />
-	<topic label="Tasks">
-		<link toc="topics_Tasks.xml" />
-	</topic>
-	<topic label="Reference">
-		<link toc="topics_Reference.xml" />
-	</topic>
-	<anchor id="jdt_reference" />
-	
-	<topic label="Tips and tricks" href="tips/jdt_tips.html"/>
-	<topic label="What's new" href="whatsNew/jdt_whatsnew.html"/>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/topics_Concepts.xml b/bundles/org.eclipse.jdt.doc.user/topics_Concepts.xml
deleted file mode 100644
index 2d34d57..0000000
--- a/bundles/org.eclipse.jdt.doc.user/topics_Concepts.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the Concepts -->
-<!-- ========================== -->
-<toc label="Concepts" href="concepts/concepts-1.htm" >
-   <!-- <topic label="Overview" href="concepts/concepts-1.htm"/> -->
-   <topic label="Java projects" href="concepts/concepts-3.htm"/>
-   <anchor id="c_javaprojects" />
-   <topic label="Java builder" href="concepts/concepts-4.htm"/>
-   <anchor id="c_javabuilder" />
-   <topic label="Java perspectives" href="concepts/concepts-5.htm"/>
-   <anchor id="c_javaperspective" />
-   <topic label="Java views" href="concepts/concepts-6.htm"/>
-   <anchor id="c_javaviews" />
-   <topic label="Java editor" href="concepts/concepts-7.htm"/>
-   <anchor id="c_javaeditor" />
-   <topic label="Quick Fix" href="concepts/cquickfix.htm"/>
-   <anchor id="c_quickfix" />   
-   <topic label="Templates" href="concepts/ctemplates.htm" />
-   <anchor id="ctemplates" />
-   <topic label="Java search" href="concepts/concepts-8.htm"/>
-   <anchor id="c_javasearch" />
-   <topic label="Refactoring support" href="concepts/concepts-9.htm"/>
-   <anchor id="c_refactoring" />
-   <topic label="Build classpath" href="concepts/cbuildcp.htm" />
-   <anchor id="c_buildclasspath" />
-   <topic label="Classpath variables" href="concepts/cclsspthv.htm" />
-   <anchor id="c_classpathvariables" />
-   <topic label="Debugger" href="concepts/concepts-10.htm"/>
-   <anchor id="c_debugger" />
-   <topic label="Scrapbook" href="concepts/concepts-11.htm"/>
-   <anchor id="c_scrapbook" />
-   <topic label="Local debugging" href="concepts/clocdbug.htm" />
-   <anchor id="c_localdebug" />
-   <topic label="Remote debugging" href="concepts/cremdbug.htm" />
-   <anchor id="c_remotedebug" />
-   <topic label="Breakpoints" href="concepts/cbrkpnts.htm" />
-   <anchor id="c_breakpoints" />
-   <topic label="String externalization" href="concepts/cnls.htm" />
-   <anchor id="c_nls" />
-  
-</toc>
diff --git a/bundles/org.eclipse.jdt.doc.user/topics_GettingStarted.xml b/bundles/org.eclipse.jdt.doc.user/topics_GettingStarted.xml
deleted file mode 100644
index 48e9a08..0000000
--- a/bundles/org.eclipse.jdt.doc.user/topics_GettingStarted.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the GettingStarted -->
-<!-- ========================== -->
-<toc label="GettingStarted">
-   <topic label="Basic tutorial" href="gettingStarted/qs-BasicTutorial.htm"> 
-	   <topic label="Preparing the workbench" href="gettingStarted/qs-2.htm"/>
-	   <topic label="Creating your first Java project" href="gettingStarted/qs-3.htm"/>
-	   <topic label="Browsing Java elements using the package explorer" href="gettingStarted/qs-4.htm"/>
-	   <topic label="Editing Java elements"> 
-		   <topic label="Opening a Java editor" href="gettingStarted/qs-OpenJavaEditor.htm"/>
-		   <topic label="Adding new methods" href="gettingStarted/qs-AddMethod.htm"/>
-		   <topic label="Using content assist" href="gettingStarted/qs-ContentAssist.htm"/>
-		   <topic label="Identifying problems in your code" href="gettingStarted/qs-7.htm"/>
-		   <topic label="Using source code templates" href="gettingStarted/qs-EditorTemplates.htm"/>
-		   <topic label="Organizing import statements" href="gettingStarted/qs-OrganizeImports.htm"/>
-		   <topic label="Using the local history" href="gettingStarted/qs-LocalHistory.htm"/>
-		   <topic label="Extracting a new method" href="gettingStarted/qs-ExtractMethod.htm"/>
-	   </topic>
-	   
-	   <topic label="Creating a Java class" href="gettingStarted/qs-9.htm"/>
-	   <topic label="Renaming Java elements" href="gettingStarted/qs-8.htm"/>
-	   <topic label="Moving and copying Java elements" href="gettingStarted/qs-10.htm"/>
-	   
-	   <topic label="Navigate to a Java element's declaration" href="gettingStarted/qs-Navigate.htm"/>
-	   <topic label="Viewing the type Hierarchy" href="gettingStarted/qs-6.htm"/>
-	   
-	   <topic label="Searching the workbench" href="gettingStarted/qs-11.htm"/>
-	   
-	   <topic label="Running your programs" href="gettingStarted/qs-12.htm"/>
-	   <topic label="Debugging your programs" href="gettingStarted/qs-13.htm"/>
-	   <topic label="Evaluating expressions" href="gettingStarted/qs-14.htm"/>
-	   <topic label="Evaluating snippets" href="gettingStarted/qs-15.htm"/>
-	   
-	   <topic label="Using the Java browsing perspective" href="gettingStarted/qs-Browsing.htm"/>
-	   
-	   <topic label="Writing and running JUnit tests" href="gettingStarted/qs-junit.htm"/>
-   </topic>
-   
-   <topic label="Project configuration tutorial" href="gettingStarted/qs-ProjectConfiguration.htm">
-	   <topic label="Detecting existing layout" href="gettingStarted/qs-DetectingExistingLayout.htm"/>
-	   <topic label="Organizing sources" href="gettingStarted/qs-OrganizingSources.htm"/>
-	   <topic label="Sibling products in a common source tree" href="gettingStarted/qs-WorkingWithExistingLayout1.htm"/>
-	   <topic label="Overlapping products in a common source tree" href="gettingStarted/qs-WorkingWithExistingLayout2.htm"/>
-	   <topic label="Product with nested tests" href="gettingStarted/qs-WorkingWithExistingLayout3.htm"/>
-	   <topic label="Products sharing a common source framework" href="gettingStarted/qs-WorkingWithExistingLayout4.htm"/>
-   </topic>
-
-   <anchor id="javagetstart" />
-</toc>
diff --git a/bundles/org.eclipse.jdt.doc.user/topics_Reference.xml b/bundles/org.eclipse.jdt.doc.user/topics_Reference.xml
deleted file mode 100644
index 3a80081..0000000
--- a/bundles/org.eclipse.jdt.doc.user/topics_Reference.xml
+++ /dev/null
@@ -1,225 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the Reference -->
-<!-- ========================== -->
-<toc label="Reference">
-
-	<topic label="Java Development Toolkit (JDT) Basics">
-		<topic label="JDT Actions" href="reference/ref-2.htm">
-			<topic label="File Actions" href="reference/ref-menu-file.htm" />
-			<topic label="Edit Actions" href="reference/ref-menu-edit.htm" />
-			<topic label="Source Actions" href="reference/ref-menu-source.htm" />
-			<topic label="Refactor Actions" href="reference/ref-menu-refactor.htm" />
-			<topic label="Navigate Actions" href="reference/ref-menu-navigate.htm" />
-			<topic label="Search Actions" href="reference/ref-menu-search.htm" />
-			<topic label="Project Actions" href="reference/ref-menu-project.htm" />
-			<topic label="Run Actions" href="reference/ref-149.htm"/>
-			<topic label="Java Toolbar Actions" href="reference/ref-3.htm"/>
-			<topic label="Java editor" href="reference/ref-java-editor.htm" />
-			<topic label="Run and Debug Actions" href="reference/ref-4.htm" />
-		</topic>
-		<!--<topic label="JDT Perspectives" href="reference/ref-6.htm">
-			<topic label="Java" href="reference/ref-7.htm" />
-			<topic label="Java Type Hierarchy" href="reference/ref-8.htm" />
-			<topic label="Debug" href="reference/ref-9.htm" />
-		</topic> -->
-	</topic>
-	<anchor id="r_jdtbasics" />
-	
-
-	<topic label="Views and editors" href="reference/ref-24.htm">
-		<topic label="Java Editor" href="reference/ref-java-editor.htm">
-			<topic label="Java Content Assist" href="reference/ref-143.htm" />
-			<topic label="Quick fix" href="reference/ref-java-editor-quickfix.htm" />
-		</topic>
-		<anchor id="r_javaeditor" />
-		<topic label="Java Scrapbook Page" href="reference/ref-34.htm" />
-		<anchor id="r_scrapbook" />
-		<topic label="Breakpoints View" href="reference/ref-35.htm">
-			<topic label="Go to File for Breakpoint" href="reference/ref-38.htm" />
-			<topic label="Add Java Exception Breakpoint" href="reference/ref-40.htm" />
-			<topic label="Suspend Policy" href="reference/brkSuspendPolicy.htm" />
-			<topic label="Hit Count" href="reference/ref-43.htm" />
-			<topic label="Uncaught" href="reference/ref-41.htm" />
-			<topic label="Caught" href="reference/ref-42.htm" />
-			<topic label="Modification" href="reference/brkMod.htm" />
-			<topic label="Access" href="reference/brkAccess.htm" />
-			<topic label="Exit" href="reference/brkExit.htm" />
-			<topic label="Entry" href="reference/brkEntry.htm" />
-			<topic label="Select All" href="reference/brkSelectAll.htm" />
-			<topic label="Enable" href="reference/ref-44.htm" />
-			<topic label="Disable" href="reference/ref-44a.htm" />
-			<topic label="Remove Selected Breakpoints" href="reference/ref-36.htm" />
-			<topic label="Remove All Breakpoints" href="reference/ref-37.htm" />
-		    <topic label="Show Qualified Names in Breakpoints View" href="reference/ref-39.htm" /> 
-		    <topic label="Show Supported Breakpoints" href="reference/brkShowSupported.htm" /> 
-		    <topic label="Breakpoint Properties" href="reference/brkProperties.htm" /> 
-		</topic>
-		<anchor id="r_breakpointsview" />
-		<topic label="Console View" href="reference/ref-45.htm">
-			<topic label="Copy" href="reference/ref-47.htm"/>
-			<topic label="Select All" href="reference/ref-48.htm"/>
-			<topic label="Find/Replace" href="reference/ref-49.htm"/>
-			<topic label="Go To Line" href="reference/ref-50.htm"/>
-			<topic label="Clear the Console" href="reference/ref-46.htm"/>
-			<topic label="Terminate" href="reference/ref-45b.htm"/>
-		</topic>
-		<anchor id="r_consoleview" />
-		<topic label="Debug View" href="reference/ref-51.htm">
-		</topic>
-		<anchor id="r_debugview" />
-		<topic label="Display View" href="reference/ref-52.htm">
-			<topic label="Evaluating Expressions" href="tasks/tasks-138.htm"/>
-			<topic label="Inspect" href="reference/ref-55.htm"/>
-			<topic label="Display" href="reference/ref-54.htm"/>
-		   	<topic label="Clear" href="reference/ref-53.htm"/>
-		</topic>
-		<anchor id="r_displayview" />
-		<topic label="Expressions View" href="reference/ref-56.htm">
-			<topic label="Select All in the Expressions View" href="reference/ref-56a.htm"/>
-			<topic label="Copy Variables in the Expressions View" href="reference/ref-56b.htm"/>
-			<topic label="Remove Selected Expressions" href="reference/ref-59.htm" />
-		    <topic label="Remove All Expressions" href="reference/ref-60.htm" />
-		    <topic label="Change Variable Values in the Expressions View" href="reference/ref-65.htm" /> 
-		    <topic label="Show Constants in the Expressions View" href="reference/ref-63.htm" />
-		    <topic label="Show Static Fields in the Expressions View" href="reference/ref-62.htm" />
-		    <topic label="Show Qualified Names in the Expressions View" href="reference/ref-58.htm" />
-			<topic label="Show Type Names in the Expressions View" href="reference/ref-57.htm" /> 
-		    <topic label="Show Detail Pane for the Expressions View" href="reference/ref-56c.htm" /> 
-		    <topic label="Add/Remove Watchpoint" href="reference/ref-56d.htm" /> 
-		    <topic label="Inspect" href="reference/ref-64.htm" /> 
-		    <topic label="Open Declared Type" href="reference/ref-56e.htm" /> 
-			<topic label="Show Type Names" href="reference/ref-57.htm"/>
-		</topic>
-		<anchor id="r_expressionsview" />
-		
-		<topic label="Variables View" href="reference/ref-74.htm">	
-			<topic label="Inspecting Values" href="tasks/tasks-137.htm"/>
-	      	<topic label="Show Qualified Names in Variables View" href="reference/ref-76.htm" />
-    	  	<topic label="Show Type Names in Variables View" href="reference/ref-75.htm" />
-      		<topic label="Show Detail Pane in Variables View" href="reference/ref-showdetailpane.htm" />
-      		<topic label="Add/Remove Watchpoint" href="reference/ref-74a.htm" />
-	      	<topic label="Show Static Fields in Variables View" href="reference/ref-62.htm" />
-    	  	<topic label="Show Constants in Variables View" href="reference/ref-63.htm" />
-      		<topic label="Change Variable Values in the Variables View" href="reference/ref-81.htm" /> 
-	      	<topic label="Inspect in the Variables View" href="reference/ref-80.htm" /> 
-		</topic>
-		<anchor id="r_variablesview" />
-		
-		<topic label="Type Hierarchy view" href="reference/ref-type-hierarchy.htm" />
-
-		<topic label="Package Explorer view" href="reference/ref-view-package-explorer.htm">
-            <topic label="Java Element Filters dialog" href="reference/ref-dialog-java-element-filters.htm" />
-        </topic>
-
-		<topic label="Java Outline view" href="reference/ref-view-outline.htm" />
-	</topic>
-	
-	<topic label="Menus">
-		<topic label="File Menu" href="reference/ref-menu-file.htm" />
-		<topic label="Edit Menu" href="reference/ref-menu-edit.htm" />
-		<topic label="Source Menu" href="reference/ref-menu-source.htm" />
-		<topic label="Refactor Menu" href="reference/ref-menu-refactor.htm" />
-		<topic label="Navigate Menu" href="reference/ref-menu-navigate.htm" />
-		<topic label="Search Menu" href="reference/ref-menu-search.htm" />
-		<topic label="Project Menu" href="reference/ref-menu-project.htm" />
-		<topic label="Run Menu" href="reference/ref-149.htm">
-			<topic label="Step Commands" href="reference/ref-150.htm">
-			</topic>
-			<topic label="Run and Debug Actions" href="reference/ref-4.htm">
-			</topic>
-		</topic>
-	</topic>
-	<anchor id="r_menus" />
-	
-	<topic label="Toolbar">
-		<topic label="Java Toolbar Actions" href="reference/ref-3.htm"/>
-		<topic label="Java Editor Toolbar Actions" href="reference/ref-java-editor.htm" />
-		<topic label="Run and Debug Actions" href="reference/ref-4.htm" />
-	</topic>
-	
-	<topic label="Preferences" >
-		<topic label="Java" href="reference/ref-13.htm" >
-			<topic label="Appearance" href="reference/ref-preferences-appearance.htm" />
-			<topic label="Classpath Variables" href="reference/ref-15.htm" />
-			<topic label="Code Formatter" href="reference/ref-17.htm" />
-			<topic label="Code Generation" href="reference/ref-preferences-code-generation.htm" />
-			<topic label="Compiler" href="reference/ref-preferences-compiler.htm" />
-			<topic label="Java Editor" href="reference/ref-21.htm" >
-	  			<topic label="Templates" href="reference/ref-preferences-templates.htm" />
-			</topic>
-			<topic label="Installed JREs" href="reference/ref-19.htm" />
-			<topic label="Javadoc" href="reference/ref-preferences-javadoc.htm" />
-			<topic label="JUnit" href="reference/ref-preferences-junit.htm" />
-			<topic label="New Project" href="reference/ref-preferences-new-project.htm" />		
-			<topic label="Organize Imports" href="reference/ref-22.htm" />
-			<topic label="Refactoring" href="reference/ref-23.htm" />
-			<topic label="Task Tags" href="reference/ref-preferences-task-tags.htm" />
-		</topic>
-		<topic label="Debug" href="reference/ref-11.htm">
-			<topic label="Console Preferences" href="reference/ref-12.htm"/>
-		</topic>
-	</topic>
-	<anchor id="r_jdtprefs" />	
-
-    <topic label="Dialogs">
-        <topic label="Java Element Filters" href="reference/ref-dialog-java-element-filters.htm" />
-        <topic label="Open Type dialog" href="reference/ref-148.htm" />
-		<topic label="Create Getter and Setter" href="reference/ref-dialog-gettersetter.htm" />
-    	<topic label="Override Methods" href="reference/ref-dialog-override-method.htm" />
-    </topic>
-
-    <topic label="Property Pages">
-        <topic label="Javadoc Location" href="reference/ref-dialog-javadoc-location.htm" />
- 		<topic label="Java Build Path" href="reference/ref-123.htm" />
- 		<topic label="Java Compiler" href="reference/ref-properties-compiler.htm" />
- 		<topic label="Java Task Tags" href="reference/ref-properties-task-tags.htm" />
-		<topic label="Source Attachment" href="reference/ref-124.htm" />
-    </topic>    
-
-    <topic label="Wizards">
-        <topic label="Externalize Strings wizard" href="reference/ref-wizard-externalize-strings.htm" />
-		<topic label="JAR file exporter" href="reference/ref-export-jar.htm" />
-		<topic label="Javadoc generation" href="reference/ref-export-javadoc.htm" />
-    </topic>
-
-	<topic label="New Wizards" >
-		<topic label="New Java Project Wizard" href="reference/ref-121.htm">
-			<topic label="Java Settings Page" href="reference/ref-123.htm" />
-			<topic label="Attaching Source to JAR Files and Variables" href="reference/ref-124.htm" />
-		</topic>
-		<anchor id="r_newwizards" />
-		
-		<topic label="New Java Package Wizard" href="reference/ref-125.htm" />
-		<anchor id="r_newjavapkgwizard" />
-		<topic label="New Java Class Wizard" href="reference/ref-126.htm" />
-		<anchor id="r_newjavainterfacewizard" />
-		<topic label="New Java Interface Wizard" href="reference/ref-127.htm" />
-		<anchor id="r_newsourcefolderwizard" />
-		<topic label="New Source Folder Wizard" href="reference/ref-128.htm" />
-		<anchor id="r_newjavascrapbookpgwizard" />
-		<topic label="New Java Scrapbook Page Wizard" href="reference/ref-129.htm" />
-	</topic>
-
-	<topic label="Search" >
-		<topic label="Java Search Tab" href="reference/ref-131.htm" />
-		<topic label="Java Search Actions" href="reference/ref-menu-search.htm" />
-	</topic>
-	<anchor id="r_search" />
-	<topic label="Refactoring" href="reference/ref-115.htm">
-		<topic label="Refactor Actions" href="reference/ref-menu-refactor.htm" />
-		<topic label="Refactor Wizard" href="reference/ref-117.htm" />
-		<topic label="Refactor Preferences" href="reference/ref-23.htm" />		
-		<topic label="Extract Method Errors" href="reference/ref-154.htm" />
-		<anchor id="r_refactoringerrors" />
-
-	</topic>
-
-	<topic label="Frequently-Asked Questions: JDT" href="reference/ref-152.htm" />
-	<anchor id="r_faqjdt" />
-
-	<topic label="Icons" href="reference/ref-156.htm" />
-	<topic label="Glossary" href="reference/ref-155.htm" />
-
-</toc>
diff --git a/bundles/org.eclipse.jdt.doc.user/topics_Tasks.xml b/bundles/org.eclipse.jdt.doc.user/topics_Tasks.xml
deleted file mode 100644
index b67e0d8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/topics_Tasks.xml
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the Tasks -->
-<!-- ========================== -->
-<toc label="Tasks">
-
-	<topic label="Changing the appearance of the Java tools">
-		<topic label="Showing and hiding elements" href="tasks/tasks-2.htm">
-			<topic label="Showing and hiding system files" href="tasks/tasks-3.htm"></topic>
-			<topic label="Showing and hiding CLASS files generated for inner types" href="tasks/tasks-4.htm"></topic>
-			<topic label="Showing and hiding libraries" href="tasks/tasks-5.htm"></topic>
-			<topic label="Showing and hiding empty packages " href="tasks/tasks-183.htm"></topic>
-			<topic label="Showing and hiding empty parent packages " href="tasks/tasks-184.htm"></topic>
-			<topic label="Showing and hiding Java files " href="tasks/tasks-185.htm"></topic>
-			<topic label="Showing and hiding non-Java elements" href="tasks/tasks-186.htm"></topic>
-			<topic label="Showing and hiding non-Java projects" href="tasks/tasks-213.htm"></topic>
-			<topic label="Showing and hiding members" href="tasks/tasks-191.htm"></topic>
-			<topic label="Showing and hiding override indicators" href="tasks/tasks-192.htm"></topic>
-			<topic label="Showing and hiding method return types" href="tasks/tasks-193.htm"></topic>
-			<topic label="Showing and hiding import declarations" href="tasks/tasks-212.htm"></topic>
-			<topic label="Showing and hiding package declarations" href="tasks/tasks-214.htm"></topic>
-		</topic>
-		<topic label="Showing full or compressed package names" href="tasks/tasks-194.htm"></topic>
-		<topic label="Sorting elements in Java views" href="tasks/tasks-195.htm"></topic>		
-		<topic label="Customizing the debugger and console" >
-			<topic label="Changing the active perspective when launching" href="tasks/tasks-9.htm"></topic>
-			<topic label="Changing the appearance of the console view" href="tasks/tasks-consoleAppearance.htm"></topic>
-		</topic>
-	</topic>
-	<anchor id="t_appearancejava" />
-
-	<topic label="Creating Java elements" href="tasks/tasks-11.htm">
-		<topic label="Creating a new Java project" href="tasks/tasks-12.htm">
-			<topic label="Creating a Java project as its own source container" href="tasks/tasks-13.htm"></topic>
-			<topic label="Creating a Java project with source folders" href="tasks/tasks-14.htm"></topic>
-		</topic>
-		<topic label="Creating a new source folder" href="tasks/tasks-26.htm">
-			<topic label="Creating a new source folder with exclusion filter" href="tasks/tasks-221.htm"></topic>
-			<topic label="Creating a new source folder with specific output folder" href="tasks/tasks-222.htm"></topic>
-		</topic>
-		<topic label="Creating a new Java package" href="tasks/tasks-15.htm"></topic>
-		<topic label="Creating a new Java class" href="tasks/tasks-17.htm">
-			<topic label="Creating a top-level class" href="tasks/tasks-18.htm"></topic>
-			<topic label="Creating a nested class" href="tasks/tasks-19.htm"></topic>
-			<topic label="Creating a new class in an existing compilation unit" href="tasks/tasks-20.htm"></topic>
-		</topic>
-		<topic label="Creating a new Java interface" href="tasks/tasks-21.htm">
-			<topic label="Creating a top-level interface" href="tasks/tasks-23.htm"></topic>
-			<topic label="Creating a nested interface" href="tasks/tasks-24.htm"></topic>
-			<topic label="Creating a new interface in an existing compilation unit" href="tasks/tasks-25.htm"></topic>
-		</topic>
-		<!--<topic label="Creating a new Java scrapbook page" href="tasks/tasks-27.htm"></topic>-->
-	</topic>
-	<anchor id="t_createjavaelements" />
-
-	<topic label="Creating JAR Files" href="tasks/tasks-32.htm">
-		<topic label="Creating a new JAR file" href="tasks/tasks-33.htm"></topic>
-		<topic label="Setting advanced options" href="tasks/tasks-34.htm"></topic>
-		<topic label="Defining the JAR file&apos;s manifest" href="tasks/tasks-35.htm"></topic>
-		<topic label="Regenerating a JAR File" href="tasks/tasks-36.htm"></topic>
-	</topic>
-	<anchor id="t_createjar" />
-
-	<topic label="Creating Javadoc documentation" href="tasks/tasks-196.htm">
-		<topic label="Specifying the location of the Javadoc command" href="tasks/tasks-197.htm"></topic>	
-		<topic label="Using the Generate Javadoc wizard" href="tasks/tasks-198.htm">
-			<topic label="Selecting types for Javadoc generation" href="tasks/tasks-199.htm"></topic>	
-			<topic label="Configuring Javadoc arguments for standard doclet" href="tasks/tasks-200.htm"></topic>	
-			<topic label="Configuring Javadoc arguments" href="tasks/tasks-201.htm"></topic>	
-		</topic>	
-	</topic>
-	<anchor id="t_createjavadoc" />
-	
-	<topic label="Using the Hierarchy view" href="tasks/tasks-37.htm">
-		<topic label="Changing the appearance of the Hierarchy view" href="tasks/tasks-38.htm"></topic>
-		<topic label="Opening a type hierarchy on a Java element" href="tasks/tasks-39.htm"></topic>
-		<topic label="Opening a type hierarchy on the current text selection" href="tasks/tasks-40.htm"></topic>
-		<!--<topic label="Opening a type hierarchy in the workbench" href="tasks/tasks-41.htm"></topic>-->
-		<topic label="Opening a type hierarchy in its own perspective" href="tasks/tasks-42.htm"></topic>
-		<topic label="Overriding a method using the Hierarchy view" href="tasks/tasks-43.htm"></topic>
-		<topic label="Finding overridden methods" href="tasks/tasks-44.htm"></topic>
-	</topic>
-	<anchor id="t_hierarchyview" />
-
-	<topic label="Using the Package Explorer" href="tasks/tasks-45.htm">
-		<topic label="Filtering elements" href="tasks/tasks-47.htm"></topic>
-		<topic label="Moving folders, packages and files" href="tasks/tasks-51.htm"></topic>
-	</topic>
-	<anchor id="t_packagesview" />
-
-	<topic label="Using the Java editor" href= "tasks/tasks-54.htm">
-		<topic label="Generating getters and setters" href="tasks/tasks-57.htm"></topic>
-		<topic label="Showing single elements or whole Java files" href="tasks/tasks-6.htm"></topic>
-		<topic label="Managing import statements" href="tasks/tasks-58.htm">
-			<topic label="Adding required import statements" href="tasks/tasks-59.htm"></topic>
-			<topic label="Organizing existing import statements" href="tasks/tasks-60.htm"></topic>
-			<topic label="Setting the order of import statements" href="tasks/tasks-61.htm"></topic>
-		</topic>
-		<topic label="Using the local history" href="tasks/tasks-62.htm">
-			<topic label="Comparing a Java element with a local history edition" href="tasks/tasks-63a.htm"></topic>
-			<topic label="Replacing a Java element with a local history edition" href="tasks/tasks-63.htm"></topic>
-			<topic label="Restoring a deleted workbench element" href="tasks/tasks-64.htm"></topic>
-		</topic>
-		<topic label="Using content assist" href="tasks/tasks-65.htm"></topic>
-		<topic label="Formatting Java code" href="tasks/tasks-66.htm">
-			<topic label="Formatting files or portions of code" href="tasks/tasks-67.htm"></topic>
-			<topic label="Setting code formatting preferences" href="tasks/tasks-68.htm"></topic>
-		</topic>
-		<topic label="Viewing documentation and information" href="tasks/tasks-69.htm">
-			<topic label="Viewing marker help" href="tasks/tasks-70.htm"></topic>
-			<topic label="Viewing Javadoc information" href="tasks/tasks-71.htm"></topic>
-		</topic>
-		<topic label="Using templates" href="tasks/tasks-171.htm"></topic>
-		<topic label="Writing your own templates" href="tasks/tasks-203.htm"></topic>
-		<topic label="Converting line delimiters" href="tasks/tasks-172.htm"></topic>
-		<topic label="Finding and replacing" href="tasks/tasks-173.htm">
-			<topic label="Using the Find/Replace dialog" href="tasks/tasks-181.htm"></topic>
-			<topic label="Using Incremental Find" href="tasks/tasks-182.htm"></topic>
-			<topic label="Finding Next or Previous Match" href="tasks/tasks-187.htm"></topic>
-		</topic>
-		<topic label="Changing the encoding used to show the source" href="tasks/tasks-174.htm"></topic>
-		<topic label="Using Quick Fix" href="tasks/tasks-175.htm"></topic>
-		<topic label="Using structured selection" href="tasks/tasks-176.htm"></topic>
-		<topic label="Commenting and uncommenting lines of code" href="tasks/tasks-177.htm"></topic>
-		<topic label="Shifting lines of code left and right" href="tasks/tasks-178.htm"></topic>
-		<topic label="Using Surround with try/catch" href="tasks/tasks-179.htm"></topic>
-	</topic>
-	<anchor id="t_usingjavaed" />
-
-	<topic label="Externalizing Strings" href="tasks/tasks-206.htm">
-		<topic label="Finding strings to externalize" href="tasks/tasks-188.htm"></topic>
-		<topic label="Finding unused and incorrectly used keys in property files" href="tasks/tasks-202.htm"></topic>
-		<topic label="Using the Externalize Strings wizard" href="tasks/tasks-180.htm">
-			<topic label="Key/value page" href="tasks/tasks-189.htm"></topic>
-			<topic label="Property file page" href="tasks/tasks-190.htm"></topic>
-		</topic>
-	</topic>
-	<anchor id="t_externalizingstrings" />
-	
-	<topic label="Navigating the JDT workbench" >
-		<topic label="Opening an editor for a selected element" href="tasks/tasks-73.htm"></topic>
-		<topic label="Showing an element in the Package Explorer view" href="tasks/tasks-74.htm"></topic>
-		<topic label="Opening a type in the Package Explorer view" href="tasks/tasks-75.htm"></topic>
-		<topic label="Opening an editor on a type" href="tasks/tasks-76.htm"></topic>
-		<topic label="Opening a package" href="tasks/tasks-77.htm"></topic>
-		<!--<topic label="Viewing Source in a JAR File" href="tasks/tasks-78.htm"></topic>-->
-		<!--< topic label="Searching Java code" href="tasks/tasks-79.htm"></topic> -->
-	</topic>
-	<anchor id="t_navigatingjdt" />
-
-	<topic label="Refactoring" href="tasks/tasks-80.htm">
-		<topic label="Refactoring steps" >
-			<topic label="Refactoring without preview" href="tasks/tasks-82.htm"></topic>
-			<topic label="Refactoring with preview" href="tasks/tasks-83.htm"></topic>
-			<topic label="Previewing refactoring changes" href="tasks/tasks-84.htm"></topic>
-		</topic>
-		<topic label="Copying and moving Java elements" href="tasks/tasks-85.htm"></topic>
-		<topic label="Extracting a method" href="tasks/tasks-87.htm">
-			<topic label="Parameters page" href="tasks/tasks-88.htm"></topic>
-			<topic label="Problems page" href="tasks/tasks-89.htm"></topic>
-		</topic>
-		<topic label="Renaming a package" href="tasks/tasks-90.htm">
-			<topic label="Parameters page" href="tasks/tasks-91.htm"></topic>
-		</topic>
-		<topic label="Renaming a compilation unit" href="tasks/tasks-92.htm">
-			<topic label="Parameters page" href="tasks/tasks-93.htm"></topic>
-		</topic>
-		<topic label="Renaming a class or interface" href="tasks/tasks-94.htm">
-			<topic label="Parameters page" href="tasks/tasks-95.htm"></topic>
-		</topic>
-		<topic label="Renaming a method" href="tasks/tasks-96.htm">
-			<topic label="Parameters page" href="tasks/tasks-97.htm"></topic>
-		</topic>
-		<topic label="Renaming a field" href="tasks/tasks-169.htm">
-			<topic label="Parameters page" href="tasks/tasks-170.htm"></topic>
-		</topic>
-		<topic label="Renaming a local variable" href="tasks/tasks-204.htm">
-			<topic label="Parameters page" href="tasks/tasks-205.htm"></topic>
-		</topic>
-		<topic label="Renaming method parameters" href="tasks/tasks-98.htm">
-			<topic label="Parameters page" href="tasks/tasks-99.htm"></topic>
-		</topic>
-		<topic label="Changing method signature" href="tasks/tasks-157.htm">
-			<topic label="Parameters page" href="tasks/tasks-158.htm"></topic>
-		</topic>
-		<topic label="Extracting a local variable" href="tasks/tasks-159.htm">
-			<topic label="Parameters page" href="tasks/tasks-160.htm"></topic>
-		</topic>
-		<topic label="Extracting a constant" href="tasks/tasks-209.htm">
-		</topic>
-		<topic label="Inlining a local variable" href="tasks/tasks-161.htm">
-		</topic>
-		<topic label="Inlining a method" href="tasks/tasks-208.htm">
-		</topic>
-		<topic label="Inlining a constant" href="tasks/tasks-207.htm">
-		</topic>
-		<topic label="Self encapsulating a field" href="tasks/tasks-162.htm">
-			<topic label="Parameters page" href="tasks/tasks-163.htm"></topic>
-		</topic>
-		<topic label="Replacing a local variable with a query" href="tasks/tasks-164.htm">
-		</topic>
-		<topic label="Pulling members up to superclass" href="tasks/tasks-165.htm">
-			<topic label="Parameters page" href="tasks/tasks-166.htm"></topic>
-		</topic>
-		<topic label="Pushing members down to subclasses" href="tasks/tasks-220.htm">
-		</topic>
-		<topic label="Moving static members between types" href="tasks/tasks-167.htm">
-			<topic label="Parameters page" href="tasks/tasks-168.htm"></topic>
-		</topic>
-		<topic label="Moving an instance method to a component" href="tasks/tasks-210.htm">
-		</topic>
-		<topic label="Converting a local variable to a field" href="tasks/tasks-211.htm">
-		</topic>
-		<topic label="Converting an anonynous inner class to a nested class" href="tasks/tasks-216.htm">
-		</topic>
-		<topic label="Converting a nested type to a top level type" href="tasks/tasks-217.htm">
-		</topic>
-		<topic label="Extracting an interface from a type" href="tasks/tasks-218.htm">
-		</topic>
-		<topic label="Replacing references to a type with references to one of its subtypes" href="tasks/tasks-219.htm">
-		</topic>
-		
-		<topic label="Undoing a refactoring operation"  href="tasks/tasks-100.htm"></topic>
-		<topic label="Redoing a refactoring operation" href="tasks/tasks-101.htm"></topic>
-	</topic>
-	<anchor id="t_refactoringjdt" />
-
-	<topic label="Searching" >
-		<topic label="Conducting a Java search using the search dialog" href="tasks/tasks-103.htm"></topic>
-		<topic label="Conducting a Java search using pop-up menus" href="tasks/tasks-104.htm"></topic>
-	</topic>
-	<anchor id="t_searchingjdt" />
-
-	<topic label="Building" >
-		<topic label="Building a Java program" href="tasks/tasks-106.htm">
-			<topic label="Viewing compilation errors and warnings" href="tasks/tasks-107.htm"></topic>
-			<topic label="Building automatically" href="tasks/tasks-108.htm"></topic>
-			<topic label="Building manually" href="tasks/tasks-109.htm"></topic>
-			<topic label="Building circular projects" href="tasks/tasks-109a.htm"></topic>
-			<topic label="Building without cleaning output location" href="tasks/tasks-109b.htm"></topic>
-		</topic>
-		<topic label="Working with build paths" href="tasks/tasks-110.htm">
-			<topic label="Viewing and editing a project&apos;s build path" href="tasks/tasks-111.htm"></topic>
-			<topic label="Adding a library folder to the build path" href="tasks/tasks-112.htm"></topic>
-			<topic label="Adding a JAR file to the build path" href="tasks/tasks-113.htm"></topic>
-			<topic label="Adding a classpath variable to the build path" href="tasks/tasks-114.htm"></topic>
-			<topic label="Attaching source to a JAR file" href="tasks/tasks-115.htm"></topic>
-			<topic label="Attaching source to a library folder" href="tasks/tasks-115a.htm"></topic>
-			<topic label="Attaching source to a classpath variable" href="tasks/tasks-116.htm"></topic>
-			<topic label="Defining a class path variable" href="tasks/tasks-117.htm"></topic>
-			<topic label="Deleting a class path variable" href="tasks/tasks-118.htm"></topic>
-		</topic>
-		<topic label="Working with JREs" href="tasks/tasks-JREs.htm">
-			<topic label="Assigning the default JRE for the workbench" href="tasks/tasks-120.htm"></topic>
-			<topic label="Adding a new JRE definition" href="tasks/tasks-121.htm"></topic>
-			<topic label="Overriding the default system libraries for a JRE definition" href="tasks/tasks-122.htm"></topic>
-			<topic label="Editing a JRE definition" href="tasks/tasks-123.htm"></topic>
-			<topic label="Choosing a JRE for launching a project" href="tasks/tasks-124.htm"></topic>
-			<topic label="Deleting a JRE definition" href="tasks/tasks-deleteJRE.htm">	</topic>
-		</topic>
-	</topic>
-	<anchor id="t_buildingjdt" />
-
-	<topic label="Running and debugging" href="tasks/tasks-126.htm">
-		<topic label="Launching a Java program" href="tasks/tasks-130.htm"></topic>
-		<topic label="Launching a Java applet" href="tasks/tasks-130a.htm"></topic>
-		<topic label="Creating a Java application launch configuration" href="tasks/tasks-java-local-configuration.htm"></topic>
-		<topic label="Setting execution arguments" href="tasks/tasks-executionArgs.htm"></topic>
-		<topic label="Relaunching a program" href="tasks/tasks-131.htm"></topic>
-		<topic label="Local debugging" href="concepts/clocdbug.htm">
-			<topic label="Preparing to debug" href="tasks/tasks-133.htm"></topic>
-			<topic label="Launching a Java program in debug mode" href="tasks/tasks-debug-launch.htm"></topic>
-			<topic label="Suspending threads" href="tasks/tasks-134.htm"></topic>
-			<topic label="Resuming the execution of suspended threads" href="tasks/tasks-135.htm"></topic>
-			<topic label="Stepping through the execution of a program" href="tasks/tasks-136.htm"></topic>
-			<topic label="Inspecting Values" href="tasks/tasks-137.htm"></topic>
-			<topic label="Evaluating expressions" href="tasks/tasks-138.htm"></topic>
-		</topic>
-		<topic label="Remote debugging" href="concepts/cremdbug.htm">
-			<topic label="Using the remote Java application launch configuration" href="tasks/tasks-141.htm"></topic>
-			<topic label="Disconnecting from a VM" href="tasks/tasks-142.htm"></topic>
-		</topic>
-		<topic label="Breakpoints" href="concepts/cbrkpnts.htm">
-			<topic label="Adding breakpoints" href="tasks/tasks-144.htm"></topic>
-			<topic label="Removing breakpoints" href="tasks/tasks-144a.htm"></topic>
-			<topic label="Enabling and disabling breakpoints" href="tasks/tasks-144b.htm"></topic>
-			<topic label="Setting method breakpoints" href="tasks/tasks-145.htm"></topic>
-			<topic label="Applying hit counts" href="tasks/tasks-146.htm"></topic>
-			<topic label="Managing conditional breakpoints" href="tasks/tasks-144c.htm"></topic>
-			<topic label="Catching Java exceptions" href="tasks/tasks-147.htm"></topic>
-		</topic>
-	</topic>
-	<anchor id="t_runningdebuggingjdt" />
-	<topic label="Using the scrapbook" href="concepts/concepts-11.htm">
-		<topic label="Creating a Java scrapbook page" href="tasks/tasks-149.htm"></topic>
-		<topic label="Inspecting the result of evaluating an expression" href="tasks/tasks-150.htm"></topic>
-		<topic label="Displaying the result of evaluating an expression" href="tasks/tasks-151.htm"></topic>
-		<topic label="Running an expression" href="tasks/tasks-152.htm"></topic>
-		<topic label="Using code assist" href="tasks/tasks-153.htm"></topic>
-		<topic label="Scrapbook error reporting" href="tasks/tasks-154.htm">
-			<topic label="Viewing compilation errors" href="tasks/tasks-155.htm"></topic>
-			<topic label="Viewing runtime exceptions" href="tasks/tasks-156.htm"></topic>
-		</topic>
-	</topic>
-	<anchor id="t_scrapbook" />
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/annotations_pref_page.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/annotations_pref_page.gif
deleted file mode 100644
index ff811cc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/annotations_pref_page.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/breakpoints-instances.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/breakpoints-instances.gif
deleted file mode 100644
index 28c9112..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/breakpoints-instances.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/buildPathUI.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/buildPathUI.gif
deleted file mode 100644
index 9ee906c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/buildPathUI.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/change_signature.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/change_signature.gif
deleted file mode 100644
index e9f2dd5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/change_signature.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/code-templates.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/code-templates.gif
deleted file mode 100644
index 3b51cbd..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/code-templates.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/conditional-breakpoint.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/conditional-breakpoint.gif
deleted file mode 100644
index e3b241d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/conditional-breakpoint.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_anonymous_to_nested.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_anonymous_to_nested.gif
deleted file mode 100644
index f80f743..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_anonymous_to_nested.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_local_to_field.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_local_to_field.gif
deleted file mode 100644
index d24416e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_local_to_field.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_member_type_to_top_level.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_member_type_to_top_level.gif
deleted file mode 100644
index 4a0d33d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/convert_member_type_to_top_level.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/cycle-warning.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/cycle-warning.gif
deleted file mode 100644
index 1545ae9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/cycle-warning.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/editor-error-indicator.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/editor-error-indicator.gif
deleted file mode 100644
index 6b7e764..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/editor-error-indicator.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/editor_typing_pref_page.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/editor_typing_pref_page.gif
deleted file mode 100644
index d2e2ff5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/editor_typing_pref_page.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/errors_on_the_fly.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/errors_on_the_fly.gif
deleted file mode 100644
index 9b26b46..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/errors_on_the_fly.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/extract_constant.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/extract_constant.gif
deleted file mode 100644
index 2647cff..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/extract_constant.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/extract_interface.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/extract_interface.gif
deleted file mode 100644
index 1457723..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/extract_interface.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/generate_delegate_methods.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/generate_delegate_methods.gif
deleted file mode 100644
index 173d89a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/generate_delegate_methods.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/go_into_top_level.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/go_into_top_level.gif
deleted file mode 100644
index bf6f6c9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/go_into_top_level.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/gointo_toplevel_type.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/gointo_toplevel_type.gif
deleted file mode 100644
index 0533fc2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/gointo_toplevel_type.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hierarchical_layout.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hierarchical_layout.gif
deleted file mode 100644
index c030931..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hierarchical_layout.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hyperlinking.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hyperlinking.gif
deleted file mode 100644
index 277d630..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hyperlinking.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inlineConstant.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inlineConstant.gif
deleted file mode 100644
index 6bf0252..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inlineConstant.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inlineMethod.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inlineMethod.gif
deleted file mode 100644
index 2c1d6e0..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inlineMethod.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inplace_outline.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inplace_outline.gif
deleted file mode 100644
index 8b87e56..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/inplace_outline.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/instruction-pointer.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/instruction-pointer.gif
deleted file mode 100644
index 49f457e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/instruction-pointer.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/java-editor-hover.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/java-editor-hover.gif
deleted file mode 100644
index e94a6e2..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/java-editor-hover.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/junit_config.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/junit_config.gif
deleted file mode 100644
index 0458a85..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/junit_config.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/last_edit_pos.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/last_edit_pos.gif
deleted file mode 100644
index ba4a648..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/last_edit_pos.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/logicalPackages.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/logicalPackages.gif
deleted file mode 100644
index bdaed6d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/logicalPackages.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/macosx-autodetect.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/macosx-autodetect.gif
deleted file mode 100644
index 9690331..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/macosx-autodetect.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/members_sort_order.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/members_sort_order.gif
deleted file mode 100644
index 1579958..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/members_sort_order.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/move-method.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/move-method.gif
deleted file mode 100644
index 187a259..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/move-method.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/multiple-restore.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/multiple-restore.gif
deleted file mode 100644
index 6739a12..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/multiple-restore.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/name-conventions.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/name-conventions.gif
deleted file mode 100644
index ce05955..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/name-conventions.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/non-shared-project-filter.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/non-shared-project-filter.gif
deleted file mode 100644
index cf59f3e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/non-shared-project-filter.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/noop_assignments.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/noop_assignments.gif
deleted file mode 100644
index d663dc7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/noop_assignments.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/overview_hover.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/overview_hover.gif
deleted file mode 100644
index fe4eb59..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/overview_hover.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/package-explorer.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/package-explorer.gif
deleted file mode 100644
index 2855975..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/package-explorer.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/paste_indent.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/paste_indent.gif
deleted file mode 100644
index de50ba4..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/paste_indent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/primitive-options.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/primitive-options.gif
deleted file mode 100644
index f74b2d5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/primitive-options.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/pull-up.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/pull-up.gif
deleted file mode 100644
index 56df308..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/pull-up.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/push-down.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/push-down.gif
deleted file mode 100644
index 6e59354..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/push-down.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quick-fix-localrename.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quick-fix-localrename.gif
deleted file mode 100644
index 8914c92..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quick-fix-localrename.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quickFix.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quickFix.gif
deleted file mode 100644
index 2ee03a7..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quickFix.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/refactor.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/refactor.gif
deleted file mode 100644
index b307c2a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/refactor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/refactoring.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/refactoring.gif
deleted file mode 100644
index b2b87bf..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/refactoring.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/search.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/search.gif
deleted file mode 100644
index 03589fa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/search.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/smart_code_assist.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/smart_code_assist.gif
deleted file mode 100644
index 0f7759a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/smart_code_assist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/sort-by-def.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/sort-by-def.gif
deleted file mode 100644
index dabbdb6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/sort-by-def.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/step-into-selection.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/step-into-selection.gif
deleted file mode 100644
index 27e2ab5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/step-into-selection.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/sticky_hovers.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/sticky_hovers.gif
deleted file mode 100644
index a0c4021..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/sticky_hovers.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/task-tags.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/task-tags.gif
deleted file mode 100644
index bd8adea..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/task-tags.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/threads-monitors.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/threads-monitors.gif
deleted file mode 100644
index 5b3f46d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/threads-monitors.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/todo_task.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/todo_task.gif
deleted file mode 100644
index 858508c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/todo_task.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/use_supertype.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/use_supertype.gif
deleted file mode 100644
index e5fb324..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/use_supertype.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/variables-view-drop-down.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/variables-view-drop-down.gif
deleted file mode 100644
index e5cab4b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/variables-view-drop-down.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/warn-privates.gif b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/warn-privates.gif
deleted file mode 100644
index e59a89b..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/warn-privates.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html b/bundles/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html
deleted file mode 100644
index eb72ca8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>JDT What's New</title>
-</head>
-
-<body>
-
-<h2>What's New in 2.1</h2>
-<p>Here are some of the more interesting or significant changes made to the Java 
-  development tools for the 2.1 release of Eclipse since 2.0:</p>
-<p><a href="#editor">Java Editor</a></p>
-<p><a href="#debug">Java Debugger</a></p>
-<p><a href="#refactor">Refactoring</a></p>
-<p><a href="#others">General</a></p>
-<p><a href="#Junit">JUnit integration</a></p>
-
-<h2>Java Editor<a name="editor"></a></h2>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <colgroup>
-    <col width="20%" valign="top" align="right">
-	<col width="80%" valign="top" align="left">
-  </colgroup>
-  <tr>
-    <td><P><B>Java Editor is more customizable</B></P></td>
-	<td><p><B>Java &gt; Editor</B> preference page offers more configuration options:</p>
-      <ul>
-        <li>you can configure the hover help in the Java editor via the <b>Hovers</b> 
-          tab</li>
-        <li>you can use the <b>Typing</b> tab to control automatic closing of 
-          parentheses, brackets, strings, and comments, for smart wrapping of 
-          strings, and other helpful Java-specific editor behavior</li>
-        <li>you can use the <b>Annotations</b> tab to customize the visual appearance 
-          of errors, warning, tasks, etc.</li>
-      </ul></td>
-  </tr>
-  <tr>
-    <td><b>Sticky hovers</b></td>
-	<td><p>You can open a hover in a scrollable and resizable window by pressing 
-       F2.  You can select and copy content from this window.</p>
-      <p><img src="images/sticky_hovers.gif" width=353 height=189 alt="Resizable hover help window"></p>
-	</td>
-  </tr>
-  <tr>
-    <td><P><B>Prominent status 
-      indication</B> </P></td>
-	<td>Both the Default Text editor and 
-      the Java editor now display a prominent marker in the upper right corner  
-      to indicate that the file contains errors or warnings. 
-      <P align=center><img src="images/editor-error-indicator.gif" width=428 height=147 alt="Editor with error indication marker in the upper right corner" border=0>
-</P></td>
-  </tr>
-  <tr>
-    <td><P><B>Find in file</B></P></td>
-	<td>The Search menu group contains a new command (<b>Occurrences in File</b>) 
-      to search for all occurrences of types, fields, methods and local variables 
-      inside the compilation unit or class file in which the element is declared. 
-      Consistent with other search commands, markers are generated and presented 
-      as annotations in the editor. Entries in the Search Results view have different 
-      icons for read and write access. In this example you see the search results 
-      for &quot;fName&quot; in &quot;TestCase.java&quot;. 
-      <P align=center><img src="images/search.gif" width=339 height=374 alt="Editor and Search view showing occurrences of a field in a file"></P>
-	</td>
-  </tr>
-  <tr>
-    <td><P><B>More Quick Fixes</B></P></td>
-	<td><p>There are now Quick Fixes for additional Java problems. Click the light 
-        bulb in the left margin of the Java editor, press Ctrl+1 or select <b>Edit 
-        &gt; Quick Fix</b> from the menu to:</p>
-      <UL>
-        <LI>Create missing constructors 
-        <LI>Remove unused private methods, fields or types 
-        <LI>Fix ambiguous imports (also suggests Organize 
-          Imports) 
-        <LI>Create method in outer type (for methods 
-          in anonymous classes) 
-        <LI>Add stubs for unimplemented methods</LI>
-        <LI>Add either a catch clause or a throws declaration to deal with an 
-          uncaught exception</LI>
-        <LI>Remove a catch clause to deal with an exception no longer thrown</LI>
-        <LI>Add unimplemented abstract methods</LI>
-      </UL>
-      <P>Other compiler-detected problems that can be fixed using Quick Fix include:</P>
-      <ul>
-        <li>Instance fields used in a static context</li>
-        <li>Static methods or fields accessed via in a non-static way</li>
-        <li>Declaration of an abstract method in a non-abstract type</li>
-        <li>Non-visible method, field, type, or import</li>
-        <li>Non-externalized strings</li>
-      </ul>
-      <P><img src="images/quickFix.gif" width=458 height=159 alt="Quick Fix window"></P>
-	 </td>
-  </tr>
-  <tr>
-    <td><p><B>Quick Assist</B></p>
-    </td>
-	<td>      <p>The Quick Fix actions are now available even when there are no errors. 
-        Position the caret in an identifier and press Ctrl+1 (<B>Edit &gt; Quick 
-        Fix</B>) to invoke Quick Assist. </p>
-      <UL>
-        <LI>Linked rename is available on all identifiers. 
-          <P align=left><img src="images/quick-fix-localrename.gif" width=432 height=127 alt="Linked rename Quick Assist"> <BR>
-            <BR>
-            Linked rename activates linked mode editing (as in templates), where 
-            changing the identifier changes all occurrences of that name within 
-            the source file. </P>
-        <LI>You can replace <code>catch</code> clause with <code>throws</code> 
-          clause (available on the <code>catch</code> clauses).
-        <LI>You can assign expression statements to a new local variable or field 
-          (available on all expression statements). For example,<TT><code> vector.iterator();</code></TT> 
-          will be transformed to<BR>
-          <code>Iterator iterator= vector.iterator();</code> <BR>
-          Variable name suggestions are provided by Quick Assist. </LI>
-        <li>You can remove if/while/for/do statements or blocks and the indentation 
-          of the content will be automatically corrected. 
-        <li>You can surround multi-line selections with templates.</li>
-      </UL>
-</td>
-  </tr>
-  <tr>
-    <td><b>Code assist improvements</b></td>
-	<td><ul>
-        <li>The Java compiler has improved the rating of the relevance of a proposal 
-          based on the type expected in the context. For instance, for <code>StringBuffer 
-          sb= new [code assist]</code>, <code>StringBuffer</code> now appears 
-          first on the list. </li>
-        <li>Code assist in the Java editor now provides completion on keywords.</li>
-      </ul>
-    </td>
-  </tr>
-  <tr>
-    <td><b>Improved Java outline view</b></td>
-	<td><p>You can adjust the Java outline to show just the members of the compilation 
-        unit's main type by pressing the 
-        <img src="images/gointo_toplevel_type.gif" alt="Go Into Top Level Type icon" width="16" height="16">
-        button 
-        (<b>Go Into Top Level Type</b>) in the Outline view toolbar.</p>
-      <p><img src="images/go_into_top_level.gif" alt="Java Outline view toolbar" width="329" height="139"></p>
-	 </td>
-  </tr>
-  <tr>
-    <td><b>Hyper-linked Java code</b></td>
-	<td>      <p>While hovering over Java code, pressing the Ctrl key and moving the mouse 
-        turns class, method, and field identifiers into clickable links to the 
-        corresponding declaration. This option can be configured via the <b>Java 
-        &gt; Editor &gt; Navigation</b> tab.</p>
-      <p><img src="images/hyperlinking.gif" width=429 height=132 alt="Hyper-links in Java code"></p>
-</td>
-  </tr>
-  <tr>
-    <td><b>Scroll to the next member</b></td>
-	<td>Use Ctrl + Shift + Arrow Down (<strong>Navigate &gt; 
-      Go To &gt; Next Member</strong>) and Ctrl + Shift + Arrow Up (<strong>Navigate 
-      &gt; Go To &gt; Previous Member</strong>) in the Java editor to quickly 
-      navigate between member methods, fields, initializers, and types.
-	</td>
-  </tr>
-  <tr>
-    <td><b>More errors detected on the fly</b></td>
-	<td><p>The Java editor now annotates more error types, 
-        including uncaught exceptions and unused variables, which require detailed 
-        flow analysis.</p>
-      <p><img src="images/errors_on_the_fly.gif" width=464 height=162 alt="Editor showing an error detected on typing"></p>
-	 </td>
-  </tr>
-  <tr>
-    <td><P><B>In-place outlines</B></P></td>
-	<td>Press Ctrl+F3 (<B>Navigate&nbsp; 
-      &gt; Open Structure</B>) in the Java editor to pop up an in-place outline 
-      of the element at the current cursor position. Or press Ctrl+O (<B>Edit 
-      &gt; Open Structure</B>) to pop up an in-place outline of the current source 
-      file. 
-      <P align=center><img src="images/inplace_outline.gif" width=453 height=282 border="0" alt="Inplace outline"></P>
-	</td>
-  </tr>
-  <tr>
-    <td><P><B>Hover information in editor overview</B></P></td>
-	<td>The Java editor overview ruler (on the right side of the frame) now shows hover information for problem annotations. 
-      <P align=center><img src="images/overview_hover.gif" width=307 height=111 alt="Overview ruler hover"></P>
-	</td>
-  </tr>
-  <tr>
-    <td><P><B>Class file editor</B></P></td>
-	<td>The class file editor has caught up with the compilation unit editor. 
-      It now supports cursor-line highlighting, line numbers, annotation highlighting, 
-      overview ruler, print margin, semantic selection expansion, and keyboard 
-      navigation between the members of the class file.</td>
-  </tr>
-</table>
-
-<h2>Java Debugger<a name="debug"></a></h2>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <colgroup>
-    <col width="20%" valign="top" align="right">
-	<col width="80%" valign="top" align="left">
-  </colgroup>
-  <tr>
-    <td><b>Threads and Monitors view</b></td>
-	<td><p>The debugger's new <b>Threads and Monitors</b> view shows which threads 
-        are holding locks and which are waiting to acquire locks. </p>
-      <p><img src="images/threads-monitors.gif" width="373" height="260" alt="Monitors view showing deadlock cycles"> </p>
-      <p>&nbsp;</p>
-	</td>
-  </tr>
-  <tr>
-    <td><b>Instance breakpoints and watchpoints</b></td>
-	<td>You can now set breakpoints &amp; 
-      watch points specific to a particular object instance. In the Variables 
-      view, choose <b>Instance Breakpoints...</b> from the variables context menu. 
-      <p><img src="images/breakpoints-instances.gif" width="344" height="428" alt="Instance filter dialog"></p>
-	</td>
-  </tr>
-  <tr>
-    <td><b>Improved conditional breakpoints</b></td>
-	<td>A traditional conditional breakpoint is triggered by a boolean expression 
-      evaluating to &quot;true&quot;. It is now possible to declare conditional 
-      breakpoints that are triggered whenever the value of an expression changes. 
-      In addition, code assist is now available when typing the in the conditional 
-      expression. 
-      <p><img src="images/conditional-breakpoint.gif" width="351" height="171" alt="Breakpoint properties dialog"></p>
-	</td>
-  </tr>
-  <tr>
-    <td><b>Stepping into selections</b></td>
-	<td><p>The Java debugger now allows you to step into a single method within 
-        a series of chained or nested method calls. Simply highlight the method 
-        you wish to step into and select <b>Step into Selection</b> from the Java 
-        editor context menu.</p>
-      <p><img src="images/step-into-selection.gif" alt="Stepping into selection" width="404" height="147"></p>
-	</td>
-  </tr>
-  <tr>
-    <td><b>Watch items</b></td>
-	<td> You can create watch item by selecting an expression in the Java editor 
-      and using the <b>Watch</b> action (available in the context menu, and in 
-      the <b>Run</b> menu). As well, a watch item can be created by selecting 
-      a variable and using the <b>Watch</b> action. </td>
-  </tr>
-  <tr>
-    <td><b>Step filters</b></td>
-	<td>Step filters are more convenient
-      to use now that a <b>Step With Filters</b> action has been added to the
-      debug toolbar and menu. As well, actions have been added to the debug context 
-      menu to streamline the creation of step filters for the type or package 
-      associated with the selected stack frame.</td>
-  </tr>
-  <tr>
-    <td><b>Word wrap in Variables view</b></td>
-	<td>The details area of the debugger's
-      <b>Variables</b> and <b>Expressions</b> views now supports word wrap, available 
-      from the view drop-down menu. 
-      <p><img src="images/variables-view-drop-down.gif" width="230" height="152" alt="Word wrap action in Variables view drop-down menu"></p>
-	</td>
-  </tr>
-  <tr>
-    <td><b>Stack trace hyperlinks</b></td>
-	<td><p>Java stack traces in the console now appear with hyperlinks. When you 
-        place the mouse over a line in a stack trace, the pointer changes to the 
-        hand and the stack trace is underlined. Pressing the mouse button opens 
-        the associated Java source file and positions the cursor at the corresponding 
-        line.</p>
-      <p><img border="0" src="../tips/images/stack-trace-hyperlink.gif" width="416" height="133" alt="Stack trace with hyperlinks in Console view"></p>
-	</td>
-  </tr>
-  <tr>
-    <td><b>Console buffer size</b></td>
-	<td>The Console view retains only the most recent N characters of output (default 
-      is 80K). The console buffer size can be configured via the <b>Debug &gt; 
-      Console</b> preference page. </td>
-  </tr>
-  <tr>
-    <td><b>Filtering constants &amp; statics</b></td>
-	<td><p>Two new actions are available in the pull-down menu of the Variables 
-        view - <b>Show Constants</b> &amp; <b>Show Static Variables</b>. These 
-        actions toggle the visibility of static final and static variables. </p>
-      <p><img src="images/variables-view-drop-down.gif" width="230" height="152" alt="Variable filter actions in Variables view drop-down menu"></p>
-    </td>
-  </tr>
-  <tr>
-    <td><b>Faster stepping</b></td>
-	<td><p>The performance of the debugger's <b>Run &gt; Step over</b> (F6) action 
-        has been improved. You should notice the difference when holding down 
-        the F6 key or rapidly clicking the <b>Step Over</b> button.</p>
-     </td>
-  </tr>
-  <tr>
-    <td><b>Instruction pointer</b></td>
-	<td>
-      <p>When debugging, the Java editor now indicates the currently executing 
-        line with an arrow in the left margin. This arrow is solid for the top 
-        stack frame and hollow for non-top stack frames. </p>
-      <p><img src="images/instruction-pointer.gif" width="401" height="66" alt="Instruction pointer appears in editor ruler"></p>
-	 </td>
-  </tr>
-</table>
-
-<h2>Refactoring<a name="refactor"></a></h2>
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <colgroup>
-    <col width="20%" valign="top" align="right">
-	<col width="80%" valign="top" align="left">
-  </colgroup>
-  <tr>
-    <TD><b>New Refactorings</b></TD>
-    <TD> 
-      <p>Many new refactoring actions are available:</p>
-      <ul>
-        <li><b>Move Instance Method:</b> this refactoring allows you to move the 
-          method to the declared class of one of its parameters or fields. This 
-          creates a new method and converts the old method into a delegate (passing 
-          it a pointer to <code>this</code> if necessary). </li>
-        <li><b>Push Members Down:</b> this refactoring allows you to move a set 
-          of methods and fields from a class to its subclasses.</li>
-        <li><b>Inline Method:</b> this refactoring inlines calls to a particular 
-          Java method, either at a selected call site or everywhere the method 
-          is called. It is available polymorphically via the <b>Refactor &gt; 
-          Inline</b> menu entry.</li>
-        <li><b>Inline Constant:</b> this refactoring inlines uses of a particular 
-          Java static final field, either at a selected reference site or everywhere 
-          the field is referenced. It is available polymorphically via the <b>Refactor 
-          &gt; Inline</b> menu entry.</li>
-        <li><b>Extract Constant:</b> this refactoring creates a static final field 
-          from the selected expression and substitutes a field reference, and 
-          optionally rewrites other places where the same expression occurs.</li>
-        <li><b>Convert Local Variable to Field: </b>this refactoring allows you 
-          to turn a local variable into a field. If the variable is initialized 
-          on creation, then the operation moves the initialization to the new 
-          field's declaration or to the class's constructors.</li>
-        <li><b>Convert Anonymous Class to Nested Class: </b>if an anonymous inner 
-          class in your code is too large, this refactoring will help you convert 
-          it to a member class.</li>
-        <li><b>Convert Member Type to Top Level Type: </b>this refactoring creates 
-          a new Java compilation unit for the selected member type, updating all 
-          references as needed. For non-static member types, a field is added 
-          to allow access to the former enclosing instance.</li>
-        <li><b>Extract Interface: </b>this refactoring creates a new interface 
-          with a set of methods and makes the selected class implement the interface, 
-          optionally changing references to the class to the new interface wherever 
-          possible.</li>
-        <li><b>Use Supertype Where Possible:</b> this refactoring replaces occurrences 
-          of a type with one of its supertypes after identifying all places where 
-          this replacement is possible.</li>
-      </ul>
-    </TD>
-  </TR>
-     <TD><b>Improved Refactorings</b></TD>
-    <TD> 
-      <p>Several refactoring actions have been improved:</p>
-      <ul>
-        <li><b>Change Method Signature: </b>this refactoring is a replacement 
-          for the Modify Parameters refactoring. It allows you to change a method's 
-          visibility and return type, and add, remove, rename and reorder method 
-          parameters.</li>
-        <li><b>Pull Members Up: </b>this refactoring has been improved in several 
-          ways
-          <ul>
-            <li>you can pull members up more than 1 level in the hierarchy</li>
-            <li> instead of pulling them up, you can declare methods as abstract 
-              in the selected supertype</li>
-            <li>you can compute the smallest set of members that need to be pulled 
-              up together in order to satisfy visibility constraints</li>
-          </ul>
-        </li>
-        <li><b>Extract Method: </b>you can reorder and rename parameters of the 
-          extracted method.</li>
-        <li><b>Rename and Move Refactorings: </b>when renaming a Java type or 
-          package (or when moving a type to a different package), the fully qualified 
-          name of the element can now be updated in non-Java files as well. </li>
-      </ul>
-    </TD>
-  </TR>
-   <TR>
-    <TD><P><B>New lightweight refactoring UI</B></P></TD>
-    <TD>
-      <P>Activating any Java refactoring operation now 
-        shows a small starting dialog to gather information needed to perform 
-        the refactoring. Click <B>OK</B> to execute the refactoring without further 
-        ado, or click <B>Preview</B> to see its effects before deciding whether 
-        to go ahead.</P>
-      <P><img src="images/refactoring.gif" width=408 height=199 alt="New lightweight refactoring dialog"></P></TD></tr>
-	  <TR>
-</table>
-
-<h2>General<a name="others"></a></h2>
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <colgroup>
-    <col width="20%" valign="top" align="right">
-	<col width="80%" valign="top" align="left">
-  </colgroup>
-  <TR>
-    <TD><p><B>More flexible Java source 
-      and output paths</B></p></TD>
-    <TD>The Java build path setup offers improved flexibility: 
-      <UL>
-        <LI>Exclusion filters let you exclude certain 
-          source files within a source folder from being compiled.
-        <LI>Source folders can now be nested - use an exclusion filter on the 
-          parent folder to exclude the sub-folder you wish to add to the build 
-          path. 
-        <LI>The location of generated class files can 
-          be set individually for each source folder.</LI>
-        <LI>You can also use linked folders as source folders, class folders or 
-          output folders.</LI>
-      </UL>
-      <P align=center><img src="images/buildPathUI.gif" width=396 height=309 alt="Java Build Path property page"></P></TD></TR>
-  <TR>
-    <TD><b>Project-specific Java compiler settings</b></TD>
-    <TD>In addition to workspace-wide Java compiler preference settings (<b>Java 
-      &gt; Compiler</b>), you can now configure these for a specific Java project 
-      through the new <b>Java Compiler</b> property page on each Java project.</TD>
- </TR>
-  <TR>
-    <TD>
-      <P><B>More Java compiler options</B> </P></TD>
-    <TD> 
-      <ul>
-        <li>Java projects that depend on each other can usually be compiled successfully 
-          in a single build action. In order for cycles to be allowed, you'll 
-          need to lower the severity associated with circular dependencies on 
-          the <b>Java &gt; Compiler</b> preference page. </li>
-        <li>The Java compiler can now warn of unused private method, field, or 
-          type declarations. This option helps you find dead code and some subtle 
-          errors.</li>
-        <li>The Java compiler now gives you a warning when you appear to be assigning 
-          a variable with its own value. This helps catch a subtle mistake in 
-          setter methods and constructor declarations where the name of a parameter 
-          is close to the name of a field. This option can be configured via the 
-          <b>Java &gt; Compiler &gt; Style</b> preference page. Here is an example:</li>
-      </ul>
-      <img src="images/noop_assignments.gif" width=407 height=109 alt="Assignment with no effect"></TD>
-  </TR>
-  <TR>
-    <TD>
-      <P ><B>Improved prefix and suffix 
-      configuration for variables</B> </P></TD>
-    <TD>In addition to configuring the prefix 
-      or suffix for fields, you can now specify the prefix or suffix for 
-      static fields, parameters, and local variables. These settings on the <B>Java 
-      &gt; Code Generation</B> preference page are used in code assist, quick fix, 
-      and refactoring whenever a variable name needs to be computed. 
-      <P align=center><img src="images/name-conventions.gif" width=418 height=217 alt="Name conventions preference page" border=0>
-</P></TD></TR>
-  <TR>
-    <TD>
-      <P ><B>Customizable code 
-      generation</B> </P></TD>
-    <TD>The <B>Java &gt; Code Generation</B> 
-      preference page allows you to customize generated code and comments 
-      in a similar way to normal templates. These code templates are 
-      used whenever code is generated. (The comments replace the existing 'filecomment' 
-      and 'typecomment' templates used for code generation.) 
-      <P align=center><img src="images/code-templates.gif" width=416 height=409 alt="Code and Comments tab in Code Generation preference page" border=0> </P></TD></TR>
-  <TR>
-    <TD>
-      <P><B>Configurable task 
-      tags</B> </P></TD>
-    <TD>The <B>Java &gt; Task Tags </B>preference page is used to 
-      configure the workspace-wide presentation of task tags appearing in Java 
-      comments. You can also configure these tags on a per-project basis via the 
-      <b>Java Task Tags</b> property page on each Java project. 
-      <P align=center><img src="images/task-tags.gif" width=411 height=170 alt="Task Tags preference page"></P>
-      <P align>In the editor you'll see:</P>
-      <P align=center><img src="images/todo_task.gif" alt="Editor with a TODO task" width="359" height="100"></P>
-    </TD></TR>
-	  <TR>
-    <TD><P><B>Sort members</B></P></TD>
-    <TD>
-      <p>There is now a <B>Sort Members</B> action on 
-        the context menu of Java compilation units and top level types that rearranges 
-        the members of a compilation unit according to the category order defined 
-        in the <B>Java &gt; Appearance &gt; Member Sort Order</B> preference page.</p>
-      <p><img src="images/members_sort_order.gif" alt="Member Sort Order preference page" width="413" height="235"></p>
-    </TD></TR>
-  <TR>
-    <TD><P><B>Add Delegate Methods dialog</B> </P></TD>
-    <TD>
-      <p>You can now easily generate delegate methods (methods that delegate to 
-        a method provided by an instance variable) by using the <b>Source &gt; 
-        Generate Delegate Methods</b> action.&nbsp;The action is available on 
-        all types with fields. </p>
-      <p><img src="images/generate_delegate_methods.gif" alt="Add Delegate Methods dialog" width="324" height="408"> 
-      </p>
-    </TD></TR>
-  <TR>
-    <TD><P><B>Package Explorer improvements</B> </P></TD>
-    <TD>Non-Java projects are now 
-      presented in the Package Explorer view. A filter is provided to filter out 
-      non-Java projects, and the open/close interaction is now consistent with 
-      the resource Navigator view. 
-      <P><img src="images/package-explorer.gif" width="206" height="93" alt="Non-Java projects in Package Explorer"></P>
-      <P>Libraries (such as the JRE system library) 
-        are now presented as a single node with one or more JARs as children. 
-      </P>
-    </TD></TR>
-  <TR>
-    <TD>
-      <P><B>Hierarchical vs. flat layout 
-      of packages</B> </P></TD>
-    <TD>
-      <p>An option on the Java Packages view (and the Package Explorer view) allows 
-        you to change the way packages are displayed. <B>Hierarchical</B> displays 
-        packages in a tree, with sub-packages below packages; <B>Flat</B> displays 
-        them in the standard arrangement, as a flat list where all packages and 
-        sub-packages are siblings. Below is an example of the hierarchical layout:</p>
-      <p><img src="images/hierarchical_layout.gif" alt="Hierarchical layout in Package Explorer" width="329" height="220"> </p>
-    </TD></TR>
-  <TR>
-    <TD>
-      <P ><B>Logical packages</B> 
-      </P></TD>
-    <TD>
-      <p>The Java Packages view (Java Browsing perspective) 
-        coalesces packages of the same name across source folders within a project. 
-       This shows a view of a logical package.</p>
-      <p><img src="images/logicalPackages.gif" alt="Logical packages in Java Packages view" width="313" height="219"></p>
-    </TD></tr>	
-  <TR>
-    <TD>
-      <P ><B>Type hierarchy view supports 
-      grouping by defining type</B> </P></TD>
-    <TD>The type hierarchy method view lets 
-      you sort the selected type's methods by its defining types. For example, 
-      for <code>AbstractList</code> you can see that it contains methods that were 
-      defined in <code>Object</code>, <code>Collection</code>, and <code>List</code>: 
-      <P align=center><img src="images/sort-by-def.gif" width=426 height=245 border="0" alt="Sort members by the defining type in the type hierarchy"></P></TD></TR>
-  <TR>
-    <TD>
-      <P><B>More filters for the Package Explorer and Project views</B> </P>
-    </TD>
-    <TD> 
-      <p>There are more filters for Package Explorer and Projects views: </p>
-      <P align=center><img src="images/non-shared-project-filter.gif" width=380 height=493 alt="Package Explorer filters" border=0>
-</P>
-    </TD>
-  </TR>
-  <TR>
-    <TD>
-      <P ><B>Multiple method 
-      restore</B> </P></TD>
-    <TD>You can now restore multiple Java 
-      elements from the local history in one operation by selecting <B>Restore 
-      From Local History</B> from the context menu. In the left pane of the dialog, 
-      check the elements you want to restore and for each checked element select 
-      a history entry from the right hand side. 
-      <P align=center><img src="images/multiple-restore.gif" width=345 height=229 alt="Multi-method restore" border=0>
-</P></TD></TR>
-</table>
-
-<h2>JUnit integration<a name="Junit"></a></h2>
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <colgroup>
-    <col width="20%" valign="top" align="right">
-	<col width="80%" valign="top" align="left">
-  </colgroup>
-  <TR>
-    <TD><b>Running all unit tests</b></TD>
-    <TD>
-      <p>The JUnit test runner now gives you an easy way to run all tests in a 
-        specified Java project, source folder, or package.</p>
-      <p><img src="images/junit_config.gif" alt="JUnit launch configuration" width="374" height="351"></p>
-    </TD>
-  </TR>
-  <TR>
-    <TD><b>Finding unit tests</b></TD>
-    <TD>The new JUnit action <b>Navigate &gt; Go To &gt; 
-      Referring Tests</b> finds and navigates to tests that reference a particular 
-      type or method. </TD>
-  </TR>
-  <TR>
-    <TD>
-      <P><B>Run as JUnit test</B> </P>
-    </TD>
-    <TD>Select a JUnit test method in a 
-      view and choose <B>Run &gt; Run As &gt; JUnit test</B>. This creates a 
-      launch configuration to run the selected test.</TD></TR>
-</table>
-	<p> 
-      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
-	</p>
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/.classpath b/bundles/org.eclipse.pde.doc.user/.classpath
deleted file mode 100644
index 73fb5bf..0000000
--- a/bundles/org.eclipse.pde.doc.user/.classpath
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path=""/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.pde.doc.user/.project b/bundles/org.eclipse.pde.doc.user/.project
deleted file mode 100644
index a11aff3..0000000
--- a/bundles/org.eclipse.pde.doc.user/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.pde.doc.user</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.pde.doc.user/about.html b/bundles/org.eclipse.pde.doc.user/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.pde.doc.user/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/about.ini b/bundles/org.eclipse.pde.doc.user/about.ini
deleted file mode 100644
index 96fca68..0000000
--- a/bundles/org.eclipse.pde.doc.user/about.ini
+++ /dev/null
@@ -1,23 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
diff --git a/bundles/org.eclipse.pde.doc.user/about.mappings b/bundles/org.eclipse.pde.doc.user/about.mappings
deleted file mode 100644
index 720ca87..0000000
--- a/bundles/org.eclipse.pde.doc.user/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/about.properties b/bundles/org.eclipse.pde.doc.user/about.properties
deleted file mode 100644
index 4f1988a..0000000
--- a/bundles/org.eclipse.pde.doc.user/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Eclipse Plug-in Development Environment User Guide\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright IBM Corp. and others 2000, 2003.  All rights reserved.\n\
-Visit http://www.eclipse.org/pde
-
diff --git a/bundles/org.eclipse.pde.doc.user/book.css b/bundles/org.eclipse.pde.doc.user/book.css
deleted file mode 100644
index 139eb28..0000000
--- a/bundles/org.eclipse.pde.doc.user/book.css
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/build.properties b/bundles/org.eclipse.pde.doc.user/build.properties
deleted file mode 100644
index fabf6ea..0000000
--- a/bundles/org.eclipse.pde.doc.user/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# use provided build.xml
-custom=true
diff --git a/bundles/org.eclipse.pde.doc.user/build.xml b/bundles/org.eclipse.pde.doc.user/build.xml
deleted file mode 100644
index 3e7c0e0..0000000
--- a/bundles/org.eclipse.pde.doc.user/build.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.pde.doc.user" default="build.jars" basedir=".">
-
-	<target name="init">
-		<property name="plugin" value="org.eclipse.pde.doc.user"/>
-		<property name="version.suffix" value="_3.0.0"/>
-		<property name="full.name" value="${plugin}${version.suffix}"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-	</target>
-
-	<target name="build.update.jar" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<zip zipfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<zip zipfile="${destination.temp.folder}/${full.name}/doc.zip"
-			basedir="${basedir}"
-			includes="book.css, hglegal.htm, ngibmcpy.gif, guide/**, tips/**, whatsNew/**, images/**"
-		/>
-		<copy todir="${destination.temp.folder}/${full.name}">
-			<fileset dir="${basedir}" includes="*.properties,*.xml,*.zip,*.html,*.htm,*.gif,book.css" excludes="build.properties,build.xml"/>
-		</copy>
-	</target>
-
-	<target name="build.jars" depends="init">
-	</target>
-
-	<target name="gather.sources" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="build.sources" depends="init">
-	</target>
-
-	<target name="gather.logs" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${plugin.destination}/${full.name}.jar"/>
-		<delete file="${plugin.destination}/${full.name}.zip"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running">
-		<eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
-	</target>
-
-	<target name="zip.plugin" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="build.sources"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<antcall target="gather.sources">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<delete>
-			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
-		</delete>
-		<zip zipfile="${plugin.destination}/${full.name}.zip" basedir="${temp.folder}" filesonly="true"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/contexts_PDE.xml b/bundles/org.eclipse.pde.doc.user/contexts_PDE.xml
deleted file mode 100644
index 1ac8cae..0000000
--- a/bundles/org.eclipse.pde.doc.user/contexts_PDE.xml
+++ /dev/null
@@ -1,459 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-<!-- Actions -->
-	<context id="update_classpath">
-		<description>PDE computes the classpath of this project by looking for dependencies in the workspace and enabled external plug-ins and fragments.</description>
-		<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
-   		<topic label="Configuring PDE" href="guide/pde_configuring.htm"/>
-		<topic label="Self-hosting" href="guide/pde_selfhosting.htm"/>
-	</context>
-	<context id="open_dependencies">
-		<description>This command opens the Dependencies view to show all the plug-ins needed to run the selected plug-in.</description>
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-   		<topic label="Configuring PDE" href="guide/pde_configuring.htm"/>
-		<topic label="Self-hosting" href="guide/pde_selfhosting.htm"/>
-	</context>	
-	<context id="find_references">
-		<description>This command searches for all the plug-ins that directly depend on the selected plug-in and all the fragments which target it.</description>
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-		<topic label="Fragments" href="guide/pde_fragment.htm"/>
-	</context>
-	<context id="create_plugin_jars">
-		<description>This command builds an Ant script which can then be used to build an executable version of the plug-in.</description>
-		<topic label="Generating Ant Scripts" href="guide/pde_feature_generating_ant.htm"/>
-		<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-		<topic label="Deploying a plug-in" href="guide/pde_deploy.htm"/>
-	</context>
-	<context id="create_fragment_jars">
-		<description>This command builds an Ant script which can then be used to build an executable version of the fragment.</description>
-		<topic label="Generating Ant Scripts" href="guide/pde_feature_generating_ant.htm"/>
-		<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-		<topic label="Deploying a plug-in" href="guide/pde_deploy.htm"/>
-	</context>
-	<context id="create_feature_jars">
-		<description>This command builds an Ant script which can then be used to build a feature.</description>
-		<topic label="Features" href="guide/pde_features.htm"/>
-		<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-		<topic label="Creating the JARs" href="guide/pde_feature_generating_jars.htm"/>
-	</context>	
-		
-<!-- Dialogs -->
- 	<context id="fragment_add_target">
- 		<description>This wizard allows you to select the target plug-in for your fragment.</description>
-		<topic label="Fragments" href="guide/pde_fragment.htm"/>
-	</context>
-	<context id="build_add_variable">
-		<description>This wizard allows you to add variables that drive the build process.</description>
-		<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-	</context>	
-	<context id="schema_type_restriction">
-		<description>This wizard allows to define the possible values for the selected attribute.</description>
-		<topic label="Extension point schema" href="guide/pde_schema.htm"/>
-		<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-		<topic label="Using extension point schema" href="guide/pde_schema_using.htm"/>
-	</context>
-	<context id="search_page">
-		<description>On this page, you can search for references to and declarations of plug-ins, fragments and extension points.
- The search can be extended beyond workspace resources to include external plug-ins. </description>
-	</context>
-	<context id="launcher_basic">
-		<description>This page allows you to set the basic program arguments to run the configuration.</description>
-		<topic label="Running a plug-in" href="guide/pde_running.htm"/>
-	</context>
-	<context id="launcher_advanced">
-		<description>This page allows you to run your configuration with only a subset of the plug-ins.</description>
-		<topic label="Choosing plug-ins to run" href="guide/pde_running_plugins.htm"/>
-	</context>
-	<context id="launcher_tracing">
-		<description>This page allows you to use tracing flags that will cause tracing information to be printed to the standard output (or the console view) when you run the configuration.</description>
-		<topic label="Running with tracing" href="guide/pde_running_tracing.htm"/>
-	</context>
-
-	<context id="source_attachment">
-		<description>This dialogs allows you to associate the selected dynamic entry with the source archive in cases where PDE failed to make this association automatically.</description>
-	</context>
-	
-<!-- Editors -->
-
-	<context id="manifest_source_page">
-		<description>This page allows you to edit the file content directly.</description>
-		<topic label="Source page" href="guide/pde_manifest_source.htm"/>
-	</context>
-	<context id="manifest_welcome">
-		<description>This page summarizes the content that was generated by the template.</description>
-		<topic label="Welcome page" href="guide/pde_manifest_welcome.htm" />
-	</context>		
-	<context id="manifest_plugin_overview">
-		<description>The Overview page shows you the plug-in at a glance.</description>
-		<topic label="Plug-in manifest editor" href="guide/pde_manifest.htm"/>
-		<topic label="Overview page" href="guide/pde_manifest_overview.htm" />
-		<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	</context>
-	<context id="manifest_plugin_dependencies">
-		<description>The Dependencies page shows the dependencies that your plug-in has on other plug-ins.</description>
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-		<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
-		<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	</context>
-	<context id="manifest_plugin_runtime">
-		<description>The Runtime page shows information about the plug-in's runtime libraries.</description>
-		<topic label="Runtime page" href="guide/pde_manifest_runtime.htm" />
-		<topic label="Deploying a plug-in" href="guide/pde_deploy.htm"/>
-		<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-	</context>
-	<context id="manifest_plugin_extensions">
-		<description>The Extensions page shows all the extensions used by your plug-in.</description>
-		<topic label="Extensions page" href="guide/pde_manifest_extensions.htm" />
-	</context>
-	<context id="manifest_plugin_ext_points">
-		<description>The Extension points page shows all the extension points declared by the plug-in.</description>
-		<topic label="Extension points page" href="guide/pde_manifest_extensionpoints.htm" />
-		<topic label="Extension point schema" href="guide/pde_schema.htm"/>
-		<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-		<topic label="Using extension point schema" href="guide/pde_schema_using.htm"/>
-	</context>
-	<context id="manifest_fragment_overview">
-		<description>The Overview page shows you the fragment at a glance.</description>
-		<topic label="Plug-in manifest editor" href="guide/pde_manifest.htm"/>
-		<topic label="Overview page" href="guide/pde_manifest_overview.htm" />
-		<topic label="Fragments" href="guide/pde_fragment.htm"/>
-		<topic label="Fragment example" href="guide/pde_fragment_example.htm"/>
-	</context>
-	<context id="manifest_fragment_dependencies">
-		<description>The Dependencies page shows the dependencies that your fragment has on other plug-ins.</description>
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-		<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
-		<topic label="Fragment example" href="guide/pde_fragment_example.htm"/>
-	</context>
-	<context id="manifest_fragment_runtime">
-		<description>The Runtime page shows information about the fragment's runtime libraries.</description>
-		<topic label="Runtime page" href="guide/pde_manifest_runtime.htm" />
-		<topic label="Generating Ant Build Scripts" href="guide/pde_feature_generating_ant.htm"/>
-		<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-	</context>
-	<context id="manifest_fragment_extensions">
-		<description>The Extensions page shows all the extensions used by your fragment.</description>
-		<topic label="Extensions page" href="guide/pde_manifest_extensions.htm" />
-	</context>
-	<context id="manifest_fragment_ext_points">
-		<description>The Extension points page shows all the extension points declared by the fragment.</description>
-		<topic label="Extension points page" href="guide/pde_manifest_extensionpoints.htm" />
-		<topic label="Extension point schema" href="guide/pde_schema.htm"/>
-		<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-		<topic label="Using extension point schema" href="guide/pde_schema_using.htm"/>
-	</context>
-	<context id="build_page">
-		<description>This editor is used to edit the build configuration for a plug-in, fragment or a feature.</description>
-		<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-	</context>
-	<context id="schema_editor_main">
-		<description>This editor creates a schema for an extension point, to which all extensions extending this point must conform.</description>
-		<topic label="Extension point schema" href="guide/pde_schema.htm"/>
-		<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-		<topic label="Using extension point schema" href="guide/pde_schema_using.htm"/>
-	</context>
-	<context id="schema_editor_doc">
-		<description>Documentation for the use of this extension point is entered on this page.</description>
-		<topic label="Extension point schema" href="guide/pde_schema.htm"/>
-		<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-		<topic label="Using extension point schema" href="guide/pde_schema_using.htm"/>
-	</context>
-	<context id="manifest_feature_overview">
-		<description>This page shows general information about the feature.</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-		<topic label="Features" href="guide/pde_features.htm"/>
-		<topic label="Synchronizing versions" href="guide/pde_feature_synchronizing.htm"/>
-		<topic label="Deploying a Feature" href="guide/pde_feature_generating.htm"/>
-		<topic label="Creating the JARs" href="guide/pde_feature_generating_jars.htm"/>
-	</context>
-	<context id="manifest_feature_info">
-		<description>This page is used to edit the required description, license and copyright information.</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-	</context>
-	<context id="manifest_feature_content">
-		<description>This page shows the list of plug-ins and fragments that are included in the feature.</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-		<topic label="Synchronizing versions" href="guide/pde_feature_synchronizing.htm"/>
-	</context>
-	<context id="manifest_feature_advanced">
-		<description>This page lists all features included in this feature</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-	</context>	
-	<context id="feature_synchronize_versions">
-		<description>The versions of the plug-ins and fragments should be synchronized with that of the packaged feature.</description>
-		<topic label="Synchronizing versions" href="guide/pde_feature_synchronizing.htm"/>
-	</context>
-	
-	// Site Editor
-	<context id="manifest_site_overview" >
-		<description>This page shows the general information about the update site.</description>
-		<topic label="Setting up an update site project" href="guide/pde_site_setup.htm"/>
-		<topic label="Update site editor" href="guide/pde_site_editor.htm"/>
-		<topic label="Building plug-ins and features using update site editor" href="guide/pde_site_building.htm"/>
-	</context>
-	<context id="manifest_site_build">
-		<description>This page allows you to configure how this site will be built from features and plug-ins in the workspace.</description>
-		<topic label="Setting up an update site project" href="guide/pde_site_setup.htm"/>
-		<topic label="Update site editor" href="guide/pde_site_editor.htm"/>
-		<topic label="Building plug-ins and features using update site editor" href="guide/pde_site_building.htm"/>
-	</context>
-	<context id="manifest_site_features">
-		<description>This page lists all the features visible to the user when connecting to this site.</description>
-		<topic label="Setting up an update site project" href="guide/pde_site_setup.htm"/>
-		<topic label="Update site editor" href="guide/pde_site_editor.htm"/>
-		<topic label="Building plug-ins and features using update site editor" href="guide/pde_site_building.htm"/>
-	</context>
-	<context id="manifest_site_archives">
-		<description>This page lists all the archive mappings in this site.</description>
-		<topic label="Setting up an update site project" href="guide/pde_site_setup.htm"/>
-		<topic label="Update site editor" href="guide/pde_site_editor.htm"/>
-		<topic label="Building plug-ins and features using update site editor" href="guide/pde_site_building.htm"/>
-	</context>
-	<context id="new_category_def_dialog">
-		<description>This dialog defines a new or edits an existing feature category definition.</description>
-	</context>
-		
-
-<!-- Preference pages -->
-   <context  id="main_preference_page" >
-      <description>This page allows you to set Plug-in Development Environment general settings.</description>
-   	<topic label="Configuring PDE" href="guide/pde_configuring.htm"/>
-   </context>
-   
-   <context  id="buildpath_preference_page" >
-      <description>This page allows you to control when the Java classpath computation is performed automatically. 
- Automatic computation of the classpath for the listed changes will keep your classpath in sync with the rest of the files, ensuring that your plug-in only sees classes that it will see at run-time.
- You can also optionally use Java classpath containers to manage classpath entries added for dependent plug-ins. This ensures greater flexibility when self-hosting.</description>
- 	<topic label="Self-hosting" href="guide/pde_selfhosting.htm"/>
-	<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
-   </context>
-   
-   <context id="compilers_preference_page" >
-      <description>This page allows you to specify the behaviour of
-      the various manifest compilers.
-      </description>
-	  <topic label="Source page" href="guide/pde_manifest_source.htm"/>
-   </context>
-   
-   <context  id="editor_preference_page" >
-      <description>This page allows you to configure behaviour and presentation of PDE multi-page editors.</description>
-	<topic label="Plug-in manifest editor" href="guide/pde_manifest.htm"/>
-	<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-	<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-   </context>
-   
-   <context  id="source_preference_page" >
-      <description>This page allows you to configure source code locations.
- When attaching source archives to Java libraries, PDE first looks in plug-ins. If not found, the search is extended to source locations. 
- Source locations can be provided by plug-ins that are used to carry source code (in SDKs). They can also be defined by users. 
- Disabled source locations will be ignored by PDE.</description>
-	<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm"/>
-	<topic label="Binary project self-hosting" href="guide/pde_selfhosting_binary.htm"/>
-   </context>
-   
-    <context  id="target_environment_preference_page" >
-      <description>This page allows you set the target enviroment for the plug-ins you develop.
- Target environment settings affect class path computation and are passed to the run-time workbench instance by the launcher.</description>
-	<topic label="Self-hosting" href="guide/pde_selfhosting.htm"/>
-	<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
- 	<topic label="Running a plug-in" href="guide/pde_running.htm"/>
-	<topic label="Binary project self-hosting" href="guide/pde_selfhosting_binary.htm"/>
-   </context>
-   
-   <context  id="target_platform_preference_page" >
-      <description>This page allows you to configure the target platform that will be used to develop against. 
- PDE will look for plug-ins and fragments in the target platform and will mix them with plug-ins in the workspace. 
- In a case when the same plug-in exists in the workspace and in the target platform, the duplication can be resolved by disabling external copy (in the target platform).</description>
-   	<topic label="Configuring PDE" href="guide/pde_configuring.htm"/>
-	<topic label="Self-hosting" href="guide/pde_selfhosting.htm"/>
-	<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm"/>
-	<topic label="Binary project self-hosting" href="guide/pde_selfhosting_binary.htm"/>
-   </context>
-
-<!-- Property pages -->	
-
-<!-- Views -->	
-	<context  id="plugins_view">
-		<description>The Plug-in View show the plug-ins and fragments that will be passed to the runtime workbench when running or debugging.
-If simple self-hosting is used, the view allows you to browse external plug-ins that are not part of the workspace.</description>
-		<topic label="Concepts" href="guide/pde_concepts.htm"/>
-   		<topic label="Configuring PDE" href="guide/pde_configuring.htm"/>
-		<topic label="Self-hosting" href="guide/pde_selfhosting.htm"/>
-	 </context>
-	 <context id="dependencies_view">
-	 	<description>The Dependencies view shows all the plug-ins required to run the selected plug-in</description>
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-		<topic label="Running a plug-in" href="guide/pde_running.htm"/>
-	</context>
-	<context id="registry_view">
-		<description>The Plug-in Registry view shows a read-only view of the plug-in registry of the running platform</description>
-		<topic label="Setting up the workbench" href="guide/pde_setup.htm"/>
-	</context>
-	<context id="log_view">
-		<description>The log view captures warnings and internal errors thrown by the internal platform or your code</description>
-		<topic label="Setting up the workbench" href="guide/pde_setup.htm"/>
-	</context>
-		
-		
-<!-- Wizard pages -->
-	<context id="new_project_structure_page">
-		<description>This wizard helps you create a new plug-in project.
- If the plug-in is to contain resources only, create a simple project.
- Otherwise, create a Java project.</description>
-		<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	</context>
-	<context id="new_fragment_structure_page">
-		<description>This wizard helps you create a new fragment project.
- If the fragment is to contain resources only, create a simple project.
- Otherwise, create a Java project.</description>
-		<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	</context>
-	<context id="new_project_code_gen_page">
-		<description>The blank plug-in option results in the creation of a plug-in project containing a manifest file with minimal content.
- For a quick start, use the code generation wizards to create a plug-in project containing a working extension.
- You can customize a plug-in to contain any combination of the available extension templates by choosing the 'Custom Plug-in Wizard' option.</description>
-		<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	</context>
-	<context id="new_fragment_code_gen_page">
-		<description>Fragments are additions to plug-ins.  If you know the plug-in you are targeting, choose the 'Default Fragment Structure' wizard and proceed.
- The blank fragment option results in the creation of a fragment without a target plug-in.  This fragment is non-functional until you later edit the manifest file and add the target plug-in data.</description>
-		<topic label="Fragments" href="guide/pde_fragment.htm"/>
-	</context>
-	<context id="new_project_required_data">
-		<description>Data entered on this page is used to customize the generated manifest file and top level plug-in Java class.</description>
-		<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	</context>
-	<context id="new_fragment_required_data">
-		<description>This page specifies the fragment's target plug-in and other data required to generate the manifest file.</description>
-		<topic label="Fragments" href="guide/pde_fragment.htm"/>
-	</context>	
-	<context id="new_feature_data">
-		<description>This page specifies basic data about the feature.</description>	
-		<topic label="Deploying a plug-in" href="guide/pde_deploy.htm"/>
-		<topic label="Features" href="guide/pde_features.htm"/>
-		<topic label="Setting up a feature project" href="guide/pde_feature_setup.htm"/>
-	</context>
-	<context id="new_feature_referenced_plugins">
-		<description>The plug-ins and fragments selected on this page will packaged in the feature.</description>
-		<topic label="Deploying a plug-in" href="guide/pde_deploy.htm"/>
-		<topic label="Features" href="guide/pde_features.htm"/>
-		<topic label="Setting up a feature project" href="guide/pde_feature_setup.htm"/>
-	</context>
-	<context id="new_schema">
-		<description>All extensions that extend the specified extension point will be validated against this schema.</description>
-		<topic label="Extension point schema" href="guide/pde_schema.htm"/>
-		<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-		<topic label="Using extension point schema" href="guide/pde_schema_using.htm"/>
-	</context>
-	<context id="converted_projects">
-		<description>Select Java projects to which you want to add PDE capabilities.
- If the selected project does not contain a manifest file, PDE will generate a generic one.
- It is recommended that you uncheck the update build path option if your project does not contain a build.properties file.</description>
-		<topic label="Converting existing projects" href="guide/pde_convert.htm"/>
-	</context>	
-	<context id="plugin_import_first_page">
-		<description>The default location to import from is the target platform specified on the Target Platform preference page.
- If you choose to import with source from a different location, you have to manually add the source locations for the plugins you choose to the Source Code Locations page.</description>	
-	 	<topic label="Binary project self-hosting" href="guide/pde_selfhosting_binary.htm"/>
-	</context>
-	<context id="plugin_import_second_page">
-		<description>This list shows the plug-ins and fragments found in the location specified on the previous page.</description>
-	 	<topic label="Binary project self-hosting" href="guide/pde_selfhosting_binary.htm"/>
-	</context>
-	<context id="feature_import_first_page">
-		<description>This page defines the location from which the features will be imported into the workspace. This wizard
-should only be used in conjunction with feature-based self-hosting.</description>	
-	</context>
-	<context id="feature_import_second_page">
-		<description>This list shows the features found in the location specified on the previous page.</description>
-	</context>
-	<context id="template_selection">
-		<description>Customize the plug-in by choosing one or more template extensions.</description>
-	</context>		
-	<context id="template_editor">
-		<description>This template creates a sample XML editor with basic editing capabilities, syntax highlighting, etc.</description>
-	</context>
-	<context id="template_hello_world">
-		<description>This template creates a sample action set that adds a menu to the menu bar and a button to the toolbar.</description>
-	</context>
-	<context id="template_help">
-		<description>This template creates a sample Help Table of Contents.</description>
-	</context>
-	<context id="template_multipage_editor">
-		<description>This template creates a multi-page editor that works on files with the chosen extension.</description>
-	</context>
-	<context id="template_new_wizard">
-		<description>This template creates a wizard that can create a new file in the workspace</description>
-	</context>
-	<context id="template_perspective_extensions">
-		<description>This template adds an action set and other shortcuts to the chosen target perspective.</description>
-	</context>
-	<context id="template_popup_menu">
-		<description>This template adds a popup menu to the specified target object.
- The menu will appear in all views where an object of the specified type is selected.</description>
-	</context>
-	<context id="template_preference_page">
-		<description>This template creates a page that is contributed to the Preferences.</description>
-	</context>
-	<context id="template_property_page">
-		<description>This template adds a property page to a resource that matches the specified filter, and will appear in the Properties dialog for that resource.</description>
- 	</context>
- 	<context id="template_view">
- 		<description>This template creates a workbench view and is contributed to the Workbench by creating a category.</description>
- 	</context>
- 	<context id="manifest_add_dependencies">
- 		<description>This wizard allows you to add plug-ins as dependencies to your plug-in.
- Use the filter to accelerate your search for the plug-ins.</description>
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-		<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
-		<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	</context>
-	<context id="add_extensions_main">
-		<description>This wizard allows you to add an extension to one of the available extension points.
- You can also create a working template extension from the list of available templates.</description>
- 	</context>
- 	<context id="add_extensions_schema_based">
- 		<description>This wizard allows you to extend one of the available extension points.  To be able to extend an extension point, your plug-in has to import the plug-in where the point is declared.</description>
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-		<topic label="Extension point schema" href="guide/pde_schema.htm"/>
- 	</context>
- 	<context id="java_attribute_wizard_page">
- 		<description>This wizard allows you to create a new Java class or select an existing one.</description>
- 	</context>
- 	<context id="feature_add_required_wizard">
- 		<description>This wizard allows you to select the plug-ins that need to be present before the feature is installed.</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-	</context>
-	<context id="feature_add_packaged_wizard">
-		<description>This wizard allows you to select the plug-ins and fragments that are to be packaged in this feature.</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-	</context>
-	<context id="feature_included_features_wizard">
-		<description>This wizard allows you to select the features that are to be included in this feature.</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-	</context>
-	<context id="feature_portability_wizard">
-		<description>This wizard allows you to add constraints to ensure that your feature is not installed or shown in a context that does not match these constraints.</description>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-	</context>		
-	
-	<context id="plugin_export_wizard" >
-		<description>This wizard builds and exports the selected plug-ins and/or fragments into the specified location.</description>
-		<topic label="Deploying a plug-in" href="guide/pde_deploy.htm"/>
-	</context>
-	<context id="feature_export_wizard">
-		<description>This wizard builds and exports the selected features and the associated plug-ins into the specified location.</description>
-		<topic label="Deploying a feature" href="guide/pde_feature_generating.htm"/>
-	</context>
-	
-	<context id="plugins_container_page">
-		<description>This page shows you the actual classpath entries that are managed by this dynamic classpath container. In case one of the library entries does not have source associated, you can add source by selecting 'Attach Source...' button.</description>
-		<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
-	</context>		
- 		
-<!-- Wizards -->
-
-</contexts>
-
diff --git a/bundles/org.eclipse.pde.doc.user/eclipse32.gif b/bundles/org.eclipse.pde.doc.user/eclipse32.gif
deleted file mode 100644
index fa12d1f..0000000
--- a/bundles/org.eclipse.pde.doc.user/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-1.gif b/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-1.gif
deleted file mode 100644
index 5f795a2..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-1_ALTERNATE.gif b/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-1_ALTERNATE.gif
deleted file mode 100644
index c0da5d2..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-1_ALTERNATE.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-2.gif b/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-2.gif
deleted file mode 100644
index 6d607c6..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/actionSet-2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/binary-import1.gif b/bundles/org.eclipse.pde.doc.user/guide/images/binary-import1.gif
deleted file mode 100644
index 3d370e8..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/binary-import1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/binary-import2.gif b/bundles/org.eclipse.pde.doc.user/guide/images/binary-import2.gif
deleted file mode 100644
index f29325b..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/binary-import2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/binary-projects.gif b/bundles/org.eclipse.pde.doc.user/guide/images/binary-projects.gif
deleted file mode 100644
index d268cc5..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/binary-projects.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/classpath-update.gif b/bundles/org.eclipse.pde.doc.user/guide/images/classpath-update.gif
deleted file mode 100644
index 369a5d7..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/classpath-update.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/convert-java.gif b/bundles/org.eclipse.pde.doc.user/guide/images/convert-java.gif
deleted file mode 100644
index d56c84e..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/convert-java.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/default-codegen.gif b/bundles/org.eclipse.pde.doc.user/guide/images/default-codegen.gif
deleted file mode 100644
index 23bee4b..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/default-codegen.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/errorLog.gif b/bundles/org.eclipse.pde.doc.user/guide/images/errorLog.gif
deleted file mode 100644
index a5fb169..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/errorLog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/extension-list.gif b/bundles/org.eclipse.pde.doc.user/guide/images/extension-list.gif
deleted file mode 100644
index da429a0..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/extension-list.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/feature-advanced.gif b/bundles/org.eclipse.pde.doc.user/guide/images/feature-advanced.gif
deleted file mode 100644
index f4c4851..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/feature-advanced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/feature-content.gif b/bundles/org.eclipse.pde.doc.user/guide/images/feature-content.gif
deleted file mode 100644
index ed80ded..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/feature-content.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/feature-export.gif b/bundles/org.eclipse.pde.doc.user/guide/images/feature-export.gif
deleted file mode 100644
index e211a13..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/feature-export.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/feature-jar.gif b/bundles/org.eclipse.pde.doc.user/guide/images/feature-jar.gif
deleted file mode 100644
index 0eb1101..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/feature-jar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/feature-overview-info.gif b/bundles/org.eclipse.pde.doc.user/guide/images/feature-overview-info.gif
deleted file mode 100644
index 9ec2f64..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/feature-overview-info.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/feature-overview.gif b/bundles/org.eclipse.pde.doc.user/guide/images/feature-overview.gif
deleted file mode 100644
index 43cdab2..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/feature-overview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/feature-synchronizing.gif b/bundles/org.eclipse.pde.doc.user/guide/images/feature-synchronizing.gif
deleted file mode 100644
index be880f5..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/feature-synchronizing.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/fragment-content.gif b/bundles/org.eclipse.pde.doc.user/guide/images/fragment-content.gif
deleted file mode 100644
index 8e4dc8c..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/fragment-content.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/fragment-overview.gif b/bundles/org.eclipse.pde.doc.user/guide/images/fragment-overview.gif
deleted file mode 100644
index 39be1d2..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/fragment-overview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/hello-world-page.gif b/bundles/org.eclipse.pde.doc.user/guide/images/hello-world-page.gif
deleted file mode 100644
index 8f96d64..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/hello-world-page.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/initial-structure.gif b/bundles/org.eclipse.pde.doc.user/guide/images/initial-structure.gif
deleted file mode 100644
index 531b932..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/initial-structure.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/launch-dialog.gif b/bundles/org.eclipse.pde.doc.user/guide/images/launch-dialog.gif
deleted file mode 100644
index 4937db5..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/launch-dialog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/launch-plugins.gif b/bundles/org.eclipse.pde.doc.user/guide/images/launch-plugins.gif
deleted file mode 100644
index 0da0b87..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/launch-plugins.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/launch-tracing.gif b/bundles/org.eclipse.pde.doc.user/guide/images/launch-tracing.gif
deleted file mode 100644
index 42d4f80..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/launch-tracing.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/manifest-validate.gif b/bundles/org.eclipse.pde.doc.user/guide/images/manifest-validate.gif
deleted file mode 100644
index eff73dd..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/manifest-validate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/new-expoint-wizard.gif b/bundles/org.eclipse.pde.doc.user/guide/images/new-expoint-wizard.gif
deleted file mode 100644
index 7d32d78..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/new-expoint-wizard.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/new-extension.gif b/bundles/org.eclipse.pde.doc.user/guide/images/new-extension.gif
deleted file mode 100644
index f03979e..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/new-extension.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/pdeperspective.gif b/bundles/org.eclipse.pde.doc.user/guide/images/pdeperspective.gif
deleted file mode 100644
index 346f48c..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/pdeperspective.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-dependencies.gif b/bundles/org.eclipse.pde.doc.user/guide/images/plugin-dependencies.gif
deleted file mode 100644
index bf97e92..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-dependencies.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-export.gif b/bundles/org.eclipse.pde.doc.user/guide/images/plugin-export.gif
deleted file mode 100644
index 09c75ec..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-export.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-overview.gif b/bundles/org.eclipse.pde.doc.user/guide/images/plugin-overview.gif
deleted file mode 100644
index a628779..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-overview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-runtime.gif b/bundles/org.eclipse.pde.doc.user/guide/images/plugin-runtime.gif
deleted file mode 100644
index 75d39dd..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-runtime.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-source.gif b/bundles/org.eclipse.pde.doc.user/guide/images/plugin-source.gif
deleted file mode 100644
index 8abe640..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-source.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-welcome.gif b/bundles/org.eclipse.pde.doc.user/guide/images/plugin-welcome.gif
deleted file mode 100644
index 2e846bf..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/plugin-welcome.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/plugins-view.gif b/bundles/org.eclipse.pde.doc.user/guide/images/plugins-view.gif
deleted file mode 100644
index 1d1cbcd..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/plugins-view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/preferences.gif b/bundles/org.eclipse.pde.doc.user/guide/images/preferences.gif
deleted file mode 100644
index 2cc9951..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/preferences.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/project-codegen.gif b/bundles/org.eclipse.pde.doc.user/guide/images/project-codegen.gif
deleted file mode 100644
index e0b2cba..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/project-codegen.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/project-structure.gif b/bundles/org.eclipse.pde.doc.user/guide/images/project-structure.gif
deleted file mode 100644
index e4e1c0e..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/project-structure.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/registry.gif b/bundles/org.eclipse.pde.doc.user/guide/images/registry.gif
deleted file mode 100644
index aa81acc..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/registry.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/required-plug-in-entries.gif b/bundles/org.eclipse.pde.doc.user/guide/images/required-plug-in-entries.gif
deleted file mode 100644
index b80dd8f..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/required-plug-in-entries.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/restriction-dialog.gif b/bundles/org.eclipse.pde.doc.user/guide/images/restriction-dialog.gif
deleted file mode 100644
index 9068680..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/restriction-dialog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/schema-1.gif b/bundles/org.eclipse.pde.doc.user/guide/images/schema-1.gif
deleted file mode 100644
index f6c75be..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/schema-1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/schema-2.gif b/bundles/org.eclipse.pde.doc.user/guide/images/schema-2.gif
deleted file mode 100644
index 17a2a19..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/schema-2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/schema-outline.gif b/bundles/org.eclipse.pde.doc.user/guide/images/schema-outline.gif
deleted file mode 100644
index d8acc39..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/schema-outline.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/schema-usage.gif b/bundles/org.eclipse.pde.doc.user/guide/images/schema-usage.gif
deleted file mode 100644
index 0668f1c..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/schema-usage.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/site-archives.gif b/bundles/org.eclipse.pde.doc.user/guide/images/site-archives.gif
deleted file mode 100644
index 6693981..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/site-archives.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/site-build.gif b/bundles/org.eclipse.pde.doc.user/guide/images/site-build.gif
deleted file mode 100644
index 069712a..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/site-build.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/site-description.gif b/bundles/org.eclipse.pde.doc.user/guide/images/site-description.gif
deleted file mode 100644
index cdcc498..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/site-description.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/site-features.gif b/bundles/org.eclipse.pde.doc.user/guide/images/site-features.gif
deleted file mode 100644
index 963bd0c..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/site-features.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/source-errors.gif b/bundles/org.eclipse.pde.doc.user/guide/images/source-errors.gif
deleted file mode 100644
index 1b3e516..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/source-errors.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/source-locations.gif b/bundles/org.eclipse.pde.doc.user/guide/images/source-locations.gif
deleted file mode 100644
index aa42d41..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/source-locations.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/images/xyz-tracing.gif b/bundles/org.eclipse.pde.doc.user/guide/images/xyz-tracing.gif
deleted file mode 100644
index 45a6784..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/images/xyz-tracing.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/guide/parsers.htm b/bundles/org.eclipse.pde.doc.user/guide/parsers.htm
deleted file mode 100644
index 3e30172..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/parsers.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<STYLE type="text/css">
-div.dtd-fragment {
-	width: 100%;
-	border: none;
-	background-color: #eee;
-}
-</STYLE>
-</HEAD>
-
-<BODY>
-<H1><CENTER>Sample Parsers</CENTER></H1>
-<b><i>Identifier: </i></b>com.example.xyz.parsers<p>
-<b><i>Since: </i></b>2.1<p>
-<b><i>Description: </i></b>This extension point is used to plug in additional parsers. The parsers actually do not work - we have just used them as an example of extension point schema. <p><b><i>Configuration Markup:</i></b><p>
-<p><samp><font color="#800000">&nbsp;&nbsp; &lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.parser">parser</a>*)&gt;</font></samp>
-<br><br><samp><font color="#800000">&nbsp;&nbsp; &lt;!ATTLIST extension</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp; &gt;</font></samp>
-<ul>
-</ul>
-<p><samp><font color="#800000">&nbsp;&nbsp; &lt;!ELEMENT <a name="e.parser">parser</a> EMPTY&gt;</font></samp>
-<br><br><samp><font color="#800000">&nbsp;&nbsp; &lt;!ATTLIST parser</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode&nbsp;&nbsp;(never|always|manual) "always"</samp>
-<br><samp>&nbsp;&nbsp; &gt;</font></samp>
-<ul>
-<li><b>id</b> - a unique name that will be used to reference this parser. 
-</li>
-<li><b>name</b> - a translatable name that will be used for presenting this parser in the UI. 
-</li>
-<li><b>class</b> - a fully qualified name of the Java class that implements <samp>com.example.xyz.IParser</samp> interface.</li>
-<li><b>mode</b> - an optional flag that indicates how often this parser instance will run (default is <samp>always</samp>).
-</li>
-</ul>
-<b><i>Examples: </i></b>The following is an example of the extension point usage: 
-<pre>
-   <font color="#000080">&lt;extension point=<font color="#008000">&quot;com.example.xyz.parsers&quot;</font>&gt;</font>
-      <font color="#000080">&lt;parser
-         id=<font color="#008000">&quot;com.example.xyz.parser1&quot;</font>
-         name=<font color="#008000">&quot;Sample Parser 1&quot;</font>
-         class=<font color="#008000">&quot;com.example.xyz.SampleParser1&quot;</font>&gt;</font>
-      <font color="#000080">&lt;/parser&gt;</font>
-   <font color="#000080">&lt;/extension&gt;</font>
-</pre><p>
-<b><i>API Information: </i></b>Plug-ins that want to extend this extension point must implement <samp>com.example.xyz.IParser</samp> interface. <p>
-<b><i>Supplied Implementation: </i></b>XYZ Plug-in provides default implementation of the parser. <p>
-<font size="-1" color="#336699">
-Copyright XYZ 2003. All rights reserved.<p>
-</font>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde.htm b/bundles/org.eclipse.pde.doc.user/guide/pde.htm
deleted file mode 100644
index b52f7d5..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using the Plug-in Development Environment</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Introduction to PDE</h1>
-<p>The Plug-in Development Environment (PDE)
-is a tool that is designed to help you develop platform plug-ins while working
-inside the platform workbench.</p>
-<p> PDE provides a set of platform extension contributions (views, editors,
-perspectives, etc.) that collectively streamline the process of developing
-plug-ins inside the workbench.</p>
-<p>In line with the general platform philosophy, PDE is not a separately launched
-tool.&nbsp; When you install PDE, your workbench will look the same, but you
-will see that new
-perspectives, wizards, editors, and views are available. PDE blends with the
-platform and offers its capabilities through a new perspective.</p>
-<p>PDE is based on the platform and the Java development tooling (JDT). You need
-to understand the concepts presented in the Platform ISV Guide and the JDT User
-Guide in order to use PDE and understand the remaining concepts in this guide. </p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_concepts.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_concepts.htm
deleted file mode 100644
index 856d931..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_concepts.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Concepts</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Concepts</h1>
-<p>PDE takes advantage of the project structure in the platform. When you use
-PDE, you organize your work into projects, folders, and files. PDE looks into
-the projects in your workspace and pays special attention to those that have
-plug-in or fragment manifest files as their immediate children. If a project has
-a plug-in manifest, PDE considers it a plug-in project. In addition, PDE will associate
-a special&nbsp;PDE nature with these projects to
-be able to attach special PDE builders.&nbsp; (See <a href="../../org.eclipse.platform.doc.isv/guide/resAdv_natures.htm">Project natures</a>
-for a description of the platform project nature facility).</p>
-<p>We know that the platform is based on the concept of <b>plug-ins</b> that
-have a clearly defined structure and specification.&nbsp; The goal of PDE is to ensure that you follow
-the rules when creating new plug-ins so that they are correctly incorporated by
-the platform.</p>
-<p> PDE manages plug-ins inside projects.
-Each project represents one plug-in and holds folders and files that
-define the plug-in and the ways it will interact with the platform. These
-plug-ins will be in your workspace and will show up in the resource navigator and other
-views that show workspace resources (such as Java Package Explorer).</p>
-<h2>Host and run-time</h2>
-<p>One of the most important concepts in PDE to understand is the concept of <b>host</b>
-and <b>run-time</b>   workbench instances. When you start up the workbench, you
-will use it to work on your projects that define the plug-ins you are
-building.&nbsp; The workbench&nbsp; instance that you are running as you develop
-your
-plug-in using the PDE and other tools is the <b>host</b> instance. The features available in this instance will
-come exclusively from the plug-ins that are installed with your application.</p>
-<p> Once you are
-happy with your plug-in and want to test it, you can launch another workbench instance,
-the <b>run-time</b> instance. This instance will contain the same
-plug-ins as the <b>host</b> instance, but will also have the plug-ins you were
-working on in the <b>host</b> instance. PDE launcher will take care of&nbsp; merging your
-plug-ins with the host plug-ins and creating the run-time instance.</p>
-<h2>External vs. workspace plug-ins</h2>
-<p>Since the run-time workbench instance will represent a collection of features
-provided by plug-ins from two different places (your current workspace and the
-original host installation), PDE recognizes these plug-ins as two different
-&quot;species.&quot;&nbsp;&nbsp;</p>
-<ul>
-  <li><b>External plug-ins</b> are plug-ins that arrived with the basic platform installation
-    and are simply referenced
-from their original location without modification. You can reference them, browse them, view their source and
-debug them, but they are considered read-only.&nbsp;</li>
-  <li><b>Workspace plug-ins</b> are those plug-ins under development in your
-    host workbench.&nbsp; They are under your control and can be added, deleted
-and modified in any way (the exception are binary plug-ins that will&nbsp; be
-    described later in the guide).</li>
-</ul>
-<p>External and workspace plug-ins are treated differently by PDE because of
-their location. For example, opening the plug-in manifest of a workspace plug-in
-will launch an editor on that manifest file in the workspace.&nbsp; The same
-operation for an external plug-in will launch an editor on an external URL that
-references the plug-in's manifest file in the host install location.&nbsp;</p>
-<p>These differences are fairly transparent to PDE users, but should be
-understood.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_configuring.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_configuring.htm
deleted file mode 100644
index b5aff26..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_configuring.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Configuring PDE</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Configuring PDE</h1>
-<p>Although PDE is part of the platform SDK, it may or may not be present in your
-particular installation. If it is not, it is easy to add by using the platform Update
-Manager. Once PDE is installed, it will configure itself with
-reasonable default values to be ready to use. However, some setup
-is recommended to create a clean working environment.</p>
-<h2>Run-time instance configuration</h2>
-<p>The most important variable you can set in PDE is the run-time workbench instance
-path. This is the path of the workbench installation that will be used to run and
-debug your plug-ins.</p>
-<p>The default choice of the run-time workbench is the host workbench i.e. the
-workbench you use for your development.
-This value is quite acceptable when you want to create plug-ins that will
-install into a platform configuration that is similar to your host
-setup.&nbsp;&nbsp;&nbsp;</p>
-<p>However, it is possible to use different workbench instances for development and
-run-time. For example, you might have a stable platform configuration that you use as a development tool,
-but wish to deploy your plug-ins in a different version.&nbsp; The run-time
-instance may be based on a new (and possibly less stable) technology, or may
-incorporate a different set of plug-ins than your host configuration.&nbsp;</p>
-<p>In both cases, it is important to use <b> different workspaces</b> for your host and
-run-time platform.&nbsp; Your host workspace location
-(where all your projects will go on your hard disk) is set when you launch your
-host development platform.&nbsp;
-To set up the location of your run-time workspace, choose the &quot;Target
-Platform&quot; page in the <b>Window&gt;Preferences</b> dialog.</p>
-<p align="center">
-<img border="0" src="images/preferences.gif" alt="PDE preferences - &quot;Target Platform&quot; page" width="607" height="541"></p>
-<p align="left">When you set the application location and press the <b>Reload</b> button, the
-list of plug-ins and fragments on the page will fill up with the discovered external plug-ins. By default, all these plug-ins will be
-invisible to PDE. You can make them visible by enabling them individually or
-pressing <b>Select All</b> button.</p>
-<p align="left">Note that workspace plug-ins and <b>enabled</b> external 
-plug-ins will be used by PDE to resolve Java classes and plug-in dependencies.&nbsp; 
-In the case where a workspace plug-in has the same id as an external plug-in, 
-the workspace plug-in masks its external counterpart.</p>
-<i></i>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_convert.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_convert.htm
deleted file mode 100644
index d50a48b..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_convert.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Converting projects into PDE projects</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Converting existing Java projects into PDE projects</h1>
-<p>A PDE project is a project that &quot;knows&quot; that it hosts a plug-in
-and is eligible for plug-in-specific operations. Although the very presence of a
-manifest file is enough to use many PDE features, there is a slant towards Java
-plug-in projects because most of the plug-ins are written in Java. One of the
-most useful feature set in PDE revolves around computing and managing Java class
-path for plug-ins and fragments under development.</p>
-<p>PDE is fully capable of working plug-ins in the workspace represented as
-ordinary Java projects. However, it is cannot offer incremental file checking,
-capability-based filtering and other similar features if a Java project does not
-have a full PDE capability.</p>
-<p>It is
-possible to convert a regular Java project into a PDE project at any point. For
-example, you may have some Java classes that you want to package into a library
-and share with others as a plug-in. Alternatively, you may want to get full
-support for manifest syntax checking and reporting that only PDE projects have.</p>
-<p>To convert Java into PDE projects, select <b>File&gt;New&gt;Other...</b> and
-choose &quot;Plug-in Development&quot; category in the wizard. After
-selecting&nbsp; &quot;Convert Java to Plug-in Projects&quot; wizard and pressing
-<b>Next</b>, the following wizard will appear:</p>
-<p align="center">
-<img border="0" src="images/convert-java.gif" alt="&quot;Convert Java Projects&quot; wizard" width="500" height="500"></p>
-<p>The wizard will list all Java projects that do not have PDE capability.
-Candidate projects do not need to have manifest files. If they are missing, PDE
-will create generic ones you can use as a starting point. Files that already
-exist will be left intact. As an option, you can re-compute the build path in
-the process. If your project has a classpath you want preserved, deselect this 
-checkbox.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_creating.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_creating.htm
deleted file mode 100644
index cbaf3fe..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_creating.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a PDE plug-in</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Creating a plug-in</h1>
-<p>Once your working environment is clean and configured, you can start creating
-your first plug-in.&nbsp;</p>
-<p>You start by creating a special plug-in project.&nbsp; PDE provides a wizard for
-setting up the project.&nbsp; You can access this wizard using <b>File&gt;New&gt;Project...</b>
-and
-selecting <b>Plug-in Project</b> in the list of wizards under 'Plug-in
-Development' category.</p>
-<p>When you press <b>Next</b>, the first entry you will need to set is the project
-name. It is a convention that plug-in project names are the same as plug-in IDs,
-but they can be different. As an example, we will choose <b>&quot;com.example.xyz&quot;</b>
-for the project name.</p>
-<p>The next page shows the initial structure of the plug-in project.&nbsp; If
-the project name conforms to the rules for plug-in names, you can keep the
-default. Otherwise, you will be asked to change it (See <a href="../../org.eclipse.platform.doc.isv/guide/firstplugin_minimal.htm#firstplugin_minimal_pluginid">plug-in
-ids</a> for a description of the format.). The <b>Plug-in
-runtime library </b> name will be used to
-define where the code of your new plug-in will be packaged once you are ready to
-publish it. The <b>Source folder</b> will be created to store your Java source inside the
-new project.</p>
-<p>If you are creating a plug-in that is not meant to contain Java code, e.g. a 
-documentation plug-in, select the 'Create a simple project' option and press <b>Finish</b>.&nbsp; PDE will create a simple project containing a plug-in.xml file 
-with minimal content.</p>
-<p align="center">
-<img border="0" src="images/project-structure.gif" alt="Plug-in Project Structure" width="500" height="500"></p>
-<p>In the next page, you will need to choose what the content of your new plug-in
-is going to look like. If you choose a blank plug-in, only the plug-in project
-will be created. If you use the template wizards, the PDE will also create
-files such as the plug-in class, build properties, and plug-in
-manifest. Some of the templates provided by PDE also generate useful content
-such as views, editors, property pages etc. This content is generated by
-templates that can be combined into a wizard. All the available templates are
-individually selectable in the &quot;Custom plug-in wizard&quot;.&nbsp;</p>
-<p>In this example, we use the &quot;Hello, World&quot; template wizard. You can
-read about the wizard in the area to the right of the wizard list.</p>
-<p align="center">
-<img border="0" src="images/project-codegen.gif" alt="Plug-in code generators" width="500" height="500"></p>
-<p align="left">After the wizard has been selected, the following pages are
-under wizard's control. Each template wizard contributes a number of pages that
-customize the content about to be generated. However, all the templates share one
-common page. It will collect information about the plug-in, such as its name,
-version, and provider.&nbsp; It also provides options related to the plug-in
-class that will be generated.&nbsp; In this example, we will accept all the
-options.</p>
-<p align="center">
-<img border="0" src="images/default-codegen.gif" alt="Mandatory plug-in content page" width="500" height="500"></p>
-<p align="left">&nbsp;</p>
-<p align="left">After this page, templates add their own to collect
-template-specific information. Our &quot;Hello, World&quot; template has only
-one related to the action that will be contributed, as well as the message that
-will be shown in a message box.</p>
-<p align="center">
-<img border="0" src="images/hello-world-page.gif" alt="&quot;Sample Action Set&quot; template page" width="500" height="500"></p>
-<p align="left">&nbsp;</p>
-<p align="left">When you press <b>Finish</b>, the wizard will create the new
-project, all the specified folders and files, and the initial Java build path.
-The build path is important for correct compilation of Java classes that are
-generated. The wizard will also open the plug-in manifest editor so that you can
-define additional attributes of your plug-in.&nbsp;&nbsp;</p>
-<p align="left"> After the wizard is
-finished, the initial project structure should look like this:</p>
-<p align="center">
-<img border="0" src="images/initial-structure.gif" alt="Initial plug-in project structure" width="224" height="454"></p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_deploy.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_deploy.htm
deleted file mode 100644
index f44596a..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_deploy.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Deploying a plug-in</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Deploying a plug-in</h1>
-<p>During the design phase, plug-ins and fragments in your workspace are used
-as-is so that you can quickly test and debug. Once you reach the stage where you
-are satisfied with your code, you need to publish it in a form fit for delivery on
-the platform.&nbsp;&nbsp;&nbsp;</p>
-<p>The easiest way to do so is through the 'Export Plug-ins and Fragments' 
-Wizard.&nbsp; It shields you from ant scripts and does not pollute your 
-workspace with resources generated during the build operations:</p>
-<ol>
-  <li>Select <b>File&gt;Export...&gt;Deployable plug-ins and fragments</b></li>
-  <li>Select the plug-ins and fragments you want to export.&nbsp; The 'single 
-  deployable ZIP file' option will create one zip file containing all the 
-  selected plug-ins and fragments, which can be directly unzipped into any 
-  Eclipse product.&nbsp; The 'individual JAR archives' option will create a jar 
-  file for every selected plug-in and fragment.&nbsp; The jar files are named 
-  according to the format: <b>&lt;plug-in id&gt;_&lt;plug-in version&gt;.jar</b></li>
-</ol>
-<p align="center">
-<img border="0" src="images/plugin-export.gif" width="470" height="550" alt="Export plug-ins and fragments wizard"></p>
-<p>
-&nbsp;&nbsp; </p>
-<p>
-An alternate way is to build a plug-in or a fragment manually:</p>
-<ol>
-  <li>Select the plugin.xml file for your plug-in (or the fragment.xml file for 
-  your fragment) and choose 'Create Ant Build File'.&nbsp; This will create a 
-  build.xml file.</li>
-  <li>Select the build.xml file and choose 'Runt Ant...'.&nbsp; This will open 
-  the Ant build script wizard.</li>
-  <li>Choose the target(s) of your choice and then press 'Run'.</li>
-</ol>
-<p align="center">
-<img border="0" src="images/feature-jar.gif" width="539" height="572" alt="Ant launch wizard"></p>
-<p align="center">
-&nbsp;</p>
-<p>
-You can also package your plug-in(s) and fragment(s) into a <b>feature</b>.&nbsp; 
-This lets you use the platform Install and Update Manager to deliver your 
-feature.&nbsp; You can make it available on a server and publish the URL. The 
-platform Update Manager can be used to download and install your feature.</p>
-<p>The remaining sections describe features and how to build them.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating.htm
deleted file mode 100644
index dd2c771..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Generating component JAR</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Deploying a Feature</h2>
-
-<p>Once versions are synchronized, we can package our feature in the format fit 
-for publishing.&nbsp; </p>
-
-<p>First you have to set up the build configuration.&nbsp;&nbsp; The build 
-configuration includes information about the files and directories that should 
-be included in the feature for each individual plug-in and fragment.&nbsp; There 
-may be some design-time files and directories that should not be shipped.&nbsp; 
-See <a href="pde_feature_generating_build.htm">Build Configuration</a> for 
-details.</p>
-
-Then you can use PDE's Export Deployable Features wizard to build and export the 
-feature.&nbsp; This way you are shielded from Ant scripts and your workspace is 
-never polluted with build by-products.<ol>
-  <li>Select <b>File&gt;Export...&gt;Deployable Features</b>.</li>
-  <li>Select the feature(s) you want to export.&nbsp; </li>
-</ol>
-<p align="center">
-<img border="0" src="images/feature-export.gif" width="470" height="550" alt="Export Features wizard"></p>
-<p>&nbsp;</p>
-<p>The wizard will build all the features selected and their included plug-ins 
-and fragments.&nbsp; </p>
-<p>If the 'single deployable zip file' option is selected, everything will go 
-into one zip file, which can then be unzipped into any Eclipse product.&nbsp;
-</p>
-<p>If the 'update JAR archives' option is selected, the wizard will create a JAR 
-for every feature selected.&nbsp; The JAR name will be of the format: <b>&lt;feature_id&gt;_&lt;feature_version&gt;.jar</b>, 
-and will be placed in a <b>features/</b> sub-directory of the directory you 
-specified in the wizard.&nbsp; The wizard will also create a JAR for every 
-plug-in or fragment included in the feature.&nbsp; The JAR name will be of the 
-format <b>&lt;id&gt;_&lt;version&gt;</b>.jar, and will be placed in a <b>plug-ins/ </b>
-sub-directory of the directory you specified.</p>
-<p>&nbsp;</p>
-<p>The alternative would be to build features manually:</p>
-<ol>
-  <li>Right-click on the feature.xml file for your feature project and choose '<b>Create 
-  Ant Build File</b>'.&nbsp; This will generate a build.xml file.</li>
-  <li>Select the build.xml file and choose '<b>Run Ant...</b>'&nbsp; </li>
-  <li>In the Ant build script wizard, select the target(s) you want to run.&nbsp; 
-  See <a href="pde_feature_generating_ant.htm">Generating Ant Scripts</a> for 
-  details.</li>
-</ol>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_ant.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_ant.htm
deleted file mode 100644
index e6bf746..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_ant.htm
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Generating ANT scripts</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h3>Generating Ant scripts</h3>
-
-<p> <b> Ant</b> is a simple open-source scripting engine that is capable of running
-scripts written in XML format. Ant is ideal for executing tasks usually found in
-automated builds.&nbsp;</p>
-
-<p>The variables set in the plug-in, fragment or feature <b>build.properties
-</b> will be used by automated build scripts for
-Ant.&nbsp; PDE generates Ant scripts for creating
-individual plug-in and fragment build files and one overall script for building
-the feature JAR. This &quot;main&quot; script is also responsible for running individual
-script files in the right order (defined by the plug-in dependency chain). Each
-build file has the same name (<b>build.xml</b>) and is created as a sibling of the manifest
-files in the corresponding projects.</p>
-
-<p>Since Ant scripts use the replacement variables in <b>build.properties</b>, you can typically use them &quot;as is&quot;, without
-modifying the generated scripts. If you do modify them, you must not recreate the
-scripts every time you want to rebuild the component. </p>
-
-<p>To create scripts, you can simply select <b>Create Ant Build File</b> while a 
-suitable manifest file (plugin.xml, fragment.xml or feature.xml) is selected in 
-the Navigator or Package Explorer views. The command will generate
-the build script. After selecting <b>Run Ant...</b> from the pop-up menu while 
-the newly generated script file is selected, the following wizard will open:</p>
-
-<p align="center">
-<img border="0" src="images/feature-jar.gif" alt="Ant execution wizard showing available targets" width="539" height="572"></p>
-
-<p align="left">The standard Ant wizard allows customization in two ways: by
-providing the execution arguments and by selecting one or more build targets.</p>
-
-<h4>Properties</h4>
-<p align="left">Ant arguments are typically used to provide property values that
-override default values and control the build process. Arguments are set using
-&quot;-Dproperty=value&quot;. The following properties are recognized:</p>
-
-<ul>
-  <li>
-    <p align="left"><b>bootclasspath</b> - if set, it replaces the default boot
-    classpath. Used when compiling cross-platform plug-ins (e.g. building a UI
-    plug-in for Windows using Linux)</li>
-  <li><b>build.compiler</b>- sets
-    what compiler should be used. The default is the JDT compiler.</li>
-  <li><b>build.result.folder</b> - where
-    the temporary files for the update JAR creation should be placed.
-    These files are usually the plug-in library JARs.</li>
-  <li><b>plugin.destination</b> - where
-    plug-in and fragment update JARs should be put. These JARs represent
-    entire plug-ins and fragments in a format suitable for publishing on an
-    Install/Update server and referencing by a feature. The typical layout of an
-    Update site is to have all the plug-in and fragment JARs in one place and
-    all the features in another. This argument is useful for placing plug-ins and
-    fragment directly into the desired directory (or the staging place on the
-    local machine before pushing the features onto the remote server).</li>
-  <li><b>feature.destination</b> - where
-    feature update JARs should be put.</li>
-</ul>
-To adapt the behavior of the compiler, the following properties are recognized:</p>
-<ul>
-<li><b>javacFailOnError</b></li> - stop the build when an error occurs when set to true. Default is false.
-<li><b>javacDebugInfo</b></li> - compile source with debug information when set to true. Default is true.
-<li><b>javacVerbose</b></li> - produce verbose output when set to true. Default is true.
-</ul>
-
-<h4>Targets</h4>
-
-<p>When executing feature build scripts, the
-following targets are used to call individual targets of plug-ins or fragments.
-In order to specify what target to execute, the property <b>target</b> should be
-set (e.g. -Dtarget=refresh). One of the <b>all.*</b> targets serves as an iterator, whereas
-the actual target to execute is specified via the property <b>target</b>.</p>
-<ul>
-  <li><b>all.plugins</b> - for all listed plug-ins</li>
-  <li><b>all.fragments</b> - for all listed fragments</li>
-  <li><b>all.children</b> - for all listed plug-ins and fragments</li>
-  <li><b>build.jars</b> - build JARs for all feature children;</li>
-  <li><b>build.sources</b> - build source for all feature children;</li>
-  <li><b>build.update.jar</b> - generate a feature JAR in the format used by the install/update mechanism.
-	The above mentioned property <b>feature.destination</b> can be used to define
-	where to put the JAR;</li>
-  <li><b>zip.distribution</b> - creates a zip
-file with the feature and its plug-ins and fragments in an SDK-like structure
-but does not include source code;</li>
-  <li><b>zip.sources</b> - creates a zip file with the feature and its plug-ins and fragments in an SDK-like structure which only includes the source;</li>
-  <li><b>clean</b> - delete everything produced by running any of the target;</li>
-  <li><b>refresh</b> - performs a &quot;Refresh&quot; action in the current project, thus making the
-newly generated resources visible in the Navigator or Package Explorer.</li>
-  <li><b>zip.plugin</b> - creates a zip file with the binary and source contents of a plug-in with the following structure:
-  <blockquote>
-  id_version/<br>
-  &nbsp;&nbsp;&nbsp; contents</p>
-</blockquote>where 'id' is the plug-in unique identifier
-and 'version' is the plug-in version. This zip file can be directly unzipped
-into the Eclipse installation directory as a form of a quick manual deployment.</li>
-</ul>
-
-
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_antcommandline.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_antcommandline.htm
deleted file mode 100644
index 31467da..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_antcommandline.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Command line Ant script generation</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h3>Generating Ant scripts from the command line</h3>
-
-<p>Ant scripts are typically generated using the Plug-in Development Environment (PDE), but it is also possible to generate
-them by hand or from other scripts.&nbsp;<br>
-Indeed PDE exposes Ant tasks to generate the various build scripts. Build script generation facilities
-reside in the following tasks.&nbsp; Arguments are also listed for each task.
-</p>
-
-<ul>
-  <li><b>eclipse.fetch</b>: generates an Ant script that fetches content from a CVS repository.
-  The eclipse fetch is driven by a file whose format is described below (see <a href="#directoryFileFormat">Directory file format</a>).
-   <p><i>elements</i> : a comma separated list of entries that will be fetched. Entries are expected to be of the form type@id as specified in the directory file format;
-   <p><i>install</i> :  the directory into which features and plug-in projects will be checked out;
-   <p><i>directory</i> : the name of the directory file;
-   <p><i>scriptname</i> : the name of the generated script;
-   <p><i>children</i> : optional, specifies whether the script generation for contained plug-ins and fragments should be invoked. Default is set to true;
-   <p><i>cvspassfile</i> : optional, the name of a CVS password file.
-  </li>
-<br>
-  <li><b>eclipse.buildScript</b>: generates a build.xml file for the given elements.
-  	<p><i>elements</i> : a comma separated list of entries that will be built. Entry are expected to be of the form type@id as specified in the directory file format;
-  	<p><i>install</i> :  the directory where the features and plug-ins to build are located;
-  	<p><i>children</i> : optional, specifies whether the script generation for contained plug-ins and fragments should be invoked. Default is set to true;
-  	<p><i>devEntries</i> : optional, a comma separated list of directories to be given to the compile classpath. 
-  	<p><i>pluginPath</i> : optional, a comma separated list of URLs pointing to installed plug-ins. If specified, this list must include the whole list of plug-ins to be compiled.
-  </li> 	  	  	
-</ul>
-
-<h4>Examples</h4>
-<pre>
-&lt;eclipse.fetch elements=&quot;plugin@org.eclipse.core.boot&quot;
-		install=&quot;c:\toBuild&quot;
-		directory=&quot;directory.txt&quot;
-		scriptname=&quot;fetch.xml&quot;/&gt;
-		
-&lt;eclipse.buildScript elements=&quot;plugin@org.eclipse.core.boot&quot; 
-		install=&quot;c:\toBuild&quot;/&gt;
-</pre>
-<a name="directoryFileFormat">
-<h3>Directory file format</h3>
-</a>
-Directory files are used to indicate where the plug-ins and features are located, as well as indicating which version
-should be fetched. It is a Java property file whose line format is &quot;type@id=version, repositoryLocation, password&quot;.
-<ul>
-<li><i>type</i></li> : a string describing the type of the element. It must be one of the following: plugin, fragment, feature;
-<li><i>id</i></li> : the name of the CVS module where the element is located. Note that the feature/plugin/fragment.xml must be in the root of this module;
-<li><i>version</i></li> : an existing version tag in the repository;
-<li><i>repositoryLocation</i></li> : a CVS repository location;
-<li><i>password</i></li> : optional, a password to connect to this repository.
-</ul>
-<h4>Example of a directory file</h4>
-<tt>
-feature@org.eclipse.jdt.source=v20030114, :pserver:anonymous@dev.eclipse.org:/home/eclipse, <br>
-plugin@org.eclipse.core.boot=v20021215a, :pserver:anonymous@dev.eclipse.org:/home/eclipse,<br>
-plugin@org.eclipse.core.resources=v20030114, :pserver:anonymous@dev.eclipse.org:/home/eclipse,<br>
-fragment@org.eclipse.core.resources.win32=v20020911, :pserver:anonymous@dev.eclipse.org:/home/eclipse,<br>
-</tt>
-  
-<h3>Using the targets</h3>
-The tasks previously described only work if Eclipse is running. In the particular scenario of executing Ant scripts using 
-Eclipse tasks,the scripts must be run using the Eclipse Ant Runner application. The command line for this particular
-case is the following:<br>
-&nbsp;&nbsp;<tt>java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -buildfile build.xml</tt>
-  <p>
-  
-Note that the parameters appearing after the application are the parameters that are passed to Ant.
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_build.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_build.htm
deleted file mode 100644
index 625552c..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_build.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Component build configuration</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h3>Build configuration</h3>
-
-<p>The feature build mechanism is driven by a build configuration.&nbsp; The
-build configuration for an individual plug-in, fragment, or feature is found
-in a <b> build.properties</b> file for the corresponding element.</p>
-
-<p>PDE project creation wizards generate the <b> build.properties</b> file when
-plug-in projects are created. The file contains information on how to compile source folders into
-JARs. This information can be indirectly updated in the Runtime page of the
-manifest editor. It can also be directly modified using the appropriate editor.</p>
-
-<p>PDE provides a simple editor for the <b> build.properties</b> that has form and source views.
-The file itself follows the Java properties format. You need to provide a number of
-keys and their corresponding values. Multiple values are separated using a comma
-as the delimiter. </p>
-
-<p>The most important keys to provide are those for mapping of source folders
-into run-time libraries. Those drive the build process, control where to
-find source code to compile and how to package it into the libraries. </p>
-<ul>
-  <li><b>source.&lt;library&gt;</b> - lists source folders to include for the library (e.g. <b>source.xyz.jar=src/, src-ant/</b>);
-  <li><b>bin.includes</b> - lists files to include in the binary build;</li>
-  <li><b>bin.excludes</b> - lists files to exclude from the binary build;</li>
-  <li><b>src.includes</b> - lists files to include in the source build;</li>
-  <li> <b>src.excludes</b> - lists files to exclude from the source build;</li>  
-  <li> <b>custom=true</b> - indicates that the build script is hand-crafted as opposed to automatically generated;</li>
-  <li> <b>jars.extra.classpath</b> - extra classpaths used to perform automated build. Classpath can either be relative paths, or
-	platform urls referring to plug-ins and fragments of your development environment (e.g. <b>../someplugin/xyz.jar</b>, <b>platform:/plugins/org.apache.ant/ant.jar</b>).
-	If you use those build files in external build processes, refrains from using platform urls, or complement them 
-	with relative paths;</li>
-  <li> <b>jars.build.order</b> - defines order in which jars should be compiled (in case there are multiple libraries);</li>
-</ul>
-<p> The values
-defined for these keys are expressed as Ant "patterns". Standard formats give the expected results.&nbsp; For example, &quot;*<b>.jar</b>&quot; 
-indicates all jar files in the top level directory. The patterns are not deep by default.&nbsp; If you want to
-describe all Java files for example, you should use the pattern "<b>**/*.java</b>".&nbsp;&nbsp;
-The pattern "<b>**</b>" matches any number of directory levels.&nbsp;
-Similarly, to describe whole sub-trees, use "<b>xyz/</b>".
- </p>
-<p  >&nbsp;
- </p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_jars.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_jars.htm
deleted file mode 100644
index a95950b..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_jars.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating component JARs</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h3>Creating feature JARs</h3>
-
-<p> Unless you take responsibility for
-maintaining the build script yourself, it is best to regenerate new scripts each
-time before executing them.&nbsp; This way, changes in folder structure, new files, deleted
-files, and new plug-ins will be accounted for.</p>
-<p>When Ant scripts are executed from within the wizard, a wizard view will
-appear in the active perspective so that you
-can see build messages.&nbsp;</p>
-<p>When a build is complete, you should see
-individual JARs in the plug-in and fragment projects, as well as the feature JAR
-that has the following name format: <b> &lt;feature_id&gt;_&lt;feature_version&gt;.jar</b></p>
-<p>If there is no change to the structure of the plug-ins, you can also run the build by selecting the
-<b>build.xml</b> file and
-selecting the &quot;Run Ant&quot; action from the popup menu. The resulting JARs will
-be identical in both cases.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_publish.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_publish.htm
deleted file mode 100644
index 7f51864..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_generating_publish.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Publishing a JAR</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h3>Publishing a JAR</h3>
-<p>PDE does not provide automated publishing support for features.</p>
-<p>To publish a feature, you need to place its JAR and the referenced plug-in
-and fragment JARs on
-a platform update
-server. You must also edit the update site manifest file to include the feature,
-or perform an analogous task in case the update site server provides its own
-implementation of the update site.</p>
-<p>See <a href="../../org.eclipse.platform.doc.isv/reference/misc/eclipse_install.html">Platform
-Installation and Update</a> for a description of the update mechanisms and
-directory structures expected.</p>
-<p CLASS="BodyText">&nbsp;</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_manifest.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_manifest.htm
deleted file mode 100644
index f64c764..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_manifest.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Component manifest editor</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Feature manifest editor</h2>
-<p>The feature manifest editor uses the same concepts seen in the other PDE editors. It has 
-four form pages
-(Overview, Information, Content and Advanced) and a Source page that shows you raw XML code of the
-manifest file.</p>
-<p align="center">
-<img border="0" src="images/feature-overview.gif" alt="Feature manifest editor - Overview page" width="545" height="389"></p>
-<p align="left">Information that is entered during the feature project setup
-can be changed on the Overview page. In addition, you can provide URLs for <b> update
-sites</b> and <b>
-discovery sites</b> in the property
-sheet. The update site URLs are used by the Update Manager when searching for
-new updates.&nbsp; The discovery site URLs are used to point users to other interesting
-features and/or sites.</p>
-<p align="left">You can provide your own banner image that will be used in the
-Update Manager when users browse your feature. If you mark the feature as
-'primary', it will be treated as a 'product' feature and will have additional
-responsibilities (providing 'About' information, splash screen etc.). Finally, 
-you can require an exclusive install for your feature if it should be take part 
-in batch installation (several features at once).</p>
-<p align="left">By default, your feature is treated as universally portable. You
-can add constraints by providing supported operating/windowing systems,
-languages and/or system architectures. This information will be used to ensure
-that your feature is not installed or shown in the context that does not match
-these constraints.</p>
-<p align="left">Features are required to provide description, license and
-copyright information. This information can be edited on the Information page.
-Each of these three categories can be represented as either text or a URL that
-points to a valid HTML page. Although URL can be absolute, HTML pages are
-typically provided with the feature and URLs are relative to the project root.</p>
-<p align="center">
-<img border="0" src="images/feature-overview-info.gif" alt="Feature manifest editor - Information page" width="545" height="388"></p>
-<p align="left">Plug-ins and fragments that are part of your feature are
-listed in the Content page. Pressing the <b>Add...</b> button brings up a list of
-checkboxes representing all of the valid
-plug-ins and fragments in the workspace. If you double-click on a
-plug-in or fragment entry, the plug-in or fragment manifest editor will open for
-the selected item.</p>
-<p align="center">
-<img border="0" src="images/feature-content.gif" alt="Feature manifest editor - Content page" width="545" height="388"></p>
-<p align="left">Required plug-ins are plug-ins that are not part of the feature
-but must be present in the target platform as a prerequisite for installing the
-feature. If any of these plug-ins are missing, the feature will not be installed.
-Required plug-ins can be computed based on collective dependency information in
-plug-ins and fragments, or added manually using the <b>Add...</b> button. The
-requirement can be based solely on plug-in IDs, or further constrained using
-expected versions and match rules.</p>
-<p align="left">Similar to plug-ins, features can be used as prerequisites. 
-Similar rules apply. The distinct difference is that feature dependency is 
-required when <b>patch</b> checkbox needs to be selected. See feature manifest 
-reference for more details.</p>
-<p align="left">In addition to these standard pages, feature manifest can be
-used to set more advanced feature manifest data. Larger features may be built by
-including other features, thus creating a feature hierarchy. In addition to
-plug-ins, opaque data entries can be specified to carry custom feature
-information. These entries usually come together with custom install handlers.
-Install handlers can be used to perform non-standard install tasks and
-manipulate data entries once they are downloaded by the Update Manager. You can
-read more about this and other feature issues in Platform Install and Update
-guide.</p>
-<p align="center">
-<img border="0" src="images/feature-advanced.gif" alt="Feature manifest editor - Advanced page" width="545" height="388"></p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_setup.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_setup.htm
deleted file mode 100644
index 9b10957..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_setup.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting up a component project</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Setting up a feature project</h2>
-<p>Similar to plug-ins and fragments, PDE treats platform features as projects.
-PDE attaches a special &quot;feature&quot; capability to these projects to be
-able to run nature-specific builders. The project must have a feature manifest.</p>
-<p>PDE provides a wizard for setting up a feature project. Typically, you use
-this wizard to set up a feature once you are done developing plug-ins and
-fragments. However, you can create the feature at any stage of development and
-add new plug-ins later.</p>
-<h3>Example: Setting up a feature for plug-ins and fragments</h3>
-<p>Assuming that you have followed the previous examples, you should have &quot;XYZ
-Plug-in&quot; and &quot;German Fragment&quot; in your workspace already.&nbsp; We will
-create a sample feature and package these artifacts to be ready for delivery.</p>
-<ol>
-  <li>Bring up the feature wizard (<b>New-&gt;Project-&gt;Plug-in
-    Development-&gt;Feature
-    Project</b>)</li>
-  <li>Set the name of the project to &quot;com.example.feature&quot; and press <b>Next</b>.</li>
-  <li>Set the feature name to &quot;Sample Feature&quot;&nbsp; and the feature version to &quot;1.2.2&quot;. Set the provider to
-    &quot;Example&quot;.</li>
-  <li>In the following page, check the plug-in (XYZ Plug-in) and the fragment
-    (German Fragment).&nbsp;</li>
-  <li>Press <b>Finish</b>.</li>
-</ol>
-<p>You should now have the &quot;com.example.feature&quot; project in your workspace.&nbsp;
-The project should have <br>
-&quot;feature.xml&quot; file and feature manifest editor will open for editing.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_synchronizing.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_feature_synchronizing.htm
deleted file mode 100644
index 64c5a1f..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_feature_synchronizing.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Synchronizing versions</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Synchronizing versions</h2>
-<p>The versions of plug-ins and fragments should be synchronized with the
-version of the packaged feature so that you can manage plug-in, fragment, and
-feature versions consistently.&nbsp; Developers typically ignore individual
-manifest versions until it is time to deploy their features.&nbsp; The Update
-Manager uses feature versions to determine whether a plug-in is older or newer
-than one already installed.&nbsp; Plug-ins and fragments need to follow the same
-version number conventions so there is no confusion about which plug-in version belongs
-to which feature version.</p>
-<p>The most convenient way to synchronize versions is to pick the version of the
-feature and force it into all the plug-ins and fragments that the feature references. This operation updates manifest files, so you are required to close all the manifest editors
-before proceeding.</p>
-<h3>Example: Synchronizing versions in the feature editor</h3>
-<p>We will take our ongoing example and force the feature version (1.2.2) into
-&quot;XYZ Plug-in&quot; and &quot;German Fragment.&quot;</p>
-<ol>
-  <li>Open the component manifest editor.</li>
-  <li>Select <b>Synchronize versions...</b> from the popup menu. A wizard will open.</li>
-  <li>Select the first radio button (&quot;Force feature version...&quot;). Press
-    <b>Finish</b>.</li>
-  <li>Switch to the Content page verify that the versions are now
-    1.2.2.</li>
-  <li>Double-click on &quot;XYZ Plug-in&quot; and &quot;German Fragment&quot;
-    objects and
-    verify versions in their corresponding manifest editors.</li>
-</ol>
-<p align="center">
-<img border="0" src="images/feature-synchronizing.gif" alt="Feature version synchronization wizard" width="438" height="414"></p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_features.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_features.htm
deleted file mode 100644
index 0910f80..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_features.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Components</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Features</h2>
-<p>The platform is designed to accept updates and additions to the initial
-installation. The platform <b> Update Manager</b> handles this task by connecting to sites where updates are posted.
-(See the Workbench User Guide and <a href="../../org.eclipse.platform.doc.isv/reference/misc/eclipse-install.html">Platform
-Installation and Update</a> for more information about features and the
-Update Manager.)</p>
-<p>You need to package your work in a form
-that will be accepted by the Update Manager.&nbsp;&nbsp;When you deliver an update to the platform, you are contributing a
-<b>feature</b>.</p>
-<p>Features have a manifest that provides basic information
-about the feature and its content.&nbsp; Content may include plug-ins, fragments and
-any other files that are important for the feature. The delivery format for a
-feature is a JAR.&nbsp;</p>
-<p>In PDE, your typical development process looks like this:</p>
-<ol>
-  <li>Projects for plug-ins and fragments are created.</li>
-  <li>Code for plug-ins and fragments is created, tested and debugged.</li>
-  <li>When you want to make your code available to others, you create&nbsp; a
-    new feature project.</li>
-  <li>Individual build properties for each plug-in and fragment are tailored to
-    control what files are included and excluded from the packaging.</li>
-  <li>Versions are synchronized with previous versions of the feature, so that
-    the Update Manager will know that a feature is a newer version of an
-    already installed feature.</li>
-  <li>The feature JAR is built.</li>
-  <li>The feature is published on the update server
-    and made available for download.</li>
-</ol>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_fragment.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_fragment.htm
deleted file mode 100644
index 66895d7..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_fragment.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fragments</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Fragments</h1>
-<p>A plug-in <b> fragment</b> is used to provide additional
-plug-in functionality to an existing plug-in after it has been installed. Fragments are ideal for shipping features like language or
-maintenance packs
-that typically trail the initial products for a few months.&nbsp;Another
-frequent use of fragments is to deliver OS or windowing system-specific
-features. When a
-fragment is
-detected by the platform and its target plug-in is found, the function in
-the fragment is &quot;merged&quot; with the original function in the target
-plug-in.&nbsp; If you query the plug-in registry, you will see the features
-defined in a fragment as if they were contributed by the original plug-in.</p>
-<p>While this merging mechanism is good from a runtime point of view,
-developers need to view
-fragments as separate entities while working on them. Fragment development is
-often done by different teams, on a different schedule, sometimes even on
-different operating systems from the original plug-in.</p>
-<p>PDE provides full support for fragment development. Fragments can be viewed as
-&quot;limited plug-ins.&quot;&nbsp; They have all of the capability of regular
-plug-ins but have no concept of life-cycle. Fragments have no top-level class
-with &quot;startup&quot; and &quot;shutdown&quot; methods.</p>
-<p>The PDE concept of workspace and external plug-ins turns out to work quite
-nicely when developing a fragment.&nbsp; You can work on a fragment whose target is an external plug-in.
-Since external plug-ins cannot be changed inside the workbench, the environment
-inherently supports the fact that the fragment should be developed without
-modifying its target plug-in. </p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-<p> </p>
-
-<p>&nbsp;</p>
-
-<p align="left">&nbsp;</p>
-<p align="left">&nbsp;</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_fragment_example.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_fragment_example.htm
deleted file mode 100644
index da84a25..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_fragment_example.htm
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>German fragment example</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Example: Writing a German fragment for XYZ Plug-in</h2>
-<p>The PDE wizards and editors that manipulate plug-ins and fragments are nearly the
-same.&nbsp; However, you must be aware of some important differences.</p>
-<p>We start by creating a new fragment project.&nbsp;&nbsp;</p>
-<p>On the first page of the New Fragment Wizard, type the project name &quot;<b>com.example.german</b>.&quot;&nbsp;
-Press <b>Next</b> and accept the default values of the second page.&nbsp; (Press
-<b>Next</b> again.)&nbsp; On the &quot;Fragment Code Generators&quot; page,
-choose the radio button for creating a fragment from a template and select the
-&quot;Default Fragment Generator&quot; wizard.&nbsp; After pressing <b>Next</b>,
-you should see the &quot;Simple Fragment Content&quot; page.</p>
-<p>This page looks a little different from
-the plug-in wizard since it has two additional fields: target plug-in id and
-version. Since we are writing a fragment for a specific plug-in, we can use the <b>Browse</b> button
-to select
-&quot;XYZ Plugin&quot; from the &quot;Workspace Plug-ins&quot; group (we
-could also pick any of the external plug-ins).</p>
-<p align="center">
-<img border="0" src="images/fragment-content.gif" alt="Fragment example - sample fragment content page" width="500" height="500"></p>
-<p align="left">Once the project is created, it opens the fragment manifest
-editor.</p>
-<p align="center">
-<img border="0" src="images/fragment-overview.gif" alt="Fragment example - manifest overview" width="545" height="507"></p>
-<p align="left">
-It is almost identical to plug-in manifest editor with the following exceptions:</p>
-<ol>
-  <li>
-    In the Overview page, the &quot;class&quot; attribute is gone.&nbsp;
-    Fragments do not have a plug-in class since they follow the life cycle of
-    their target plug-in.&nbsp; Instead, the target plug-in id and version
-    fields are shown.</li>
-  <li>
-    A drop-down combo box allows precise definition of the plug-in reference
-    (perfect, compatible, equivalent etc.).</li>
-</ol>
-<p align="left">We will add a similar action set as in the plug-in example, but
-this time in German.</p>
-<ol>
-  <li>Go to&nbsp; the Extensions page in the fragment manifest editor.
-    Press <b>Add</b> to launch the Extension wizard.</li>
-  <li>Select &quot;Generic Wizards&quot; and &quot;Schema-based extension&quot;.
-    Press <b>Next</b>.</li>
-  <li> Select &quot;Actions Sets&quot; from the list of extension
-    points. Press <b>Finish</b>.</li>
-  <li>Select the new action set. Select <b>New-&gt;actionSet</b> from the popup
-    menu.</li>
-  <li>Move to the property sheet and change the <b>label</b> property to
-    &quot;Deutsche Aktionsmenge.&quot;</li>
-  <li>Move to the &quot;Extension Element Children&quot; section and select <b>New-&gt;menu</b>
-    from the popup.</li>
-  <li>Change the <b>label</b> property of the menu to &quot;Beispiel Menu&quot;
-    and the <b>id</b> property to &quot;beispielMenu.&quot;</li>
-  <li>Select the menu element again and choose <b>New-&gt;separator</b> from
-    the popup menu. Change its name in properties to &quot;beispielGruppe&quot;
-    and save it.</li>
-  <li>Create a new &quot;action&quot; element (similar to step 6). Set the <b> label</b>
-    property to &quot;Beispiel Aktion.&quot; Set the <b> menubarPath</b> to &quot;beispielMenu/beispielGruppe.&quot;</li>
-  <li>Select the <b>class</b> property for editing and bring up the cell editor
-    dialog. Select the &quot;Generate a new class&quot; radio button.</li>
-  <li>Browse for the class container and select the &quot;GERMAN Fragment&quot;
-    folder in the &quot;com.example.german&quot; project.</li>
-  <li>Change the class name to &quot;DeutscheBeispielAktion&quot;. Press <b>Finish</b>.</li>
-  <li>When the Java editor with the new class opens, find the &quot;run&quot; method and
-    add the following:</li>
-</ol>
-<font color='#4444CC'><pre>   System.out.println(&quot;Hallo, PDE welt!&quot;);
-</pre></font>
-<p>Save and close the Java editor and fragment manifest editor.</p>
-<p align="left">When you run the fragment using the &quot;Run&quot; tool bar
-button, the run-time platform instance should have the &quot;Deutsche Aktionsmenge&quot;
-action set available.&nbsp; (Use <b>Window-&gt;Customize Perspective...-&gt;Other</b> to
-get to the list of action sets). When you activate the action set, the &quot;Beispiel
-Menu&quot; menu should
-appear on the tool bar. When you select its menu item, you should see
-&quot;Hallo, PDE welt!&quot; in the Console. The runtime platform didn't
-see the German fragment directly. Instead, its plug-in registry resolved
-fragment references in such a way that the fragment's action set appeared to the
-platform as though it came directly from the XYZ Plug-in.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest.htm
deleted file mode 100644
index be3e41c..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest.htm
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Plug-in manifest editor</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Plug-in manifest editor</h1>
-<p>After&nbsp; you've created a PDE plug-in using the New Project wizard, you will see the plug-in manifest editor
-for your new plug-in.</p>
-<p>The&nbsp; PDE
-has a number of multi-page editors, including the plug-in manifest editor,&nbsp;
-that share the same basic behavior.&nbsp; The editor has one source
-page that shows the raw file content and one or more form pages that
-present the same information in a more structured format.&nbsp;</p>
-<p>The plug-in manifest editor partitions the form information into several
-pages for less clutter.&nbsp; The best way to learn about the plug-in manifest editor is to visit each
-page.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_dependencies.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_dependencies.htm
deleted file mode 100644
index e08ad53..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_dependencies.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Dependencies page</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Dependencies page</h2>
-<p>The Dependencies page shows the dependencies that your plug-in has on other
-plug-ins.&nbsp; The plug-ins your plug-in currently depends on are shown in the
-list. You can modify the list by adding more plug-ins (button <b>Add...</b>) or
-removing them from the list. Changes in this list will prompt PDE to update the plug-in manifest and
-also configure the build path of the project so that the classes of the imported
-plug-in are visible to the plug-in under development.</p>
-<p>Since the PDE distinguishes between workspace and external plug-ins, the eligible plug-ins will be shown in two separate lists of
-checkboxes.</p>
-<p>Once you add the plug-in reference to the list, you can browse it by
-selecting <b>Open</b> from the pop-up menu or double-clicking on the entry.</p>
-<p align="center">
-<img border="0" src="images/plugin-dependencies.gif" alt="Dependencies editor page" width="545" height="507"></p>
-<p align="left">When you select an entry in the list of required plug-ins, you
-can re-export the dependency in the <b>Import Details</b> section. Re-exporting
-will make the plug-in visible to plug-ins that import it. You can also be more
-specific regarding the version and matching of the requirement. By default, any
-plug-in that has the required ID will work. You can add constraints by
-specifying the version and whether the version match should be explicitly
-specified (you can read more about valid values in the Core ISV guide).</p>
-<p align="left">The section in the bottom-right corner can be used to obtain
-dependency graph information. You can select the type of information from the
-drop-down combo box. The section can be used to check loops in the dependency
-graph, fragments that reference your plug-in and other plug-ins that require
-your plug-in. In each case, the result will be shown in the list below the combo
-box.</p>
-<p>By default, changes in the dependencies list will automatically trigger 
-updating of your plug-in project's build path.&nbsp; You can turn that feature 
-off on the<b> Plug-in Development-&gt;Java Build Path Control</b> preference page.&nbsp; 
-When this feature is off, if you add or remove a plug-in in your dependency 
-list, you are responsible for updating the build path so that the required 
-entries are added. If you do not, the Java compiler will not be able to resolve 
-references to types that belong to the required plug-ins.&nbsp; See
-<a href="pde_selfhosting_buildpath.htm">Build Path Computation</a> for more 
-details.</p>
-<p align="left">&nbsp;</p>
-<p align="left">&nbsp;</p>
-<p align="left">&nbsp;</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_extensionpoints.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_extensionpoints.htm
deleted file mode 100644
index a343a8e..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_extensionpoints.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Extension points page</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Extension points page</h2>
-<p>The Extension points page is used to browse and edit extension points defined
-by the plug-in. Our plug-in's extension points can be used by the plug-in itself or
-another plug-in.</p>
-<p>When defining an extension point, you must provide an <b> id</b> and
-<b>name</b>. The <b> id</b> needs to be simple name. Other plug-ins will use
-the fully qualified
-version that uses your plug-in id as a prefix.&nbsp; For example, extension point
-<b>foo</b>
-must be referenced using <b>com.example.xyz.foo</b>.</p>
-<p>In addition to showing the list of extension points, this page shows a graph that represents
-contributions to the extension point by other plug-ins. You will
-be able to see who is actually extending your extension point.</p>
-<h3>Example: Creating a new extension point</h3>
-<p>We will create an extension point &quot;parsers&quot; that will be used to
-plug in hypothetical parsers by other plug-ins. When you press the <b>New</b>
-button in the Extension points page, you will get a New Extension Point
-wizard.&nbsp; Define &quot;parsers&quot; as the point <b> id</b> and &quot;Sample Parsers&quot; as the point
-<b>name</b>. (For now, uncheck the button for editing the extension point schema.&nbsp;
-We will look at this editor in <a href="pde_schema_editor.htm">Extension point schema editor</a>).</p>
-<p>Before pressing the <b>Finish</b> button, the wizard should look like
-this:</p>
-<p align="center">
-<img border="0" src="images/new-expoint-wizard.gif" alt="New Extension Point wizard" width="400" height="450"></p>
-<p>When you complete the wizard, you will have new extension &quot;Sample Parsers&quot; in the
-list.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_extensions.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_extensions.htm
deleted file mode 100644
index c181277..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_extensions.htm
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Extensions page</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Extensions page</h2>
-<p>The Extensions page is used to browse and edit plug-in extensions. Extensions are the
-central mechanism for contributing behavior to the platform. Unless your plug-in is a
-simple Java API library made available to other plug-ins, new behavior is contributed as an extension.</p>
-<p>Plug-ins contribute to the extension points defined by those plug-ins that
-they require.&nbsp; Your extension syntax must match the extension point
-definition in order to be processed correctly. The total list of eligible
-extension points is computed by PDE by traversing all the visible plug-ins (both
-workspace and external).</p>
-<p>The generic extension wizard provided by PDE will simply scan the extension points.&nbsp;
-If an extension schema is provided (see <a href="pde_schema.htm">Extension Point
-Schema</a>), then the wizard will extract grammar and extension point meta
-data from the schema.</p>
-<p>In addition to the generic wizard, a number of extension templates are
-available. These are the same templates that can be used to generate initial
-content of the plug-in project. Their presence here allows you to stage the
-extension creation. You can create a plug-in with a simple view, then add an
-editor or a wizard later.</p>
-<h3>Example:&nbsp; Adding an Action Sets extension</h3>
-<p>To illustrate the operation of the Extensions page, we will add a 'Hello, PDE world'
-action to our plug-in. We will be contributing to the <a href="../../org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_actionSets.html"><b>org.eclipse.ui.actionSets</b></a>
- extension point.&nbsp; This example assumes you are already familiar with the
-extension point.&nbsp;&nbsp;</p>
-<p> We will start by pressing the <b>Add...</b> button to select the
-extension wizard:</p>
-<p align="center">
-<img border="0" src="images/new-extension.gif" alt="Extension Wizard Selection" width="500" height="500"></p>
-<p align="left">The <b>Schema-based Extension</b> wizard is the default since it handles
-extensions in the most generic ways. It will scan the plug-ins and offer all the
-extension points found, with or without schemas. Those with schemas will allow
-PDE to offer better assistance. If an extension point schema is missing, PDE will
-let you add elements and attributes to the extension, but it will not be able to verify if they are
-valid for the selected extension point.</p>
-<p align="left">When you press <b>Next</b>, a list of extension points will be
-offered. Select <b>org.eclipse.ui.actionSets</b> and press <b>Finish</b>.</p>
-<p align="center">
-<img border="0" src="images/extension-list.gif" alt="Schema-based wizard - extension point selection" width="500" height="635"></p>
-<p align="left">The wizard will add the new extension to the list of extensions.
-Since this
-extension has a schema associated with it, we can further edit our extension definition.
-We select the newly added extension and choose <b>New-&gt;actionSet</b> from the
-popup menu. This XML
-element has been defined as the only valid element that can show up in the
-extension definition.&nbsp;</p>
-<p align="left">For all required attributes, PDE will create default values.&nbsp;
-We can change the default name of the action set to &quot;Sample Action Set&quot; by selecting the element and changing the
-<b>label</b>
-property in the Properties view. The new name will show up in
-the extension list.&nbsp;</p>
-<p align="center">
-<img src="images/actionSet-1.gif" alt="Extensions editor page" border="0" width="545" height="501"></p>
-<p align="left">We now need to define a menu and an action for the action set.
-If we select the action set and popup the menu in the &quot;Extension Element Children&quot;
-section, the &quot;New&quot; menu will offer two choices:&nbsp; menu and
-action.&nbsp; These choices are based on the schema information for the action
-sets extension.&nbsp; First, we create the menu.</p>
-<ol>
-  <li>
-    Select <b>New-&gt;menu </b>to create the menu.&nbsp;&nbsp;</li>
-  <li>
-    Select it and change its properties.&nbsp; Change the <b> id</b> to &quot;sampleMenu&quot; and its
-    <b>label</b> to &quot;Sample Menu.&quot;</li>
-  <li>
-    While the menu object is still selected, popup a menu and
-    select <b>New-&gt;separator</b>. A new child should appear.</li>
-  <li>
-    Select &quot;separator&quot; and change its <b> name</b> into &quot;sampleGroup&quot;.
-    This will create a named group in the menu that we can use to contribute our
-    action.</li>
-</ol>
-<p align="left">We can create the action in a similar way:</p>
-<ol>
-  <li>
-    Select <b>New-&gt;action</b> to create an
-    action.&nbsp;&nbsp;</li>
-  <li>
-    Select it and change its properties.&nbsp; Change its <b>label</b>
-    to &quot;&amp;Sample Action&quot; and its <b> menubarPath</b> to &quot;sampleMenu/sampleGroup.&quot;&nbsp;
-    This will add the action to the menu that we just defined.</li>
-</ol>
-<p align="left">The last thing we need to set is the action's Java class. The
-extension point definition specifies that an action must implement&nbsp; <a href="../../org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/IWorkbenchWindowActionDelegate.html"><b>IWorkbenchWindowActionDelegate</b></a>.&nbsp;&nbsp;
-PDE can offer assistance since it knows this information from the schema:</p>
-<ol>
-  <li>
-    Click on the <b>class</b> property to put it into edit mode.
-    Select the button to open the cell editor dialog.</li>
-  <li>
-    Select the radio button to create a new class.</li>
-  <li>
-    Click on the <b>Browse</b> button to choose the source container
-    and choose &quot;XYZ Plugin&quot;.</li>
-  <li>
-    Change the name of the class to be &quot;SampleAction.&quot;</li>
-</ol>
-<p align="left">Before you press <b>Finish</b>, the dialog should look like this:</p>
-<p align="center">
-<img border="0" src="images/actionSet-2.gif" alt="Java Attribute Editor" width="463" height="500"></p>
-<p align="left">When you finish, the new class will be
-generated based on the required interface (with a stub implementation for each
-abstract method). In addition, the name of the new class will be set for the class property value. The wizard will
-also open the new Java class for editing by default. You can locate the &quot;run&quot; method and add the following
-statement:</p>
-<font color='#4444CC'><pre>   System.out.println(&quot;Hello, PDE world!&quot;);
-</pre></font>
-<p align="left">Save the new source code and close the Java editor.&nbsp; Then
-return to the Extensions page of the
-manifest editor and save.</p>
-<p align="left">We will continue with this example when we <a href="pde_running.htm">run
-the plug-in</a>.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_overview.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_overview.htm
deleted file mode 100644
index c1a3bda..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_overview.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Overview page</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Overview page</h2>
-<p>The Overview page shows you &quot;plug-in at a glance&quot; information grouped into sections.
-The most important information for each section is shown on the page, with
-hyperlinks and <b>More</b> buttons provided to access additional information.</p>
-<p align="center">
-<img src="images/plugin-overview.gif" alt="Overview editor page" border="0" width="545" height="501"></p>
-<p align="left">The general plug-in information can be edited.&nbsp; The rest of
-the information on this page can only be browsed.&nbsp; If a plug-in class is specified for
-the
-plug-in, a hyperlink will open the class in a Java editor.</p>
-<p align="left">The <b> Alerts</b> section will bring to your attention problems and
-outstanding tasks associated with the plug-in. For example, it will flag
-compilation errors and warnings, as well as unresolved or cyclical references to
-other plug-ins.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_runtime.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_runtime.htm
deleted file mode 100644
index 32ba45e..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_runtime.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Runtime page</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Runtime page</h2>
-<p>The Runtime page shows information about run-time libraries. When packaged,
-platform plug-ins deliver all of their Java classes in JAR libraries. This page defines how
-the classes that are in source folders during the design time are packaged into
-the libraries. One source folder and one library have already been set during
-the project creation by the wizard. You can define more on this page.</p>
-<p align="center">
-<img src="images/plugin-runtime.gif" alt="Runtime editor page" border="0" width="545" height="501"></p>
-<i><blockquote>Note:&nbsp; The information about the source folders that should be
-compiled to produce the libraries is actually stored in a separate file (<b>build.properties</b>).
-When you change this information, <b> build.properties</b> will be updated. This can
-only happen if the file is not in use. If it is, the manifest editor will indicate
-that the file is in use and you will only be able to browse the information.</blockquote></i>
-<p>By default, a library is of type 'code', and thus assumed to contain 
-executable code and resources.&nbsp; Accessing anything from such a library 
-causes the activation of the plug-in and all its dependencies.&nbsp; If a 
-library in your plug-in is not to contain executable code, e.g. libraries that 
-hold translated NL strings only, it should be marked of type 'resource'.&nbsp; 
-Accessing a 'resource' from such a library does not activate the plug-in, thus 
-greatly improving performance.</p>
-<p>You can also determine exporting rules for your libraries. By default, no
-classes in your libraries can be seen by others. This is appropriate if your
-plug-in is not meant to be extended. If your classes should be visible to other
-plug-ins, the libraries
-must be exported. You can export the entire library, or just some portions that
-match the provided content filters (for example, <b>com.example.*</b>).</p>
-<p>Declaring package prefixes for a library results in 10-15% increase in class 
-loading speed.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_source.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_source.htm
deleted file mode 100644
index 8b617b7..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_source.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Source page</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Source page</h2>
-<p>In addition to the GUI pages, PDE provides a source page where users who 
-prefer to edit the plugin.xml file by hand can work.&nbsp; Since manual editing 
-of the file can open the door to a wide variety of errors, both syntactic and 
-semantic, PDE validates the file upon saving or switching tabs to flag such 
-errors.</p>
-<p align="center">
-<img border="0" src="images/plugin-source.gif" alt="Source editor page" width="545" height="501"></p>
-<p>If a syntax error is introduced, PDE will lock out the form pages until the error
-is fixed. If you try to switch to any of the non-source pages, you will see the
-following dialog:</p>
-<p align="center">
-<img border="0" src="images/source-errors.gif" alt="Source editor page - error dialog" width="443" height="148"></p>
-<p align="left">If you close the editor with errors in it and open it again, the
-editor will open into the Source page and other pages will not be accessible
-until the source is fixed.</p>
-<p align="left">The semantic errors, which PDE is able to detect, are listed on the <b>
-Plug-ins</b> tab of the <b>Plug-in Development-&gt;Compilers</b> preference 
-page:</p>
-<p align="center">
-<img border="0" src="images/manifest-validate.gif" align="center" width="492" height="541" alt="Plug-in Development compiler preferences"></p>
-<p align="left">You can set the level of each to one of 'Error', 'Warning' or 
-'Ignore'.</p>
-<p align="left">Note that for PDE to be able to detect some of these problems 
-(e.g. required attributes not defined, undefined extension attributes, etc.), 
-extension points you are using must have a valid schema associated with them.&nbsp; 
-See <a href="pde_schema.htm">Extension Point Schema</a> for more details.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_welcome.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_welcome.htm
deleted file mode 100644
index a468548..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_manifest_welcome.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Overview page</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Welcome page</h2>
-<p>When you create a plug-in using a template wizard, the manifest editor will
-contain one additional page - the Welcome page. Its purpose is to summarize the
-content that was generated by the selected template, and help you be productive
-quickly.</p>
-<p align="center">
-<img border="0" src="images/plugin-welcome.gif" alt="Welcome editor page" width="545" height="501"></p>
-<p align="left">Once you get more familiar with plug-in development and modify
-the plug-in significantly, you can stop the page from appearing by selecting the
-checkbox at the bottom left corner. Once you close the editor, the page
-information will be removed and will not appear the next time the manifest is
-opened for editing.</p>
-<p align="left">&nbsp;</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_running.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_running.htm
deleted file mode 100644
index e505f8d..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_running.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running a plug-in</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Running a plug-in</h1>
-<p>As you develop your plug-in in the workspace, the incremental Java compiler
-will compile your Java source code and place the <b> *.class</b> files into the
-<b>bin</b> directory of your PDE project. When you are ready to test your
-plug-in, you can launch a run-time workbench instance to test your new plug-in.</p>
-<p>JDT plug-in provides the launching support that PDE uses by defining its own
-launcher type called Run-time Workbench. The simplest way to activate it is by
-selecting <b>Run-&gt;Run As-&gt;Run-time Workbench</b> from the main menu bar.
-This will immediately create a second (run-time) workbench instance that will
-appear after a while.</p>
-<p>To gain full control over the way the run-time workbench is launched, select <b>Run-Run...</b>
-from the main menu bar. This will bring the launch dialog up:</p>
-<p align="center">
-<img border="0" src="images/launch-dialog.gif" alt="Run-time workbench launcher - arguments" width="577" height="586" ></p>
-<p align="left">You can create several configurations and give them unique
-names, each one having different parameters. This allows you to test your
-plug-in under different conditions by simply switching between different
-configurations. For each configuration, you can define main arguments, control
-plug-ins and fragments that will run, activate tracing and define parameters
-common to all launchers.</p>
-<p align="left">&quot;Workspace data&quot; field defines the workspace that will be used
-by the run-time workbench. PDE will set the default value but you are free to
-change it. You can select the Java VM that will be used to launch the instance,
-as well as the VM and program arguments. At any point in time, you can restore
-the default values using the provided button.</p>
-<p align="left">PDE uses the values specified on the <b>Plug-in 
-Development-&gt;Target Environment</b> preference page to set the default program 
-arguments for the launch configuration.&nbsp; If you manually change these 
-values in the configuration, changes will only affect that particular 
-configuration.&nbsp; Changes made on the preference page will affect all 
-configurations created thereafter.</p>
-<h2>Example:&nbsp; Running the Action Set</h2>
-<p>Before running, make sure that
-your environment is set up as described in <a href="pde_configuring.htm">Configuring PDE</a>. You
-will want to have different workspaces for
-design and run-time (as set by default).</p>
-<p>Select <b>Run-&gt;Run As-&gt;Run-time Workbench </b>from the main menu. Another platform instance should open. Our new action set is not immediately visible,
-so we need to activate it by selecting <b>Window-&gt;Customize Perspective-&gt;Other...</b>
-and selecting the checkbox for &quot;Sample Action Set&quot; (the action set
-that we added). &quot;Sample Menu&quot; should now show up in the menu bar with
-the &quot;Sample Action&quot; item. Selecting it should output &quot;Hello, PDE world&quot;
-to the Console view of the Debug perspective (in the host platform instance).</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_running_debugging.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_running_debugging.htm
deleted file mode 100644
index 8c1c65e..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_running_debugging.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running under debug</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Running under debug</h2>
-<p>The same Runtime Workbench launcher can be used for debugging. There is no
-special PDE support for debugging beyond the standard Java debugging support.&nbsp;</p>
-<p>Press the <b>Debug</b> tool bar button instead of <b>Run</b> in
-order to debug your plug-in. You can place breakpoints in
-your Java code and step through the source once you reach them.&nbsp;</p>
-<p> PDE ensures that
-there is no difference between workspace and external plug-ins when
-debugging.&nbsp; You can jump from class to class without knowing whether you are looking at the
-read-only source attached to external libraries or editable source in your
-workspace. For more information about debugging, see the JDT User Guide.</p>
-<p>If your target platform is not the same as the host and the target platform
-is a product that does not contain source code, you will not be able to step
-through source when the control moves into the platform classes. Some
-platform-based products may elect to ship without source and offer source as
-part of the product SDK. In that case, source code will be installed separately
-(usually later). Source code is delivered via plug-ins that contain ZIP files
-and plug into the PDE extension point for registering source code locations.
-When associating run-time libraries and source attachments, PDE will scan the
-available source code locations trying to find the matching source ZIP.</p>
-<p>Alternatively, you can download source code onto your disk drive and register
-the location manually using PDE preference page:</p>
-<p align="center">
-<img border="0" src="images/source-locations.gif" alt="PDE Preferences - Source Code Locations" width="570" height="541"></p>
-<p align="left">You will notice that some locations already exist if the host
-instance is the SDK itself and contains source plug-ins. You can add new
-locations by selecting <b>Add...</b> and choosing a valid local directory.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_running_plugins.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_running_plugins.htm
deleted file mode 100644
index 3802058..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_running_plugins.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running with tracing</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Choosing plug-ins to run</h2>
-<p>It is possible to alter the list of plug-ins and fragments that PDE will pass
-to the run-time workbench when running or debugging. By default, <b>Plug-ins and
-Fragments</b> tab is configured to select all the workspace plug-ins and
-external plug-ins that are enabled in the Preferences. However, choosing another
-radio button shows the list of plug-ins that can be individually selected or
-deselected:</p>
-<p> In order to support tracing without the need to edit the tracing <b>.options</b> files, PDE provides a
-&quot;Runtime Tracing&quot; preference page that allows you to set the tracing flags
-and name filters related to loading.</p>
-<p align="left">Runtime class load tracing is treated specially since it is general
-and useful for most plug-in developers. PDE also provides a generic dialog for controlling
-other tracing flags.&nbsp; The Advanced Tracing preference page shows all of the plug-ins that support tracing.&nbsp;
-When a plug-in is selected, its supported tracing options are shown in the property
-sheet. You can change the values of these tracing options for workspace and
-external plug-ins.</p>
-<p align="left">If you add tracing support to the plug-in under development,
-these tracing values will show up in this page.</p>
-<p align="center">
-<img border="0" src="images/launch-plugins.gif" alt="Run-time workbench launcher - plug-ins and fragments" width="577" height="586"></p>
-<p align="left">You can select workspace and external plug-ins individually or
-as a group. This gives you great flexibility, but with flexibility comes the
-danger of ending up with an invalid configuration. Use this feature carefully
-and press <b>Restore Defaults</b> when you are not sure what the original
-setting was.</p>
-<p align="left">If you want to know exactly where all the plug-ins you are
-passing to the run-time workbench are coming from, press <b>Plug-in Paths...</b>
-button. A window listing the URLs of all the plug-ins will open.</p>
-<p>&nbsp;</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_running_tracing.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_running_tracing.htm
deleted file mode 100644
index 9f46dba..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_running_tracing.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running with tracing</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Running with tracing</h2>
-<p>The platform provides a mechanism for tracking the activity of your plug-in at runtime
-without full debugging. It allows you to use tracing flags that will cause
-tracing information to be printed on the standard output (or Console view). These flags are defined in files named
-&quot;<b>.options</b>&quot; and have the following syntax:</p>
-<font color='#4444CC'><pre>   &lt;plug-in Id&gt;/debug = true/false  (master switch)
-   &lt;plug-in Id&gt;/&lt;tracing flag&gt; = &lt;value&gt;
-</pre></font>
-<p>The first entry represents master switch for tracing your plug-in. If you
-call the method <b>isDebugging</b> in your plug-in class, it will
-return true if the value of this tracing variable is true. Other tracing flags
-are defined by you and their value can be obtained by using</p>
-<font color='#4444CC'><pre>   Platform.getDebugOption(optionName);
-</pre></font>
-<p>Most of the platform plug-ins define tracing flags, particularly the platform
-core. For a
-new plug-in developer, the most interesting set of tracing flags are those
-related to class loading, because they can allow tracing of plug-in loading
-problems.&nbsp;</p>
-<p> In order to support tracing without the need to edit the tracing <b>.options</b> files, PDE provides a
-&quot;Runtime Tracing&quot; tab in the launch dialog. All the tracing settings
-are saved in the launch configuration. This means that you can create several
-configurations with different tracing options and alternate between them.</p>
-<p align="center">
-<img border="0" src="images/launch-tracing.gif" alt="Run-time workbench launcher - tracing" width="577" height="586"></p>
-<p align="left">If you add tracing support to the plug-in under development,
-your plug-ins will appear in the list of plug-ins that support tracing (in the
-Workspace Plug-ins group) and your tracing properties will appear in the
-property sheet.</p>
-<h3>Example:&nbsp; Adding tracing support to your plug-in</h3>
-<p>In order to allow other developers to control your plug-in's tracing flags,
-you need to make these options known.&nbsp; This is typically done by placing a <b>.options</b> file in your plug-in.&nbsp; The file lists all the supported flags as well as their default values.
-PDE will immediately detect this file and include it in the list of
-&quot;Workspace Plug-ins&quot; on the advanced tracing preference page.</p>
-<p>We will now define a template <b> .options</b> file with a
-few tracing flags for our new plug-in.</p>
-<p>Select the <b>com.example.xyz</b> project created earlier and create a new file
-.<b>options</b>. When
-the default text editor opens, add the following entries:</p>
-<font color='#4444CC'><pre>   com.example.xyz/debug = true
-   com.example.xyz/debug/flag = true
-   com.example.xyz/debug/filter = *
-</pre></font>
-<p>When this file is saved, select <b>Run-&gt;Run...</b> to open the launch
-dialog. Our
-plug-in should now show up under &quot;Workspace Plug-ins&quot;. When selected,
-it should show the newly defined flags with their default values.</p>
-<p align="center">
-<img border="0" src="images/xyz-tracing.gif" alt="Run-time workbench launcher - tracing example" width="586" height="586"></p>
-<p>Creating the <b>.options</b> file only defines the availability flags,
-allowing other plug-in developers to define the values of the tracing
-properties.&nbsp; You will still need to check the values of your tracing
-properties in your plug-in code using <b>Platform.getDebugOption()</b><b>.</b></p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_schema.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_schema.htm
deleted file mode 100644
index 794a84f..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_schema.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Extension point schema</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Extension point schema</h1>
-<p>Extensions are the key mechanism that a plug-in uses to add new features to the platform. Extensions cannot be arbitrarily
-created.&nbsp; They are declared using a clear specification defined by an
-extension point.</p>
-<p>Each extension must conform to the
-specification of the extension point that it is extending&nbsp; Each extension
-point defines attributes and expected values that must be declared by an
-extension.&nbsp; This information is maintained in the platform plug-in
-registry.&nbsp; Extension point providers query these values from the registry,
-so it's important to ensure that your plug-in has provided the expected
-information.</p>
-<p>In the most rudimentary form, an extension point declaration is very simple.&nbsp;
-It defines the id and name of the extension point.&nbsp; Any other information
-expected by the extension point is specific to that extension point and is
-documented elsewhere.&nbsp; (See the <a href="../../org.eclipse.platform.doc.isv/reference/extension-points/index.html">Platform
-Extension Point Reference</a> for the platform extension point definitions.)</p>
-<p>Reference documentation is useful, but it does not enable any programmatic
-help for validating the specification of an extension. For this reason, PDE introduces
-an extension point schema that describes extension points in a format fit for
-automated processing.</p>
-<p>Extension point schema is a valid XML schema as defined by W3C specification.
-However, the full XML schema specification is very complex and mostly unnecessary for this particular use. For this reason, PDE uses only a
-subset of XML schema features.&nbsp; Each extension point schema is a valid
-XML schema, but PDE does not use all the available features.</p>
-<h2>The benefits of extension point schemas</h2>
-<p>There are many benefits to describing your extension point using the PDE
-extension point XML schema:</p>
-<ol>
-  <li>Extension point grammar allows elements, attributes, and types to be
-    expressed formally. This
-    information can be used by tools to validate extensions or offer assistance
-    during creation of the extension.</li>
-  <li> XML schema provides for documentation
-    annotation that is similar to Javadoc in Java source. This mechanism ties
-    short text for valid elements and attributes to the declaration of
-    these elements and attributes. It is much easier to keep the documentation
-    in sync because removal of an attribute will also remove documentation for
-    the attribute.&nbsp; There is no need to update the reference document.</li>
-  <li>Reference documentation can be generated.&nbsp; PDE provides a tool that tracks changes in extension point
-    schemas and updates reference documentation on the fly.</li>
-  <li>You can provide additional metadata about the extension point that can be
-    used by tools that process the schema.&nbsp; PDE uses this
-    mechanism to add additional information about elements and attributes. For
-    example, if an attribute is marked as &quot;Java,&quot; PDE can provide assistance
-    while setting the value of this attribute by interacting with Java platform
-    features.</li>
-</ol>
-<h2>Limitations of PDE XML Schema support</h2>
-<p>PDE uses a small subset of XML schema.&nbsp; Using the full XML schema
-features set would be
-an overkill in this particular case. The subset allows
-almost 1-&gt;1 mapping from DTDs to schemas, but without DTD limitations. The
-following are the main limitations of the PDE extension point schema:</p>
-<ol>
-  <li>Only global element declarations are allowed.</li>
-  <li>Only local attribute declarations are allowed.&nbsp; Global attributes cannot be
-    declared.</li>
-  <li>The following compositors are supported:  <b>all</b>, <b>sequence</b>, <b>choice</b>
-    
-    and <b>group</b>.</li>
-  <li>There is no global type support.&nbsp; Types must be declared and immediately used.</li>
-  <li>Attributes can only have <b>string</b> and <b>boolean</b> types.</li>
-  <li>If an attribute is<b> </b> of type <b>string</b>, only
-    the <b>enumeration</b> restriction is
-    supported.</li>
-</ol>
-<p>If you write an XML schema using these restrictions, you will
-notice that the resulting file looks strikingly similar to an equivalent DTD
-that defines the same grammar. The advantage of schema is in annotations (both
-documentation and metadata). An additional advantage is that the XML schema is itself
-written in XML, which makes its processing and reading much easier.</p>
-<p>The list above is for reference only. You are most likely to
-define an XML schema using the PDE schema editor that will take care of generating the correct file.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_schema_editor.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_schema_editor.htm
deleted file mode 100644
index 21d03d9..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_schema_editor.htm
+++ /dev/null
@@ -1,232 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Extension point schema editor</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Extension point schema editor</h2>
-<p>You can open the extension point schema editor in two ways: as a by-product of
-creating a new extension point or by opening an existing extension point
-schema.&nbsp; By
-convention, new schemas have the same name as the extension point id with a <b>.exsd</b> file extension. They are placed in
-<b>schema</b> directory in your plug-in directory tree.&nbsp;&nbsp;</p>
-<p>When a new extension point is created in the PDE, the initial schema file will also be
-created and the schema editor will be opened for editing. You can define the schema
-right away, or close it and do it later. Making a complete
-extension point schema allows PDE to offer automated assistance to the users
-of your extension point.</p>
-<p>The PDE schema editor is based on the same concepts as the plug-in manifest
-editor.&nbsp; It has two form pages and one source page.&nbsp; Since XML schema is verbose and
-can be hard
-to read in its source form, you should use the form pages for most of the
-editing.&nbsp; The source page is useful for reading the resulting source code.</p>
-<h3>Example: Creating schema for the &quot;Sample Parsers&quot; extension point</h3>
-<p>We previously created the &quot;Sample Parsers&quot; extension point and the
-initial schema. We can now open the schema by going into the <b>schema</b>
-folder of our project and double-clicking on the <b>parsers.exsd</b> file.&nbsp;
-This will open the schema editor.</p>
-<p>We want to do the following:</p>
-<ol>
-  <li>Define the valid XML elements and attributes for the extension point.</li>
-  <li>Define the grammar (content model).</li>
-  <li>Provide documentation snippets that will be merged into a reference
-    document.</li>
-</ol>
-<p>Every extension point schema starts with a declaration of the the
-&quot;extension&quot;
-element.&nbsp; We will add a new XML element called &quot;parser.&quot;</p>
-<ol>
-  <li>Press the button <b>New Element</b> in the <b>Extension Points Elements</b>
-    section.</li>
-  <li>Move to the Properties view and change its name from &quot;New_Element&quot;
-    to &quot;parser&quot;</li>
-  <li>While the new element is still selected, press the <b>New Attribute</b>
-    button. This will create &quot;new_attribute&quot; as its child. Change its <b>
-    name</b> to &quot;id&quot; and <b>use</b> to &quot;required&quot; in the property sheet.</li>
-  <li>While still in the property sheet, press the button &quot;Clone this
-    attribute&quot; available on the local tool bar. This will create a copy of
-    the attribute.&nbsp; This is useful because it allows us to quickly define all the
-    attributes without leaving the property sheet.</li>
-  <li>Change the name of the new attribute into &quot;name.&quot;</li>
-  <li>Clone the attribute again. This time, change the name to &quot;class.&quot;&nbsp; This attribute will be used to represent a fully
-    qualified name of the Java class that must implement a specific Java
-    interface. We need to specify this so that PDE can later take advantage of
-    it. Change <b>kind</b> from &quot;string&quot; to &quot;java.&quot;&nbsp;
-    Set the <b>basedOn</b> property
-    to <b>com.example.xyz.IParser</b>.&nbsp; (This interface does not exist yet, but we will
-    make it later.)</li>
-</ol>
-<p>So far, the schema editor should look like this:</p>
-<p align="center">
-<img border="0" src="images/schema-1.gif" alt="Extension point schema editor - Definition page" width="565" height="457"></p>
-<p align="left">We will now add an additional attribute that takes values from
-a discrete list of choices.&nbsp; This means we need to create an enumeration restriction of
-the base <b>string</b>  type.&nbsp; In addition, we will set a default value for the
-attribute.</p>
-<ol>
-  <li>
-    While the &quot;parser&quot; element is selected, press&nbsp;
-    the <b>New Attribute</b>
-    button. Change its name in the property sheet to &quot;mode.&quot;</li>
-  <li>
-    Click in the value cell of the &quot;restriction&quot; property
-    to bring the restriction dialog up.&nbsp;</li>
-  <li>
-    Change the restriction type from &quot;none&quot; to
-    &quot;enumeration.&quot;</li>
-  <li>
-    Add the following three choices: &quot;never,&quot; &quot;always,&quot;
-    and &quot;manual.&quot;&nbsp; (These are our three hypothetical modes for
-    the parser extension.)</li>
-</ol>
-<p align="left">The restriction dialog should look like
-this:</p>
-<p align="center">
-<img border="0" src="images/restriction-dialog.gif" alt="Type restriction dialog" width="300" height="350"></p>
-<p align="left">When the dialog is closed, change the &quot;use&quot; attribute to
-&quot;default&quot; and &quot;value&quot; attribute to &quot;always.&quot;&nbsp;
-This establishes the default value.&nbsp; Note that the status line shows an error message as you are typing the value,
-since it restricts valid values to the three enumeration choices. Once you
-finish typing, the error message should go away because &quot;always&quot; is a
-valid value.</p>
-<p align="left">Now that we have defined all of the elements and attributes, we need to
-define grammar. Our goal is to define that the &quot;extension&quot; element can have any
-number of &quot;parser&quot; elements as children.&nbsp;</p>
-<ol>
-  <li>
-    Select the &quot;extension&quot; element. Its initial content model shows
-    an empty sequence compositor.</li>
-  <li>
-    Select the sequence compositor and select <b>New-&gt;Reference-&gt;parser</b>
-    from the popup menu. This will add the parser reference to
-    the sequence compositor.</li>
-  <li>
-    The default cardinality of references is [1,1] which means
-    that there can be exactly one &quot;parser&quot; element. That is not quite what we
-    wanted. We select the &quot;parser&quot; reference and change the <b>maxOccurs</b> to &quot;unbounded.&quot;</li>
-</ol>
-<p align="left">After defining the grammar, the DTD approximation
-below the grammar section shows what the grammar for the selected element would
-look like in DTD.&nbsp; This information is provided to help
-developers who are still more comfortable with DTDs than XML schemas.</p>
-<p align="center">
-<img border="0" src="images/schema-2.gif" alt="Extension point schema editor - element grammar" width="565" height="457"></p>
-<p align="left">Now that we have defined valid elements, attributes and grammar,
-we need to provide some information about the extension point. There are two
-types of schema
-documentation snippets:</p>
-<ul>
-  <li>
-    Documentation about elements and attributes</li>
-  <li>
-    Documentation about the extension point usage, API, etc.</li>
-</ul>
-<p align="left">The first snippet type is provided in the Definition page of
-the schema manifest. As you select elements and attributes, you can add short
-text about them in the &quot;Description&quot; section. The expected format is raw HTML (as
-with Javadoc) and the text will be copied as-is into the final reference
-document.</p>
-<ol>
-  <li>
-    Select the &quot;id&quot;' attribute of the
-    &quot;parser&quot; element and type the
-    following in the Description editor:<br>
-    a unique name that will be used to
-    reference this parser.</li>
-  <li>
-    Select the &quot;name&quot; attribute and
-    add the following text:<b><br>
-    </b>
-    a translatable name that will be used for presenting this parser in the UI.</li>
-  <li>
-    Select the &quot;class&quot; attribute and
-    add the following text (note the HTML tags):<b><br>
-    </b>
-    a fully qualified name of the Java class that implements &lt;samp&gt;com.example.xyz.IParser&lt;/samp&gt;
-    interface.</li>
-  <li>
-    Select the &quot;mode&quot; attribute and
-    add the following:<b><br>
-    </b>
-    an optional flag that indicates how often this parser instance will run
-    (default is &lt;samp&gt;always&lt;/samp&gt;).</li>
-</ol>
-<p align="left">We now have to provide a short text description of the extension point
-itself. In order to do that, we switch to the Documentation page:</p>
-<ol>
-  <li>
-    Choose &quot;Overview&quot; from the combo box above the
-    text editor and add the following text:<br>
-    This extension point is used to plug in
-    additional parsers. The parsers actually do not work - we have just used
-    them as an example of extension point schema.<br>
-    
-    Press <b>Apply</b>.</li>
-  <li>
-    Choose &quot;Examples&quot;
-    from the combo box and add the following text:<br>
-<font color='#4444CC'><pre>   The following is an example of the extension point usage:
-   &lt;p&gt;
-   &lt;pre&gt;
-      &lt;extension point=&quot;com.example.xyz.parsers&quot;&gt;
-         &lt;parser
-            id=&quot;com.example.xyz.parser1&quot;
-            name=&quot;Sample Parser 1&quot;
-            class=&quot;com.example.xyz.SampleParser1&quot;&gt;
-         &lt;/parser&gt;
-      &lt;/extension&gt;
-   &lt;/pre&gt;
-   &lt;/p&gt;
-</pre></font>
-    <p>Press <b>Apply</b>.</p>
-  </li>
-  <li>Select &quot;API Information&quot; and add the following text:<br>
-    Plug-ins that want to extend this extension point must implement &lt;samp&gt;com.example.xyz.IParser&lt;/samp&gt;
-    interface.<br>
-  
-    Press <b>Apply</b>.</li>
-  <li>Select &quot;Supplied Implementation&quot; and add the following text:<b><br>
-    </b><i>
-    XYZ Plugin provides default implementation of the parser.<br>
-    </i>
-    Press <b>Apply</b>.<i>
-    <br>
-    </i></li>
-</ol>
-<blockquote><i>Note: Special consideration has to be taken when providing examples.
-Normally, PDE would treat the provided text as raw HTML and would not respect new
-line and white space greater than one character (i.e. ignorable white space). This
-is to be expected when regular text is concerned, but is extremely annoying when
-providing examples, where tabbing and vertical alignment is significant if the
-example is to look good. PDE has a compromise for this situation: if it detects
-the HTML tag &lt;pre&gt;, it will take the content as-is (preserving all characters
-without modification) until closing tag &lt;/pre&gt; is seen. This is why we can
-provide an example like the above and be confident that it will look good in the final
-reference document.</i></blockquote>
-<p>You may have already noticed that as you type documentation, more and more
-elements in the editor Outline view acquire a &quot;pen&quot; image overlay. This little
-indicator tells you that the element in question has some text associated with
-it - a quick way to check if the documentation is missing somewhere in the
-document.</p>
-<p align="center">
-<img border="0" src="images/schema-outline.gif" alt="Extension point schema editor outline" width="202" height="297"></p>
-<p>Once we have finished with the documentation, we can take a look at the
-reference documentation. You can do it in two ways. All the time during your 
-work, you can preview the reference document by selecting Preview Reference 
-Document item from the pop-up menu. Alternatively, you can set up PDE 
-preferences (Preferences&gt;Plug-in Development&gt;Compilers, under Schema tab) to 
-automatically create reference documentation on each schema file change. 
-Regardless of the method to create it, the resulting document for
-this example would look like <a href="parsers.htm">this</a>.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_schema_using.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_schema_using.htm
deleted file mode 100644
index e36adc1..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_schema_using.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using extension point schema</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Using extension point schema</h2>
-<p>Extension points defined by the plug-ins in your workspace are readily available
-to your own plug-in and other plug-ins. If an extension point schema has been
-defined for it, PDE can provide assistance when creating new extensions.
-This assistance includes:</p>
-<ul>
-  <li>Providing choices for the <b>New</b> pop-up menu so that only valid child elements
-    are added</li>
-  <li>Providing attribute information for the property sheet so that only valid
-    attributes are set</li>
-  <li>Providing correct attribute property editors that match the attribute types (boolean,
-    string, and enumeration).</li>
-  <li>Providing additional support for special attribute types (&quot;java&quot;
-    and &quot;resource&quot;).</li>
-  <li>Using the status line to show the first sentence of the documentation
-    snippet for attributes when selected in the property sheet.</li>
-</ul>
-<h3>Example: Using the &quot;Sample Parsers&quot; extension point</h3>
-<p>Before trying to use the extension point we defined before, we still need to
-define the expected interface. Select the <b>com.example.xyz</b> project in the Navigator
-and press the &quot;Create a Java interface&quot; tool bar button.&nbsp; Be sure
-to set the package name to <b>com.example.xyz</b> and interface name to
-<b>IParser</b> before pressing <b>Finish</b>.&nbsp; Edit the interface to look like this:</p>
-<font color='#4444CC'><pre>   package com.example.xyz;
-
-   public interface IParser {
-      /**
-       * Run the parser using the provided mode
-       */
-      public void parse(int mode);
-   }
-</pre></font>
-<p>We now have the extension point, an XML schema for it, and the required
-interface. Be sure to save all of your open editors.&nbsp; Everything is now
-ready for our own plug-in or other plug-ins to
-contribute to the extension point.</p>
-<ol>
-  <li>Open the manifest editor for the <b>com.example.xyz</b> plug-in.</li>
-  <li>Switch to the Extensions page and press <b>New-&gt;Schema-based Extensions</b>.</li>
-  <li>You should have &quot;Sample Parsers&quot; available as a choice. Select
-    it and press <b>Finish</b>.</li>
-  <li>Select the newly added &quot;Sample Parsers&quot; element and popup the <b>New-&gt;parser
-    </b>menu. (We specified that our extension point can accommodate any
-    number of&nbsp; &quot;parser&quot; elements.)</li>
-  <li>Select the new element and go to the Properties view. It should show four
-    attributes: <b>id</b>, <b>name</b>, <b> class</b> and <b>mode</b>. Note how the status line shows the
-    short information about attributes as you select them. This information
-    comes directly from the extension point schema.</li>
-  <li>Change the <b> name</b> to &quot;Default Parser&quot;. Change the <b>mode</b> to
-    &quot;manual.&quot;&nbsp;</li>
-  <li>Select the <b>class</b> attribute. This property cannot be edited
-    directly.&nbsp; Open the properties dialog.</li>
-  <li>Choose to create a new class. Select &quot;XYZ Plugin&quot; as the source
-    folder, <b>com.example.xyz</b> as the package and <b> DefaultParser</b> as the class name.
-    Press <b>Finish</b>.</li>
-  <li>You should now be in the Java editor for the <b> DefaultParser</b> class. Notice
-    how it has implemented the right interface (<b>IParser</b>) and already has the stub
-    implementation of the &quot;parse&quot; method.</li>
-</ol>
-<p>As you can see, when you provide a complete XML schema for your extension
-point, it will help all your potential users by letting PDE to assist them and
-prevent them from making errors.</p>
-<p align="center"><font SIZE="2" COLOR="#3f7f5f">
-<img border="0" src="images/schema-usage.gif" alt="Restriction choices appearing as choices in the property sheet cell editor" width="416" height="164"></font></p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting.htm
deleted file mode 100644
index 216c4ed..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fragments</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Self-hosting</h1>
-<p CLASS="BodyText">Self-hosting is an activity in which a computer program is
-used to create new versions of the same program. Self-hosting is very frequent
-in compiler development, where new versions of the compiler are written in the
-target language of the compiler and compiled by itself as part of the testing.
-In Eclipse, self-hosting refers to using Eclipse for developing Eclipse
-plug-ins. If it sounds like the mission statement of PDE, it should. By the
-virtue of using PDE, you are already self-hosting.</p>
-
-<p CLASS="BodyText">PDE supports two distinct styles of self-hosting. They both
-have their advantages and disadvantages and are designed for different usage
-scenarios. They differ in the way plug-in dependencies are managed.</p>
-
-<ol>
-  <li>
-    <p CLASS="BodyText"><b>Simple (standalone) self-hosting</b> uses external
-    plug-ins for resolving plug-in references. It is simple, easy to manage and
-    understand, and is completely adequate for standalone developers (those who
-    do not use remote repositories to share their code with others).</li>
-  <li>
-    <p CLASS="BodyText"><b>Binary project self-hosting</b> introduces a step
-    whereby external plug-ins are imported into the workspace as binary
-    projects. They are still not meant to be modified and are usually hidden
-    using a binary project filter in Package Explorer.</li>
-</ol>
-    <p CLASS="BodyText">As a new feature in 2.1 release, PDE offers an 
-    additional style that is more of a mix between simple and binary project 
-    self-hosting. In this mode, a classpath container provided by JDT are used 
-    to represent entries for dependent plug-ins. These entries are computed 
-    dynamically depending on the current situation in the platform. If a 
-    referenced plug-in is found outside (external), the reference will be 
-    resolved as external JARs. If the plug-ins is found in the workspace, it 
-    will resolve into the project reference. Changes in the workspace 
-    automatically affect the classpath in the container. Finally, since entries 
-    are computed when needed (not hard-coded and stored), changes in the target 
-    platform do not result in stale and/or fragile classpaths.
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-<p> </p>
-
-<p>&nbsp;</p>
-
-<p align="left">&nbsp;</p>
-<p align="left">&nbsp;</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_binary.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_binary.htm
deleted file mode 100644
index 8cd7608..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_binary.htm
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fragments</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Binary project self-hosting</h1>
-<p CLASS="BodyText">Simple self-hosting is adequate for most standalone
-situations and is particularly well-suited to developing against the large
-products as targets. However, there are scenarios in which a more advanced
-solution is needed:</p>
-
-<ol>
-  <li>
-    <p CLASS="BodyText">Since external plug-ins are not in the workspace, they
-    are not part of the search scope. Therefore, various searches (for interface
-    and class references, implementations etc.) return less results than
-    expected. Only external libraries that are part of workspace plug-ins' class
-    path are visible to Java plug-in.</li>
-  <li>
-    <p CLASS="BodyText">Closely connected to 1), browsing source code of
-    external plug-ins is only possible for plug-ins that are required by
-    workspace plug-ins. Other plug-ins are not visible.</li>
-  <li>
-    <p CLASS="BodyText">Class path is not stable. If you work on a number of
-    interdependent plug-in in the workspace, PDE will express these dependencies
-    as project references. In contrast, dependencies on external plug-ins will
-    be expressed using ECLIPSE_HOME variable and external JARs. If these
-    projects are shared using the repository, other developers will be forced to
-    replicate this complement even though they do not necessarily need all the
-    plug-ins you had in the workspace.</li>
-</ol>
-<p CLASS="BodyText" align="left">The obvious conclusion is that if all the
-plug-ins were in the workspace, these shortcomings would all be addressed.
-Search would work as expected, source code would be visible for all the classes
-and class path would be uniform i.e. would contain only project references.
-However, always adding the entire product from a shared repository in source
-form is prohibitively slow both for downloading and compilation. For this
-reason, a notion of <b>binary projects</b> is introduced.</p>
-
-<p CLASS="BodyText" align="left">Binary projects are regular plug-in projects
-that do not contain source code. As such, they are bypassed during compilation
-and are only used to address the shortcomings listed above. External plug-ins
-are brought into the workspace using the PDE import wizard.</p>
-
-<p CLASS="BodyText" align="left">Before importing binary projects, it is
-important to configure PDE for binary self-hosting. Since we will not use
-external plug-ins to resolved references, we should disable them in Preferences.
-After that, Import wizard is invoked using <b>File-&gt;Import...-&gt;External
-Plug-ins and Fragments</b>.&nbsp;</p>
-
-<p CLASS="BodyText" align="center">
-<img border="0" src="images/binary-import1.gif" alt="Import External Plug-ins wizard - first page" width="490" height="556"></p>
-
-<p CLASS="BodyText" align="left">Most of the time, you will accept default 
-values in the first page. By default, you are importing external plug-ins of the 
-target run-time workbench as set in the Preferences. The first page of the 
-import wizard allows you to change the location of the run-time workbench by 
-providing a shortcut to the <b>Plug-in Development-&gt;Target Platform</b> page 
-through the <b>Change...</b> button.</p>
-
-<p CLASS="BodyText" align="left">Importing binary projects can cause your 
-workspace to be large in size, and the import operation itself can be 
-time-consuming depending on the number and content of the plug-ins being 
-imported.&nbsp; To get around these problems, PDE has introduced the notion of
-<b>importing with linking</b>.&nbsp; If you uncheck the 'Copy plug-in contents 
-into the workspace location' checkbox, PDE will not import the contents of the 
-plug-ins you selected into the workspace.&nbsp; What it will do instead is 
-create projects for these plug-ins in your workspace, and create a linked 
-resource for every file that was to be imported.&nbsp; These linked resources 
-point to the actual files in the install and will show up in your workspace as 
-if they were explicitly imported.&nbsp; You will able to browse them, but you 
-won't be able to modify them, as modifying these files will result in the 
-modification of the original files.&nbsp; Deleting a binary project will of 
-course delete all the linked files contained in it.</p>
-
-<p CLASS="BodyText" align="left">&nbsp;</p>
-
-<p CLASS="BodyText" align="left">Automatically attaching source code to a JAR 
-file and the extracting source archives option require PDE to find the zip file 
-containing the source.&nbsp; PDE has two requirements for this task:</p>
-
-<p CLASS="BodyText" align="left">1. The zip file must be named properly.&nbsp; f 
-the library name is xyz.jar, the zip file containing source for that library 
-must be named xyzsrc.jar.</p>
-
-<p CLASS="BodyText" align="left">2. The zip file must either be alongside the 
-JAR file or in one the declared source code locations. In Eclipse, source code 
-is packaged in separate plug-ins, and source code locations are declared using 
-the 'org.eclipse.pde.core.source' extension point.&nbsp; PDE automatically goes 
-through all the extensions in your target platform, computes all the source code 
-locations found in that platform, and adds them to the <b>Plug-in 
-Development-&gt;Source Code Locations</b> preference page.</p>
-
-<p CLASS="BodyText" align="left">If you import from a location <b>other than</b> 
-the target platform as specified on the <b>Plug-in Development-&gt;Target Platform</b> 
-page, and your source code is packaged using the 'org.eclipse.pde.core.source' 
-extension points, make sure to add those source code locations <b>manually</b> 
-to the <b>Plug-in Development-&gt;Source Code Locations </b>page, so that PDE can 
-successfully locate the source.</p>
-
-<p CLASS="BodyText" align="left">Library paths sometimes contain variables, e.g 
-$ws$.&nbsp; PDE substitutes values set on the <b>Plug-in Development-&gt;Target 
-Environment</b> page to substitute these variables.&nbsp; If these values are 
-incompatible with the platform you're importing from, the first page of the 
-import wizard provides a shortcut to that preference page through the <b>
-Change...</b> button which allows you to modify values on that preference page.</p>
-
-<p CLASS="BodyText" align="left">When Next is pressed, the wizard will compute
-all import candidates and make them available in a list of checkboxes. The
-actual set of plug-ins you will select depends on the way you self-host.</p>
-
-<p CLASS="BodyText" align="center">
-<img border="0" src="images/binary-import2.gif" alt="Import External Plug-ins wizard - second page" width="490" height="556"></p>
-
-<p CLASS="BodyText" align="left">If you are working on plug-ins that are not
-already present in the target platform, you will want to select all the choices
-(<b>Select All</b>). If some of the plug-ins on the list are already in the
-workspace in source form, you will want press <b>Existing Projects</b>, then <b>Invert
-Selection</b>. This will result in selecting all the plug-ins that are not in
-the workspace already.</p>
-
-<p CLASS="BodyText" align="left">When you press <b>Finish</b>, selected plug-ins
-will be imported into the workspace. PDE will also set their class path and
-associate source archives with libraries so that you can browse or debug them.</p>
-
-<p CLASS="BodyText" align="left">When there is a large number of binary projects
-in the workspace, it is hard to tell them apart from source projects. PDE
-provides two complementing ways to handle this problem. It provides for label
-decorator that adds a 'binary' icon overlay to the regular project icon to
-clearly mark the binary project. You can turn it on in Preferences under
-'Workbench-&gt;Label Decorations'. In addition, PDE contributes binary project
-filter to Java Explorer view. When engaged, it will hide binary projects and
-leave only those you are working on.</p>
-
-<p CLASS="BodyText" align="center">
-<img border="0" src="images/binary-projects.gif" alt="Binary projects with icon overlay in the Package Explorer" width="182" height="492"></p>
-
-<p CLASS="BodyText" align="left">&nbsp;</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_buildpath.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_buildpath.htm
deleted file mode 100644
index 976d5a4..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_buildpath.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Build path considerations</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h3>Build Path Computation</h3>
-
-<p>By default, PDE updates the build path of a plug-in project every time you 
-change the list of dependencies in the manifest editor. If you turn off 
-that feature on the Plug-in Development-&gt;Java Build Path Control preference 
-page, you will have to be responsible for updating the build path every time you 
-make a change to the list of dependencies.</p>
-
-<p>You are not required to use PDE's manifest editor to take advantage of PDE's 
-build path computation feature.&nbsp; You can always use the <b>Update Classpath...</b> 
-pop-up menu item available on all plugin.xml/fragment.xml files and Java plug-in 
-projects to explicitly update the build path of your plug-in.&nbsp; This will 
-cause a wizard to open:</p>
-<p align="center">
-<img border="0" src="images/classpath-update.gif" alt="&quot;Update class path&quot; wizard" width="438" height="556"></p>
-<p align="left">The checkbox list will contain all the plug-ins and fragments in 
-the workspace. Select the plug-ins/fragments whose build path you wish to update 
-and press 'Finish'.</p>
-<p> Note that when computing the build path, PDE recreates it from scratch.
-That means that you will lose any entries you have added manually to the build
-path.&nbsp; The build path is updated from scratch because PDE builds it
-recursively.&nbsp; Here's why:</p>
-<p>If a Java class is referenced by a plug-in at run time, its libraries
-will be searched first for the class, then the libraries of its required plug-ins, then the
-libraries of their required plug-ins, and so on. In order to recreate a similar
-lookup environment during design time, PDE updates the build path recursively.
-It is possible for several different plug-ins to depend on the same library. If you delete one of
-these plug-ins from your dependency list, it is not safe to remove libraries all
-the way up the chain because some of the plug-ins you still have on the list may
-be needing them. The only way to always maintain a valid build path is to create it
-from scratch.</p>
-<p>In order to provide for better sharing of projects on authoring servers, PDE
-adds all external libraries to the build path relative to the run-time platform location
-represented by 1 or more Java classpath variables whose suffix is <b>ECLIPSE_HOME</b>.&nbsp; This 
-way, you can have your code on the server and it will work regardless of the 
-location of your platform install. These variables are set and managed by PDE and you are not
-supposed to modify their values.</p>
-
-<h3>Classpath containers</h3>
-
-<p>Since 2.1, PDE provides an alternative way of expressing and computing the 
-classpath. Instead of explicitly creating the entries for the dependent 
-plug-ins, it introduces a level of indirection using JDT classpath container. 
-The container replaces all the dependent plug-in entries and provides for a 
-stable and predictable classpath. When using classpath container, your classpath 
-will contain source folder(s), required plug-ins container, and JRE container 
-(uses identical mechanism to provide a proxy for the real JRE entries that are 
-computed on the fly). You can share this classpath on the server without worry 
-that it will cause problems on other developers' machines and/or operating 
-systems.</p>
-
-<p>In order to use classpath containers, all that is needed is to open 
-Preferences&gt;Plug-in Development&gt;Java build path control and select 'Use 
-classpath containers...' checkbox. You will need to update classpaths of your 
-project in order to see the changes applied. Once you switch to classpath 
-containers, you can use either external plug-ins or import binary plug-in 
-projects, or a mix of both. Whatever you do, classpath container will keep up 
-with the changes and adapt.</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_choosing.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_choosing.htm
deleted file mode 100644
index f4af71a..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_choosing.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fragments</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Choosing a self-hosting style</h1>
-<p>Simple (standalone) and binary project self-hosting each have advantages and
-disadvantages. The style to choose largely depends on the usage scenario. In
-general, the following recommendations apply:</p>
-<ul>
-  <li>If you are developing plug-ins using a standalone installation, do not
-    share your work with others using a repository, compile against a large
-    product - use simple self-hosting and external plug-ins.</li>
-  <li>If you are part of a team and co-develop plug-ins with other members, the
-    plug-ins are in a shared repository like CVS, must have a stable class path,
-    must perform product-wide searches - use binary project self-hosting.</li>
-</ul>
-<p>The choice of self-hosting style is not something you must do upfront. When
-searching for plug-in references, PDE looks in the workspace first, then tries
-enabled external plug-ins. If binary projects are present, it will use them.
-Otherwise, it will use external libraries qualified with ECLIPSE_HOME variable.
-When switching between styles, all you need to do is re-compute class path of
-the plug-ins under development.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-<p> </p>
-
-<p>&nbsp;</p>
-
-<p align="left">&nbsp;</p>
-<p align="left">&nbsp;</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_simple.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_simple.htm
deleted file mode 100644
index a9a2559..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_selfhosting_simple.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fragments</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Simple self-hosting</h1>
-<p CLASS="BodyText">Most of the examples in at the beginning of this guide use
-simple self-hosting. Resolving plug-in references using external plug-ins is
-simple, straightforward and fast. PDE discovers plug-ins and fragments in the
-target platform. Users can browse them, use them for references, extensions,
-extension points etc.</p>
-
-<p CLASS="BodyText">If simple self-hosting is used, external plug-ins are not
-part of the workspace and cannot be browsed in the Navigator or Package
-Explorer. For that reason, PDE provides a view that fills the gap.&nbsp;</p>
-
-<p CLASS="BodyText" align="center">
-<img border="0" src="images/plugins-view.gif" alt="PDE Plug-ins view" width="237" height="366"></p>
-
-<p CLASS="BodyText" align="left">The role of the Plug-ins view is to
-consistently show the plug-ins that will be passed to the run-time workbench
-when running or debugging. Plug-ins that are in the workspace are simply shown
-using project icons and no further browsing is possible (the intention was not
-to duplicate support available in Package Explorer and Navigator). However,
-external plug-ins have full hierarchy and their content can be browsed, editors
-can be opened on files (in read-only mode), files and folders can be copied into
-the clipboard and drag-and-drop can be used between the view and other
-compatible views. This way, Plug-ins becomes natural extension to Package
-Explorer.</p>
-
-<p CLASS="BodyText" align="left">When a workspace plug-in has a dependency on an
-external plug-in, its class path is computed by PDE by adding external JARs
-qualified using ECLIPSE_HOME variable. This variable is managed by PDE and
-points to the root of the target platform's install tree.</p>
-
-<p CLASS="BodyText" align="left">&nbsp;</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_setup.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_setup.htm
deleted file mode 100644
index 2fbd61f..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_setup.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting up PDE</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Setting up the workbench</h1>
-<p>To set up the workbench for PDE, we start by assuming that you are using the
-default workbench perspective.&nbsp;PDE offers an alternative
-perspective that arranges the views differently and defines
-placeholders for other views you will likely need (Package Explorer, Hierarchy,
-Plug-ins). To change the perspective, use <b>Window-&gt;Open Perspective-&gt;Other...
-</b> and
-choose <b>Plug-in Development</b> from the offered list.</p>
-<p align="center">
-<img border="0" src="images/pdeperspective.gif" alt="PDE perspective" width="599" height="516"></p>
-<p>In addition to the new perspective, PDE supplies three new views.</p>
-<h2>Error Log</h2>
-<p>The <b>Error Log</b>  view will capture internal errors thrown by the platform or your code.&nbsp;
-This is useful at run-time, since you are likely to cause exceptions during
-development.&nbsp; As errors are triggered, they will be added to
-the log view and you can examine details by double-clicking on them.&nbsp; You can
-also clear the view when you are done with the errors.&nbsp; The same information is stored
-in the <b> .metadata</b> location of your workspace in the
-<b> .log</b> file, but the Error
-Log is much more convenient. Note that you can always restore the content of the
-view by reloading the .log file. Entries are sorted in the reverse chronological
-order (latest first) and you can bring up the Properties dialog to see entry
-details.</p>
-<p>Some errors may be hierarchical i.e. there can be a general entry for a
-complex problem and a number of child entries listing individual problems in
-details.</p>
-<p align="center">
-<img border="0" src="images/errorLog.gif" alt="Error Log view" width="573" height="131"></p>
-<h2>Plug-in Registry</h2>
-<p>The<b> Plug-in Registry </b>view shows you a read-only view of the plug-in registry of the
-instance in which it is running. This view can be useful in the run-time
-workbench instance to see whether
-your plug-in has been started and what plug-in artifacts (extensions, extension
-points, libraries, etc.) are recognized by the platform. Detailed properties of
-the selected objects in the Registry view are shown in the Properties view.</p>
-<p>The Registry is not shown by default in the PDE perspective.&nbsp; To view
-the registry, choose <b>Window-&gt;Show View-&gt;Other... </b>and choose
-&quot;Plug-in Registry&quot; from the &quot;PDE Runtime&quot; category in the
-Show View dialog. Remember, do it in the instance you launched for testing, not
-in the instance you use for development.</p>
-<p align="center">
-<img border="0" src="images/registry.gif"  alt="Plug-in Registry view" width="192" height="307"></p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_site_building.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_site_building.htm
deleted file mode 100644
index 1dc44e0..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_site_building.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Building using update site editor</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Building plug-ins, fragments and features using update site editor</h2>
-<p>The update site editor uses the same concepts seen in the other PDE editors. 
-However, it is different from these editors in that it has an additional page 
-that controls how plug-ins, fragments and features in other projects within the 
-workspace are build and placed in the update site project's folders.</p>
-<p>Update site editor has a special page call Build:</p>
-<p align="center">
-<img border="0" src="images/site-build.gif" alt="Feature manifest editor - Overview page" width="565" height="385"></p>
-<p align="left">The assumption is that there are features in the workspace that 
-can be built to create feature and plug-in archives as required by the Eclipse 
-update manager. This page maintains the list of these projects that need to be 
-built and also provides buttons to initiate the build.</p>
-<p align="left">Update site build setup starts by adding the feature projects 
-that will be built into this site. This is accomplished by using the Add... 
-button. A wizard will be opened with the choice of existing feature projects. 
-Since the update site project can be created outside the particular workspace 
-(and shared among several workspace), some feature entries in this list may have 
-'shaded' icons. This indicates that a particular feature (id + version) cannot 
-be currently located in the workspace. This is fine, because these features will 
-simply be skipped during the build. This capability allows us to build and 
-maintain portion of the update site in each workspace.</p>
-<p align="left">When features are added to the list, they will appear with a 
-checkbox. Each feature in the list will be subject to build, but only checked 
-features will also appear in the site map. This is a very important distinction: 
-features can include other features, and all need to be built and present in the 
-update site, but typically only roots are listed in the map file. When a feature 
-in this list is checked, an entry will be automatically added to the map file 
-(you can see the entry show up in the Outline view and also in the Features 
-page).</p>
-<p align="left">Build Control section contains two build buttons: <b>Build</b> 
-and <b>Rebuild All</b>. The former will build features that changed since the 
-last time we pressed the button, while the later will always rebuild all 
-features. If 'Scrub output folders before the build' checkbox is selected, this 
-button will also delete all the archives from the destination folders prior to 
-creating the new ones. Be careful with this checkbox when sharing the update 
-site between multiple workspace, because you don't want to loose archives build 
-by another workspace.</p>
-<p align="left">In addition to these two buttons, it is possible to rebuild a 
-single feature by selecting it and selecting the appropriate item from the 
-pop-up menu.</p>
-<p align="left">When features are built, the build does not stop at the features 
-themselves. It will also build all the plug-ins and fragments referenced by the 
-features. Built archives (JARs) will be placed in the provided destination 
-folders (features in <b>features</b>, plug-ins/fragments in <b>plugins</b>, 
-respectively).</p>
-<p align="left">During the build, a progress monitor dialog will open, 
-displaying build progress. In case of the failure, you can follow the <b>Build 
-Log</b> hyperlink to see what happened.</p>
-<p align="left">If you ever wander where all this information shown in the Build 
-page is saved, you can see it in <b>.sitebuild</b> folder in the update site 
-project. This is also the place where the build log file is placed. If you are 
-in Package Explorer view, you may need to turn off the &quot;.*&quot; filter to see the 
-folder.</p>
-<p align="left">&nbsp;</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_site_editor.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_site_editor.htm
deleted file mode 100644
index d8f6d8b..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_site_editor.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Update site editor</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Update site editor</h2>
-<p>The update site editor uses the same concepts seen in the other PDE editors. 
-However, it is different from these editors in that it has an additional page 
-that controls how plug-ins, fragments and features in other projects within the 
-workspace are build and placed in the update site project's folders. </p>
-<p>Update site editor opens on site.xml file that is created by the update site 
-creation wizard. This file represents the site map and defines what will be made 
-available to Eclipse update manager when connecting to the update site.</p>
-<p>The editor has three pages that deal strictly with the file content:
-(Description, Features and Archives) and a Source page that shows you raw XML code of the
-site map.</p>
-<p align="center">
-<img border="0" src="images/site-description.gif" alt="Feature manifest editor - Overview page" width="565" height="385"></p>
-<p align="left">URL provided in the Description page will be used to by the 
-update manager to provide for a hyperlink to the page where information about 
-the site is located. This page also allows you to define categories that will be 
-used to classify features listed in the site map. Categories can be added by 
-pressing the <b>Add...</b> button. An existing category definition can be 
-modified by pressing <b>Edit...</b> or by double-clicking on the category entry.</p>
-<p align="left">Features page is dedicated to entries that reference feature 
-archives located on the site:</p>
-<p align="center">
-<img border="0" src="images/site-features.gif" alt="Feature manifest editor - Information page" width="565" height="385"></p>
-<p align="left">When feature entry (reference) is added in the section on the 
-left, its properties can be edited in <b>Feature Properties</b> on the right. 
-Property 'URL' is relative to the location of the map file, so it normally 
-starts with 'features/' segments. For an update site to be valid, each feature 
-reference must point to an existing feature archive in the location defined by 
-the URL property. Although it is possible to add feature entries by pressing the
-<b>Add...</b> button, it is better to do so indirectly in the Build page.</p>
-<p align="left">The existing categories are shown in the Categories section. To 
-classify a feature entry, select it and check as many categories as appropriate. 
-If no suitable category is currently shown in the list, you can add a new one by 
-pressing the <b>Add...</b> button (this action as the same effect as in the 
-Description page).</p>
-<p align="left">Default location of the storage archives can be changed in 
-Archives page (see Platform Plug-in Developer Guide for site map reference 
-information):</p>
-<p align="center">
-<img border="0" src="images/site-archives.gif" alt="Feature manifest editor - Content page" width="565" height="385"></p>
-<p align="center">
-&nbsp;</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_site_previewing.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_site_previewing.htm
deleted file mode 100644
index e81ac9e..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_site_previewing.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Previewing update site</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Previewing an update site</h2>
-<p>Update site created by PDE wizard can be previewed in-place using update 
-manager. Of course, the archives that update manager expects must be built first 
-and the update map file must be set up correctly</p>
-<h3>Example: building and previewing the sample update site</h3>
-<p>Using the update site created by the 'New' wizard, edit the site map file 
-using the PDE update site editor as follows:</p>
-<ol>
-  <li>In the Description page, define a category as follows: 'sample' for name, 
-  'Sample Category' for label and some free text for the description.</li>
-  <li>In the Build page, press the Add... button in the <b>Features To Build</b> 
-  section and check the only feature listed in the wizard (com.example.feature). 
-  Press Finish.</li>
-  <li>Once the feature entry appears in the list, check the checkbox.</li>
-  <li>In the Features page, verify that there is an entry named <b>
-  features/com.example.feature_1.2.2.jar. </b>Select it and when 'Sample 
-  Category' appears in the list of categories, check it.</li>
-  <li>Save the editor.</li>
-  <li>Switch to the Build page again and press the <b>Rebuild All</b> button. 
-  There should be archives appearing in the <b>features</b> and <b>plugins</b> 
-  folders at the end of the build.</li>
-  <li>Select Help&gt;Software Updates&gt;Update Manager from the main menu.</li>
-  <li>Drill down from My Computer in the Updates view to the location of your 
-  workspace. Your update project should have a distinct update site icon. When 
-  you expand it, you should see 'Sample Category' object. When you expand the 
-  category, you should see 'Sample Feature'.</li>
-</ol>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_site_setup.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_site_setup.htm
deleted file mode 100644
index 4fc1422..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_site_setup.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting up an update site project</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Setting up an update site project</h2>
-<p>Similar to plug-ins and fragments, PDE treats update sites as projects. PDE attaches a special &quot;update 
-site&quot; capability to these projects to be
-able to run nature-specific builders. The project must have an update site map (site.xml).</p>
-<p>PDE provides a wizard for setting up an update site project. Typically, you use
-this wizard to set up an update site once you are done developing plug-ins,
-fragments and features. However, you can create the site project at any stage of development.</p>
-<p>By default, update site project is created local to your workspace. Since you 
-may want to host multiple versions of your plug-ins and features in this site, 
-you may want to keep the update site outside (it its own location). In that 
-case, change the location of the update site project during creation. If the 
-location you specified already contains the files the wizard is about to create, 
-it will keep them instead. This will allow you to create this project in more 
-than one workspace and point at the same shared location.</p>
-<h3>Example: Setting up an update site project</h3>
-<p>Assuming that you have followed the previous examples, you should have &quot;XYZ
-Plug-in&quot; and &quot;German Fragment&quot; in your workspace already, as well 
-as &quot;Sample Feature&quot; feature project.&nbsp; We will
-create an update site that can serve &quot;Sample Feature&quot; to the update manager.</p>
-<ol>
-  <li>Bring up the update site wizard (<b>New-&gt;Project-&gt;Plug-in
-    Development-&gt;Update Site
-    Project</b>)</li>
-  <li>Set the name of the project to &quot;Update Site&quot;. Press <b>Finish</b>.</li>
-</ol>
-<p>You should now have the &quot;Update Site&quot; project in your workspace.&nbsp;
-The project should have
-&quot;site.xml&quot; file and a site map editor will open for editing. You 
-should also have two folders in the project: <b>plugins</b> and <b>features</b>.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/guide/pde_sites.htm b/bundles/org.eclipse.pde.doc.user/guide/pde_sites.htm
deleted file mode 100644
index 4689063..0000000
--- a/bundles/org.eclipse.pde.doc.user/guide/pde_sites.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with update sites</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h2>Working with update sites</h2>
-<p>Eclipse is capable of installing or updating features placed on the remote 
-servers. The features and plug-ins must be packaged in JARs and have a manifest 
-file that links them together. These files collectively form an Eclipse <b>
-update site</b>.</p>
-<p>PDE provides support for building update sites directly in the workspace. 
-Normally, update sites are placed on remote HTTP servers, but sites in the local 
-file systems are also valid and can be viewed in update manager. PDE uses this 
-property to provide for building and previewing update sites directly in the 
-workspace.</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/hglegal.htm b/bundles/org.eclipse.pde.doc.user/hglegal.htm
deleted file mode 100644
index 1d8e94e..0000000
--- a/bundles/org.eclipse.pde.doc.user/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/hglegal2002.htm b/bundles/org.eclipse.pde.doc.user/hglegal2002.htm
deleted file mode 100644
index b8c411f..0000000
--- a/bundles/org.eclipse.pde.doc.user/hglegal2002.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. and others 2000, 2002. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/hglegal2003.htm b/bundles/org.eclipse.pde.doc.user/hglegal2003.htm
deleted file mode 100644
index 47c8540..0000000
--- a/bundles/org.eclipse.pde.doc.user/hglegal2003.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/images/ngibmcpy2003.gif b/bundles/org.eclipse.pde.doc.user/images/ngibmcpy2003.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.pde.doc.user/images/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/ngibmcpy.gif b/bundles/org.eclipse.pde.doc.user/ngibmcpy.gif
deleted file mode 100644
index 360f8e9..0000000
--- a/bundles/org.eclipse.pde.doc.user/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/ngibmcpy2002.gif b/bundles/org.eclipse.pde.doc.user/ngibmcpy2002.gif
deleted file mode 100644
index 61cef48..0000000
--- a/bundles/org.eclipse.pde.doc.user/ngibmcpy2002.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/ngibmcpy2003.gif b/bundles/org.eclipse.pde.doc.user/ngibmcpy2003.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.pde.doc.user/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/plugin.properties b/bundles/org.eclipse.pde.doc.user/plugin.properties
deleted file mode 100644
index 2ee86b7..0000000
--- a/bundles/org.eclipse.pde.doc.user/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Eclipse Plug-in Development User Guide
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.pde.doc.user/plugin.xml b/bundles/org.eclipse.pde.doc.user/plugin.xml
deleted file mode 100644
index 1f59347..0000000
--- a/bundles/org.eclipse.pde.doc.user/plugin.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.pde.doc.user"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName">
-
-   <runtime>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.help"/>
-   </requires>
-
-
-<!-- ============================================================================= -->
-<!-- Define primary TOC                                                            -->
-<!-- ============================================================================= -->
-   <extension
-         point="org.eclipse.help.toc">
-      <toc
-            file="toc.xml"
-            primary="true">
-      </toc>
-   </extension>
-   <extension
-         point="org.eclipse.help.contexts">
-      <contexts
-            file="contexts_PDE.xml">
-      </contexts>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.pde.doc.user/tips/images/package-prefix.gif b/bundles/org.eclipse.pde.doc.user/tips/images/package-prefix.gif
deleted file mode 100644
index 0f9d841..0000000
--- a/bundles/org.eclipse.pde.doc.user/tips/images/package-prefix.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/tips/pde_tips.htm b/bundles/org.eclipse.pde.doc.user/tips/pde_tips.htm
deleted file mode 100644
index 6e1fe09..0000000
--- a/bundles/org.eclipse.pde.doc.user/tips/pde_tips.htm
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>PDE Tips and Tricks</title>
-</head>
-
-<body>
-
-<h2>Tips and Tricks</h2>
-
-<p>&nbsp;</p>
-<table border="1" cellpadding="10" cellspacing="0" width="600" style="border-collapse: collapse" bordercolor="#111111">
-  <tr>
-    <td valign="top" align="right" width="20%"><b>Importing with linking</b></td>
-    <td valign="top" align="left" width="80%">Importing external plug-ins and 
-    fragments can be time consuming and may result in large workspaces, 
-    depending on the content of the plug-ins being imported.&nbsp; Therefore, 
-    the 'Import External Plug-ins and Fragments' wizard gives you the option to 
-    import with linking.&nbsp; This means that the import operation will not 
-    copy the resources being imported into your workspace.&nbsp; It will simply 
-    create links to the files being imported.&nbsp; You will be able to browse 
-    these linked resources, as if they had been copied into your workspace.&nbsp; 
-    However, they are physically not there on your file system, so you will not 
-    be able to modify them.&nbsp; Beware of operations that depend on files 
-    being physically in your workspace, as they will not work on linked 
-    resources.</td>
-  </tr>
-  <tr>
-    <td valign="top" align="right" width="20%"><b>Exporting plug-ins, fragments 
-    and features</b></td>
-    <td valign="top" align="left" width="80%">You no longer need to build 
-    plug-ins, fragments, and features manually in your workspace and pollute 
-    your workspace with build by-products.&nbsp; As of 2.1, using PDE's export 
-    wizards, you can cleanly build and export plug-ins, fragments, and features 
-    to a destination external to the workspace.&nbsp; You will be shielded from 
-    the internal process of building, such as creating Ant scripts, running 
-    targets, cleaning up, etc.</td>
-  </tr>
-  <tr>
-    <td valign="top" align="right" width="20%"><b>More robust build paths</b></td>
-    <td valign="top" align="left" width="80%">If you have found that sharing .classpath 
-    files among team members is very difficult, as every developer has a 
-    different workspace, then PDE's classpath container option is the answer.&nbsp; 
-    Go to the <b>Plug-in Development-&gt;Java Build Path Control</b>, and check the 
-    'use classpath containers' option.&nbsp; You will need to update build paths 
-    of your project in order to see the changes applied. Once you switch to 
-    classpath containers, you can use either external plug-ins or import binary 
-    plug-in projects, or a mix of both. Whatever you do, classpath container 
-    will keep up with the changes and adapt.</td>
-  </tr>
-  <tr>
-    <td valign="top" align="right" width="20%"><b>Support for feature-based self-hosting</b></td>
-    <td valign="top" align="left" width="80%">The current method of self-hosting in Eclipse
-      is plug-in-based. PDE launches a second run-time workbench instance by
-      passing an array of plug-ins that it should load. A regular Eclipse
-      product is feature-based: during startup, it checks all the features that
-      should be active, computes plug-ins that belong to those features, and
-      passes the result for loading.
-      <p>This difference in behavior makes it complicated to self-host in
-      scenarios where a full startup that involves features is required. PDE now
-      supports this scenario if care is taken with the setup:</p>
-      <ol>
-        <li>The workspace needs to be &lt;work-area&gt;/plugins.</li>
-        <li>Features must be imported into the workspace using the new 'Feature
-          Import' wizard (they will be created in &lt;work-area&gt;/features).</li>
-        <li>All plug-ins must be in the workspace (either in source or imported
-          as binary projects).</li>
-        <li>When launching, Run-time Workbench launcher must be configured to
-          use features (in Plug-ins and Fragments tab).</li>
-      </ol>
-      <p>If all these conditions are met, the runtime Eclipse instance will be
-      launched in a way that is the closest possible approximation of a normal
-      Eclipse startup. This facilitates testing About dialogs and other aspects
-      that may depend on the set of installed features.</td>
-  </tr>
-  <tr>
-    <td valign="top" align="right" width="20%"><b>Templates</b></td>
-    <td valign="top" align="left" width="80%">For a quick start, PDE provides 
-    several template plug-ins that will generate a plug-in with one or more 
-    fully-working extensions.&nbsp; In addition, if at any point, you would like 
-    to add a new extension from the template list (without having to generate a 
-    plug-in), you could access these extension templates directly from the 
-    manifest editor.&nbsp; From the 'Extensions' page of the editor, click 
-    'Add...'.&nbsp; In the wizard that comes up, select Extension Templates in 
-    the left pane and choose the template of choice in the right pane.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Plug-in dependency extent</b></td>
-    <td width="80%" valign="top" align="left">If you have ever looked at the 
-    list of plug-ins that your plug-in depends on and wondered why your plug-in 
-    needs a particular plug-in X, now you can easily find out why.&nbsp; The <b>Compute Dependency Extent </b>operation
-      found on the context menu in several contexts (including manifest file
-      Dependencies page and Dependencies view) performs a combined Java and
-      plug-in search to find all Java types and extension points provided by 
-    plug-in X which are referenced
-      by your plug-in. The results will be displayed in the Search view.&nbsp; When a type is selected in the Search results view, the <b>References
-      in <i>MyPlugIn</i></b> action in the context menu searches for the places
-      in the plug-in where the selected type is referenced.&nbsp;<p>If the 
-    search returns 0 results, you should definitely remove plug-in X from your 
-    list of dependencies, as it is not being used at all, and it would just slow 
-    class loading.</p>
-    <p>The <b>Compute Dependency Extent</b> is also useful to check if you are 
-    using internal (non-API) classes from plug-in X, which might not be 
-    desirable.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Finding Unused Dependencies</b></td>
-    <td width="80%" valign="top" align="left">Minimizing a plug-in's number of 
-    dependencies is certain to improve performance.&nbsp; As your plug-in 
-    evolves, its list of dependencies might become stale, as it might be still 
-    containing references to plug-ins that it no longer needs.&nbsp; A quick way 
-    to check that all dependencies listed by your plug-in are actually used by 
-    the plug-in is to run the 'Find Unused Dependencies' utility, which is 
-    available through the context menu of the 'Dependencies' page of PDE's 
-    manifest editor.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Plug-in searches</b></td>
-    <td width="80%" valign="top" align="left">If you would like to find a 
-    plug-in, fragment, extension, or extension point in your workspace or in an 
-    external plug-in, you could use the new Plug-in Search tab on the Search 
-    dialog.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Searching other plug-ins</b></td>
-    <td width="80%" valign="top" align="left">Java Search is limited to projects 
-    in your workspace and external jars that these projects reference.&nbsp; If 
-    you would like to add more libraries from external plug-ins into the search: 
-    open the Plug-ins View, select a plug-in and choose <b>Add to Java Search</b> 
-    from the context menu. This is handy for remaining
-      aware of other plug-ins that depend on ones you're working on.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Plug-in dependencies view</b></td>
-    <td width="80%" valign="top" align="left">If you would like to view all the 
-    plug-ins required before your plug-in is activated, use the Plug-in 
-    Dependencies view.&nbsp; This view can be opened by
-      selecting a plug-in manifest file (<code>plugin.xml</code>) and choosing <b>Open
-      Dependencies</b> from the context menu. It allows you to browse the
-      plug-ins it requires, the ones they require, and so on.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Log View</b></td>
-    <td width="80%" valign="top" align="left">You don't have to search for the 
-    .log file on your file system anymore.&nbsp; The Log view is a more 
-    convenient way to view the contents of the log.<p>
-    <img src="../guide/images/errorLog.gif" width=573 height=131 border="0" alt="Log View"></td>
-  </tr>
-</table>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.doc.user/toc.xml b/bundles/org.eclipse.pde.doc.user/toc.xml
deleted file mode 100644
index 48af784..0000000
--- a/bundles/org.eclipse.pde.doc.user/toc.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the main guide                                              -->
-<!-- ============================================================================= -->
-<toc label="PDE Guide">
-	<topic label="Introduction to PDE" href="guide/pde.htm"/>
-	<topic label="Concepts" href="guide/pde_concepts.htm"/>
-	<topic label="Configuring PDE" href="guide/pde_configuring.htm"/>
-	<topic label="Setting up the workbench" href="guide/pde_setup.htm"/>
-	<topic label="Creating a plug-in" href="guide/pde_creating.htm"/>
-	<topic label="Plug-in manifest editor" href="guide/pde_manifest.htm">
-		<topic label="Welcome page" href="guide/pde_manifest_welcome.htm" />
-		<topic label="Overview page" href="guide/pde_manifest_overview.htm" />
-		<topic label="Dependencies page" href="guide/pde_manifest_dependencies.htm"/>
-		<topic label="Runtime page" href="guide/pde_manifest_runtime.htm" />
-		<topic label="Extensions page" href="guide/pde_manifest_extensions.htm" />
-		<topic label="Extension points page" href="guide/pde_manifest_extensionpoints.htm" />
-		<topic label="Source page" href="guide/pde_manifest_source.htm" />
-	</topic>
-	<topic label="Running a plug-in" href="guide/pde_running.htm">
-		<topic label="Choosing plug-ins to run" href="guide/pde_running_plugins.htm"/>
-		<topic label="Running with tracing" href="guide/pde_running_tracing.htm"/>
-		<topic label="Running under debug" href="guide/pde_running_debugging.htm"/>
-	</topic>
-	<topic label="Extension point schema" href="guide/pde_schema.htm">
-		<topic label="Extension point schema editor" href="guide/pde_schema_editor.htm"/>
-		<topic label="Using extension point schema" href="guide/pde_schema_using.htm"/>
-	</topic>
-	<topic label="Converting existing projects" href="guide/pde_convert.htm"/>
-	<topic label="Fragments" href="guide/pde_fragment.htm">
-		<topic label="Fragment example" href="guide/pde_fragment_example.htm"/>
-	</topic>
-	<topic label="Self-hosting" href="guide/pde_selfhosting.htm">
-	 	<topic label="Simple self-hosting" href="guide/pde_selfhosting_simple.htm"/>
-	 	<topic label="Binary project self-hosting" href="guide/pde_selfhosting_binary.htm"/>
-	 	<topic label="Choosing a self-hosting style" href="guide/pde_selfhosting_choosing.htm"/>
-		<topic label="Build path computation" href="guide/pde_selfhosting_buildpath.htm" />
-	</topic>
-	<topic label="Deploying a plug-in" href="guide/pde_deploy.htm">
-		<topic label="Features" href="guide/pde_features.htm"/>
-		<topic label="Setting up a feature project" href="guide/pde_feature_setup.htm"/>
-		<topic label="Feature manifest editor" href="guide/pde_feature_manifest.htm"/>
-		<topic label="Synchronizing versions" href="guide/pde_feature_synchronizing.htm"/>
-		<topic label="Deploying a feature" href="guide/pde_feature_generating.htm">
-			<topic label="Build configuration" href="guide/pde_feature_generating_build.htm"/>
-			<topic label="Generating Ant scripts from PDE" href="guide/pde_feature_generating_ant.htm"/>
-			<topic label="Generating Ant scripts from scripts" href="guide/pde_feature_generating_antcommandline.htm"/>
-			<topic label="Creating the JARs" href="guide/pde_feature_generating_jars.htm"/>
-<!-- Should not talk about publishing here
-			<topic label="Publishing a JAR" href="guide/pde_feature_generating_publish.htm"/>
--->
-		</topic>
-		<topic label="Update Sites" href="guide/pde_sites.htm">
-		   <topic label="Setting up an update site project" href="guide/pde_site_setup.htm"/>
-		   <topic label="Update site editor" href="guide/pde_site_editor.htm"/>
-		   <topic label="Building plug-ins and features using update site editor" href="guide/pde_site_building.htm"/>
-		   <topic label="Previewing update sites" href="guide/pde_site_previewing.htm"/>
-		</topic>   
-	</topic>
-	<topic label="Tips and tricks" href="tips/pde_tips.htm"/>
-	<topic label="What's new" href="whatsNew/pde_whatsnew.htm"/>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/required-plug-in-entries.gif b/bundles/org.eclipse.pde.doc.user/whatsNew/images/required-plug-in-entries.gif
deleted file mode 100644
index 78dcf26..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/required-plug-in-entries.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/site-builder-2.gif b/bundles/org.eclipse.pde.doc.user/whatsNew/images/site-builder-2.gif
deleted file mode 100644
index 04d297a..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/site-builder-2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/site-builder.gif b/bundles/org.eclipse.pde.doc.user/whatsNew/images/site-builder.gif
deleted file mode 100644
index 008863f..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/site-builder.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.htm b/bundles/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.htm
deleted file mode 100644
index 2af4bb7..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.htm
+++ /dev/null
@@ -1,136 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>PDE What's New for 2.1</title>
-</head>
-
-<body>
-
-<h2>What's New in 2.1</h2>
-
-<p>Here are some of the more interesting or significant changes made to PDE for 
-the 2.1 release of Eclipse since 2.0:</p>
-<table border="1" cellpadding="10" cellspacing="0" width="600" style="border-collapse: collapse" bordercolor="#111111">
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Improved way to reference
-      dependent plug-ins</b></td>
-    <td width="80%" align="left" valign="top">The new <b>Plug-in Development /
-      Java Build Path Control</b> preference controls whether new plug-in
-      development projects will use a dynamically computed build classpath entry
-      rather than an explicit list of required plug-in JAR libraries (the
-      default). Turning this preference on makes the Java project build classpath much less fragile, and visually groups together libraries for
-      required plug-ins. It also makes the classpath highly dynamic in that it 
-    instantly reacts to the changes in the self-hosting style (external plug-ins 
-    versus imported binary projects).<p align="center">
-    <img border="0" src="images/required-plug-in-entries.gif" alt="Project using Required plug-in entries container" width="189" height="159"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Exporting deployable plug-ins
-      and features</b></td>
-    <td width="80%" align="left" valign="top">There are new <b>File &gt; Export</b>
-      wizards for exporting plug-in and features. Choose File-&gt;Export-&gt;Deployable 
-    plug-ins and fragments to export selected plug-ins to a ZIP file that can be 
-    easily unzipped into any Eclipse-based product. Similarly, choose <b>File &gt; Export
-      &gt; Deployable features</b> to export selected features and their
-      plug-ins.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Importing with linking</b></td>
-    <td width="80%" align="left" valign="top">Importing external plug-ins and 
-    fragments can be much faster and would not greatly increase the size of your 
-    workspace if you import with linking.&nbsp; This new option can be used by 
-    unchecking the 'copy plug-in content into your workspace area' checkbox in 
-    the 'Import External Plug-ins and Fragments' wizard.&nbsp; 'Importing with 
-    linking' means that the import operation will not copy the resources being 
-    imported into your workspace.&nbsp; It will simply create links to the files 
-    being imported.&nbsp; You will be able to browse these linked resources, as if 
-    they had been copied into your workspace.&nbsp; However, they are physically not 
-    there on your file system, so you will not be able to modify them.&nbsp; Beware 
-    of operations that depend on files being physically in your workspace, as 
-    they will not work on linked resources.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Support for creating update
-      sites</b></td>
-    <td width="80%" align="left" valign="top">PDE now supports building and
-      maintaining Update Manager update sites. Use the new project wizard <b>Plug-in
-      Development &gt; Update Site Project</b> to create a dedicated project
-      with all the relevant files including the site map (site.xml) file. The
-      site map editor creates the required entries in the map and also builds the needed feature and plug-in JARs. Once built,
-      the site is operational directly from the workspace and can be tested
-      using Update Manager (<b>Help &gt; Software Updates &gt; Update Manager</b>).
-      And with Eclipse FTP/WebDAV Support installed, you can upload everything
-      to a remote update server.<p>
-    <img border="0" src="images/site-builder-2.gif" width="463" height="600" alt="update site editor"></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>manifest file validation</b></td>
-    <td width="80%" align="left" valign="top">Manifest (plugin.xml/fragment.xml) 
-    files in plug-in projects that have a PDE nature can now be validated to 
-    flag semantic errors such as unknown extension points, illegal attributes 
-    for extensions, missing required attributes for extensions, etc.&nbsp; The 
-    list of possible problems that PDE can detect are found on the <b>Plug-ins</b> 
-    tab of the <b>Plug-in Development &gt; Compilers</b> preference page, where the 
-    level for each problem can be set to one of 'Ignore', 'Error', or 'Warning'.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Plug-in Search</b></td>
-    <td width="80%" align="left" valign="top">PDE contributes a tab to the 
-    Search dialog, where you can search for plug-ins, fragments, extension 
-    points and extensions.&nbsp; Scope of search can extend beyond the workspace 
-    to external plug-ins and fragments.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Compute Dependency Extent</b></td>
-    <td width="80%" align="left" valign="top">PDE can now easily determine the 
-    reason why your plug-in depends on plug-in X.&nbsp; Through the function 
-    'Compute Dependency Extent' found in the context menu of the 'Dependencies' 
-    page of the manifest editor, PDE will find and display all the Java types 
-    and extension points provided by plug-in X to your plug-in.&nbsp; This is a 
-    good tool to determine the extent to which you need this plug-in, and it 
-    might help you refactor your plug-ins.&nbsp; Also, it would help you check 
-    if you are using any internal (non-API) types of plug-in X, which might be 
-    undesirable.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Find Unused Dependencies</b></td>
-    <td width="80%" align="left" valign="top">This function is available through 
-    the context menu of the 'Dependencies' page of the manifest editor.&nbsp; It 
-    will find all the plug-ins listed as dependencies for your plug-in, but need 
-    to be removed because they are unused by your plug-in.&nbsp; The removal of 
-    such stale dependencies will help minimize your plug-in's list of 
-    dependencies and hence improve performance.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Dependencies View</b></td>
-    <td width="80%" align="left" valign="top">PDE now provides a Dependencies 
-    view, which can be invoked by selecting a plugin.xml/fragment.xml file and 
-    choosing 'Open dependencies' from the context menu.&nbsp; It will display a 
-    tree showing all the plug-ins needed to be activated before you plug-in is 
-    activated.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Extending Java Search Scope</b></td>
-    <td width="80%" align="left" valign="top">Java search scope is limited to 
-    workspace projects and the external libraries they reference.&nbsp; In order 
-    to add arbitrary plug-in libraries to the search scope, go to the Plug-ins 
-    view.&nbsp; Select the external projects of choice and choose 'Add to Java 
-    Search' from the context menu.</td>
-  </tr>
-</table>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.doc.user/workbench.gif b/bundles/org.eclipse.pde.doc.user/workbench.gif
deleted file mode 100644
index d4125ed..0000000
--- a/bundles/org.eclipse.pde.doc.user/workbench.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/.project b/bundles/org.eclipse.platform.doc.isv/.project
deleted file mode 100644
index de43ea3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.platform.doc.isv</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.platform.doc.isv/about.html b/bundles/org.eclipse.platform.doc.isv/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/activeHelpSample.jar b/bundles/org.eclipse.platform.doc.isv/activeHelpSample.jar
deleted file mode 100644
index e301647..0000000
--- a/bundles/org.eclipse.platform.doc.isv/activeHelpSample.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/book.css b/bundles/org.eclipse.platform.doc.isv/book.css
deleted file mode 100644
index 139eb28..0000000
--- a/bundles/org.eclipse.platform.doc.isv/book.css
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/build.properties b/bundles/org.eclipse.platform.doc.isv/build.properties
deleted file mode 100644
index 75fb4a7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# use provided build.xml
-custom=true
diff --git a/bundles/org.eclipse.platform.doc.isv/build.xml b/bundles/org.eclipse.platform.doc.isv/build.xml
deleted file mode 100644
index cf79083..0000000
--- a/bundles/org.eclipse.platform.doc.isv/build.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.platform.doc.isv" default="build.jars" basedir=".">
-
-	<target name="init">
-		<property name="plugin" value="org.eclipse.platform.doc.isv"/>
-		<property name="version.suffix" value="_3.0.0"/>
-		<property name="full.name" value="${plugin}${version.suffix}"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-		<available file="${basedir}/doc.zip" property="doc.zip.present"/>
-	</target>
-
-	<target name="build.update.jar" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<zip zipfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="destination.temp.folder" >
-		<antcall target="buildDocZip" />
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<copy todir="${destination.temp.folder}/${full.name}">
-			<fileset dir="${basedir}" includes="*.properties,*.xml,*.zip,*.html,*.htm,*.gif,*.css,activeHelpSample.jar" excludes="build.properties,build.xml,buildDoc.xml" />
-		</copy>
-	</target>
-
-	<target name="buildDocZip" depends="init" unless="doc.zip.present">
-		<ant antfile="buildDoc.xml" />
-	</target>
-
-	<target name="build.jars" depends="init" >
-	</target>
-	
-	<target name="gather.sources" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="build.sources" depends="init">
-	</target>
-
-	<target name="gather.logs" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${plugin.destination}/${full.name}.jar"/>
-		<delete file="${plugin.destination}/${full.name}.zip"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running">
-		<eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
-	</target>
-
-	<target name="zip.plugin" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="build.sources"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<antcall target="gather.sources">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<delete>
-			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
-		</delete>
-		<zip zipfile="${plugin.destination}/${full.name}.zip" basedir="${temp.folder}" filesonly="true"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/buildDoc.xml b/bundles/org.eclipse.platform.doc.isv/buildDoc.xml
deleted file mode 100644
index 84d83bb..0000000
--- a/bundles/org.eclipse.platform.doc.isv/buildDoc.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<project name="Platform Doc Isv Build" default="all"  basedir="." >
-
-<target name="all">
-	<antcall target="convertSchemaToHtml" />
-	<antcall target="examplesDocCopy" />
-	<antcall target="generateJavadoc" />
-	<antcall target="createDocZip" />	
-</target>
-
-<target name="convertSchemaToHtml" if="eclipse.running">
-	<property name="dest" value="reference/extension-points" />
-
-    <record name="platformconvert.txt" action="start"/>
-    <pde.convertSchemaToHTML manifest="../org.eclipse.ant.core/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.core.filebuffers/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.core.variables/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.compare/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.search/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.core.resources/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.core.runtime/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.help/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.help.base/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.ui/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.ui.editors/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.ui.workbench.texteditor/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.ui.ide/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.debug.core/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.debug.ui/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.team.core/plugin.xml" destination="${dest}" />
- 	<pde.convertSchemaToHTML manifest="../org.eclipse.team.ui/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.update.core/plugin.xml" destination="${dest}" />
-    <pde.convertSchemaToHTML manifest="../org.eclipse.core.expressions/plugin.xml" destination="${dest}" />
-    
-    <record name="platformconvert.txt" action="stop"/>
-</target>
-
-<target name="examplesDocCopy" >
-	<copy todir="samples">
-    	<fileset dir="..">
-    		<include name="org.eclipse.compare.examples/doc-html/"/>
-    		<include name="org.eclipse.compare.examples.xml/doc-html/"/>
-    		<include name="org.eclipse.help.examples.ex1/doc-html/"/>
-	    	<include name="org.eclipse.swt.examples/doc-html/"/>
-	    	<include name="org.eclipse.swt.examples.browser/doc-html/"/>
-	    	<include name="org.eclipse.swt.examples.controls/doc-html/"/>
-	    	<include name="org.eclipse.swt.examples.launcher/doc-html/"/>
-	        <include name="org.eclipse.swt.examples.layouts/doc-html/"/>
-	   		<include name="org.eclipse.swt.examples.ole.win32/doc-html/"/>
-	    	<include name="org.eclipse.swt.examples.paint/doc-html/"/>
-	   		<include name="org.eclipse.ui.examples.javaeditor/doc-html/"/>
-	    	<include name="org.eclipse.ui.examples.multipageeditor/doc-html/"/>
-	    	<include name="org.eclipse.ui.examples.propertysheet/doc-html/"/>
-	   		<include name="org.eclipse.ui.examples.readmetool/doc-html/"/>
-	   		<include name="org.eclipse.team.examples.filesystem/doc-html/"/>
-	    </fileset>
-	 </copy>
-</target>
-
-<target name="getJavadocPath">
-	<available file="${java.home}/../bin/javadoc.exe" property="javadoc" value="${java.home}/../bin/javadoc.exe"/>
-	<available file="${java.home}/../bin/javadoc" property="javadoc" value="${java.home}/../bin/javadoc" />
-</target>
-
-<target name="generateJavadoc" depends="getJavadocPath" if="javadoc">
-
-	<condition property="optionsFile" value="platformOptions">
-	      <os family="unix" />
-	</condition>
-    <condition property="optionsFile" value="platformOptions.txt">
-	      <os family="windows" />
-    </condition>
-
-	<replace file="${basedir}/${optionsFile}" token="@rt@" value="${bootclasspath}" />
-		
-	<!--scrub isv plugin directories of any preexisting api doc content-->
-	<delete dir="reference/api"/>
-	<mkdir dir="reference/api"/>
-
-	<exec dir="." executable="${javadoc}" output="doc.bin.log">
-		<arg line="@${basedir}/${optionsFile} -J-Xmx180m" />
-	</exec>
-	
-</target>
-
-<target name="createDocZip">
-		<zip zipfile="${basedir}/doc.zip"
-			basedir="${basedir}"
-			includes="book.css, hglegal.htm, ngibmcpy.gif, no_help_exists.htm, concepts/**, gettingStarted/**, images/**, reference/**, porting/**, tasks/**,samples/**,guide/**,questions/**"
-		/>
-</target>
-</project>
-
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/ant.htm b/bundles/org.eclipse.platform.doc.isv/guide/ant.htm
deleted file mode 100644
index 4bd0b50..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/ant.htm
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Platform Ant support
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h1>Platform Ant support</h1>
-<p>Ant is a Java-based build tool that uses XML-based configuration files to
-describe build tasks.&nbsp; The Eclipse platform allows you to run Ant buildfiles
-from your plug-in and contribute new Ant <a href="../reference/extension-points/org_eclipse_ant_core_antTasks.html">tasks</a>, 
-<a href="../reference/extension-points/org_eclipse_ant_core_antTypes.html">types</a> and
-<a href="../reference/extension-points/org_eclipse_ant_core_antProperties.html">properties</a>
-using extension points.&nbsp; The rest of this discussion assumes that you have a basic
-understanding of Ant.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY></HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/ant_contributing_task.htm b/bundles/org.eclipse.platform.doc.isv/guide/ant_contributing_task.htm
deleted file mode 100644
index a0822c7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/ant_contributing_task.htm
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Contributing tasks and types
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Contributing tasks and types</h2>
-<p>When your plug-in contributes Ant tasks and types, the tasks and types have access to all
-of the classes inside the contributing plug-in. For example, the <b>eclipse.refreshLocal</b> task 
-contributed by <b>org.eclipse.core.resources</b> plug-in is 
-a wrapper for the
-<a href="../reference/api/org/eclipse/core/resources/IResource.html#refreshLocal(int, org.eclipse.core.runtime.IProgressMonitor)">
-<b>
-IResource.refreshLocal()</b></a> method.</p>
-
-
-<p>Tasks and types contributed by plug-ins must not be placed in any of the 
-plug-in libraries. They have to be in a separate JAR. This means that the
-plug-in classes do not have access to the tasks and types provided by the 
-plug-in.&nbsp; (See 
-<a href="#jar">Why a separate JAR for tasks and types</a>?
-for more information.)</p>
-
-
-<p> The <b><a href="../reference/extension-points/org_eclipse_ant_core_antTasks.html">org.eclipse.ant.core.antTasks</a></b> extension point provides an example of how to specify
-a new task 
-in the <b>plugin.xml</b> file.</p>
-
-
-<A NAME="monitor"></A><h3>
-Progress Monitors</h3>
-<P >
-The Eclipse Ant support provides access to an <a href="../reference/api/org/eclipse/core/runtime/IProgressMonitor.html">
-<b>
-IProgressMonitor</b></a> if one is passed when invoking the AntRunner. One of the advantages of having access to a progress
-monitor is that a long-running task can check to see if the user has requested its cancellation. The progress
-monitor object is obtained from the Ant project's references.&nbsp; Note that a monitor is only made available if
-the method <a href="../reference/api/org/eclipse/ant/core/AntRunner.html#run(org.eclipse.core.runtime.IProgressMonitor)">
-<b>
-AntRunner.run(IProgressMonitor)</b></a> was called with a valid progress monitor. The following code snippet
-shows how to obtain a progress monitor from the task's project:
-</P>
-<pre ><font color="#4444CC">import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public class CoolTask extends Task {
-
-public void execute() throws BuildException {
-<b>	IProgressMonitor monitor = 
-		(IProgressMonitor) getProject().getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR);
-</b>	if (monitor == null) {
-		...
-	} else {
-		...
-	}
-}
-}
-</font></pre>
-
-
-<h3 >
-Important rules when contributing tasks and types</h3>
-
-
-<p>
-The following should work as a checklist for plug-in developers:</p>
-<ul>
-  <li>The JAR containing the tasks must not be a plug-in library (declared in 
-  &lt;library&gt;&lt;/library&gt;).</li>
-  <li>The task or type can reference any class available for the plug-in but 
-  plug-in classes must not access the tasks or types.</li>
-  <li>Native libraries should be loaded by the plug-in library classes and not tasks or types.</li>
-</ul>
-
-
-<A NAME="jar"></A>
-<h3>Why a separate JAR for tasks and types?</h3>
-<p>
-There are basically two requirements for running Ant in Eclipse that do not fit
-the plug-in model very well:
-<ul>
-  <li>Change the Ant classpath at runtime</li>
-  <li>Change the Ant version at runtime</li>
-</ul>
-<p>
-During runtime plug-in classloaders cannot have their classpaths expanded and
-plug-ins cannot change their dependencies. At the same time having separate
-JARs for the tasks and types is a good isolation from the plug-in classloading
-mechanism. Having these extra JARs declared by a plug-in permits adding the
-contributing plug-in to the Ant classpath as well.
-</p>
-
-<p>
-&nbsp;</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY></HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/ant_developing.htm b/bundles/org.eclipse.platform.doc.isv/guide/ant_developing.htm
deleted file mode 100644
index fc10a57..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/ant_developing.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Developing tasks and types
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Developing Ant tasks and types within Eclipse</h2>
-<p>The following guidelines should be followed when developing and debugging Ant 
-  tasks and types within Eclipse. These requirements stem from the fact that Ant 
-  tasks and types must be loaded by the Ant classloader, rather than a plug-in 
-  classloader, when Ant is run in the same VM as Eclipse. To avoid having the 
-  Ant tasks and types loaded by a plug-in classloader, the tasks and types need 
-  to be stored in a location that is not visible to any plug-in classloader. Also 
-  see <a href="ant_contributing_task.htm">Contributing tasks and types</a>.
-<ul>
-  <li> Contributed Ant tasks or types should be defined in their own source folder 
-    within a plug-in (i.e. separate from the source folders containing regular 
-    plug-in classes)</li>
-  <li>Each source folder containing the Ant tasks and types should have its own 
-    output location that does not overlap with the output location of the regular 
-    plug-in classes.</li>
-  <li>When testing/debugging the new Ant tasks or types, the Run-time workspace 
-    launch configuration must be configured to <b>exclude</b> the output locations 
-    containing the Ant tasks and types. This is achieved by removing the Ant output 
-    directories in the listing of the <b>Classpath Entries (-dev)</b> field on 
-    the <b>Arguments</b> tab of a Run-time Workbench launch configuration.</li>
-</ul>
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-</BODY></HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/ant_eclipse_tasks.htm b/bundles/org.eclipse.platform.doc.isv/guide/ant_eclipse_tasks.htm
deleted file mode 100644
index 047384b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/ant_eclipse_tasks.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Ant tasks provided by the platform
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Ant tasks provided by the platform</h2>
-<p>The platform provides some useful Ant tasks and properties that 
-interact with the workspace. They can be used with buildfiles running inside the
-platform.</p>
-
-
-<A NAME="monitor"></A><h3>
-eclipse.refreshLocal</h3>
-<p>
-This task is a wrapper to the <a href="../reference/api/org/eclipse/core/resources/IResource.html#refreshLocal(int, org.eclipse.core.runtime.IProgressMonitor)">
-<b>
-IResource.refreshLocal()</b></a> method. Example:</p>
-<pre><font color="#4444CC">&lt;eclipse.refreshLocal resource=&quot;MyProject/MyFolder&quot; depth=&quot;infinite&quot;/&gt;</font></pre>
-<ul>
-  <li> <b>resource</b> is a resource path relative to the workspace&nbsp;</li>
-  <li> 
-<b>depth</b> can be one of the following: <b>zero</b>, <b> one</b> or <b>infinite</b></li>
-</ul>
-<h3 >
-eclipse.incrementalBuild</h3>
-
-<p>
-This task is a wrapper to <b>
-<a href="../reference/api/org/eclipse/core/resources/IProject.html#build(int, org.eclipse.core.runtime.IProgressMonitor)">
-IProject.build()</a></b> and <b>
-<a href="../reference/api/org/eclipse/core/resources/IWorkspace.html#build(int, org.eclipse.core.runtime.IProgressMonitor)">
-IWorkspace.build()</a></b> methods. Examples:</p>
-
-<pre><font color="#4444CC">&lt;eclipse.incrementalBuild/&gt;</font></pre>
-
-<pre>
-<font color="#4444CC">&lt;eclipse.incrementalBuild project=&quot;MyProject&quot;/&gt;
-</font>
-</pre>
-
-<ul>
-  <li> <b>project</b> the project to be built</li>
-</ul>
-
-<h3 >
-eclipse.convertPath</h3>
-
-<p>
-Converts a file system path to a resource path and vice-versa. The resulting value is
-assigned to the given property. Examples:</p>
-
-<pre><font color="#4444CC">&lt;eclipse.convertPath fileSystemPath=&quot;${basedir}&quot; property=&quot;myPath&quot;/&gt;</font></pre>
-
-<pre><font color="#4444CC">&lt;eclipse.convertPath resourcePath=&quot;MyProject/MyFile&quot; property=&quot;myPath&quot;/&gt;</font></pre>
-
-<br>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY></HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/ant_expanding_classpath.htm b/bundles/org.eclipse.platform.doc.isv/guide/ant_expanding_classpath.htm
deleted file mode 100644
index 5b645e3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/ant_expanding_classpath.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Expanding the Ant classpath
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Expanding the Ant classpath</h2>
-<p>Plug-ins can contribute 
-<a href="../reference/extension-points/org_eclipse_ant_core_extraClasspathEntries.html">extra JARs</a> 
-to the Ant classpath. The plug-in contributing the JARs is also added to the Ant classpath. As a consequence,
-classes inside the extra JARs have access to all classes available for the plug-in.&nbsp;
-These extra JARs cannot be plug-in libraries; they must be separate JARs. The consequences are that 
-plug-in classes do not have access to the classes provided by these extra JARs. The
-<a href="../reference/extension-points/org_eclipse_ant_core_extraClasspathEntries.html">
-<b>org.eclipse.ant.core.extraClasspathEntries</b></a> extension point provides an example of how to specify the extra JARs 
-in the plugin.xml file.</p>
-
-&nbsp;
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY></HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/ant_running_buildfiles_programmatically.htm b/bundles/org.eclipse.platform.doc.isv/guide/ant_running_buildfiles_programmatically.htm
deleted file mode 100644
index a86d458..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/ant_running_buildfiles_programmatically.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Running Ant buildfiles programmatically
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Running Ant buildfiles programmatically</h2>
-<p>
-The Ant support built into Eclipse allows plug-ins to programmatically run Ant buildfiles.
-This is done via the <a href="../reference/api/org/eclipse/ant/core/AntRunner.html"><b>AntRunner</b></a> 
-class included in the <b> org.eclipse.ant.core</b> plug-in.
-</p>
-
-<p>The following code snippet shows an example of how to use the <a href="../reference/api/org/eclipse/ant/core/AntRunner.html"><b>AntRunner</b></a> from within code of another plug-in:</p>
-
-<pre><font color="#4444CC">import org.eclipse.ant.core.AntRunner;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-...
-
-public void runBuild() {
-	IProgressMonitor monitor = ...
-	AntRunner runner = new AntRunner();
-	runner.setBuildFileLocation(&quot;c:/buildfiles/build.xml&quot;);
-	runner.setArguments(&quot;-Dmessage=Building -verbose&quot;);
-	runner.run(monitor);
-}</font></pre>
-
-<p>If a progress monitor is used, it is made available for the running tasks.
-See <a href="./ant_contributing_task.htm#monitor">Progress Monitors</a> for more details.
-Note that only one Ant build can occur at any given time if the builds do not occur in separate VMs. See <a href="../reference/api/org/eclipse/ant/core/AntRunner.html#isBuildRunning()">
-AntRunner.isBuildRunning()</a>;
-</p>
-
-<h3>
-Special care for native libraries if build occurs within the same VM</h3>
-<P >
-Every time an Ant buildfile runs in Eclipse a new classloader is created. Since a library can only be
-loaded by one classloader in Java, tasks making use of native libraries could run into problems during
-multiple buildfile runs. If the previous classloader has not been garbage collected at the time the new
-classloader tries to load the native library, an exception is thrown indicating the problem and the
-build fails. One way of avoiding this problem is having the library load be handled by
-a class inside a plug-in library. The task can make use of that class for accessing native
-methods. This way, the library is loaded by the plug-in classloader and it does not run into the
-load library conflict.
-</P>
-
-
-<P >
-&nbsp;</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY></HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/arch.htm b/bundles/org.eclipse.platform.doc.isv/guide/arch.htm
deleted file mode 100644
index 59248ed..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/arch.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Platform architecture 
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h1>Platform architecture </h1>
-
-<p>The Eclipse platform is structured around the concept of <b>extension points</b>.&nbsp;
-Extension points are well-defined places in the system where other tools (called
-<b>plug-ins</b>) can contribute functionality.</p>
-
-
-<p>Each major subsystem in the platform is itself structured as a set of plug-ins that implement
-some key function and define
-    extension points.&nbsp; The Eclipse system itself is built by contributing to the same
-extension points that third party plug-in providers can use.&nbsp; Plug-ins can
-define their own extension points or simply add <b>extensions</b> to the
-extension points of other plug-ins.</p>
-
-
-<p>The platform subsystems typically add visible
-    features to the platform and provide APIs for extending their
-functionality.&nbsp;&nbsp; Some of these components supply additional class libraries that
-do not directly relate to an extension point, but can be used to implement
-extensions.&nbsp; For example, the workbench UI supplies the JFace UI
-framework and the SWT widget toolkit. </p>
-
-
-<p>The Eclipse SDK includes the basic platform plus two major tools that are
-useful for plug-in development.&nbsp; The Java development tooling (JDT)
-implements a full featured Java development environment.&nbsp; The Plug-in
-Developer Environment (PDE) adds specialized tools that streamline the
-development of plug-ins and extensions.</p>
-
-
-<p>These tools not only serve a useful purpose, but also provide a great example of
-how new tools can be added to the platform by building plug-ins that extend the
-system.</p>
-
-
-<p><img border="0" src="images/sdk-arch.jpg" width="692" height="442" alt=""></p>
-
-
-    <p >&nbsp;</p>
-  
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-  
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/arch_extension_points.htm b/bundles/org.eclipse.platform.doc.isv/guide/arch_extension_points.htm
deleted file mode 100644
index 5eb207f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/arch_extension_points.htm
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Defining an extension point</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Defining an extension point</H2>
-
-<P >
-When you want to allow other plug-ins to extend or customize the functionality of
-your plug-in, you should define an <b>extension point</b>.  As with extensions,
-the first step in defining an extension point is to add some markup to the <b>plugin.xml</b>
-file of your plug-in.  Here is an example:</P>
-<font color='#4444CC'><pre>
-   &lt;?xml version=&quot;1.0&quot; ?&gt;
-   &lt;plugin
-      name=&quot;Simple Extension Point Plugin&quot; 
-      id=&quot;org.eclipse.sample&quot;
-      version=&quot;1.0&quot;&gt;
-      &lt;runtime&gt;
-         &lt;library name=&quot;extpt.jar&quot; /&gt;
-      &lt;/runtime&gt;
-      &lt;extension-point
-         name=&quot;Sample Extension Point&quot;
-         id=&quot;sampleExtensionPoint&quot;/&gt;
-   &lt;/plugin&gt;
-</pre></font>
-<P>
-That's all you have to do to define your own extension point.  The structure of the
-extensions that connect to this extension point is not interpreted by the platform,
-but instead should follow a schema defined by the extension point provider.
-The only restriction is that the extension markup must be valid XML.  Once you
-have defined your extension point, you can query the platform's <b>plug-in registry</b>
-at runtime to query and process any extensions that may exist.  At runtime, the
-extensions are manifested as <b><a href="../reference/api/org/eclipse/core/runtime/IExtension.html">IExtension</a></b> objects.
-Extensions in turn are made up of a tree of <b><a href="../reference/api/org/eclipse/core/runtime/IConfigurationElement.html">IConfigurationElement</a></b> objects,
-one for each element in the extension markup.  The following code snippet queries the plug-in
-registry for any extensions that are associated with the extension point we defined above.</P>
-<font color='#4444CC'><pre>
-   IPluginRegistry registry = Platform.getPluginRegistry();
-   IExtensionPoint point = registry.getExtensionPoint(&quot;org.eclipse.sample.sampleExtensionPoint&quot;);
-   if (point != null) {
-      IExtension[] extensions = point.getExtensions();
-      System.out.println("Found " + extensions.length + " extensions");
-   }
-</pre></font>
-<P>
-In simple cases, the only interaction between an extension point and its extensions
-is contained in the extension markup.  The extension may provide some data or preference
-setting directly within the XML of the extension markup, and the extension point plug-in
-then reads and processes that information to provide some customized behavior.
-</P>
-<H3>Interacting with code in an extension</H3>
-<P>
-With more advanced extension points, you may want to interact at runtime
-with objects defined by the extension.  The trick here is that the plug-in that 
-defines the extension point will typically know nothing about the names of classes
-and packages in the extension, so it must define an <b>interface</b> to describe the
-class structure it expects.  Then, it can instantiate classes in the extension's plugin
-using an 
-<b><a href="../reference/api/org/eclipse/core/runtime/IExecutableExtension.html">IExecutableExtension</a></b>, 
-and use the interface to interact with the object at runtime.
-</P>
-<P>
-To illustrate with an example, the following snippet from a plugin.xml file defines an
-extension that hooks into our sample extension point which was defined earlier:
-</P>
-<font color='#4444CC'><pre>
-   &lt;extension
-      name=&quot;Sample Extension&quot;
-      id=&quot;myExtension&quot;
-      point=&quot;org.eclipse.sample.sampleExtensionPoint&quot;&gt;
-         &lt;someObject&gt;
-            &lt;run class=&quot;org.eclipse.examples.SomeClass&quot;/&gt;
-         &lt;/someObject&gt;
-   &lt;/extension&gt;
-</pre></font>
-<P>
-This extension includes markup for an executable extension, which includes the name of the class
-to be instantiated.  This class should conform to an interface defined by the plug-in
-that defined the extension point.  As described earlier, the names of the tags in this example 
-(&quot;someObject&quot; and &quot;run&quot;) are arbitrary.  These tags will be defined by the
-extension point schema.
-</P>
-<P>
-For this example, say the interface for the executable extension is called ISomeInterface.
-The following code snippet in the extension point's plugin will query the plugin registry,
-and instantiate all executable extensions for the extension point &quot;sampleExtensionPoint&quot;:
-</P>
-<font color='#4444CC'><pre>
-   IPluginRegistry registry = Platform.getPluginRegistry();
-   IExtensionPoint point = registry.getExtensionPoint(&quot;org.eclipse.sample.sampleExtensionPoint&quot;);
-   IExtension[] extensions = point.getExtensions();
-   for (int i = 0; i &lt; extensions.length; i++) {
-      IConfigurationElement[] elements = extensions[i].getConfigurationElements();
-      for (int j = 0; j &lt; elements.length; j++) {
-         if (&quot;someObject&quot;.equals(elements[j].getName())) {
-            ISomeInterface object = (ISomeInterface)elements[j].createExecutableExtension(&quot;run&quot;);
-            System.out.println(&quot;Found an executable extension: &quot; + object);
-         }
-      }
-   }
-</pre></font>
-<P>
-That's all there is to it!  For more information, browse the javadoc for the 
-<b><a href="../reference/api/org/eclipse/core/runtime/package-summary.html"> org.eclipse.core.runtime</a></b>
-package, or look at the extension point defined in the 
-<a href="../samples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html">readme
-tool</a> (See the <a href="../samples/samples.html">Examples Guide </a> 
-for install instructions).  The best example to look at is the extension points defined
-by the Eclipse platform itself.
-</P>
-
-<p><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/arch_struct.htm b/bundles/org.eclipse.platform.doc.isv/guide/arch_struct.htm
deleted file mode 100644
index 18b0037..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/arch_struct.htm
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Platform SDK roadmap</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Platform SDK roadmap</H2>
-
-<H3>Runtime core</H3>
-<P >
-The platform runtime core implements the runtime engine that starts the platform base and dynamically discovers plug-ins. A
-<b> plug-in</b> is a structured component that describes itself to the system using
-a manifest
-(<b>plugin.xml</b>) file. The platform maintains a registry of installed plug-ins and the function they provide.</P>
-<P >
-Function is added to the system using a common extension model. <b> Extension points</b> are well-defined function points
-in the system that can be extended by plug-ins. When a plug-in contributes an implementation for an extension point, we say that it adds an
-<b> extension</b> to the platform. Plug-ins can define their own extension points, so that other plug-ins can integrate tightly with them.</P>
-<P >
-The extension mechanisms are the only means of adding function to the platform and other plug-ins.
-All plug-ins use the same mechanisms.&nbsp; Plug-ins provided with the Eclipse
-SDK do not use any private mechanisms in their implementation.</P>
-<P >
-Extensions are typically written in Java using the platform APIs. However, some extension points accommodate extensions provided as platform executables, ActiveX components, or developed in scripting languages. In general, only a subset of the full platform function is available to non-Java extensions. </P>
-<P >
-A general goal of the runtime is that the end user should not pay a memory or performance penalty for plug-ins that are installed, but not used. A plug-in can be installed and added to the registry, but the plug-in will not be activated unless
-a function provided by the plug-in has been requested according to the user's activity.</P>
-<P >
-The best way to get a feel for the runtime system is to build a plug-in. See
-<a HREF="firstplugin.htm" CLASS="XRef"> Plug it in: Hello World meets the workbench</a> to get started
-building a plug-in.  Once you have mastered the basics of plug-in writing and you're ready
-to define your own extension points, see <a HREF="arch_extension_points.htm">Defining an extension point</a>.
-</P>
-
-
-<H3>
-Resource management</H3>
-<P >
-The resource management plug-in defines a common resource model for managing the
-artifacts of tool plug-ins. Plug-ins can create and modify
-<b>projects</b>, <b>folders</b>, and <b>files</b>, as well as define specialized types of resources.</P>
-<P >
-<a HREF="resInt.htm" CLASS="XRef">Resources overview</a> provides an overview of the resource management system.</P>
-
-
-<H3>
-Workbench UI</H3>
-<P >
-The workbench UI plug-in implements the workbench UI and defines a number of extension points that allow other plug-ins to contribute menu and toolbar actions, drag and drop operations, dialogs, wizards, and custom views and editors.</P>
-<P >
-<a HREF="workbench.htm" CLASS="XRef">Plugging into the workbench</a> introduces the workbench
-UI extension points and API.</P>
-
-
-<P >
-The workbench UI plug-in also provides frameworks that are useful for user
-interface development.&nbsp; These frameworks were used to develop the workbench
-itself.&nbsp; Using the frameworks not only eases the development of a plug-in's
-user interface, but ensures that plug-ins have a common look and feel and a consistent level of workbench integration.</P>
-
-
-<P >
-The Standard Widget Toolkit (SWT) is a low-level, operating system independent toolkit that supports platform integration and portable API.
-It is described in
-<a HREF="swt.htm" CLASS="XRef">Standard Widget Toolkit</a>.</P>
-<P >
-The JFace UI framework provides higher-level application constructs for supporting dialogs, wizards, actions, user preferences, and widget management.&nbsp;
-The functionality in JFace is described in
-<a HREF="dialogs.htm" CLASS="XRef"> Dialogs and wizards</a>, <a HREF="preferences.htm" CLASS="XRef">Preferences and properties</a>, and
-<a HREF="jface.htm" CLASS="XRef">JFace: UI framework for plug-ins</a>.</P>
-
-
-
-<H3>Team support</H3>
-
-
-
-<p>
-The Team plug-ins allow other plug-ins to define and register implementations
-for team programming, repository access, and versioning.&nbsp; The Eclipse SDK
-includes a CVS plug-in that uses the team support to provide CVS client support
-in the SDK.&nbsp;&nbsp;</p>
-
-
-
-<p>Team support is described in <a href="team.htm">Team support</a>.</p>
-
-
-
-<H3>Debug support</H3>
-
-
-
-<p>
-The Debug plug-ins allow other plug-ins to implement language specific program
-launchers and debuggers.&nbsp;</p>
-
-
-
-<p>Debug support is described in <a href="debug.htm">Program debug and launching
-support</a>.</p>
-
-
-
-<h3 >
-Help System</h3>
-
-
-
-<P >The Help plug-in implements a platform optimized help web server and
-document integration facility.&nbsp; It defines extension points that plug-ins
-can use to contribute help or other plug-in documentation as browsable
-books.&nbsp; The documentation web server includes special facilities to allow
-plug-ins to reference files by using logical, plug-in based URLs instead of file
-system URLs.</P>
-
-
-
-<P >Additional features are provided for integrating help topics in product
-level documentation configurations.</P>
-
-
-
-<P >The help facility is described in <a href="help.htm">Plugging in help</a>.</P>
-
-
-
-<H3>
-Java Development Tooling (JDT)</H3>
-<P >
-The Java development tooling (JDT) plug-ins extend the platform workbench by
-providing specialized features for editing, viewing, compiling, debugging, and
-running Java code.</P>
-<P >The JDT is installed as a set of plug-ins that are included in the SDK.&nbsp;
-The Java Development User Guide describes how to use the Java tools.&nbsp; The JDT Plug-in
-Developer Guide describes the structure and API of the JDT.</P>
-
-
-
-<H3>
-Plug-in Development Environment (PDE)</H3>
-<P >The Plug-in Development Environment (PDE) supplies tools that automate the
-creation, manipulation, debugging, and deploying of plug-ins.&nbsp; </P>
-
-
-
-<P >The PDE is installed as a set of plug-ins that are included in the
-SDK.&nbsp; The PDE Guide describes how to use the environment.</P>
-
-
-
-<p><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></p>
-
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/compare.htm b/bundles/org.eclipse.platform.doc.isv/guide/compare.htm
deleted file mode 100644
index 82b8b68..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/compare.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Compare support</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Compare support</H1>
-
-
-<p>
-If your plug-in defines and manipulates its own resource types, you may have
-special requirements for comparing resources.&nbsp; Resources are often compared
-when working with local history or with files from a repository.&nbsp; The <b>compare</b>
-plug-in supports the implementation of advanced compare views:</p>
-
-
-<ul>
-  <li>Two and three-way compare and merge components for hierarchical structures
-    inferred from text</li>
-  <li>Differencing engines for hierarchical structures and character ranges in
-    text</li>
-</ul>
-<p>These services are used in the platform to assist with user tasks such as
-integrating patch files and comparing/merging the workspace with local history.</p>
-<p>
-
-All compare viewers are standard <a href="jface_viewers.htm"> JFace viewers</a> that expect an input object implementing the
-<b><a href="../reference/api/org/eclipse/compare/structuremergeviewer/ICompareInput.html">ICompareInput</b></a>
-interface.
-<p>
-Compare viewers are said to be
-<a href="compare_contentviewer.htm">content-oriented</a>  if they compare flat
-inputs such as text or images and
-<a href="compare_structureviewer.htm">structure-oriented</a>  if they compare
-hierarchically structured input elements.
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/compare_beyond.htm b/bundles/org.eclipse.platform.doc.isv/guide/compare_beyond.htm
deleted file mode 100644
index 40ba3f5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/compare_beyond.htm
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Beyond the basics</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Beyond the basics</H2>
-
-<p>
-This section provides additional information about advanced API in the compare
-plug-in.</p>
-
-<h3>Writing compare operations</h3>
-
-<p>A compare operation must be implemented as a subclass of
-<a href="../reference/api/org/eclipse/compare/CompareEditorInput.html"><b>CompareEditorInput</b></a>.&nbsp;
-A
-<a href="../reference/api/org/eclipse/compare/CompareEditorInput.html"><b>CompareEditorInput</b></a>
-runs a (potentially lengthy) compare operation
-under progress monitor control, creates a UI for drilling-down into the
-compare results, tracks the dirty state of the result in case of merge,
-and saves any changes that occurred during a merge.</p>
-
-<p>
-
-<a href="../reference/api/org/eclipse/compare/CompareUI.html"><b>CompareUI</b></a>
-defines the entry point to initiate a configurable
-compare operation on arbitrary resources. The result of the compare is
-opened into a compare editor where the details can be browsed and edited
-in dynamically selected structure and content viewers.
-<p>
-
-<a href="../reference/api/org/eclipse/compare/NavigationAction.html"><b>NavigationAction</b></a>
-is used to navigate (step) through the individual
-differences of a 
-<a href="../reference/api/org/eclipse/compare/CompareEditorInput.html"><b>CompareEditorInput</b></a>.
-<p>
-
-<a href="../reference/api/org/eclipse/compare/CompareConfiguration.html"><b>CompareConfiguration</b></a>
-configures various UI aspects
-of compare/merge viewers like title labels and images, or whether a side
-of a merge viewer is editable. It is passed to the
-<a href="../reference/api/org/eclipse/compare/CompareEditorInput.html"><b>CompareEditorInput</b></a>
-on creation.
-<p>
-
-When implementing a hierarchical compare operation as a subclass of
-<a href="../reference/api/org/eclipse/compare/CompareEditorInput.html"><b>CompareEditorInput</b></a>,
-clients must provide a tree of objects where each
-node implements the interface
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureComparator.html"><b>IStructureComparator</b></a>.
-This interface is used by the hierarchical differencing engine
-(<a href="../reference/api/org/eclipse/compare/structuremergeviewer/Differencer.html"><b>Differencer</b></a>) to walk the tree.
-<br>
-In addition every leaf of the tree must implement the
-<a href="../reference/api/org/eclipse/compare/IStreamContentAccessor.html"><b>IStreamContentAccessor</b></a>
-interface in order to give the differencing engine access to its stream content.
-<p>
-
-<a href="../reference/api/org/eclipse/compare/BufferedContent.html"><b>BufferedContent</b></a>
-provides a default implementation
-for the
-<a href="../reference/api/org/eclipse/compare/IStreamContentAccessor.html"><b>IStreamContentAccessor</b></a>
-and
-<a href="../reference/api/org/eclipse/compare/IContentChangeNotifier.html"><b>IContentChangeNotifier</b></a>
-interfaces.
-Its subclass
-<a href="../reference/api/org/eclipse/compare/ResourceNode.html"><b>ResourceNode</b></a>
-adds an implementation for the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureComparator.html"><b>IStructureComparator</b></a>
-and
-<a href="../reference/api/org/eclipse/compare/ITypedElement.html"><b>ITypedElement</b></a>
-interfaces
-based on platform workbench resources
-(<a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>). 
-It can be used without modification as the input to the differencing engine.
-
-
-<h3>Compare functionality outside of compare editors</h3>
-
-
-<p>If you want to use compare functionality outside of the standard compare editor 
-(for example, in a dialog or wizard) the compare plug-in provides additional helper
-classes.</p>
-
-<p>
-
-<a href="../reference/api/org/eclipse/compare/CompareViewerPane.html"><b>CompareViewerPane</b></a>
-is a convenience class which provides
-a label and local toolbar for a compare viewer (or any other subclass of a <a href="jface_viewers.htm"> JFace
-viewer</a>).&nbsp; Its abstract subclass
-<a href="../reference/api/org/eclipse/compare/CompareViewerSwitchingPane.html"><b>CompareViewerSwitchingPane</b></a>
-supports <b>dynamic viewer switching</b>, that is the viewer installed in the pane is dynamically 
-determined by the pane's input object.<p>
-<a href="../reference/api/org/eclipse/compare/EditionSelectionDialog.html"><b>EditionSelectionDialog</b></a>
-is a simple selection dialog where
-one input element can be compared against a list of historic variants (<b>editions</b>)
-of the same input element. The dialog is used to implement functions
-like <i>&quot;</i><b>Replace with Local History"</b> on workbench resources.
-<p>
-
-In addition it is possible to specify a subsection of the input element
-(e.g. a method in a Java source file) by means of a <b>path</b>. In this
-case the dialog compares only the subsection (as specified by the path)
-with the corresponding subsection in the list of editions. This functionality
-can be used to implement <i>&quot;</i><b>Replace with Element from Local History"</b> for 
-Java Elements.
-<p>
-
-The
-<a href="../reference/api/org/eclipse/compare/EditionSelectionDialog.html"><b>EditionSelectionDialog</b></a>
-requires that the editions implement the
-<a href="../reference/api/org/eclipse/compare/IStreamContentAccessor.html"><b>IStreamContentAccessor</b></a>
-and
-<a href="../reference/api/org/eclipse/compare/IModificationDate.html"><b>IModificationDate</b></a>
-interfaces.
-The
-<a href="../reference/api/org/eclipse/compare/HistoryItem.html"><b>HistoryItem</b></a>
-is a convenience class that implements these interfaces for
-<a href="../reference/api/org/eclipse/core/resources/IFileState.html"><b>IFileState</b></a> objects.
-<p>
-&nbsp;
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/compare_contentviewer.htm b/bundles/org.eclipse.platform.doc.isv/guide/compare_contentviewer.htm
deleted file mode 100644
index 64c105a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/compare_contentviewer.htm
+++ /dev/null
@@ -1,164 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Implementing a Content Viewer</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Implementing a content viewer</H2>
-
-
-<p>
-The compare plug-in allows you to supply specialized viewers for viewing and
-merging content differences between unstructured elements.</p>
-
-
-<h3>
-Simple content viewers</h3>
-
-
-<p>
-A <b>content viewer</b> is used in places where only a single input is available and therefore
-no compare is necessary.&nbsp; A typical example for this is the &quot;<b>Restore from Local
-History</b>&quot; function.&nbsp; The <a href="../reference/extension-points/org_eclipse_compare_contentViewers.html"><b>org.eclipse.compare.contentViewers</b></a>
- extension point allows you to define a specialized content viewer that does not
-compare its inputs.</p>
-
-
-<h3>
-Content merge viewers</h3>
-
-
-<p>
-	A <b> content merge viewer </b> performs a two-way or three-way compare of its inputs
-and presents the result
-	side-by-side or in any other suitable way.&nbsp; The viewer lets the user merge between the inputs.
-    Content merge viewers are common for text or images.</p>
-
-
-<p>If the standard merge viewers are not appropriate for your plug-in's
-function, you may choose to implement your own content viewer.&nbsp; Your
-content viewer should be registered with the platform using the
-	<a href="../reference/extension-points/org_eclipse_compare_contentMergeViewers.html"><b>org.eclipse.compare.contentMergeViewers</b></a>
-<b> </b>extension point.&nbsp; The following markup shows
-the definition of specialized content merge viewers for viewing Java and
-properties files in the Java IDE:</p>
-
-
-<pre><font color="#4444CC">&lt;extension
-	point=&quot;org.eclipse.compare.contentMergeViewers&quot;&gt;
-	&lt;viewer
-		id=&quot;org.eclipse.jdt.internal.ui.compare.JavaContentViewerCreator&quot;
-		extensions=&quot;java,java2&quot;
-		class=&quot;org.eclipse.jdt.internal.ui.compare.JavaContentViewerCreator&quot;&gt;
-	&lt;/viewer&gt;
-	&lt;viewer
-		id=&quot;org.eclipse.jdt.internal.ui.compare.TextMergeViewerCreator&quot;
-		extensions=&quot;properties&quot;
-		class=&quot;org.eclipse.jdt.internal.ui.compare.TextMergeViewerCreator&quot;&gt;
-	&lt;/viewer&gt;
-&lt;/extension&gt;
-</pre></font>
-
-
-<p> In the markup, you specify the <b>id </b>of the viewer, the <b>class</b> that
-creates it, and the file <b>extension</b>
-for which the content viewer should be used.&nbsp;&nbsp;</p>
-
-
-<p> <a href="../reference/api/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.html"><b>ContentMergeViewer</b></a>
-is an abstract compare and merge viewer
-with two side-by-side content areas and an optional content area for a
-common ancestor (for three-way compare).&nbsp; Because the implementation makes
-no assumptions about the content type, the subclass is responsible for dealing
-with the specific content type.&nbsp;&nbsp;</p>
-
-
-<p> <b>ImageMergeViewer</b> in <b> org.eclipse.compare.internal</b> shows how to
-implement a simple merge viewer for images using a <a href="../reference/api/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.html"><b>ContentMergeViewer</b></a>.&nbsp;
-A <a href="../reference/api/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.html"><b>ContentMergeViewer</b></a> 
-accesses its model by means of a content
-provider which must implement the
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.html"><b>IMergeViewerContentProvider</b></a> interface.</p>
-
-
-<h4> Text merging</h4>
-
-
-<p> If your viewer uses text, additional classes that&nbsp; compare
-and merge text content can be used.</p>
-<p>
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/TextMergeViewer.html"><b>TextMergeViewer</b></a>
-is the concrete subclass of
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.html"><b>ContentMergeViewer</b></a>
- used for comparing and merging text content.&nbsp; A text merge viewer uses the
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/RangeDifferencer.html"><b>RangeDifferencer</b></a>
-to perform a textual, line-by-line comparison of two (or three) input documents.&nbsp;
-<p>
-For text lines that differ, the
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/TextMergeViewer.html"><b>TextMergeViewer</b></a>
-uses an
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/ITokenComparator.html"><b>ITokenComparator</b></a>
-to find the longest sequences of matching and non-matching tokens.
-The 
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/TextMergeViewer.html"><b>TextMergeViewer</b></a>'s
-default token compare works on characters separated by white space. If a
-different strategy is needed (for example, Java tokens in a Java-aware
-merge viewer), clients can create their own token comparators by implementing
-the
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/ITokenComparator.html"><b>ITokenComparator</b></a>
-interface.&nbsp;&nbsp;
-<p>
- <a href="../reference/api/org/eclipse/compare/contentmergeviewer/TextMergeViewer.html"><b>TextMergeViewer</b></a>
- works on whole documents and on sub ranges of documents. For partial documents,
-the viewer's input must be an
-<a href="../reference/api/org/eclipse/compare/contentmergeviewer/IDocumentRange.html"><b>IDocumentRange</b></a>
-instead of an
-<a href="../reference/api/org/eclipse/jface/text/IDocument.html"><b>IDocument</b></a>.
-<h4>Range differencing</h4>
-<p> 
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/RangeDifferencer.html"><b>RangeDifferencer</b></a>
- finds the longest sequences of matching and
-non-matching comparable entities in text content. Its implementation is based on
-an objectified version of the algorithm described in:
-<i>A File Comparison Program,</i> by Webb Miller and Eugene W. Myers,
-Software Practice and Experience, Vol. 15, Nov. 1985.&nbsp; Clients must supply
-an input to the differencer that implements the
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/IRangeComparator.html"><b>IRangeComparator</b></a>
-interface.
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/IRangeComparator.html"><b>IRangeComparator</b></a>
-breaks the input data into a sequence
-of entities and provides a method for comparing
-one entity with the entity in another
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/IRangeComparator.html"><b>IRangeComparator</b></a>.
-<p>
-
-For example, to compare two text documents and find the longest common
-sequences of matching and non-matching lines,
-the implementation of
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/IRangeComparator.html"><b>IRangeComparator</b> </a>
-must break the document into lines and provide a method for testing
-whether two lines are considered equal.
-See <b>org.eclipse.compare.internal.DocLineComparator</b> for an example of how this can be done.
-<p>
-
-The differencer returns the differences among these sequences as an
-array of
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/RangeDifference.html"><b>RangeDifference</b></a>
-objects.
-Every single
-<a href="../reference/api/org/eclipse/compare/rangedifferencer/RangeDifference.html"><b>RangeDifference</b></a>
-describes the kind of difference
-(no change, change, addition, deletion) and the corresponding ranges
-of the underlying comparable entities in the two or three inputs.
-<p>
-&nbsp;
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/compare_structureviewer.htm b/bundles/org.eclipse.platform.doc.isv/guide/compare_structureviewer.htm
deleted file mode 100644
index 7ae49da..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/compare_structureviewer.htm
+++ /dev/null
@@ -1,168 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Implementing a structure viewer</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Implementing a structure viewer</H2>
-
-
-<p>
-	A structure merge viewer performs a two-way or three-way compare of its inputs, presents the result
-	in a hierarchical view, and lets the user merge between the inputs.&nbsp;
-    Structure merge viewers are common for workspace resources or the members of
-	an archive file.</p>
-
-
-<h3>Tree-like structure viewers</h3>
-
-
-<p>Because the implementation of many structure compare viewers is based
-on a tree, the compare plug-in provides a generic tree-based
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.html"><b>StructureDiffViewer</b></a>.&nbsp;
-Your plug-in is responsible for supplying a <b>structure creator</b>  that breaks a single input object into a hierarchical structure.&nbsp;
-The <a href="../reference/api/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.html"><b>StructureDiffViewer</b></a>
-performs the compare on the resulting structure and displays the result as a tree.</p>
-
-
-<p>You designate a structure creator for your plug-in using the <a href="../reference/extension-points/org_eclipse_compare_structureCreators.html"><b>org.eclipse.compare.structureCreators</b></a>
-extension.</p>
-
-
-<h3>Other hierarchical structure viewers</h3>
-
-
-<p>In some cases, the tree-based <a href="../reference/api/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.html"><b>StructureDiffViewer</b></a>
-may not be appropriate for your plug-in.&nbsp; The <a href="../reference/extension-points/org_eclipse_compare_structureMergeViewers.html"><b>org.eclipse.compare.structureMergeViewers</b></a>
- extension point allows you to define your own implementation for a structure
-merge viewer.&nbsp; Utility classes are provided to help you implement the
-viewer.</p>
-
-
-<h4>
-Differencer&nbsp;</h4>
-
-
-<p>
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/Differencer.html"><b>Differencer</b></a>
-is a differencing engine for hierarchically
-structured data. It takes two or three inputs and performs a two-way or
-three-way compare on them.</p>
-
-
-<p>
-
-If the input elements to the differencing engine implement the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureComparator.html"><b>IStructureComparator</b></a>
-interface, the engine recursively applies itself to the children of
-the input element. Leaf elements must implement the
-<a href="../reference/api/org/eclipse/compare/IStreamContentAccessor.html"><b>IStreamContentAccessor</b></a>
-interface so that the differencer can perform a byte wise comparison on their contents.<p>There
-are several good examples of differencers included in the platform
-implementation:
-<ul>
-  <li>
-<a href="../reference/api/org/eclipse/compare/ResourceNode.html"><b>ResourceNode</b></a>
- implements both interfaces
-(and more) for platform workspace resources
-(<a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>org.eclipse.core.resources.IResource</b></a>).</li>
-  <li>
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.html"><b>DocumentRangeNode</b></a>
-    is used to compare hierarchical structures
-that are superimposed on a document.&nbsp; Nodes and leaves correspond to ranges in a document
-(<a href="../reference/api/org/eclipse/compare/contentmergeviewer/IDocumentRange.html"><b>IDocumentRange</b></a>).&nbsp;
-    Typically, <a href="../reference/api/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.html"><b>DocumentRangeNode</b></a>s
-are created while parsing a document and they represent
-the semantic entities of the document (e.g. a Java class, method or field).
-The two subclasses <b>JavaNode</b> (in <b>org.eclipse.jdt.internal.ui.compare</b>)
-and <b>PropertyNode</b> (in <b>org.eclipse.jdt.internal.ui.compare</b>) are good examples for this.</li>
-</ul>
-<p>
-
-By default the differencing engine returns the result of the compare operation
-as a tree of
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DiffNode.html"><b>DiffNode</b></a>
-objects.&nbsp; A
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DiffNode.html"><b>DiffNode</b></a>
-describes the changes among two or three inputs.&nbsp; The type of result nodes
-can be changed by overriding
-a single method of the engine.
-<h4>
-
-Difference Viewers</h4>
-<p>
-
-A tree of
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DiffNode.html"><b>DiffNode</b></a>s
-can be displayed in a 
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.html"><b>DiffTreeViewer</b></a>.
-The
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.html"><b>DiffTreeViewer</b></a>
-requires that inner nodes of the tree implement
-the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IDiffContainer.html"><b>IDiffContainer</b></a>
-interface and leaves implement the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IDiffElement.html"><b>IDiffElement</b></a>
-interface.
-<p>
-
-The typical steps to compare hierarchically structured data and to display
-the differences are as follows:
-<ol>
-<li>
-Map the input data into a tree of objects implementing both the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureComparator.html"><b>IStructureComparator</b></a>
-and
-<a href="../reference/api/org/eclipse/compare/IStreamContentAccessor.html"><b>IStreamContentAccessor</b></a>
- interfaces</li>
-
-<li>
-Perform the compare operation by means of the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/Differencer.html"><b>Differencer</b></a></li>
-
-<li>
-Feed the differencing result into the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.html"><b>DiffTreeViewer</b></a></li>
-
-</ol>
-
-The
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.html"><b>StructureDiffViewer</b></a>
-is a specialized
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.html"><b>DiffTreeViewer</b></a>
-that automates the three steps from above. It takes a single input object
-of type
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/ICompareInput.html"><b>ICompareInput</b></a>
-from which it retrieves the two or three
-input elements to compare.&nbsp; It uses an
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureCreator.html"><b>IStructureCreator</b></a>
-to extract a tree containing <a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureComparator.html"><b>IStructureComparator</b></a>
-and
-<a href="../reference/api/org/eclipse/compare/IStreamContentAccessor.html"><b>IStreamContentAccessor</b></a>
- objects from them.&nbsp; These trees are then compared with the differencing engine and
-the result is displayed in the tree viewer.
-<p>
-
-The
-<a href="../reference/api/org/eclipse/compare/ZipFileStructureCreator.html"><b>ZipFileStructureCreator</b></a>
-is an implementation of the
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureCreator.html"><b>IStructureCreator</b></a>
-interface and makes the contents of a zip archive available as a
-hierarchical structure of
-<a href="../reference/api/org/eclipse/compare/structuremergeviewer/IStructureComparator.html"><b>IStructureComparator</b></a>s
-which can be easily compared
-by the differencing engine
-(<a href="../reference/api/org/eclipse/compare/structuremergeviewer/Differencer.html"><b>Differencer</b></a>).
-It is a good example for how to make structured files available to the hierarchical 
-compare functionality of the compare plug-in.
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug.htm
deleted file mode 100644
index aba0258..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Program debug and launch support</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Program debug and launch support</H1>
-<p>The resource plug-ins in the Eclipse platform allow you to manage a set a
-source files for a program and compile them using an incremental project
-builder.&nbsp; Plug-ins can define new builders that handle special resource
-types, such as source files for a particular programming language.&nbsp; Once an
-executable program is built with your plug-in's builder, how can you make sure
-that it gets invoked correctly?</p>
-<p>The <b><a href="../reference/api/org/eclipse/debug/core/package-summary.html"> org.eclipse.debug.core</a>
-</b> plug-in provides the API that allows a program to define a configuration
-for launching a program.&nbsp; The program can be launched for regular execution
-or in debug mode, depending on the capabilities of your plug-in.&nbsp; The
-Eclipse Java development tooling (JDT) uses the platform debug support to launch
-Java VM's and the Java debugger.&nbsp;&nbsp;</p>
-<p>The <b><a href="../reference/api/org/eclipse/debug/ui/package-summary.html"> org.eclipse.debug.ui</a></b> plug-in includes support for user configuration of
-launch parameters and utility classes that ease the implementation of powerful debuggers.</p>
-<p>There are some shared concepts in launching and debugging programs that are
-implemented in the platform debug support.&nbsp; However, the best way to
-understand how to use the platform debug support is to study a robust concrete
-implementation of launching and debugging, such as the JDT launching and debug
-tools.&nbsp; We'll review the major concepts of the platform debug support in
-order to provide a roadmap for studying a concrete implementation.</p>
-<p>For a detailed explanation of how to define and develop custom launch
-configurations, see
- <a href="http://www.eclipse.org/articles/Article-Launch-Framework/launch.html">We Have Lift-off: The Launching Framework in Eclipse</a>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_actiongroups.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_actiongroups.htm
deleted file mode 100644
index 77534ed..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_actiongroups.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Debug action groups</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Debug action groups</h3>
-<p>Because the platform is designed to support many different programming
-languages and tools, it's likely that a user will have several different
-debugger implementations installed in the workbench.&nbsp; Typically, a
-developer is working and debugging in one language at a time.&nbsp; However, the
-debug implementations all share the workbench debug perspective and its
-associated views.&nbsp; In order to prevent the debug view's tool bars and popup
-menus from being cluttered, debug plug-ins can specify named groups of
-debug actions that the user can choose to hide or show in the debugger.</p>
-<p>Action groups are defined in the <a href="../reference/extension-points/org_eclipse_debug_ui_debugActionGroups.html"><b>org.eclipse.debug.ui.debugActionGroups</b></a>
-extension point.&nbsp; An action group has an <b>id</b>, <b>name</b>, and <b>visible</b>
-attribute.&nbsp; The visible attribute determines whether the actions in the
-group should be shown in debugger views by default.&nbsp; The user can change
-the visibility from the preferences dialog.</p>
-<p>The following example shows the markup for the debug action groups in the
-Java debugger:</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.ui.debugActionGroups&quot;&gt;<br>	&lt;debugActionGroup<br>		id = &quot;org.eclipse.jdt.debug.ui.javaDebugActionGroup&quot;<br>	   	visible=&quot;true&quot;<br>	   	name=&quot;%JavaDebugActionGroup.name&quot;&gt;<br>	   	&lt;action id=&quot;org.eclipse.jdt.debug.ui.actions.AddException&quot;/&gt;<br>	   	&lt;action id=&quot;org.eclipse.jdt.ui.breakpointViewActions.ShowQualified&quot;/&gt;<br>	   	&lt;action id=&quot;org.eclipse.jdt.ui.expressionViewActions.ShowQualified&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.expressionViewActions.AddWatchExpression&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.launchViewActions.ShowQualified&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.variableViewActions.ShowQualified&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.variableViewActions.ShowStatic&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.expressionViewActions.ShowStatic&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.variableViewActions.ShowConstants&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.expressionViewActions.ShowConstants&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.expressionViewActions.PrimitiveOptions&quot;/&gt;<br>		&lt;action id=&quot;org.eclipse.jdt.ui.variableViewActions.PrimitiveOptions&quot;/&gt;<br>	&lt;/debugActionGroup&gt;<br>&lt;/extension&gt;</font></pre>
-<p>Note that the name specified in the extension point is what appears in the
-preferences dialog.</p>
-<p><img src="images/debugactiongroups.gif" alt="Preferences dialog with debug action groups" border="0" width="522" height="541"></p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_breakpoints.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_breakpoints.htm
deleted file mode 100644
index e428382..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_breakpoints.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Breakpoints</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Breakpoints </h3>
-<p>Breakpoints allow users to suspend the execution of a program at a particular
-location.&nbsp; Breakpoints are typically shown in the UI along with the source
-code.&nbsp; You can add an <a href="../reference/api/org/eclipse/debug/core/IBreakpointListener.html"><b>IBreakpointListener</b></a>
-to an <a href="../reference/api/org/eclipse/debug/core/IBreakpointManager.html"><b>IBreakpointManager</b></a>
-in order to be notified as breakpoints are added and removed.&nbsp; When a
-breakpoint is encountered during execution of a program, the program suspends
-and triggers a <b>SUSPEND</b> debug event with <b>BREAKPOINT</b> as the
-reason.&nbsp; </p>
-<p>Plug-ins that define their own debug models and launch configurations often
-need to define their own breakpoint types.&nbsp; You can implement breakpoints
-for your particular debug model by defining a class that implements <a href="../reference/api/org/eclipse/debug/core/model/IBreakpoint.html"><b>IBreakpoint</b></a>.&nbsp;
-</p>
-<p>Breakpoints are implemented using <a href="resAdv_markers.htm">resource markers</a>.&nbsp; 
-  Recall that resource markers allow you to associate meta information about a 
-  resource in the form of named attributes.&nbsp; By implementing a breakpoint 
-  using markers, the debug model can make use of all the existing marker function 
-  such as persistence, searching, adding, deleting, and displaying in editors.</p>
-<p>Why is it important to know about markers when using breakpoints?&nbsp; When
-you create a breakpoint type, you must also specify an associated marker
-type.&nbsp; Every extension of <a href="../reference/extension-points/org_eclipse_debug_core_breakpoints.html"><b>org.eclipse.debug.core.breakpoints</b></a>
-should be accompanied by an extension of <a href="../reference/extension-points/org_eclipse_core_resources_markers.html"><b>org.eclipse.core.resources.markers</b></a>.&nbsp;
-This is best demonstrated by looking at the extensions defined by the Java
-tooling for Java breakpoints.</p>
-<pre><font color="#4444CC">&lt;extension id=&quot;javaBreakpointMarker&quot; point=&quot;org.eclipse.core.resources.markers&quot;&gt;
-	&lt;super type=&quot;<b>org.eclipse.debug.core.breakpointMarker</b>&quot;/&gt;
-&lt;/extension&gt;
-
-&lt;extension id=&quot;<b>javaExceptionBreakpointMarker</b>&quot; point=&quot;org.eclipse.core.resources.markers&quot;&gt;
-	&lt;super type=&quot;org.eclipse.jdt.debug.javaBreakpointMarker&quot;/&gt;
-	&lt;persistent value=&quot;true&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.jdt.debug.core.caught&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.jdt.debug.core.uncaught&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.jdt.debug.core.checked&quot;/&gt;
-&lt;/extension&gt;</font></pre>
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.debug.core.breakpoints&quot;&gt;
-	&lt;breakpoint
-		id=&quot;javaExceptionBreakpoint&quot;
-		markerType=&quot;<b>org.eclipse.jdt.debug.javaExceptionBreakpointMarker</b>&quot;
-		class=&quot;org.eclipse.jdt.internal.debug.core.breakpoints.JavaExceptionBreakpoint&quot;&gt;
-	&lt;/breakpoint&gt;
-&lt;/extension&gt;</font></pre>
-<p>The debug plug-in defines a special type of marker, <font SIZE="2"><b>org.eclipse.debug.core.breakpointMarker</b>.&nbsp; 
-  When you define a marker, you should declare it using this marker as a super 
-  type.&nbsp; This allows the debug model to find all possible breakpoints within 
-  a source file by searching for subtypes of its marker.&nbsp; In the example 
-  above, the <b>javaExceptionBreakpointMarker</b> has a super type, <b>javaBreakpointMarker</b>, 
-  whose super type is the <b>breakpointMarker</b>.&nbsp; The <b>javaExceptionBreakpoint</b>&nbsp; 
-  (defined in the breakpoint extension) designates the <b>javaExceptionBreakpointMarker</b> 
-  as its marker.</font></p>
-<p><font size="2">What does all of this mean?&nbsp; When the debug code obtains
-a source code resource, it can search for all markers whose super type is <b>org.eclipse.debug.core.breakpointMarker</b>.&nbsp;
-Having found all of the markers, it can then use the plug-in registry to map the
-markers to their associated breakpoint classes.&nbsp; In this way, the platform
-debug code can generically find all breakpoint types that have been set on a
-particular source file. </font></p>
-<p>&nbsp;</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_debug.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_debug.htm
deleted file mode 100644
index edff125..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_debug.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Debugging a program</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Debugging a program</h2>
-<p>When you define a <a href="debug_launch.htm">launch configuration</a> for
-running a program, you can specify which modes (run and/or debug) your program
-supports.&nbsp; If you support debug mode, then you need to implement a debug
-model and UI that allow users to interact with your programs under debug.&nbsp;
-The core platform debug plug-in provides support for:</p>
-<ul>
-  <li> a generic debug model</li>
-  <li>debug
-events and listeners</li>
-  <li>breakpoint management</li>
-  <li>expression management&nbsp;</li>
-</ul>
-<p>The debug UI plug-in provides utility classes for implementing debug user
-interfaces.</p>
-<p>Since it's difficult to discuss generic debugging in any meaningful detail,
-we'll review the platform debug model and UI classes from the perspective of the
-Java debugger.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_expressions.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_expressions.htm
deleted file mode 100644
index 6d3a1cb..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_expressions.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Expressions</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Expressions</h3>
-<p>An <b>expression</b> is a snippet of code that can be evaluated to produce a
-value.&nbsp; The context for an expression depends on the particular debug
-model.&nbsp; Some expressions may need to be evaluated at a specific location in
-the program so that the variables can be referenced.&nbsp; <a href="../reference/api/org/eclipse/debug/core/model/IExpression.html"><b>IExpression</b></a>
-defines a general interface for debug expressions.</p>
-<p>An expression manager (<a href="../reference/api/org/eclipse/debug/core/IExpressionManager.html"><b>IExpressionManager</b></a>)
-keeps track of all of the expressions in the workspace.&nbsp; It will also fire
-events to interested listeners as expressions are added, removed, or changed.</p>
-<p>Expressions can be used to implement &quot;watch lists,&quot;
-&quot;inspectors,&quot; or even &quot;scrapbooks&quot; that let users evaluate
-code snippets.&nbsp; The Java tooling uses expressions to implement the
-expression generated when the user inspects the source code.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_launch.htm
deleted file mode 100644
index d387c67..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Launching a program</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Launching a program</h2>
-<p>The platform debug plug-ins allow you to extend the platform so that your
-program can be launched properly, obtaining input from the user if
-necessary.&nbsp; </p>
-<p>The class <a href="../reference/api/org/eclipse/debug/core/ILaunchConfiguration.html"><b>ILaunchConfiguration</b></a>
-is used to describe how a program should be launched.&nbsp; A launch
-configuration keeps a set of named attributes that can be used to store data
-specific for a particular kind of launcher.&nbsp; Users interact with a launch
-configuration dialog to set up the parameters for different types of
-launches.&nbsp; These configurations can be
-stored in a file to be shared with other users or stored locally in the workspace.&nbsp;&nbsp; </p>
-<p>Plug-ins can contribute additional types of launchers and provide an <a href="../reference/api/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.html"><b>ILaunchConfigurationDelegate</b></a>
-that knows how to launch a program given the expected type of launch configuration.&nbsp; Once the program
-is launched, an <a href="../reference/api/org/eclipse/debug/core/ILaunch.html"><b>ILaunch
-</b>
-</a>object is used to represent the launched session.&nbsp; This object can be
-queried for information such as running processes, debug session information,
-and source code location.&nbsp; A launch knows the configuration that was used to create
-it.&nbsp; </p>
-<p><img alt="" border="0" src="images/launch.jpg" width="495" height="191"> </p>
-<p>&nbsp; </p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_adding.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_adding.htm
deleted file mode 100644
index 785e46f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_adding.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Adding launchers to the platform</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Adding launchers to the platform</h3>
-<p>Your plug-in can add launch configuration types to the platform using the <a href="../reference/extension-points/org_eclipse_debug_core_launchConfigurationTypes.html"><b>org.eclipse.debug.core.launchConfigurationTypes</b></a>
-extension point.&nbsp; This extension point allows you to declare a
-configuration type using a unique id.&nbsp; You must provide a corresponding
-implementation of <a href="../reference/api/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.html"><b>ILaunchConfigurationDelegate</b></a>
-in your plug-in.&nbsp; You can also specify which modes (run and/or debug) are
-supported by your launcher and a name that should be used when showing launchers
-of this type to the user.</p>
-<p>The following markup shows how the Java tools declare a Java launch
-configuration for launching local Java programs:</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.core.launchConfigurationTypes&quot;&gt;
-   &lt;launchConfigurationType
-   	   id=&quot;org.eclipse.jdt.launching.localJavaApplication&quot;
-	   name=&quot;%localJavaApplication&quot;
-	   delegate=&quot;org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate&quot;
-	   modes= &quot;run, debug&quot;&gt;
-   &lt;/launchConfigurationType&gt;
-&lt;/extension&gt;</font></pre>
-<h4>Defining source locators</h4>
-<p>For each type of launch configuration that supports debug mode, it is
-important to define a way to find the source code that corresponds with the
-current execution point in the code.&nbsp; <a href="../reference/api/org/eclipse/debug/core/model/ISourceLocator.html"><b>ISourceLocator</b></a>
-and <a href="../reference/api/org/eclipse/debug/core/model/IPersistableSourceLocator.html"><b>IPersistableSourceLocator</b></a>
-define an interface for mapping from an executing program back to the source
-code. </p>
-<p>Source locators are typically implemented to work with a corresponding launch
-configuration and launch configuration delegate.&nbsp; Since launch
-configurations can be persisted, source locators may also be stored
-with the launch configuration.&nbsp; This is accomplished by setting an
-attribute of the launch configuration to an id of a source locator.&nbsp; When a
-launch configuration is read from disk, the id of the source locator must be
-mapped back to the implementation class.&nbsp; This is achieved using the <a href="../reference/extension-points/org_eclipse_debug_core_sourceLocators.html"><b>org.eclipse.debug.core.sourceLocators</b></a>
-extension point.&nbsp;</p>
-<p>The extension point allows you to register your class that implements <a href="../reference/api/org/eclipse/debug/core/model/IPersistableSourceLocator.html"><b>IPersistableSourceLocator</b></a>
-and associate it with an id that will be stored with the launch
-configuration.&nbsp; This allows the debug plug-in to look up source locator
-classes by id when it's time to instantiate a launch configuration.</p>
-<p>The following markup is from the Java tooling:</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.core.sourceLocators&quot;&gt;
-	&lt;sourceLocator
-		id = &quot;org.eclipse.jdt.debug.ui.javaSourceLocator&quot;
-	   	class=&quot;org.eclipse.jdt.debug.ui.JavaUISourceLocator&quot;
-	   	name=&quot;%javaSourceLocator&quot;/&gt;
-&lt;/extension&gt;</font></pre>
-<h4>Comparing launch configurations</h4>
-<p>Plug-ins use named attributes and values to store important data with a
-launch configuration.&nbsp; Since the interpretation of any attribute is not known by the platform, an extension point is provided
-that allows you to supply a comparator for a specific attribute.&nbsp; This
-comparator is used to determine whether attributes of the specified name are
-equal.&nbsp; In many cases, the simple string compare provided by
-java.lang.Object.equals(Object) is suitable for comparing attributes.&nbsp; This
-method will
-be used if no comparator has been provided.&nbsp; However, some attribute values
-may require special handling, such as stripping white space values from text
-before comparing for equality. </p>
-<p>Comparators are contributed using the <a href="../reference/extension-points/org_eclipse_debug_core_launchConfigurationComparators.html"><b>org.eclipse.debug.core.launchConfigurationComparators</b></a>
-extension point.&nbsp; </p>
-<p>The Java tools supply launch configuration comparators for comparing program
-source paths and class paths.</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.core.launchConfigurationComparators&quot;&gt;
-	&lt;launchConfigurationComparator
-		id = &quot;org.eclipse.jdt.launching.classpathComparator&quot;
-		class = &quot;org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator&quot;
-		attribute = &quot;org.eclipse.jdt.launching.CLASSPATH&quot;/&gt;
-	&lt;launchConfigurationComparator
-		id = &quot;org.eclipse.jdt.launching.sourcepathComparator&quot;
-		class = &quot;org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator&quot;
-		attribute = &quot;org.eclipse.jdt.launching.SOURCE_PATH&quot;/&gt;		
-&lt;/extension&gt;</font></pre>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_status.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_status.htm
deleted file mode 100644
index b958529..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_status.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Handling errors from a launched program</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Handling errors from a launched program</h3>
-<p>If you have defined your own type of launch configuration, it's likely that
-you will want to handle errors or other information that arises during the
-running of the program.&nbsp; For example, you may want to prompt or alert the
-user when certain types of errors occur during a launch, or provide information
-messages for certain status changes in the program.&nbsp; Since it's good
-practice to separate UI handling from core function, you do not want to have
-direct references from your launch delegate to status handling classes.</p>
-<p>This problem is addressed by the <a href="../reference/extension-points/org_eclipse_debug_core_statusHandlers.html"><b>org.eclipse.debug.core.statusHandlers</b></a>
-extension point.&nbsp; It allows you to associate a status handler with a
-specific status code.&nbsp; Using this extension point, you can define all of
-the possible status and error codes in your launch delegate and core classes,
-while registering unique handlers for the different status codes from another
-plug-in.</p>
-<p>The extension point does not designate any association between a status
-handler and a launch configuration.&nbsp; It is up to the implementation of the
-launch delegate to detect errors, find the appropriate status handler, and
-invoke it.&nbsp; The extension merely provides a registry so that the status
-handlers can be found for particular status codes.&nbsp; Clients find status
-handlers by querying the <a href="../reference/api/org/eclipse/debug/core/DebugPlugin.html"><b>DebugPlugin</b></a>.</p>
-<pre><font color="#4444CC"><font SIZE="2">IStatusHandler</font><font SIZE="2"> handler = DebugPlugin.getDefault().getStatusHandler(status);</font></font></pre>
-<p>Status handlers should implement <a href="../reference/api/org/eclipse/debug/core/IStatusHandler.html"><b>IStatusHandler</b></a>.&nbsp;
-The status handling class is specified in the extension definition, along with
-its associated status code and the plug-in that is expected to generate the
-status codes.</p>
-<p>The following markup shows how the Java tools declare status handlers:</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.core.statusHandlers&quot;&gt;
-	&lt;statusHandler
-		id=&quot;org.eclipse.jdt.debug.ui.statusHandler.workingDirectory&quot;
-		class=&quot;org.eclipse.jdt.internal.debug.ui.launcher.WorkingDirectoryStatusHandler&quot;
-		plugin =&quot;org.eclipse.jdt.launching&quot;
-		code=&quot;115&quot;&gt;
-	&lt;/statusHandler&gt;
-	&lt;statusHandler
-		id=&quot;org.eclipse.jdt.debug.ui.statusHandler.vmConnectTimeout&quot;
-		class=&quot;org.eclipse.jdt.internal.debug.ui.launcher.VMConnectTimeoutStatusHandler&quot;
-		plugin =&quot;org.eclipse.jdt.launching&quot;
-		code=&quot;117&quot;&gt;
-	&lt;/statusHandler&gt;	
-	...
-&lt;/extension&gt;</font></pre>
-<pre><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></pre>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_ui.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_ui.htm
deleted file mode 100644
index 1def15e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_ui.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Launch configuration dialog</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Launch configuration dialog</h3>
-<p>Launch configurations can most easily be visualized by looking at their
-corresponding UI.&nbsp; Users interact with a launch configuration dialog to
-create instances of the different types of launch configurations that have been
-contributed by plug-ins.&nbsp; Each type of launch configuration defines a group
-of tabs that collect and display information about the configuration.&nbsp; The
-tab group for local Java applications is shown below.</p>
-<p><img src="images/launchdialog.gif" alt="Launch configuration dialog with contributed tab groups" border="0" width="542" height="586"></p>
-<p>The tabs are contributed using the <a href="../reference/extension-points/org_eclipse_debug_ui_launchConfigurationTabGroups.html"><b>org.eclipse.debug.ui.launchConfigurationTabGroups</b></a>
-extension point.&nbsp;&nbsp;&nbsp; The markup for this extension is
-straightforward. You associate the id of a configuration type (contributed using
-<a href="../reference/extension-points/org_eclipse_debug_core_launchConfigurationTypes.html"><b>org.eclipse.debug.core.launchConfigurationTypes</b></a>)
-with a class that implements <a href="../reference/api/org/eclipse/debug/ui/ILaunchConfigurationTabGroup.html"><b>ILaunchConfigurationTabGroup</b></a>.&nbsp;
-The Java application tab group is contributed like this:</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.ui.launchConfigurationTabGroups&quot;&gt;
-	&lt;launchConfigurationTabGroup
-		id=&quot;org.eclipse.jdt.debug.ui.launchConfigurationTabGroup.localJavaApplication&quot;
-		type =&quot;org.eclipse.jdt.launching.localJavaApplication&quot;
-		class=&quot;org.eclipse.jdt.internal.debug.ui.launcher.LocalJavaApplicationTabGroup&quot;&gt;
-	&lt;/launchConfigurationTabGroup&gt;
-&lt;/extension&gt;</font></pre>
-<p>Your tab group class is responsible for creating the necessary tabs and
-displaying and saving the relevant data from the launch configuration
-attributes.&nbsp; A tab that is common to all configurations, <a href="../reference/api/org/eclipse/debug/ui/CommonTab.html"><b>CommonTab</b></a>,
-is already implemented and can be created by any configuration.&nbsp; This tab
-manages the saving of the launch configuration as well as collecting common
-preferences.</p>
-<p><img src="images/launchtabs.gif" alt="" border="0" width="437" height="349"></p>
-<p>&nbsp;</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_uiimages.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_uiimages.htm
deleted file mode 100644
index 5d071bd..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_uiimages.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Launch configuration type images</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Launch configuration type images</h3>
-<p>The image that is shown for a launch configuration type in the launch dialog
-is contributed using the <a href="../reference/extension-points/org_eclipse_debug_ui_launchConfigurationTypeImages.html"><b>org.eclipse.debug.ui.launchConfigurationTypeImages</b></a>
-extension point.&nbsp; This extension associates an image file with the id of a
-configuration type.</p>
-<p><img src="images/launchImage.gif" alt="" border="0" width="136" height="34"></p>
-<p>The markup for the Java application image is as follows:</p>
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.debug.ui.launchConfigurationTypeImages&quot;&gt;
-	&lt;launchConfigurationTypeImage
-		id=&quot;org.eclipse.jdt.debug.ui.launchConfigurationTypeImage.localJavaApplication&quot;
-		configTypeID=&quot;org.eclipse.jdt.launching.localJavaApplication&quot;
-		icon=&quot;icons/full/ctool16/java_app.gif&quot;&gt;
-	&lt;/launchConfigurationTypeImage&gt;	
-&lt;/extension&gt;</font></pre>
-<p>In order to maintain consistency with other extension points that 
-  reference launch configuration types, please note that in 2.1 the <b>configTypeID</b>
-  attribute may also be specified as <b>type</b>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_uishortcuts.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_uishortcuts.htm
deleted file mode 100644
index e388d22..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_launch_uishortcuts.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Launch shortcuts</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Launch shortcuts</h3>
-<p>Once a launch configuration has been defined using the dialog, it can be
-shown in the run and/or debug menus.&nbsp; The <a href="../reference/extension-points/org_eclipse_debug_ui_launchShortcuts.html"><b>org.eclipse.debug.ui.launchShortcuts</b></a>
-extension point is used to register launch shortcuts.&nbsp; In the extension
-definition, you can specify in which modes (run or debug) and in which
-perspectives the shortcuts are shown.&nbsp; For each shortcut, you must specify
-an implementation of <a href="../reference/api/org/eclipse/debug/ui/ILaunchShortcut.html"><b>ILaunchShortcut</b></a>.&nbsp;
-This class is used to launch a program given a particular selection in a view or
-editor.</p>
-<p>The following markup registers shortcuts for launching a Java application:</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.ui.launchShortcuts&quot;&gt;
-	&lt;shortcut
-		id=&quot;org.eclipse.jdt.debug.ui.localJavaShortcut&quot;
-		class=&quot;org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationShortcut&quot;
-		label=&quot;%JavaApplicationShortcut.label&quot;
-		icon=&quot;icons/full/ctool16/java_app.gif&quot;
-		helpContextId=&quot;org.eclipse.jdt.debug.ui.shortcut_local_java_application&quot;
-		modes=&quot;run, debug&quot;&gt;
-		&lt;perspective id=&quot;org.eclipse.jdt.ui.JavaPerspective&quot;/&gt;
-		&lt;perspective id=&quot;org.eclipse.jdt.ui.JavaHierarchyPerspective&quot;/&gt;
-		&lt;perspective id=&quot;org.eclipse.jdt.ui.JavaBrowsingPerspective&quot;/&gt;
-		&lt;perspective id=&quot;org.eclipse.debug.ui.DebugPerspective&quot;/&gt;
-	&lt;/shortcut&gt;
-&lt;/extension&gt;</font></pre>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_model.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_model.htm
deleted file mode 100644
index 3d0031e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_model.htm
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Platform debug model</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Platform debug model</h3>
-<p>The platform debug model defines generic debug interfaces that are intended 
-  to be implemented and extended in concrete, language-specific implementations.</p>
-<h4>Artifacts</h4>
-<p>The model includes classes that represent different artifacts in a program
-under debug.&nbsp; All of the artifacts implement <a href="../reference/api/org/eclipse/debug/core/model/IDebugElement.html"><b>IDebugElement</b></a>
-in addition to their own interfaces.&nbsp; The model includes definitions for
-the following artifacts:</p>
-<ul>
-  <li>Debug targets (<a href="../reference/api/org/eclipse/debug/core/model/IDebugTarget.html"><b>IDebugTarget</b></a>)
-    - a debuggable execution context, such as a process or virtual machine</li>
-  <li>Expressions (<a href="../reference/api/org/eclipse/debug/core/model/IExpression.html"><b>IExpression</b></a>)
-    - a snippet of code that can be evaluated to produce a value</li>
-  <li>Memory blocks (<a href="../reference/api/org/eclipse/debug/core/model/IMemoryBlock.html"><b>IMemoryBlock</b></a>)
-    - a contiguous segment of memory in an execution context</li>
-  <li>Registers (<a href="../reference/api/org/eclipse/debug/core/model/IRegister.html"><b>IRegister</b></a>)
-    - a named variable in a register group</li>
-  <li>Register groups (<a href="../reference/api/org/eclipse/debug/core/model/IRegisterGroup.html"><b>IRegisterGroup</b></a>)
-    - a group of registers assigned to a stack frame</li>
-  <li>Stack frames (<a href="../reference/api/org/eclipse/debug/core/model/IStackFrame.html"><b>IStackFrame</b></a>)
-    - an execution context in a suspended thread containing local variables and
-    arguments</li>
-  <li>Threads (<a href="../reference/api/org/eclipse/debug/core/model/IThread.html"><b>IThread</b></a>)
-    - a sequential flow of execution in a debug target containing stack frames</li>
-  <li>Values (<a href="../reference/api/org/eclipse/debug/core/model/IValue.html"><b>IValue</b></a>)
-    - the value of a variable</li>
-  <li>Variables (<a href="../reference/api/org/eclipse/debug/core/model/IVariable.html"><b>IVariable</b></a>)
-    - a visible data structure in a stack frame or value</li>
-</ul>
-<p>Plug-ins that implement language-specific debuggers typically extend these
-interfaces to include language-specific behavior.&nbsp; All debug elements can
-return the id of the plug-in that originated them.&nbsp; This is important for
-registering other classes that are associated with a debug model, such as UI
-classes.</p>
-<h4>Actions</h4>
-<p>The model also includes interfaces that define a set of debug actions that
-are common behaviors among debug artifacts.&nbsp; These interfaces are
-implemented by debug elements where appropriate.&nbsp; They include the
-following actions:</p>
-<ul>
-  <li>Disconnect (<a href="../reference/api/org/eclipse/debug/core/model/IDisconnect.html"><b>IDisconnect</b></a>) 
-    - the ability to end a debug session with a target program and allow the target 
-    to continue running</li>
-  <li>Step (<a href="../reference/api/org/eclipse/debug/core/model/IStep.html"><b>IStep</b></a>) 
-    - the ability to step into, over, and return from the current execution point</li>
-  <li>Filtered step (<a href="../reference/api/org/eclipse/debug/core/model/IFilteredStep.html"><b>IFilteredStep</b></a>) 
-    - the ability to step with a set of filters applied to the operation</li>
-  <li>Suspend and resume (<a href="../reference/api/org/eclipse/debug/core/model/ISuspendResume.html"><b>ISuspendResume</b></a>) 
-    - the ability to suspend and resume execution</li>
-  <li>Terminate (<a href="../reference/api/org/eclipse/debug/core/model/ITerminate.html"><b>ITerminate</b></a>) 
-    - the ability to terminate an execution context</li>
-  <li>Modify a value (<a href="../reference/api/org/eclipse/debug/core/model/IValueModification.html"><b>IValueModification</b></a>) 
-    - the ability to modify the value of a variable</li>
-</ul>
-<p>If you look at the definitions for the platform debug elements, you will see
-that different elements implement different debug actions.&nbsp; Standard
-interfaces for the elements and their behaviors allow the platform to provide
-abstract implementations of utility classes and UI support that can be extended
-for concrete implementations of debuggers.</p>
-<h4>Events</h4>
-<p>Debug events (<a href="../reference/api/org/eclipse/debug/core/DebugEvent.html"><b>DebugEvent</b></a>)
-are used to describe events that occur as a program is being debugged.&nbsp;
-Debug events include the debug element that is associated with the event.&nbsp;
-Each kind of debug element has a specific set of events that it supports as
-documented in <a href="../reference/api/org/eclipse/debug/core/DebugEvent.html"><b>DebugEvent</b></a>.&nbsp;
-</p>
-<p>Debugger UI classes typically listen to specific events for elements in order
-display information about changes that occur in the elements.&nbsp; Debug events
-arrive in groups called <b>debug event sets</b>.&nbsp; Events that occur at the
-same point of execution in a program arrive in the same set.&nbsp; Clients
-should implement an <a href="../reference/api/org/eclipse/debug/core/IDebugEventSetListener.html"><b>IDebugEventSetListener</b></a>
-and register the listener with the <a href="../reference/api/org/eclipse/debug/core/package-summary.html"><b>org.eclipse.debug.core</b></a>
-plug-in in order to receive debug events.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a>
-</p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_presentation.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_presentation.htm
deleted file mode 100644
index f73657f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_presentation.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Debug model presentation</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Debug model presentation</h3>
-<p>Since there is a generic, uniform model for debug elements in the platform,
-it's possible to provide a starting point for implementing debugger UI
-classes.&nbsp; The heart of the debugger UI support is the <b>debug model
-presentation</b> (<a href="../reference/api/org/eclipse/debug/ui/IDebugModelPresentation.html"><b>IDebugModelPresentation</b></a>).&nbsp;
-The debug model presentation is responsible for providing labels, images, and
-editors associated with specific debug elements.</p>
-<p>Plug-ins that define their own debug model typically provide a debug model
-presentation for displaying debug elements in the model.&nbsp;&nbsp; This is
-done using the <a href="../reference/extension-points/org_eclipse_debug_ui_debugModelPresentations.html"><b>org.eclipse.debug.ui.debugModelPresentations</b></a>
-extension point.&nbsp; This extension point allows an implementation of <a href="../reference/api/org/eclipse/debug/ui/IDebugModelPresentation.html"><b>IDebugModelPresentation</b></a>
-to be associated with the identifier of a particular debug model.&nbsp; </p>
-<p>Recall that <a href="debug_model.htm">debug model elements</a> know the id of
-their originating debug model.&nbsp; This means that given any debug element,
-the debug platform can obtain the id of the debug model and then query the
-plug-in registry for any corresponding debug model presentations.</p>
-<p>The markup for adding a debug model presentation looks like this:</p>
-<pre><font color="#4444CC">&lt;extension point = &quot;org.eclipse.debug.ui.debugModelPresentations&quot;&gt; 
-         &lt;debugModelPresentation
-             class = &quot;org.eclipse.jdt.internal.debug.ui.JDIModelPresentation&quot;
-             id = &quot;org.eclipse.jdt.debug&quot;
-             detailsViewerConfiguration = &quot;org.eclipse.jdt.internal.debug.ui.display.DetailsViewerConfiguration&quot;&gt;
-          &lt;/debugModelPresentation&gt; 
-&lt;/extension&gt;</font></pre>
-<p>An optional <b>detailsViewerConfiguration</b> can be specified in addition to
-the debug model presentation.&nbsp; The details viewer must extend the JFace <a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html"><b>SourceViewerConfiguration</b></a>
-class. The meaning of &quot;details&quot; is interpreted by the debug
-model.&nbsp; The details are computed by the debug model presentation and passed
-to the details viewer.&nbsp; For example, the Java debugger uses the details
-viewer to show code assist in the variables view when expressions are evaluated.</p>
-<p>&nbsp;</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/debug_ui.htm b/bundles/org.eclipse.platform.doc.isv/guide/debug_ui.htm
deleted file mode 100644
index ece27d7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/debug_ui.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Debug UI utility classes</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Debug UI utility classes</h3>
-<p>The debug UI plug-in provides some classes that provide good building blocks
-for building debugger user interfaces.</p>
-<p><a href="../reference/api/org/eclipse/debug/ui/DebugUITools.html"><b>DebugUITools</b></a>
-implements function commonly used by debug user interfaces:</p>
-<ul>
-  <li>Storage and retrieval of images on behalf of debug UI clients</li>
-  <li>Lookup of debug model presentations associated with a given debug model</li>
-  <li>Retrieval of the debug plug-in preference store</li>
-  <li>Information about the current debug view in the workbench</li>
-  <li>Information about the current program under debug</li>
-  <li>Opening the launch configuration dialog</li>
-</ul>
-<p><a href="../reference/api/org/eclipse/debug/ui/IDebugView.html"><b>IDebugView</b></a>
-provides common function for debug views.&nbsp; It provides access to an
-underlying viewer and its debug model presentation.&nbsp; Typically, clients
-should extend <a href="../reference/api/org/eclipse/debug/ui/AbstractDebugView.html"><b>AbstractDebugView</b></a>
-rather than implement the interface from scratch.&nbsp; <a href="../reference/api/org/eclipse/debug/ui/AbstractDebugView.html"><b>AbstractDebugView</b></a>
-provides additional common functions:</p>
-<ul>
-  <li>Storage of actions in an action registry</li>
-  <li>Generic handling of the underlying viewer's context menu</li>
-  <li>General implementations of delete key and double click function </li>
-  <li>Mechanism for displaying an error message in the view</li>
-</ul>
-<p>&nbsp;</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs.htm
deleted file mode 100644
index c5bd75f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs.htm
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Dialogs and wizards
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>Dialogs and wizards</H1>
-<P >
-We've seen how to extend the workbench UI by adding views, editors, and actions to the workbench.&nbsp;
-Now we can tie it all together by launching our own dialogs in response to these
-actions.</P>
-<P >
-The JFace UI framework provides several standard dialogs and a framework for
-building your own dialogs and wizards.
-We'll look at the different kinds of dialogs and wizards and how to build
-them.&nbsp;&nbsp;</P>
-<P >
-We'll also cover some simple workbench extensions for contributing wizards.</P>
-<P >
-<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_applications.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_applications.htm
deleted file mode 100644
index 9d9b96d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_applications.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-<TITLE>
-Application dialogs
-</TITLE>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<h2>
-Application dialogs</h2>
-<P >
-When a standard dialog is too simple for your plug-in, you can build your own dialog using the
-<a href="../reference/api/org/eclipse/jface/dialogs/Dialog.html"><b> Dialog</b></a> class. Earlier, we saw how the readme tool contributed an &quot;Open Readme Browser&quot;
-action in an action set.&nbsp; This action set is shown in the workbench tool bar
-and <b>Window-&gt;Readme File Editor</b> menu.&nbsp;&nbsp;</P>
-
-<P >
-Now we are ready to look at the implementation of this action in the readme
-tool's <b>WindowActionDelegate</b>.</P>
-
-<font color='#4444CC'><pre>
-   public void run(IAction action) {
-      SectionsDialog dialog = new SectionsDialog(window.getShell(),
-         ReadmeModelFactory.getInstance().getSections(selection));
-      dialog.open();
-   }
-</pre></font>
-
-<P >
-The window action delegate for the action set uses the current selection in the resource navigator view (the
-<b> .readme</b> file) to get a list of sections in the readme file. This list and the
-workbench window's shell are passed to the
-<b>SectionsDialog</b>.&nbsp;</P>
-
-<P >
-When the user selects the action, the <b>SectionsDialog</b>
-is opened.</P>
-
-<img src="images/readmedialog.gif" alt="" border="0" width="183" height="170">
-
-
-<P >
- The <b> SectionsDialog</b> is implemented in the readme tool plug-in by subclassing the
-<b><a href="../reference/api/org/eclipse/jface/dialogs/Dialog.html"> Dialog</a>
-</b> class in the <b><a href="../reference/api/org/eclipse/jface/dialogs/package-summary.html"> org.eclipse.jface.dialogs</a>
-package.</b></P>
-<P >
-The <a href="../reference/api/org/eclipse/jface/dialogs/Dialog.html"><b> Dialog</b></a> class provides basic support for building a dialog shell window, creating the common dialog buttons, and launching the dialog. The subclasses are responsible for handling the content of the dialog itself:</P>
-<ul>
-  <li><b>createDialogArea</b> creates the SWT controls that represent the dialog contents. This is similar to creating the controls for a view or
-    editor.
-<P > <P >
-The <b> SectionsDialog</b> creates an SWT list to display the list of sections. It uses a JFace viewer to populate the list. (We'll look at JFace viewers in
-<a HREF="jface_viewers.htm" CLASS="XRef"> Viewers</a>.) Note that our dialog does not have to create any of the buttons for the dialog since this is done by our
-superclass.</P>
-<font color='#4444CC'><pre>
-   protected Control createDialogArea(Composite parent) {
-      Composite composite = (Composite)super.createDialogArea(parent);
-      List list = new List(composite, SWT.BORDER);
-      ...
-      ListViewer viewer = new ListViewer(list);
-      ...
-      return composite;
-   }
-</pre></font>
-<br>
-  </li>
-  <li><b>configureShell</b> is overridden to set an appropriate title for the shell window.<p>
-<font color='#4444CC'><pre>
-   protected void configureShell(Shell newShell) {
-      super.configureShell(newShell);
-      newShell.setText(MessageUtil.getString(&quot;Readme Sections&quot;));
-      ...
-   }
-</pre></font>
-<br>
-  </li>
-  <li>
-<b>
-okButtonPressed</b> is overridden to perform whatever action is necessary when the user presses the OK button. (You can also override
-<b> cancelButtonPressed</b> or <b> buttonPressed(int)</b> depending on the design of your dialog.)&nbsp;&nbsp;
-  </li>
-<b>SectionsDialog</b> does not implement an <b> okButtonPressed</b> method. It inherits the &quot;do-nothing&quot; implementation from
-
-<a href="../reference/api/org/eclipse/jface/dialogs/Dialog.html"><b>Dialog</b></a>. This is not typical. Your dialog usually performs some processing in response to one of the dialog buttons being pressed.
-</ul>
-<P >
-Dialogs can be as simple or as complicated as necessary. When you implement a dialog, most of your dialog code is concerned with creating the SWT controls that represent its content area and handling any events necessary while the dialog is up. Once a button is pressed by the user, the dialog can query the state of the various controls (or viewers) that make up the dialog to determine what to do.</P>
-
-
-
-<P >
-<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_settings.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_settings.htm
deleted file mode 100644
index 373cb5c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_settings.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-<TITLE>Dialog settings</TITLE>
-
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-
-<h2>
-Dialog settings</h2>
-<P >
-The <a href="../reference/api/org/eclipse/jface/dialogs/package-summary.html"> <b> org.eclipse.jface.dialogs</b></a> package provides a utility class,
-<a href="../reference/api/org/eclipse/jface/dialogs/DialogSettings.html"><b>DialogSettings</b></a>, for storing and retrieving keyed values. You can use this class to save and retrieve primitive data types and string values that you associate with key names. The settings are loaded and saved using an XML file.</P>
-<P ><a href="../reference/api/org/eclipse/ui/plugin/AbstractUIPlugin.html"><b>AbstractUIPlugin</b></a> provides support for plug-in wide dialog settings stored in an XML file in your plug-in's directory. If a dialog settings file is not found in your plug-in directory, an empty
-<a href="../reference/api/org/eclipse/jface/dialogs/DialogSettings.html"> <b> DialogSettings</b></a> will be created for you. When the plug-in is shut down, any settings that were added to it will be saved in an XML file and retrieved the next time the plug-in is started up.</P>
-<P >
-You can access your dialog settings anywhere in your plug-in code. The following snippet shows how you could obtain the dialog settings for the readme tool.</P>
-<font color='#4444CC'><pre>
-   IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
-</pre></font>
-<P >
-Values are stored and retrieved using get and put methods. The get methods are named after the type of primitive that is being accessed. You can store and retrieve
-boolean, long, double, float, int, array, and string values. The following snippet shows how we could use dialog settings to initialize control values in a dialog.</P>
-<font color='#4444CC'><pre>
-   protected Control createDialogArea(Composite parent) {
-      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
-      checkbox = new Button(parent,SWT.CHECK);
-      checkbox.setText(&quot;Generate sample section titles&quot;);
-      // initialize the checkbox according to the dialog settings
-<b>      checkbox.setSelection(settings.getBoolean(&quot;GenSections&quot;));
-</b>   }
-</pre></font>
-<P >
-The value of the setting can be stored later when the ok button is pressed.</P>
-<font color='#4444CC'><pre>
-   protected void okPressed() {
-      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
-      // store the value of the generate sections checkbox
-<b>      settings.put(&quot;GenSections&quot;, checkbox.getSelection());
-</b>      super.okPressed();
-   }
-</pre></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_standard.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_standard.htm
deleted file mode 100644
index 5f6c408..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_standard.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-<TITLE>
-Standard dialogs
-</TITLE>
-
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h2>
-Standard dialogs</h2>
-<P >
-The package <a href="../reference/api/org/eclipse/jface/dialogs/package-summary.html"> <b> org.eclipse.jface.dialogs</b></a> defines the basic support for dialogs. This package provides standard dialogs for displaying user messages and obtaining simple input from the user.</P>
-<ul>
-  <li>
-<a href="../reference/api/org/eclipse/jface/dialogs/MessageDialog.html">
-<b>
-MessageDialog</b></a> displays a message to the user. You can set the dialog title, image, button text, and message in the constructor for this dialog.</li>
-  <li><a href="../reference/api/org/eclipse/jface/dialogs/ErrorDialog.html"><b>ErrorDialog</b></a> displays information about an error. You can set the dialog title and message for the dialog. You can also supply an IStatus object which the dialog will use to obtain an error message.</li>
-  <li>
-<a href="../reference/api/org/eclipse/jface/dialogs/InputDialog.html"><b>
-InputDialog</b></a> allows the user to enter text. You can set the dialog title, default text value, and supply an object that will validate the text input.</li>
-  <li>
-<a href="../reference/api/org/eclipse/jface/dialogs/ProgressMonitorDialog.html"><b>
-ProgressMonitorDialog</b></a> shows progress to the user during the running of
-a long operation.</li>
-</ul>
-<P >
-The standard dialogs are designed so that you can completely specify the dialog in its constructor. We saw a
-<b><a href="../reference/api/org/eclipse/jface/dialogs/MessageDialog.html"> MessageDialog</a>
-</b> in action in the readme tool's view action:</P>
-<font color='#4444CC'><pre>
-   MessageDialog.openInformation(
-      view.getSite().getShell(),&quot;Readme Editor&quot;,&quot;View Action executed&quot;);</pre></font>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards.htm
deleted file mode 100644
index 33796ae..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards.htm
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Wizards
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Wizards</H2>
-<P >
-Wizards are used to guide the user through a sequenced set of tasks. Your plug-in can contribute wizards at predefined extension points in the workbench. It can also create and launch its own wizards.</P>
-<P >
-When you contribute to a workbench wizard extension point, the actions that launch the wizard are already set up by the workbench. You need only supply the wizard that will be used.&nbsp;</P>
-
-<P >
-If you need to launch other wizards that are not already defined in workbench
-wizard extension points, you must launch them yourself.&nbsp; You can launch your own wizards by adding an action to a view, editor, popup,
-or an action set.&nbsp;</P>
-
-<P >
-A wizard is composed of several different underlying parts.&nbsp;</P>
-
-<img alt="" border="0" src="images/wiz_arch.jpg" width="507" height="273">
-
-
-<p>
-&nbsp;</p>
-
-
-<h3>
-Wizard dialog</h3>
-<P >
-The wizard dialog (<b><a href="../reference/api/org/eclipse/jface/wizard/WizardDialog.html">WizardDialog</a></b>)
-is the top level dialog in a wizard. It defines the standard wizard buttons and manages a set of pages that are provided to it.</P>
-<P >
-When you contribute to a workbench wizard extension, you do not have to create a wizard dialog. One is created on your behalf by the workbench, and your wizard is set into it.</P>
-
-
-<P >
-The wizard dialog performs the enabling and disabling of the <b>Next</b>, <b>Back</b>, and <b> Finish</b> 
-buttons based on information it obtains from the wizard and the current wizard
-page.</P>
-
-
-<h3>
-Wizard</h3>
-<P >
-The wizard (<a href="../reference/api/org/eclipse/jface/wizard/IWizard.html"><b>IWizard</b></a>)
-controls the overall appearance and behavior of the wizard, such as title bar text, image, and the availability of a help button.
-Wizards often use a corresponding <a href="../reference/api/org/eclipse/jface/dialogs/DialogSettings.html"><b>DialogSettings</b></a>
-to obtain (and store) the default values for the settings of controls on the wizard pages.</P>
-<P >
-The <b><a href="../reference/api/org/eclipse/jface/wizard/Wizard.html"> Wizard</a></b> class
-implements many of the details for standard wizard behavior.&nbsp; You typically
-extend this class to implement behavior specific to your wizard. The primary responsibilities of your wizard
-will include:</P>
-<ul>
-  <li>
-    
-Creating and adding your pages to your wizard</li>
-  <li>
-    
-Implementing the behavior that should occur when the user presses the <b> Finish</b> button.</p>
-  </li>
-</ul>
-
-
-<h3>
-Wizard page</h3>
-<P >
-The wizard page (<a href="../reference/api/org/eclipse/jface/wizard/IWizardPage.html"><b>IWizardPage</b></a>) defines the controls that are used to show the content of the wizard page. It responds to events in its content areas and determines when the page is completed.</P>
-<P >
-Your wizard page typically extends the <a href="../reference/api/org/eclipse/jface/wizard/WizardPage.html"><b> WizardPage</b></a> class.&nbsp;
-The primary responsibilities of your wizard page will include:</P>
-<ul>
-  <li>
-    
-creating the SWT controls that represent the page</li>
-  <li>
-    
-determing when the user has supplied enough information to complete the page (that is, when the user can move to the next page.)</p>
-  </li>
-</ul>
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_exportWizards.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_exportWizards.htm
deleted file mode 100644
index 5d93447..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_exportWizards.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-org.eclipse.ui.exportWizards
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-org.eclipse.ui.exportWizards</H3>
-<P >
-You can add a wizard to the <b> File &gt; Export</b> menu option in the workbench using the
-<a href="../reference/extension-points/org_eclipse_ui_exportWizards.html"><b> org.eclipse.ui.exportWizards</b></a> extension point. The process for defining the extension and implementing the wizard is similar to&nbsp;
-<b><a href="../reference/extension-points/org_eclipse_ui_newWizards.html">org.eclipse.ui.newWizards</a></b>.&nbsp;
-The primary difference in the markup is that export wizards do not define or
-assign categories for the wizards themselves.&nbsp; The wizards appear
-uncategorized in a wizard dialog. </P>
-<P >
-<img src="images/exportwizard.gif" alt="" border="0" width="470" height="550"> </P>
-<P >
-The wizard supplied in the class parameter of the markup must implement <a href="../reference/api/org/eclipse/ui/IExportWizard.html"><b>IExportWizard</b></a>.
-Its pages are typically extended from
-<a href="../reference/api/org/eclipse/ui/dialogs/WizardExportPage.html"><b> WizardExportPage</b></a>.</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_extensions.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_extensions.htm
deleted file mode 100644
index bd77ad0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_extensions.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Wizard extension points</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-
-<h2>
-Workbench wizard extension points</h2>
-<P >
-The workbench defines extension points for wizards that create new resources, import resources, or export resources.&nbsp;</P>
-<P >
- When you make selections in the new, import, or export menu, the workbench uses
-various wizard
-selection dialogs to display all the wizards that have been contributed for that particular extension point.&nbsp;
-The import wizard dialog is shown below.</P>
-<P >
-<img src="images/importwizard.gif" alt="Import wizard dialog with selection list" border="0" width="470" height="550"></P>
-<P >
-Your wizard takes control once it is selected in the list and the <b> Next</b> button is pressed. This is when your first page becomes visible.&nbsp;</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_importWizards.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_importWizards.htm
deleted file mode 100644
index f2aaa42..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_importWizards.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.importWizards</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-
-<H3>
-org.eclipse.ui.importWizards</H3>
-<P >
-You can add a wizard to the <b> File &gt; Import</b> menu option in the workbench using the
-<a href="../reference/extension-points/org_eclipse_ui_importWizards.html"> <b> org.eclipse.ui.importWizards</b></a> extension point. The process for defining the extension and implementing the wizard is similar to
-<b><a href="../reference/extension-points/org_eclipse_ui_newWizards.html">org.eclipse.ui.newWizards</a></b>.&nbsp;
-The primary difference in the markup is that import wizards do not define or
-assign categories for the wizards themselves.&nbsp; The wizards appear
-uncategorized in a wizard dialog. </P>
-<P >
-<img src="images/importwizard.gif" alt="" border="0" width="470" height="550"> </P>
-<P >
-The wizard supplied in the class parameter of the markup must implement <a href="../reference/api/org/eclipse/ui/IImportWizard.html"><b>IImportWizard</b></a>.
-Its pages are typically extended from
-<a href="../reference/api/org/eclipse/ui/dialogs/WizardImportPage.html"> <b> WizardImportPage</b></a>.</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_multipage.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_multipage.htm
deleted file mode 100644
index 2521078..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_multipage.htm
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Multi-page wizards
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<h2>
-Multi-page wizards</h2>
-<P >
-If your wizard implements a complex task, you may want to use more than one page to obtain information from the user.</P>
-<P >
-In general, the implementation pattern is the same as for a single page wizard.</P>
-<ul>
-  <li>
-    
-Create a <a href="../reference/api/org/eclipse/jface/wizard/WizardPage.html"> <b> WizardPage</b></a> subclass for each page in your wizard. Each wizard page should use
-<b>setPageComplete(true)</b> when it has enough information.</li>
-  <li>
-    
-Create a <a href="../reference/api/org/eclipse/jface/wizard/Wizard.html"> <b> Wizard</b></a> subclass which adds each page to the wizard.</li>
-  <li>
-    
-Implement a <b> performFinish</b> method to perform the finish logic.</li>
-</ul>
-<P >
-When you design a wizard, it's good practice to put all the required information on the first page if possible. This way, the user does not have to traverse the entire set of pages in order to finish the task.&nbsp;
-Optional information can go on subsequent pages. </P>
-<P >
-When a page requires input from the user before it can be considered complete, use
-<b>setPageComplete(false)</b> to signify that it is not complete. As the page receives events from its controls, it rechecks to see if the page is complete. Once the required input is provided,
-<b>setPageComplete(true)</b> signals completion.</P>
-<P >
-The <a href="../reference/api/org/eclipse/jface/wizard/Wizard.html"> <b> Wizard</b></a> class handles the
-logic required to enable and disable the <b> Finish</b>  button according to the
-completion state of the pages.&nbsp; The
-<b> Finish</b> button is only enabled for a wizard when each of its pages have set its completion state to true.</P>
-
-<h3>
-Validation and page control</h3>
-<P >
-The classes <a href="../reference/api/org/eclipse/ui/dialogs/WizardNewFileCreationPage.html"> <b> WizardNewFileCreationPage</b></a> and
-<b> CreateReadme1</b> show a common pattern for implementing page validation.</P>
-<P >
-<a href="../reference/api/org/eclipse/ui/dialogs/WizardNewFileCreationPage.html">
-<b>
-WizardNewFileCreationPage</b></a> defines a common event handler for all SWT events which validates the page. This means the page will be validated whenever an event is received from a widget to which the page added a listener.</P>
-<font color='#4444CC'><pre>
-   public void handleEvent(Event event) {
-      setPageComplete(validatePage());
-   }
-</pre></font>
-<P >
-Once the <b>ReadmeCreationPage</b> creates its controls, it sets the state of the page using
-<b>validatePage</b>.</P>
-<font color='#4444CC'><pre>
-   public void createControl(Composite parent) {
-      super.createControl(parent);
-      // create controls, add listeners, and layout the page
-      ...
-      // sample section generation checkboxes
-      sectionCheckbox = new Button(group,SWT.CHECK);
-      sectionCheckbox.setText(MessageUtil.getString(&quot;Generate_sample_section_titles&quot;));
-      sectionCheckbox.setSelection(true);
-      sectionCheckbox.<b>addListener</b>(SWT.Selection,this);
-
-      subsectionCheckbox = new Button(group,SWT.CHECK);
-      subsectionCheckbox.setText(MessageUtil.getString(&quot;Generate_sample_subsection_titles&quot;));
-      subsectionCheckbox.setSelection(true);
-      subsectionCheckbox.<b>addListener</b>(SWT.Selection,this);
-      ...
-      <b>setPageComplete(validatePage());</b>
-   }
-</pre></font>
-<P >
-Using this pattern, a wizard page can put all of its page validation code in one method,
-<b>validatePage()</b>. This method determines the initial state of the page and recalculates the state any time it receives an event from a widget on its page.</P>
-<P >
-Since we added a listener to the section checkbox, we will recompute the valid state of the page whenever that checkbox receives a selection event.
-Note that the page's
-<b> handleEvent</b> method must call super to ensure that the
-inherited page validation behavior occurs in addition to any specific event handling for this
-page.</P>
-<font color='#4444CC'><pre>
-   public void handleEvent(Event e) {
-      Widget source = e.widget;
-      if (source == sectionCheckbox) {
-         if (!sectionCheckbox.getSelection())
-            subsectionCheckbox.setSelection(false);
-         subsectionCheckbox.setEnabled(sectionCheckbox.getSelection());
-      }
-      super.handleEvent(e);
-   }
-</pre></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_newWizards.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_newWizards.htm
deleted file mode 100644
index 51751ff..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_newWizards.htm
+++ /dev/null
@@ -1,215 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-org.eclipse.ui.newWizards
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-org.eclipse.ui.newWizards</H3>
-<P >
-You can add a wizard to the <b> File &gt; New &gt; </b>menu options in the workbench using the
-<a href="../reference/extension-points/org_eclipse_ui_newWizards.html"><b> org.eclipse.ui.newWizards</b></a> extension point. The readme
-tool example uses this extension point definition to add the Readme File wizard:</P>
-<font color='#4444CC'><pre>
-&lt;extension
-      point = &quot;org.eclipse.ui.newWizards&quot;&gt;
-	&lt;category
-	   id = &quot;org.eclipse.ui.examples.readmetool.new&quot;
-	   parentCategory=&quot;org.eclipse.ui.Examples&quot;
-	   name=&quot;%NewWizard.category&quot;&gt;
-	&lt;/category&gt;
- 	&lt;wizard
-	   id = &quot;org.eclipse.ui.examples.readmetool.wizards.new.file&quot;
-      	   name = &quot;%NewWizard.name&quot;
-	   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeCreationWizard&quot;
-	   category=&quot;org.eclipse.ui.Examples/org.eclipse.ui.examples.readmetool.new&quot;
-	   icon=&quot;icons/obj16/newreadme_wiz.gif&quot;&gt;
-    	   &lt;description&gt;%NewWizard.desc&lt;/description&gt;
-	   &lt;selection class=&quot;org.eclipse.core.resources.IResource&quot;/&gt;
-	&lt;/wizard&gt;
-&lt;/extension&gt;
-</pre></font>
-<P >The <b>category</b> describes the grouping for the wizard.&nbsp; An optional
-<b>parentCategory</b>  establishes the new category as a child of an existing
-category.&nbsp;&nbsp;
-<P > Top level categories will appear in the <b> File &gt; New </b>menu.&nbsp;
-In this example, the <b>parentCategory</b> is set to an &quot;Examples&quot;
-category.&nbsp; Where did the parent category come from?&nbsp; The <b>org.eclipse.ui
-</b>plug-in defines a standard examples category in its markup:<font color='#4444CC'><pre>&lt;extension
-        point=&quot;org.eclipse.ui.newWizards&quot;&gt;
-    &lt;category
-          name=&quot;%NewWizards.Category.Examples&quot;
-          id=&quot;org.eclipse.ui.Examples&quot;&gt;
-    &lt;/category&gt;
-    ...</font></pre>
-<P >This category appears in the <b> File &gt; New </b> menu.</P>
-<P >
-<img src="images/newwizardmenu.gif" alt="New menu with Examples category" border="0" width="139" height="251"></P>
-<P >
-&nbsp;</P>
-<P >
-The readme tool's category <b>name</b> 
- defines the label that is used for the next layer of grouping underneath the
-parent category.&nbsp; These categories are shown on the left hand side of the <b>New
-Example</b> wizard.&nbsp; The wizard's <b>name</b> and <b>icon</b> are shown
-on the right hand side of the wizard when you click on the category.&nbsp; The <b>description</b> 
-of the wizard is shown at the top of the wizard when you select it in the right
-hand list as shown below:</P>
-<P >
-<img src="images/newwizardlist.gif" alt="New example wizard with readme entries" border="0" width="500" height="500"></P>
-<P >
-This information about the wizard appears solely because of the markup in the <b>plugin.xml
-</b>file.&nbsp; None of the plug-in code runs
-until the user chooses the <b>Next</b> button.&nbsp; Once this happens, the
-workbench will instantiate the wizard <b>class</b>
-specified in the markup and pass it an expected selection <b>class</b>.</P>
-<P >
-The class identified in this extension (<b>ReadmeCreationWizard</b>) must
-implement the
-<a href="../reference/api/org/eclipse/ui/INewWizard.html"> <b> INewWizard</b></a> interface.&nbsp;
-Most wizards do so by extending the platform
-<a href="../reference/api/org/eclipse/jface/wizard/Wizard.html"> <b> Wizard</b></a> class
-although this is an implementation mechanism and not required by the extension
-point.</P>
-<P >
-The wizard itself does little but create the pages inside of it. Let's look at the implementation of the page first, and then come back to the wizard.</P>
-
-<H4>
-Pages</H4>
-<P >
-The workbench provides base wizard page classes that support the type of processing performed for each wizard extension point. You can use these pages, or extend them to add additional processing.</P>
-<P >
-The goal of the <b> ReadmeCreationWizard</b> is to create a new file, add the required content to the file, and as an option, open an editor on the file. Our page needs to define the controls that let the user specify what content goes in the file and whether an editor should be launched.</P>
-<P >
-We create the wizard page, <b>ReadmeCreationPage</b>, by extending
-<a href="../reference/api/org/eclipse/ui/dialogs/WizardNewFileCreationPage.html"><b>WizardNewFileCreationPage</b></a>. The controls for a wizard page are defined in a fashion
-similar to the definition of the controls for a view or an editor. The page implements a
-<b> createControl</b> method, creating the necessary SWT widgets as children of the supplied
-<a href="../reference/api/org/eclipse/swt/widgets/Composite.html"><b>Composite</b></a>. Since the superclass already adds widgets that support new file processing, we need only extend the
-<b> createControl</b> method in our wizard page to add the additional checkboxes that control generation of sections and opening of the editor.</P>
-<font color='#4444CC'><pre>
-   public void createControl(Composite parent) {
-      // inherit default container and name specification widgets
-      super.createControl(parent);
-      Composite composite = (Composite)getControl();
-      ...
-      // sample section generation group
-      Group group = new Group(composite,SWT.NONE);
-      group.setLayout(new GridLayout());
-      group.setText(MessageUtil.getString(&quot;Automatic_sample_section_generation&quot;));
-      group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL |
-         GridData.HORIZONTAL_ALIGN_FILL));
-      ...
-      // sample section generation checkboxes
-      sectionCheckbox = new Button(group,SWT.CHECK);
-      sectionCheckbox.setText(MessageUtil.getString(&quot;Generate_sample_section_titles&quot;));
-      sectionCheckbox.setSelection(true);
-      sectionCheckbox.addListener(SWT.Selection,this);
-
-      subsectionCheckbox = new Button(group,SWT.CHECK);
-      subsectionCheckbox.setText(MessageUtil.getString(&quot;Generate_sample_subsection_titles&quot;));
-      subsectionCheckbox.setSelection(true);
-      subsectionCheckbox.addListener(SWT.Selection,this);
-      ...
-      // open file for editing checkbox
-      openFileCheckbox = new Button(composite,SWT.CHECK);
-      openFileCheckbox.setText(MessageUtil.getString(&quot;Open_file_for_editing_when_done&quot;));
-      openFileCheckbox.setSelection(true);
-      ...
-   }
-</pre></font>
-<P >
-You should be able to follow this code if you understand the concepts in
-<a HREF="swt.htm" CLASS="XRef">Standard Widget Toolkit</a>.</P>
-<P >
-The basic patterns for implementing a page include:</P>
-<ul>
-  <li>
-    
-Add listeners to any controls that affect dynamic behavior of the page. For example, if selecting an item in a list or checking a box affects the state of other controls of the page, add a listener so you can change the state of the page.</li>
-  <li>
-    
-Populate the controls with data based on the current selection when the wizard was launched. Some of the data may depend on the values in other controls. Some of the controls may use dialog settings to initialize their
-values.&nbsp;&nbsp;</li>
-  <li>
-    
-Use <b>setPageComplete(true)</b> when enough information is provided by the user to exit the page (and move to the next page or finish the wizard.)</li>
-</ul>
-<P >
-The <b>ReadmeCreationPage</b> class inherits a lot of this behavior from the
-<a href="../reference/api/org/eclipse/ui/dialogs/WizardNewFileCreationPage.html"><b>WizardNewFileCreationPage</b></a>.&nbsp;
-Browse the implementation of these classes for further information.</P>
-<P >
-Now that we understand what a page does, let's look again at the wizard.</P>
-
-
-<H4>
-Wizard</H4>
-<P >
-The wizard is responsible for creating the pages and providing the &quot;finish&quot; logic.</P>
-<P >
-The basic patterns for implementing a wizard include:</P>
-<ul>
-  <li>
-    
-Implement the <b>init</b> method to set up local variables for context information such as the workbench and the current selection.</p></li>
-
-<font color='#4444CC'><pre>
-   public void init(IWorkbench workbench,IStructuredSelection selection) {
-      this.workbench = workbench;
-      this.selection = selection;
-      setWindowTitle(MessageUtil.getString(&quot;New_Readme_File&quot;));
-      setDefaultPageImageDescriptor(ReadmeImages.README_WIZARD_BANNER);
-   }
-</pre></font>
-  <li>
-    
-Implement <b> addPages</b> by creating instances of the pages.</p></li>
-
-<font color='#4444CC'><pre>
-   public void addPages() {
-      mainPage = new ReadmeCreationPage(workbench, selection);
-      addPage(mainPage);
-   }
-</pre></font>
-
-  <li>
-    
-Implement <b> performFinish</b> to finish the task.</li>
-
-
-  Multi-page wizards typically handle the finish logic in the wizard itself, since each page will contribute information that determines how the task is implemented. Single page wizards can implement the logic in the wizard or ask the page to finish the job.
-The approach you take largely depends on where your important state is kept.&nbsp;
-In the case of the readme wizard, we are going to ask our page to handle the finish processing.&nbsp;
-
-<font color='#4444CC'><pre>
-   public boolean performFinish() {
-      return mainPage.finish();
-   }
-</pre></font>
-</ul>
-<P >
-The completed wizard looks like this:</P>
-<P >
-<img src="images/readmewizard.gif" alt="Readme file creation wizard page" border="0" width="500" height="663"></P>
-
-
-
-<font color='#4444CC'><pre>
-    </pre></font>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_wizarddialogs.htm b/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_wizarddialogs.htm
deleted file mode 100644
index 7a58da6..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/dialogs_wizards_wizarddialogs.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Wizard dialogs
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<h2>
-Wizard dialogs</h2>
-<P >
-The previous example supplied a wizard for a specified extension point. Another, perhaps more common,
-case is that you want to launch your own plug-in's wizard from some action that you have defined. (In
-<a HREF="workbench_menus.htm" CLASS="XRef"> Workbench menu contributions</a>, we discuss the ways you can contribute actions to the workbench.) </P>
-<P >Wizards are displayed in the UI by placing them in a containing
-dialog.&nbsp; This detail is handled for you when you contribute to a wizard
-extension.&nbsp; When you are launching your own wizard, you must display it
-yourself by wrapping it in a <a href="../reference/api/org/eclipse/jface/wizard/WizardDialog.html"><b>WizardDialog</b></a>.</P>
-<P >
-For example, the <b> ReadmeCreationWizard</b> could be launched independently by creating a wizard dialog and associating it with the
-<b>ReadmeCreationWizard</b>. The following code snippet shows how this could be done from some action delegate. (The method assumes that we know the workbench and the selection.)</P>
-<font color='#4444CC'><pre>
-   public void run(IAction action) {
-      // Create the wizard
-      ReadmeCreationWizard wizard = new ReadmeCreationWizard();
-      wizard.init(getWorkbench(), selection);
-
-      // Create the wizard dialog
-      WizardDialog dialog = new WizardDialog
-         (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);
-      // Open the wizard dialog
-      dialog.open();
-   }</pre></font>
-   <p>If you need to embed a wizard anywhere else in your plug-in's user
-   interface, the interface <a href="../reference/api/org/eclipse/jface/wizard/IWizardContainer.html"><b>IWizardContainer</b></a>
-   defines the necessary protocol for hosting a wizard.</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors.htm
deleted file mode 100644
index 998e44a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Editors
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h1>Editors</h1>
-<P >
-We have seen how plug-ins can contribute an editor to the workbench, but we
-haven't yet looked at the implementation of an editor.</P>
-<P >There is no &quot;typical&quot; implementation pattern for an editor, because editors usually provide application-specific semantics.&nbsp;
-A tool that edits and manages a particular resource type will
-provide customized behavior for manipulating the data represented by the resource.</P>
-<P >Editors can come in all shapes and sizes.&nbsp; If a plug-in's editor is text-based, then the editor can either use the existing default text editor, or create a customized text editor
-by using the facilities provided in the platform.&nbsp; The latter approach is used by the
-Java example editor.</P>
-    <p >
-<img src="images/javaeditor.gif" alt="" border="0" width="508" height="345">
-    <p >
-If a plug-in's editor is not text based, then a custom editor must be implemented by the plug-in. There are several approaches for building
-custom editors, all of which depend on the look and behavior of the editor.
-<ul>
-  <li>
-    
-Form-based editors can layout controls in a fashion similar to a dialog or wizard.&nbsp;
-    The Plug-in Development Environment (PDE) uses this approach in building its
-    manifest editors.&nbsp;&nbsp;</li>
-  <li>
-    
-Graphics intensive editors can be written using SWT level code.&nbsp; For
-example, an editor could create its own SWT window for displaying the
-information, or it could use a custom SWT control that is optimized for the
-application.</li>
-  <li>
-    
-List-oriented editors can use JFace list, tree, and table viewers to manipulate
-their data.</li>
-</ul>
-<P >
-Once the implementation model for the editor has been determined, implementing the editor is much like programming a stand-alone JFace or SWT application.&nbsp;
-Platform extensions are used to add actions, preferences, and wizards needed to
-support the editor.&nbsp; But the internals of the editor are largely dependent
-on your application design principles and internal model.
-</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_actions.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_actions.htm
deleted file mode 100644
index 4cbf874..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_actions.htm
+++ /dev/null
@@ -1,159 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Registering editor actions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Registering editor actions</H2>
-<p>The text editor framework provides many utility classes that aid in presenting
-and updating text and source code.&nbsp; Now we will turn our attention to the workbench in
-which the editor is but one part.&nbsp; How does the editor interact with other
-workbench features such as context menus, menu bars, and tool bars?</p>
-
-<h3>Editor menu bar actions</h3>
-
-<p>To understand how editors register themselves with the workbench and provide
-actions for the workbench menu bar, see the section discussing <a href="workbench_basicext_editors.htm">org.eclipse.ui.editors</a>.&nbsp;
-We won't rehash that information here.&nbsp;&nbsp;We'll just take a quick look
-at the markup where the Java example editor registers its editor.</p>
-
-<pre><font color="#4444CC">&lt;extension
-      point=&quot;org.eclipse.ui.editors&quot;&gt;
-   &lt;editor
-         name=&quot;%javaEditorName&quot;
-         icon=&quot;icons/obj16/java.gif&quot;
-         extensions=&quot;jav&quot;
-         <b>contributorClass=&quot;org.eclipse.ui.examples.javaeditor.JavaActionContributor&quot;</b>
-         class=&quot;org.eclipse.ui.examples.javaeditor.JavaEditor&quot;
-         id=&quot;org.eclipse.ui.JavaEditor&quot;&gt;
-   &lt;/editor&gt;
-&lt;/extension&gt;</font></pre>
-
-<p>Workbench menu bar actions are contributed by the <b>JavaActionContributor</b>.&nbsp; 
-  It implements actions that are placed in the workbench <b>Edit</b> menu and 
-  the workbench tool bar.</p>
-
-<pre><font color="#4444CC">public JavaActionContributor() {
-	super();
-	fContentAssistProposal= <b>new RetargetTextEditorAction</b>(JavaEditorMessages.getResourceBundle(), &quot;ContentAssistProposal.&quot;); //$NON-NLS-1$
-	...
-	fContentAssistTip= new RetargetTextEditorAction(JavaEditorMessages.getResourceBundle(), &quot;ContentAssistTip.&quot;); //$NON-NLS-1$
-	...
-	fTogglePresentation= new PresentationAction();
-}</font></pre>
-<p>The first two actions are defined as retargetable text editor actions. The 
-  principle is similar to the <a href="wrkAdv_retarget.htm">retargetable actions</a> 
-  provided by the workbench. Retargetable text editor actions represent menu entries 
-  which the action contributor dynamically binds to corresponding actions provided 
-  by the active editor. When the active editor changes, the action to which a 
-  retargetable text editor action is bound changes as well. The following snippet 
-  shows that the editor action contributor finds the corresponding action by asking 
-  the editor for an action of a given id:</p>
-<pre><font color="#4444CC">protected final IAction getAction(ITextEditor editor, String actionId) {<br>	return (editor == null ? null : editor.getAction(actionId));<br>}
-
-public void setActiveEditor(IEditorPart part) {<br>	super.setActiveEditor(part);<br>	ITextEditor editor= null;<br>	if (part instanceof ITextEditor)<br>		editor= (ITextEditor) part;<br>	fContentAssistProposal.setAction(getAction(editor, &quot;ContentAssistProposal&quot;));<br>	fContentAssistTip.setAction(getAction(editor, &quot;ContentAssistTip&quot;));<br>	fTogglePresentation.setEditor(editor);<br>	fTogglePresentation.update();<br>}</font></pre>
-<p>The id must be the same under which the action is registered with the editor 
-  as given here for the <b>JavaTextEditor</b>. (See also next section.):<br>
-</p>
-<pre><font color="#4444CC">protected void createActions() {
-	super.createActions();
-		
-	IAction a= new TextOperationAction(JavaEditorMessages.getResourceBundle(), &quot;ContentAssistProposal.&quot;, this, ISourceViewer.CONTENTASSIST_PROPOSALS); //$NON-NLS-1$
-	<b>a.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);</b>
-	setAction(&quot;ContentAssistProposal&quot;, a); 
-		
-	a= new TextOperationAction(JavaEditorMessages.getResourceBundle(), &quot;ContentAssistTip.&quot;, this, ISourceViewer.CONTENTASSIST_CONTEXT_INFORMATION);  //$NON-NLS-1$
-	a.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_CONTEXT_INFORMATION);
-	setAction(&quot;ContentAssistTip&quot;, a); 
-}</font></pre>
-
-<p>The third action in the contributor is a concrete action added to the workbench 
-  tool bar.&nbsp; It toggles the state of the editor between showing the highlighted 
-  range (as dictated by the Java example's content outliner) and showing the entire 
-  file.&nbsp; This action only appears in the tool bar.</p>
-
-<h3>Editor context menus</h3>
-
-The editor context menus are created and managed in the <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>
- and <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a><b>
- </b>framework.
-<p>The method <b>createActions</b> is used to register actions with the editor.&nbsp; 
-  This includes actions appropriate for the editor context menus or any actions 
-  contributed in extension definitions.&nbsp; In the Java example editor, only 
-  the actions that get bound to the retargetable actions are created.&nbsp; However, 
-  the Java example editor also inherits the actions created by <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a> 
-  and its superclasses.&nbsp; These actions can be used in the editor context 
-  menus.</p>
-<p>The <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a><b>
-</b>method <b>editorContextMenuAboutToShow</b> is used in the framework to allow
-editors to add actions to the context menu for the editing area.&nbsp; You can
-use a menu path to decide exactly where your action should appear.&nbsp; Valid
-menu paths inside the editor context menu are defined in the implementation of
-this method in <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>.</p>
-<p>There are several ways to add an action to this menu.&nbsp; The first way is 
-  by adding an action using only the id under which it is registered with the 
-  editor.&nbsp; For example, the <b>JavaTextEditor</b> adds its actions for content 
-  assistance to the menu when this method is called.&nbsp; Actions will not appear 
-  in the menu when no action is registered under the used id.</p>
-<pre><font color="#4444CC">public void editorContextMenuAboutToShow(MenuManager menu) {
-	super.editorContextMenuAboutToShow(menu);
-	addAction(menu, &quot;ContentAssistProposal&quot;); 
-	addAction(menu, &quot;ContentAssistTip&quot;); 
-}</font></pre>
-<p>The superclass <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a> 
-  adds actions a second way - by specifying a menu group in the context menu 
-  for placing the action.&nbsp; In this case the actions (<b>Shift Left</b>, <b>Shift 
-  Right</b>) do appear in the context menu in the group defined by <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>.</p>
-<pre><font color="#4444CC">protected void editorContextMenuAboutToShow(IMenuManager menu) {
-	super.editorContextMenuAboutToShow(menu);
-	addAction(menu, ITextEditorActionConstants.GROUP_EDIT, ITextEditorActionConstants.SHIFT_RIGHT);
-	addAction(menu, ITextEditorActionConstants.GROUP_EDIT, ITextEditorActionConstants.SHIFT_LEFT);
-}</font></pre>
-<p><img src="images/javaeditorcontextmenu.gif" alt="" border="0"> </p>
-<p>The method <b>rulerContextMenuAboutToShow</b>  is used in the same way before
-the ruler's context menu is shown.&nbsp; The implementation of this method in <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>
-defines the groups in which items can be added to the menu. </p>
-<h3>Menu ids </h3>
-<p>The editor context and ruler context menus can be assigned ids so that other
-plug-ins can contribute to these menus in their extensions.&nbsp; The scheme for
-establishing menu ids is more flexible since the original version of the
-platform.&nbsp; However, the framework can run in a compatibility mode in order
-to remain compatible with plug-ins developed for the original version.&nbsp; You
-can use <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a><b>.setCompatibilityMode()</b>
-to control this behavior.&nbsp; The default setting is true. </p>
-
-<h4>1.0 compatible menu ids </h4>
-<p>When the compatibility mode is true, the ids of the editor and ruler context 
-  menus can be set using <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a> 
-  protocol.&nbsp; The methods <b>setEditorContextMenuId</b> and <b>setRulerContextMenuId</b> 
-  can be used for this purpose.&nbsp; Resetting the ids can be useful if you want 
-  to prevent inheriting menus that were contributed to superclass menus.&nbsp; 
-  For example, the <b>JavaTextEditor</b> in the example resets its context menu 
-  ids to be Java specific in order to prevent inheriting any generic text contributions 
-  from other plug-ins. </p>
-<pre><font color="#4444CC">protected void initializeEditor() {
-	super.initializeEditor();
-	JavaEditorEnvironment.connect(this);
-	setSourceViewerConfiguration(new JavaSourceViewerConfiguration());
-	<b>setEditorContextMenuId(&quot;#JavaEditorContext&quot;); 
-	setRulerContextMenuId(&quot;#JavaRulerContext&quot;); </b>
-}</font></pre>
-<p><font color="#4444CC"><font color="#000000">If no id is set anywhere in the 
-  concrete hierarchy, the default ids defined by <b><a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html">AbstractTextEditor</a></b> 
-  </font></font><font color="#000000">will be used. </font></p>
-<h4>1.0 non-compatible menu ids </h4>
-<p>The editor context menu id is always <code>&lt;editor id&gt;.EditorContext</code>, 
-  where <code>&lt;editor id&gt;</code> is the id of the editor . The id of an 
-  editor is defined in the xml declaration of the editor. The ruler context menu 
-  id is always <code>&lt;editor id&gt;.RulerContext</code>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_annotations.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_annotations.htm
deleted file mode 100644
index 25a9f85..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_annotations.htm
+++ /dev/null
@@ -1,207 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Source viewers and annotations
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Source viewers and annotations</H2>
-The platform text framework provides user interface classes that implement a
-rich presentation of an editor's document.&nbsp;&nbsp;&nbsp;
-<p>The editor and its corresponding text viewer are largely responsible for the
-implementation of the document's presentation and configuration of any needed
-helper classes.&nbsp; (See <a href="jface_viewers.htm">Viewers</a> if you are not familiar with the
-concept of a viewer.)&nbsp;&nbsp;</p>
-<p>A <b><a href="../reference/api/org/eclipse/jface/text/TextViewer.html">TextViewer</a></b>
-handles all of the low level details of mapping the document model and its
-partitions into the colored and formatted text that a user sees.&nbsp; For source code style editors, a <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b>
-is provided.&nbsp; A source viewer introduces the notion of source code
-annotations.&nbsp; These annotations can be shown in a vertical ruler on the left side of
-the text, an overview ruler on the right side of the text,&nbsp;or as colored
-squigglies underneath text.</p>
-<p><b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b>
-and its helper classes are used
-throughout the <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>
-hierarchy.&nbsp; The package <b><a href="../reference/api/org/eclipse/jface/text/source/package-summary.html">org.eclipse.jface.text.source</a></b>
- defines this viewer and the other classes supporting annotation presentation.</p>
-<h3>Annotations and rulers</h3>
-<p>We saw earlier that a document provider provides a model for its document's annotations, <a href="../reference/api/org/eclipse/jface/text/source/IAnnotationModel.html"><b>IAnnotationModel</b></a>
-in addition to the document itself.&nbsp; This annotation model holds the annotations,
-enumerates them on request, and listens for text
-changes in order to keep the annotations up to date with the text.&nbsp;&nbsp;The <b>JavaDocumentProvider</b>
-inherits the behavior defined in <b><a href="../reference/api/org/eclipse/ui/editors/text/FileDocumentProvider.html">FileDocumentProvider</a></b>
-and thus its annotation model.</p>
-
-<pre><font color="#4444CC">protected IAnnotationModel createAnnotationModel(Object element) throws CoreException {
-	if (element instanceof IFileEditorInput) {
-		IFileEditorInput input= (IFileEditorInput) element;
-		<b>return new ResourceMarkerAnnotationModel(input.getFile()</b>);
-	}
-	return super.createAnnotationModel(element);
-}</font></pre>
-<p><b><a href="../reference/api/org/eclipse/ui/texteditor/ResourceMarkerAnnotationModel.html">ResourceMarkerAnnotationModel</a></b>
- defines a model for annotations that represent a marker on a resource in the
-workspace.&nbsp; (See <a href="resAdv_markers.htm">Resource markers</a> for more
-information on markers.)&nbsp; It assigns an image and description to each marker and monitors its resource for changes in the markers.</p>
-<p>To see how an annotation model is displayed in a text editor, we'll examine
-the platform text editor and its use of rulers and annotations.&nbsp; The
-specifics of how different annotations are shown in the rulers and text can be
-controlled by the user in the <b>Workbench &gt; Editors &gt; Text Editor</b>
-preferences on the <b>Annotations</b> tab.</p>
-<h4>Vertical ruler</h4>
-<p>A vertical ruler to the left of the editing area is used by platform text
-editors to show text ranges and line-based annotations adjacent to their text line.</p>
-
-<p><img src="images/javaeditorverticalruler.gif" alt="" border="0" width="450" height="208"></p>
-
-<p>These annotations are described in the supplied <b><a href="../reference/api/org/eclipse/ui/texteditor/ResourceMarkerAnnotationModel.html">ResourceMarkerAnnotationModel</a></b>.&nbsp; 
-  This model is set into the <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b> 
-  when the source viewer is initialized by the editor.&nbsp; The following snippet 
-  from <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a> 
-  <b> </b>shows how the document and the annotation model are associated with 
-  the viewer.</p>
-
-<pre><font color="#4444CC">private void initializeSourceViewer(IEditorInput input) {
-		
-	IAnnotationModel model= getDocumentProvider().getAnnotationModel(input);
-	IDocument document= getDocumentProvider().getDocument(input);
-		
-	if (document != null) {
-		<b>fSourceViewer.setDocument(document, model)</b>;
-		...</font></pre>
-<p>Once the source viewer is configured with the proper document and annotation
-model, it has enough information to present the document and ensure the correct
-annotations are shown in the vertical ruler to the left.&nbsp; The model is
-associated with the ruler when the document is set.&nbsp; The following snippet
-shows what happens when a document is set into the source viewer.&nbsp; It has
-been simplified from the actual code in <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b>
-for clarity:</p>
-
-<pre><font color="#4444CC">public void setDocument(IDocument document, IAnnotationModel annotationModel) {
-	...
-	// create visual annotation model from the supplied model and store 
-	// in fVisualAnnotationModel
-	...
-	if (fVerticalRuler != null)
-		<b>fVerticalRuler.setModel(fVisualAnnotationModel)</b>;
-</font></pre>
-
-<p>In this way, the ruler is associated with the appropriate annotation
-model.&nbsp;&nbsp;</p>
-
-<p>Let's look at the ruler itself.&nbsp; It is created by the text editor and 
-  then connected with the editor's viewer.&nbsp; Since the Java editor example 
-  does not define any special behavior for rulers, it inherits the ruler as defined 
-  in <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a>.</p>
-
-<pre><font color="#4444CC">protected IVerticalRuler createVerticalRuler() {
-	CompositeRuler ruler= new CompositeRuler();
-	ruler.addDecorator(0, new AnnotationRulerColumn(VERTICAL_RULER_WIDTH));
-	if (isLineNumberRulerVisible())
-		ruler.addDecorator(1, createLineNumberRulerColumn());
-	return ruler;
-}</font></pre>
-<p>The text editor uses a CompositeRuler. This ruler does not have a visual presentation 
-  of its own.&nbsp; The presentation is provided by a list of decorators that 
-  show columns (<b><a href="../reference/api/org/eclipse/jface/text/source/IVerticalRulerColumn.html">IVerticalRulerColumn</a></b>) 
-  in the ruler.&nbsp; In this example, a ruler column that shows annotations (<b><a href="../reference/api/org/eclipse/jface/text/source/AnnotationRulerColumn.html">AnnotationRulerColumn</a></b>) 
-  is always added, and a line number ruler column is added based on user preferences. 
-  The annotation ruler column handles the particulars of displaying the annotation 
-  images in the proper locations.</p>
-<p>Despite all the classes involved in showing a ruler, note that the example
-editor needed only to subclass framework classes to get ruler
-behavior.&nbsp;&nbsp; <b>JavaDocumentProvider</b>&nbsp;inherits an appropriate
-marker annotation model from <b><a href="../reference/api/org/eclipse/ui/editors/text/FileDocumentProvider.html">FileDocumentProvider</a></b>.&nbsp;
-The JavaTextEditor inherits the ruler presentation from <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a>.</p>
-<h4>Overview ruler</h4>
-<p>An overview ruler on the right hand side of the editing area is used to show 
-  annotations concerning the entire document.&nbsp; These annotations are shown 
-  relative to their position in the document and do not move as the user scrolls 
-  the document.&nbsp;&nbsp;There usually is a corresponding annotation on the 
-  vertical ruler when that portion of the document is visible.&nbsp;&nbsp;</p>
-<p>The vertical ruler below shows that there are two tasks in the document and
-one bookmark.&nbsp; Since the bookmarked text is visible, its annotation is also
-shown on the left.</p>
-<p><img src="images/javaeditoroverviewruler.gif" alt="Vertical rule in Java Editor" border="0" width="506" height="118"></p>
-<p>The user can navigate to the location of the annotation in the code by
-clicking on the annotation itself.</p>
-<p>The types of annotations shown in the overview ruler are determined by adding 
-  annotation types to the ruler.&nbsp; In the following snippet from <a href="../reference/api/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.html"><b>SourceViewerDecorationSupport</b></a>, 
-  annotation types are dynamically added to the ruler. (See next section for more 
-  information about <a href="../reference/api/org/eclipse/jface/text/IDocumentPartitioner.html"><b>SourceViewerDecorationSupport</b></a>.)</p>
-
-<pre><font color="#4444CC">private void showAnnotationOverview(Object annotationType) {<br>	if (fOverviewRuler != null) {
-		Color c= getAnnotationTypeColor(annotationType);<br>		fOverviewRuler.setAnnotationTypeColor(annotationType, c);
-		int l= getAnnotationTypeLayer(annotationType);<br>		fOverviewRuler.setAnnotationTypeLayer(annotationType, l);<br>		fOverviewRuler.addAnnotationType(annotationType);<br>		fOverviewRuler.update();<br>	}
-}</font></pre>
-<p>The overview ruler is also supplied with an <b><a href="../reference/api/org/eclipse/jface/text/source/IVerticalRulerColumn.html">IAnnotationAccess</a></b>
-that is used to provide information about a particular annotation, such as its
-type and how it is to be displayed.&nbsp; The <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a>
-uses a <a href="../reference/api/org/eclipse/ui/texteditor/DefaultMarkerAnnotationAccess.html"><b>DefaultMarkerAnnotationAccess</b></a>
-which interprets annotations according to their marker types and consults the
-user preferences to see which marker types should be shown in the overview
-ruler. </p>
-
-<pre><font color="#4444CC">protected IAnnotationAccess createAnnotationAccess() {
-	return new DefaultMarkerAnnotationAccess(fAnnotationPreferences);
-}</font></pre>
-<p>Consult the implementation of <a href="../reference/api/org/eclipse/ui/texteditor/DefaultMarkerAnnotationAccess.html"><b>DefaultMarkerAnnotationAccess</b></a>
-and <a href="../reference/api/org/eclipse/ui/texteditor/MarkerAnnotation.html"><b>MarkerAnnotation</b></a><b>
-</b>for more detail about presenting markers in the overview ruler. </p>
-<h4>Text annotations </h4>
-<p>In addition to showing annotations in the rulers, a source viewer can show
-annotations as colored squiggly marks in the text.&nbsp;&nbsp;</p>
-<p><img src="images/javaeditorsquiggly.gif" alt="Squiggly mark in Java Editor" border="0" width="507" height="164"></p>
-<p>We'll look again at the creation of the source viewer in <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a>.</p>
-
-<pre><font color="#4444CC">protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
-		
-	... 
-	ISourceViewer sourceViewer= new SourceViewer(parent, ruler, fOverviewRuler, isOverviewRulerVisible(), styles);
-	<b>fSourceViewerDecorationSupport= new SourceViewerDecorationSupport(sourceViewer, fOverviewRuler, fAnnotationAccess, sharedColors);
-	configureSourceViewerDecorationSupport();</b>
-		
-	return sourceViewer;
-}</font></pre>
-<p>The class <a href="../reference/api/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.html"><b>SourceViewerDecorationSupport</b></a><b>
-</b>handles many of the decorations shown in a source viewer, including text
-annotations, colored margins, colored cursor lines, and the like.&nbsp; It is
-configured with the user preferences so that it can respond to dynamic updates
-of user preference changes.&nbsp; Most editors need not be concerned with the
-details of how these decorations are painted.&nbsp; (See <a href="../reference/api/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.html"><b>SourceViewerDecorationSupport</b></a><b>
-</b>and related classes such as <a href="../reference/api/org/eclipse/jface/text/source/AnnotationPainter.html"><b>AnnotationPainter</b></a>
-if you must!).&nbsp; The important thing to know is what decorations are
-available so that the <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b>
-and its supporting <a href="../reference/api/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.html"><b>SourceViewerDecorationSupport</b></a>
-are configured correctly.</p>
-<h4>Configuring a SourceViewerDecorationSupport</h4>
-<p>Let's look at the configuration used by <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a><b>
-</b>for the decoration support.</p>
-
-<pre><font color="#4444CC">protected void configureSourceViewerDecorationSupport() {
-
-	<b>Iterator e= fAnnotationPreferences.getAnnotationPreferences().iterator();
-	while (e.hasNext())
-		fSourceViewerDecorationSupport.setAnnotationPreference((AnnotationPreference) e.next());</b>
-	fSourceViewerDecorationSupport.setAnnotationPainterPreferenceKeys(DefaultMarkerAnnotationAccess.UNKNOWN, UNKNOWN_INDICATION_COLOR, UNKNOWN_INDICATION, UNKNOWN_INDICATION_IN_OVERVIEW_RULER, 0);
-		
-	fSourceViewerDecorationSupport.setCursorLinePainterPreferenceKeys(CURRENT_LINE, CURRENT_LINE_COLOR);
-	fSourceViewerDecorationSupport.setMarginPainterPreferenceKeys(PRINT_MARGIN, PRINT_MARGIN_COLOR, PRINT_MARGIN_COLUMN);
-	fSourceViewerDecorationSupport.setSymbolicFontName(getFontPropertyPreferenceKey());
-}</font></pre>
-<p>Note that the annotation preferences are used to define annotation types for 
-  all of the annotations shown in the user preferences.&nbsp; This includes annotations 
-  contributed by any plug-in and is not limited to the workbench-supplied annotations.&nbsp; 
-  If you do not wish to show all available annotations in your editor, you should 
-  override this method and set up the <a href="../reference/api/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.html"><b>SourceViewerDecorationSupport</b></a><b> 
-  </b>with only those types you want to show.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_contentassist.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_contentassist.htm
deleted file mode 100644
index b5f64d8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_contentassist.htm
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Content assist
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Content assist</H2>
-<p>Content assist allows you to provide context sensitive content completion upon 
-  user request.&nbsp; This functionality is implemented by the platform text framework 
-  in <b><a href="../reference/api/org/eclipse/jface/text/contentassist/package-summary.html">org.eclipse.jface.text.contentassist</a></b>.&nbsp; 
-  Popup windows (infopops) are used to propose possible text choices to complete 
-  a phrase.&nbsp; The user can select these choices for insertion in the text.&nbsp; 
-  Content assist also supports contextual infopops for providing the user with 
-  information that is related to the current position in the document.&nbsp;</p>
-<p>Implementing content assist is
-optional.&nbsp; By default, <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a>
-</b>does not install a content assistant since it does not know the
-document model used for a particular editor, and has no generic behavior for
-content assist.&nbsp;</p>
-<p>In order to implement content assist, your editor's source
-viewer configuration must be <a href="editors_sourceviewers.htm">configured</a>
-to define a content assistant.&nbsp; This is done in the Java editor example
-inside the <b>JavaSourceViewerConfiguration</b>.</p>
-
-<pre><font color="#4444CC">public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
-
-	ContentAssistant assistant= new ContentAssistant();
-<b>	assistant.setContentAssistProcessor(new JavaCompletionProcessor(), IDocument.DEFAULT_CONTENT_TYPE);
-	assistant.setContentAssistProcessor(new JavaDocCompletionProcessor(), JavaPartitionScanner.JAVA_DOC);
-</b>
-	...
-	return assistant;
-}</font></pre>
-<p>Content assist behavior is defined in the interface <a href="../reference/api/org/eclipse/jface/text/contentassist/IContentAssistant.html"><b>IContentAssistant</b></a>.&nbsp;
-Setting up a content assistant is somewhat similar to setting up syntax
-highlighting.&nbsp; The assistant should be configured with different phrase completion strategies for different
-document content types.&nbsp; The completion strategies are implemented
-using&nbsp; <a href="../reference/api/org/eclipse/jface/text/contentassist/IContentAssistant.html"><b>IContentAssistProcessor</b></a>.&nbsp;
-A processor proposes completions and computes context information for an offset
-within particular content type.</p>
-<h3>Content assist processors</h3>
-<p>Not all content types need to have content assistance.&nbsp; In the Java example 
-  editor, content assist processors are provided for the default content type 
-  and javadoc, but not for multi-line comments.&nbsp; Let's look at each of these 
-  processors.</p>
-<p>The <b>JavaCompletionProcessor</b> is quite simple.&nbsp; It can only propose
-keywords as completion candidates.&nbsp; The keywords are defined in a field,
-<code>fgProposals</code>, and these keywords are always proposed as the
-candidates:</p>
-
-<pre><font color="#4444CC">public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
-	ICompletionProposal[] result= new ICompletionProposal[fgProposals.length];
-	for (int i= 0; i &lt; fgProposals.length; i++) {
-		IContextInformation info= new ContextInformation(fgProposals[i], MessageFormat.format(JavaEditorMessages.getString(&quot;CompletionProcessor.Proposal.ContextInfo.pattern&quot;), new Object[] { fgProposals[i] })); //$NON-NLS-1$
-		result[i]= new CompletionProposal(fgProposals[i], documentOffset, 0, fgProposals[i].length(), null, fgProposals[i], info, MessageFormat.format(JavaEditorMessages.getString(&quot;CompletionProcessor.Proposal.hoverinfo.pattern&quot;), new Object[] { fgProposals[i]})); //$NON-NLS-1$
-	}
-	return result;
-}</font></pre>
-<p><img src="images/javacontentassist.gif" alt="" border="0" width="437" height="249"></p>
-
-<p>Completion can be triggered by user request or can be automatically triggered
-when the &quot;(&quot; or &quot;.&quot; character is typed:</p>
-
-<pre><font color="#4444CC">public char[] getCompletionProposalAutoActivationCharacters() {
-	return new char[] { '.', '(' };
-}</font></pre>
-<p>In addition to proposing completions, the <b>JavaCompletionProcessor</b> 
-defines context information that can be requested by the user.&nbsp; Context
-information includes a description of the pieces of information available in a
-given context and the detailed information message.&nbsp;&nbsp;</p>
-<p>In the Java editor example, the information is not really contextual.&nbsp; 
-  An array containing five similar context information objects is computed for the 
-  current offset when the user requests context info.&nbsp;All of these context 
-  information objects define a context that contains the five characters in front 
-  of the offset and the five after the offset. If any one of these five proposals is 
-  selected, the detailed information will appear near the cursor and will stay 
-  as long as the cursor is within the context of the five characters around the offset. 
-</p>
-
-<pre><font color="#4444CC">public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset) {
-	IContextInformation[] result= new IContextInformation[5];
-	for (int i= 0; i &lt; result.length; i++)
-		result[i]= new ContextInformation(
-			MessageFormat.format(JavaEditorMessages.getString(&quot;CompletionProcessor.ContextInfo.display.pattern&quot;), new Object[] { new Integer(i), new Integer(documentOffset) }),
-			MessageFormat.format(JavaEditorMessages.getString(&quot;CompletionProcessor.ContextInfo.value.pattern&quot;), new Object[] { new Integer(i), new Integer(documentOffset - 5), new Integer(documentOffset + 5)}));
-	return result;
-}</font></pre>
-<p><img src="images/javacontextassist.gif" alt="" border="0" width="438" height="227"></p>
-<p>&nbsp;</p>
-<p>This context information is shown automatically when the &quot;#&quot; character 
-  is typed:</p>
-<pre><font color="#4444CC">public char[] getContextInformationAutoActivationCharacters() {
-	return new char[] { '#' };
-}</font></pre>
-<h3>Content assist configuration</h3>
-<p>The appearance and behavior of content assist can be configured using <a href="../reference/api/org/eclipse/jface/text/contentassist/IContentAssistant.html"><b>IContentAssistant</b></a>.&nbsp;
-For example, you can configure the auto activation time out, and the orientation
-and color of information popups.</p>
-
-<pre><font color="#4444CC">public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
-
-	ContentAssistant assistant= new ContentAssistant();
-<b>	</b>...
-	assistant.enableAutoActivation(true);
-	assistant.setAutoActivationDelay(500);
-	assistant.setProposalPopupOrientation(IContentAssistant.PROPOSAL_OVERLAY);
-	assistant.setContextInformationPopupOrientation(IContentAssistant.CONTEXT_INFO_ABOVE);
-	assistant.setContextInformationPopupBackground(JavaEditorEnvironment.getJavaColorProvider().getColor(new RGB(150, 150, 0)));
-
-	return assistant;
-}</font></pre>
-<p>&nbsp;</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_documents.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_documents.htm
deleted file mode 100644
index f6393a0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_documents.htm
+++ /dev/null
@@ -1,146 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Documents and partitions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Documents and partitions</H2>
-<p>The platform text framework defines a document model for text and provides 
-  a viewer that displays text using this model.&nbsp;We will start by looking 
-  at the Java editor example and how it uses this model.&nbsp; We will not focus 
-  on the basic mechanics of registering an editor extension, since we've already 
-  seen this in the section discussing <a href="workbench_basicext_editors.htm"><b>org.eclipse.ui.editors</b></a>.&nbsp; 
-  Instead, we'll look at the specifics of how the editor class is implemented 
-  in the example.</p>
-<h3>Document providers and documents</h3>
-<p>In the workbench, an editor is typically opened when the user selects a domain 
-  element (such as a file or an element stored inside an archive file) and opens 
-  it.&nbsp; When the editor is created, it is associated with an editor input 
-  (<a href="../reference/api/org/eclipse/ui/IEditorInput.html"><b>IEditorInput</b></a>), 
-  which describes the object being edited.</p>
-<p>The Java editor example opens when the user opens a file with the &quot;*.jav&quot; 
-  extension.&nbsp; In this case, the input to the editor is an <a href="../reference/api/org/eclipse/ui/IFileEditorInput.html"><b>IFileEditorInput</b></a>.&nbsp; 
-  The platform text framework assumes little about the editor input itself.&nbsp; 
-  It works with a presentation model, called an <a href="../reference/api/org/eclipse/jface/text/IDocument.html"><b>IDocument</b></a>, 
-  for the input, so that it can effectively display and manipulate text.</p>
-<p>This means that there must be a way to map from an expected domain model (the 
-  editor input) to the presentation model.&nbsp; This mapping is defined in an 
-  <a href="../reference/api/org/eclipse/jface/text/IDocument.html"><b>IDocumentProvider</b></a>.&nbsp; 
-  Given an editor input, the document provider returns an appropriate <a href="../reference/api/org/eclipse/jface/text/IDocument.html"><b>IDocument</b></a>.</p>
-<p>The Java editor example defines a <b>JavaDocumentProvider</b> which returns 
-  the appropriate document.&nbsp; How is the relationship between the appropriate 
-  document provider and the &quot;*.jav&quot; extension established?&nbsp;It's 
-  done in the <b><a href="../reference/extension-points/org_eclipse_ui_editors_documentProviders.html">org.eclipse.ui.editors.documentProviders</a></b> 
-  extension.&nbsp; This extension is used to define mappings between file types 
-  and document providers.&nbsp; The example defines its document provider as follows:</p>
-<font SIZE="2">
-<pre><font color="#4444CC">&lt;extension
-      point=&quot;org.eclipse.ui.editors.documentProviders&quot;&gt;
-   &lt;provider
-         extensions=&quot;jav&quot;
-         class=&quot;org.eclipse.ui.examples.javaeditor.JavaDocumentProvider&quot;
-         id=&quot;org.eclipse.ui.examples.javaeditor.JavaDocumentProvider&quot;&gt;
-   &lt;/provider&gt;
-&lt;/extension&gt;</font></pre>
-</font>
-<p>When the user opens a file with the specified extension, the workbench manages 
-  the details of creating the document provider instance.&nbsp; The workbench 
-  creates a document provider instance only once and shares this instance among 
-  different editors.</p>
-<p>It is not required that your plug-in use this extension point to register its 
-  document provider. Another way to associate a document provider with an editor 
-  is to let your plug-in itself manage the document provider.&nbsp; This is usually 
-  done in your plug-in class.&nbsp; When an input element is set into your editor, 
-  the editor asks its plug-in class for the appropriate document provider.&nbsp; 
-  The plug-in can manage the creation and the references to the document provider.&nbsp; 
-  This technique may be preferable when there is special initialization or other 
-  processing involved with the document provider.&nbsp; See <b>ClassFileEditor</b> 
-  in the JDT tooling for an example.&nbsp;</p>
-<p>Once the proper document provider is associated with an editor, its main task 
-  is to create a document from the editor input and configure an appropriate object 
-  for dividing the document up into partitions.&nbsp;&nbsp;</p>
-<h4>Partitions</h4>
-<p>Let's look at documents and partitions in the <b>JavaDocumentProvider</b>.&nbsp;
-When a document is created, an <a href="../reference/api/org/eclipse/jface/text/IDocumentPartitioner.html"><b>IDocumentPartitioner</b></a>
-is created and set into the document.&nbsp;&nbsp;</p>
-<pre><font color="#4444CC">protected IDocument createDocument(Object element) throws CoreException {
-	IDocument document= super.createDocument(element);
-	if (document != null) {
-		<b>IDocumentPartitioner partitioner= createJavaPartitioner();
-		document.setDocumentPartitioner(partitioner);</b>
-		partitioner.connect(document);
-	}
-	return document;
-}</font></pre>
-<p>The partitioner is responsible for dividing the document into non-overlapping 
-  regions called partitions.&nbsp; Partitions (represented at <a href="../reference/api/org/eclipse/jface/text/IDocumentPartitioner.html"><b>ITypedRegion</b></a>) 
-  are useful for treating different sections of the document differently with 
-  respect to features like syntax highlighting or formatting.</p>
-<p> In the case of the Java editor
-example, the document is divided into partitions that represent the javadoc
-comments, multi line comments, and everything else.&nbsp; Each region is assigned a
-content type and its position in the document.&nbsp; Positions are updated as the user edits text.&nbsp;&nbsp;&nbsp;</p>
-<h4>Rule based document partitioning</h4>
-<p>It is up to each editor to determine the appropriate implementation for a
-document partitioner.&nbsp; Support is provided in <b><a href="../reference/api/org/eclipse/jface/text/rules/package-summary.html">org.eclipse.jface.text.rules</a></b>
- for rule-based document scanning.&nbsp; Using a rule-based scanner allows an editor to use
-the <a href="../reference/api/org/eclipse/jface/text/rules/DefaultPartitioner.html"><b>DefaultPartitioner</b></a>
-provided by the framework.<pre><font color="#4444CC">private IDocumentPartitioner createJavaPartitioner() {
-	return new <b>DefaultPartitioner(getJavaPartitionScanner(), TYPES)</b>;
-}</font></pre>
-<p><a href="../reference/api/org/eclipse/jface/text/rules/RuleBasedPartitionScanner.html"><b>RuleBasedPartitionScanner</b></a><b>
-</b>is the superclass for rule based scanners.&nbsp; Subclasses are responsible
-for enumerating and implementing the rules that should be used to distinguish
-tokens such as line delimiters, white space, and generic
-    patterns when scanning a document.&nbsp; The example's <b>JavaPartitionScanner</b>
-defines rules for distinguishing single line comments, character constants, javadoc, multi
-line comments, and&nbsp;words.&nbsp; This is done in the scanner's constructor:
-<pre><font color="#4444CC">public JavaPartitionScanner() {
-	super();
-	IToken javaDoc= new Token(JAVA_DOC);
-	IToken comment= new Token(JAVA_MULTILINE_COMMENT);
-
-	List rules= new ArrayList();
-	// Add rule for single line comments.
-	rules.add(new EndOfLineRule(&quot;//&quot;, Token.UNDEFINED)); 
-
-	// Add rule for strings and character constants.
-	rules.add(new SingleLineRule(&quot;\&quot;&quot;, &quot;\&quot;&quot;, Token.UNDEFINED, '\\')); 
-	rules.add(new SingleLineRule(&quot;'&quot;, &quot;'&quot;, Token.UNDEFINED, '\\')); 
-
-	// Add special case word rule.
-	rules.add(new WordPredicateRule(comment));
-
-	// Add rules for multi-line comments and javadoc.
-	rules.add(new MultiLineRule(&quot;/**&quot;, &quot;*/&quot;, javaDoc, (char) 0, true)); 
-	rules.add(new MultiLineRule(&quot;/*&quot;, &quot;*/&quot;, comment, (char) 0, true)); 
-
-	IPredicateRule[] result= new IPredicateRule[rules.size()];
-	rules.toArray(result);
-	setPredicateRules(result);
-}</font></pre>
-<p>See the classes in <b><a href="../reference/api/org/eclipse/jface/text/rules/package-summary.html">org.eclipse.jface.text.rules</a></b>
- for more details about defining rules and the types of rules availables.&nbsp;
-We'll look at the scanners again when we look at <a href="editors_highlighting.htm">syntax
-coloring</a>.</p>
-
-<h4>Annotation models</h4>
-
-<p>Besides providing an appropriate document for an editor input, another important 
-  task of a document provider is to supply an appropriate <a href="../reference/api/org/eclipse/jface/text/source/IAnnotationModel.html"><b>IAnnotationModel</b></a> 
-  to use with an editor input.&nbsp; This model is used to manage annotations 
-  attached to documents.&nbsp; By letting the document provider supply the model, 
-  your editor can use a model appropriate for the type of content.&nbsp; We'll 
-  look at annotations and how they are presented more closely in the next section.</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_highlighting.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_highlighting.htm
deleted file mode 100644
index ec5add6..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_highlighting.htm
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Syntax coloring
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Syntax coloring</H2>
-<p>Syntax coloring is provided in the platform text framework using a model of damage, repair, and reconciling.&nbsp;
-For
-    each change applied to a document, a presentation reconciler determines
-    which region of the visual presentation should be invalidated and how to
-    repair it.&nbsp; Different strategies can be used for different content
-types in the document.</p>
-<p>Implementing syntax coloring (and doing so with a presentation reconciler) is
-optional.&nbsp; By default, <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a>
-</b>does not install a presentation reconciler since it does not know the
-document model used for a particular editor, and has no generic behavior for
-syntax highlighting.&nbsp;&nbsp;</p>
-<p>In order to use the reconciling classes to implement syntax highlighting, your editor's source
-viewer configuration must be <a href="editors_sourceviewers.htm">configured</a>
-to define a presentation reconciler.&nbsp; Once again, we start with <b>JavaSourceViewerConfiguration</b>
- to see how a presentation reconciler is defined for our editor.</p>
-
-<pre><font color="#4444CC">public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
-
-	PresentationReconciler reconciler= new PresentationReconciler();
-	...
-	return reconciler;
-}</font></pre>
-<p>To understand what a presentation reconciler does, we must first look at the
-concepts of damage, repair, and reconciling.</p>
-<h3>Damage, repair, and reconciling</h3>
-<p>As the user modifies text in an editor, parts of the editor must be
-redisplayed to show the changes.&nbsp; Computing the text that must be
-redisplayed is known as computing <b>damage</b>.&nbsp; When syntax coloring is
-involved, the amount of damage caused by an editing operation becomes more
-extensive, since the presence or absence of a single character could change the
-coloring of the text around it.&nbsp;&nbsp;</p>
-<p>Damagers (<b><a href="../reference/api/org/eclipse/jface/text/presentation/IPresentationDamager.html">IPresentationDamager</a></b>)
-  determine the region of a document's presentation which must be rebuilt because 
-  of a document change. A presentation damager is assumed to be specific to a 
-  particular document content type (or region). It must be able to return a damage 
-  region that is valid input for a presentation repairer (<b><a href="../reference/api/org/eclipse/jface/text/presentation/IPresentationRepairer.html">IPresentationRepairer</a></b>).&nbsp; 
-  A repairer must be able to derive all of the information 
-  it needs from a damage region in order to successfully describe the <b>repairs</b> 
-  that are needed for a particular content type.</p>
-<p><b>Reconciling</b> describes the overall process of
-maintaining the presentation of a document as changes are made in the
-editor.&nbsp; A presentation reconciler (<b><a href="../reference/api/org/eclipse/jface/text/presentation/IPresentationRepairer.html">IPresentationReconciler</a></b>)
-monitors changes to the text through its associated viewer.&nbsp; It uses the
-document's regions to determine the content types affected by the change and
-notifies a damager that is appropriate for the affected content type.&nbsp; Once
-the damage is computed, it is passed to the appropriate repairer which will
-construct repair descriptions that are applied to the viewer to put it back in
-sync with the underlying content.&nbsp;</p>
-<p>The classes in <b><a href="../reference/api/org/eclipse/jface/text/presentation/reconciler/package-summary.html">org.eclipse.jface.text.reconciler</a></b>
- define additional support classes for synchronizing a document model with
-external manipulation of the document.</p>
-<p>Presentation reconcilers should be provided with a repairer and
-damager pair for each content type to be found in the document.&nbsp; It is up to each editor to determine the appropriate implementation for a
-presentation reconciler.&nbsp; However, the platform provides support in <b><a href="../reference/api/org/eclipse/jface/text/presentation/rules/package-summary.html">org.eclipse.jface.text.rules</a></b>
- for using rule-based document scanners to compute and repair damage.&nbsp;
-Default damagers and repairers are defined in this package.&nbsp; They can be
-used along with the standard reconcilers in <b><a href="../reference/api/org/eclipse/jface/text/presentation/package-summary.html">org.eclipse.jface.text.presentation</a></b>
-to implement syntax coloring by defining scanning rules for the document.</p>
-<h4>Rule based reconciling</h4>
-<p>Now we have enough background to look in detail at the creation of the
-example presentation
-reconciler.&nbsp; Recall that the Java editor example implements a <b>JavaPartitionScanner</b>
- which partitions the document into content types representing javadoc, multi
-line comments, and everything else.&nbsp;</p>
-<p>For each of these content types, a damager/repairer pair must be
-specified.&nbsp; This is done below using the <b><a href="../reference/api/org/eclipse/jface/text/presentation/PresentationReconciler.html">PresentationReconciler</a></b>
-and the <b><a href="../reference/api/org/eclipse/jface/text/rules/DefaultDamagerRepairer.html">DefaultDamagerRepairer</a></b>.</p>
-<pre><font color="#4444CC">	JavaColorProvider provider= JavaEditorEnvironment.getJavaColorProvider();
-	PresentationReconciler reconciler= new PresentationReconciler();
-		
-	DefaultDamagerRepairer dr= new DefaultDamagerRepairer(JavaEditorEnvironment.getJavaCodeScanner());
-	reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
-	reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
-
-	dr= new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(provider.getColor(JavaColorProvider.JAVADOC_DEFAULT))));
-	reconciler.setDamager(dr, JavaPartitionScanner.JAVA_DOC);
-	reconciler.setRepairer(dr, JavaPartitionScanner.JAVA_DOC);
-
-	dr= new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(provider.getColor(JavaColorProvider.MULTI_LINE_COMMENT))));
-	reconciler.setDamager(dr, JavaPartitionScanner.JAVA_MULTILINE_COMMENT);
-	reconciler.setRepairer(dr, JavaPartitionScanner.JAVA_MULTILINE_COMMENT);
-
-	return reconciler;</font><font color="#4444CC">
-</font></pre>
-<p> Note that the example provide scanners for each content type.&nbsp;&nbsp;</p>
-<p>The default content type is set up with a <b>JavaCodeScanner</b> so that
-keywords can be detected and colored.&nbsp; The <b>JavaCodeScanner</b> builds
-rules for detecting different kinds of tokens, such as single line comments,
-white space, and words.&nbsp; It describes the colors that should be used for
-words of different token types.&nbsp;&nbsp;&nbsp;</p>
-<p>The other content types are set up with a <b>SingleTokenScanner</b> and given
-a color to be used for tokens in these content types.</p>
-<p>All of the details for damaging and repairing the proper parts of the
-documents according to the scanning rules are handled by <b><a href="../reference/api/org/eclipse/jface/text/rules/DefaultDamagerRepairer.html">DefaultDamagerRepairer</a></b>.&nbsp;
-These details typically don't need to be understood by plug-in code.&nbsp; Your
-plug-in should focus on building a set of rules that are appropriate for
-partitioning and scanning its editor content.</p>
-<h4>Dynamically installing a reconciler</h4>
-<p>The Java editor example provides a subclass of <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a>
-</b> for installing the presentation reconciler as seen earlier.&nbsp; A
-presentation reconciler can also be installed dynamically on a text viewer using
-<b><a href="../reference/api/org/eclipse/jface/text/presentation/IPresentationRepairer.html">IPresentationReconciler</a></b>
-protocol.&nbsp; There is no
-particular runtime benefit to doing it either way, but putting all of the
-pluggable behavior overrides in a subclass of <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a>
-</b>provides the advantage of consolidating all of the behavioral overrides in one place.&nbsp;
-The dynamic protocol may be useful when different presentation reconcilers are
-attached to a viewer throughout the life of an editor.</p>
-<p>&nbsp;
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_hover.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_hover.htm
deleted file mode 100644
index 63a715f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_hover.htm
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Text and ruler hover
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Text and ruler hover</H2>
-<p>Hover support is provided in the platform text framework, allowing you to implement 
-  informational hovers (or infopops) over the text and the rulers shown in your 
-  editor.</p>
-<p>Hover support is optional.&nbsp; By default, <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a>
-</b>does not install hover behavior since there is no useful general information
-to show.&nbsp; In order to provide text or ruler hover, your editor's source
-viewer configuration must be <a href="editors_sourceviewers.htm">configured</a>
-to define a pluggable hover object.</p>
-<p>Let's look again at <b>JavaSourceViewerConfiguration</b>
- to see which methods define the hover behavior:</p>
-
-<pre><font color="#4444CC">public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
-	return new JavaTextHover();
-}
-public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
-	return new JavaAnnotationHover();
-}
-</font></pre>
-<p>Hover helper classes can also be installed dynamically using <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b>
- protocol (<b>setTextHover</b> and <b>setAnnotationHover</b>).&nbsp; There is no
-particular runtime benefit to doing it either way, but putting all of the
-pluggable behavior overrides in a subclass of <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a>
-</b>provides the advantage of consolidating all of the definitions in one place.</p>
-<p>Let's look at the specifics of providing both kinds of hover.</p>
-<h3>Text hover</h3>
-<p>Text hover allows you to provide informational text about text shown in the 
-  editor.&nbsp; This is done using the <b><a href="../reference/api/org/eclipse/jface/text/ITextHover.html">ITextHover</a></b> 
-  interface.&nbsp; A text hover is responsible for computing the region that should 
-  be used as the source of hover information, given an offset into the document.&nbsp; 
-  It is also responsible for providing the informational text about a specific 
-  region.&nbsp; <b>JavaTextHover</b> is pretty simple.&nbsp; It checks to see 
-  if the supplied offset for hover is contained inside the text selection.&nbsp;&nbsp;&nbsp; 
-  If so, it supplies the selection range as hover region.&nbsp;</p>
-
-<pre><font color="#4444CC">public class JavaTextHover implements ITextHover {
-
-	...
-	
-	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
-		Point selection= textViewer.getSelectedRange();
-		if (selection.x &lt;= offset &amp;&amp; offset &lt; selection.x + selection.y)
-			return new Region(selection.x, selection.y);
-		return new Region(offset, 0);
-	}
-}</font></pre>
-<p>Given its own computed hover region, it obtains the selected text from its
-document and returns that as the hover info.</p>
-
-<pre><font color="#4444CC">public class JavaTextHover implements ITextHover {
-
-	public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
-		if (hoverRegion != null) {
-			try {
-				if (hoverRegion.getLength() &gt; -1)
-					return textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength());
-			} catch (BadLocationException x) {
-			}
-		}
-		return JavaEditorMessages.getString(&quot;JavaTextHover.emptySelection&quot;); 
-	}
-	...
-}</font></pre>
-<p>Sure enough, we can see that if we hover over a selection in the editor, the
-hover text shows the selection.</p>
-<p><img src="images/javatexthover.gif" alt="" border="0"></p>
-<p>More complicated contextual information can be used to compute useful hover
-information.&nbsp; Examples of this can be found in the <b>JavaTextHover</b>
-implemented with the JDT editor.</p>
-<h3>Ruler hover</h3>
-<p>Hover on the vertical ruler is useful for showing show line-oriented information.&nbsp;
-The hover class is configured as described above.&nbsp; <b><a href="../reference/api/org/eclipse/jface/text/IAnnotationHover.html">IAnnotationHover</a></b>
-is the interface for ruler hover objects.&nbsp; Although the name implies that
-the hover is designed for annotations in the ruler, it is really up to an
-individual editor to detemine what is appropriate.&nbsp; A ruler hover is responsible for returning the info string associated with a
-particular line number, regardless of the presence of markers on that line.&nbsp;&nbsp;&nbsp;</p>
-<p>The Java example editor's <b>JavaAnnotationHover</b>  implements hover for
-all lines.&nbsp; It uses the line number to
-obtain all of the text on the hover line and returning it as the info string.</p>
-
-<pre><font color="#4444CC">public String getHoverInfo(ISourceViewer sourceViewer, int lineNumber) {
-	IDocument document= sourceViewer.getDocument();
-
-	try {
-		IRegion info= document.getLineInformation(lineNumber);
-		return document.get(info.getOffset(), info.getLength());
-	} catch (BadLocationException x) {
-	}
-	return null;
-}</font></pre>
-<p><img src="images/javarulerhover.gif" alt="" border="0"><p>Since the hover has access to the document and the
-source viewer, it has all the context needed to make more complicated contextual
-decisions about the info that should be shown.&nbsp; For example, the annotation
-model could be retrieved from the source viewer in order to provide hover info
-for any annotations shown in the vertical ruler.&nbsp; The <b>JavaAnnotationHover</b>
-provided by the JDT editor provides this capability.
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_jface.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_jface.htm
deleted file mode 100644
index 3af2223..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_jface.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Text editors and platform text
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2 CLASS="Heading2">Text editors and platform text</H2>
-<p>The platform text facility is used to implement the default text editor for
-the workbench.&nbsp; The interface for text editing is defined in <a href="../reference/api/org/eclipse/ui/texteditor/ITextEditor.html"><b>ITextEditor</b></a>
- as a text specific extension of <a href="../reference/api/org/eclipse/ui/IEditorPart.html"><b>IEditorPart</b></a>.&nbsp;&nbsp;</p>
-<p>The implementation of <a href="../reference/api/org/eclipse/ui/texteditor/ITextEditor.html"><b>ITextEditor</b></a>
-in the platform is structured in layers.&nbsp; <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>
-defines the framework for extending the editor to support source code style
-editing of text.&nbsp; This framework is defined in <a href="../reference/api/org/eclipse/ui/texteditor/package-summary.html"><b>org.eclipse.ui.texteditor</b></a>.</p>
-<p>The concrete implementation class <a href="../reference/api/org/eclipse/ui/editors/text/TextEditor.html"><b>TextEditor</b></a><b>
-</b>defines the behavior for the standard platform text editor.&nbsp; It is
-defined in the package <b><a href="../reference/api/org/eclipse/ui/editors/text/package-summary.html">org.eclipse.ui.editors.text</a></b>.</p>
-<p>The text editor framework provides a model-independent editor that
-supports the following features:</p>
-<ul>
-  <li>presentation and user modification of text</li>
-  <li>standard text editing operations such as cut/copy/paste, find/replace</li>
-  <li>support for context and pulldown menus</li>
-  <li>visual presentation of text annotations in rulers or as squigglies in the
-    text</li>
-  <li>automatic update of annotations as the user edits text</li>
-  <li>presentation of additional information such as line numbers</li>
-  <li>syntax highlighting</li>
-  <li>content assist</li>
-  <li>text outlining pages that show the hierarchical structure of the text</li>
-  <li>context sensitive behavior</li>
-  <li>hover support over rulers and text</li>
-  <li>key binding scopes</li>
-  <li>preference handling</li>
-</ul>
-<p>We will explore how these features can be implemented in an editor by
-studying the <b>org.eclipse.ui.examples.javaeditor</b>
- example.&nbsp; This example shows how complex features like text coloring, hover help, and
-automatic indenting can be implemented.&nbsp; </p>
-<p>In discussing these features we will be moving between the abstract
-framework, the platform editor <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a>,
-and the example's subclass, <b>JavaEditor</b>.</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_sourceviewers.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_sourceviewers.htm
deleted file mode 100644
index a1313c0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_sourceviewers.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Configuring a source viewer
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Configuring a source viewer</H2>
-<p>So far we've looked at <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b>
- in the context of managing source code annotations.</p>
-<p>The <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b> 
-  is also the central hub for configuring your editor with pluggable behavior 
-  such as text hovering and syntax highlighting.&nbsp; &nbsp;For that the editor 
-  supplies a <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a> 
-  </b>that is used to configure the <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewer.html">SourceViewer</a></b> 
-  when it is created.&nbsp; The Java example editor only needs to supply a <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a> 
-  </b>appropriate for its needs.&nbsp; The following snippet shows how the <b>JavaTextEditor</b> 
-  creates its configuration:</p>
-<pre><font color="#4444CC">protected void initializeEditor() {
-	super.initializeEditor();
-	JavaEditorEnvironment.connect(this);
-	<b>setSourceViewerConfiguration(new JavaSourceViewerConfiguration());</b>
-	...</font></pre>
-<p>What does the <b>JavaSourceViewerConfiguration</b> do?&nbsp; Much of its
-behavior is inherited from <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a></b>,
-which defines default strategies for pluggable editor behaviors such as auto
-indenting, undo behavior, double-click behavior, text hover, syntax
-highlighting, and formatting.&nbsp; Public methods in <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a>
-</b>provide the helper objects that implement these behaviors.
- </p>
-<p>If the default behavior defined in <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a></b>
-does not suit your editor, you should override <b>initializeEditor() </b>as
-shown above and set your own source viewer configuration into the editor.&nbsp;
-Your configuration can override methods in <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a></b>
-to supply customized helper objects that implement behavior for your
-editor.&nbsp; The following snippet shows two of the ways the <b>JavaSourceViewerConfiguration</b>
-supplies customized helper objects for the Java editor example:
- </p>
-
-<pre><font color="#4444CC">public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
-	return new JavaAnnotationHover();
-}
-	
-public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) {
-	return (IDocument.DEFAULT_CONTENT_TYPE.equals(contentType) ? new JavaAutoIndentStrategy() : new DefaultAutoIndentStrategy());
-}</font></pre>
-<p>In the first method, a customized helper class is provided for implementing 
-  annotation hovering.&nbsp; In the second method, the default content type of 
-  the document is queried to determine whether a customized auto-indent strategy 
-  or the default strategy should be used. </p>
-<p>See the API reference for <b><a href="../reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html">SourceViewerConfiguration</a></b>
-for all the ways you can configure a source viewer by overriding methods.
- </p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_utilities.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_utilities.htm
deleted file mode 100644
index 0a979e4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_utilities.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Other text editor responsibilities
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Other text editor responsibilities</H2>
-<p>The Java example editor inherits a lot of useful default behavior from <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>.&nbsp;
-The text editing framework handles several other responsibilities that you can
-customize by overriding methods in <a href="../reference/api/org/eclipse/ui/texteditor/AbstractTextEditor.html"><b>AbstractTextEditor</b></a>.&nbsp;
-Browse the implementation of this class and its subclasses to see how behavior
-is customized in the framework.</p>
-<p>The following are some of the useful framework features that can be
-configured.</p>
-<h3>Preference handling</h3>
-<p>Text editors typically contribute user preferences that control the
-presentation and behavior of the editor.&nbsp; In the text framework, each text
-editor instance has an associated preference store that is used for accessing
-user preferences.&nbsp; This preference store can be set up by your editor, or
-you can inherit from preference stores already used in the framework.</p>
-<p>In the case of the Java example editor, it inherits the preference store
-initialized by <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a>.&nbsp;
-This is the preference store defined by the workbench editors
-plug-in.&nbsp;&nbsp;</p>
-
-<pre><font color="#4444CC">protected void initializeEditor() {
-	...
-	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
-}</font></pre>
-
-The editors plug-in preferences can be manipulated in the <b>Workbench &gt;
-Editors</b> and <b>Workbench &gt; Editors &gt; Text Editor</b> preference pages.
-<p>If you do not want to use the standard workbench text preferences for your 
-  editor, you can set a different preference store.&nbsp; This is typically done 
-  by overriding <b>initializeEditor</b> and setting your own preference store.&nbsp; 
-  If you do use your own preference store, you will also need to override the 
-  method <b>handlePreferenceStoreChanged()</b> which is triggered whenever a preference 
-  is updated.</p>
-<h3>Key bindings</h3>
-<p><a href="wrkAdv_keyBindings_accelScope.htm">Key binding scopes</a> are useful
-for establishing a lookup order for key bindings.&nbsp; Having contextual scopes
-reduces the chances of different plug-ins contributing conflicting key
-sequences.&nbsp; By default, the workbench operates
-in a global scope.&nbsp; When a text editor becomes active, it is responsible
-for resetting the scope to the text editor scope, so that editor specific key
-bindings will be active.</p>
-<p>In the platform text framework, each text editor instance has an associated 
-  key binding scope.&nbsp; It is responsible for setting this scope when it becomes 
-  active.&nbsp; <a href="../reference/api/org/eclipse/ui/texteditor/TextEditor.html"><b>TextEditor</b></a> 
-  defines this scope and takes care of making it active.&nbsp; The scope is assigned 
-  in a method that is called from the constructor:</p>
-
-<pre><font color="#4444CC">protected void initializeKeyBindingScopes() {
-	setKeyBindingScopes(new String[] { &quot;org.eclipse.ui.textEditorScope&quot; });  
-}</font></pre>
-
-<p>The argument to the method is an array of string key binding scope ids.&nbsp;
-If you want your editor to define its own key binding scope, then you can
-override this method in your editor class, or set the scope dynamically using <b>setKeybindingScopes</b>.</p>
-<p>The scope itself must be defined with the corresponding id in the <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a></b>
- extension point.&nbsp; The following is the definition for the text editor
-scope.</p>
-<pre><font color="#4444CC">&lt;extension
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point=&quot;org.eclipse.ui.commands&quot;&gt;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name=&quot;%scope.text.name&quot;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parent=&quot;org.eclipse.ui.globalScope&quot;
-	    description=&quot;%scope.text.description&quot;
-            <b>id=&quot;org.eclipse.ui.textEditorScope&quot;</b>&gt;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/scope&gt;
-&nbsp;&nbsp; &lt;/extension&gt;</font> </pre>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_workbench.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_workbench.htm
deleted file mode 100644
index 695eb2f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_workbench.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Workbench editors
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Workbench editors</H2>
-<P >
-Although the implementation of a workbench editor will be specific to your plug-in and the resources that you want to edit, the
-workbench provides a
-general structure for building an editor.&nbsp; The following concepts apply to
-all workbench editors.</P>
-
-<h3 >
-Editor parts and their inputs</h3>
-
-<P >
-An editor must implement <a href="../reference/api/org/eclipse/ui/IEditorPart.html"><b>IEditorPart</b></a>
-and is often built by extending the <a href="../reference/api/org/eclipse/ui/part/EditorPart.html"><b>EditorPart</b></a>
-class.&nbsp; An editor implements its user interface in the <b>createPartControl</b>
-method.&nbsp; This method is used to assemble the SWT widgets or JFace viewers
-that present the editor contents.&nbsp;</P>
-
-<P >
-An <b> editor input</b> is a description of something to be edited. You can think of
-an editor input as a file name, though it is more general.
-<a href="../reference/api/org/eclipse/ui/IEditorInput.html"> <b> IEditorInput</b></a> defines the protocol for an editor input, including the name of the input and the image that should be used to represent it in
-the labels at the top of the editor.</P>
-
-<P >
-<img src="images/editorInputLabel.gif" alt="" border="0" width="109" height="23"></P>
-<P >
-Two generic editor inputs are provided in the platform. <a href="../reference/api/org/eclipse/ui/IFileEditorInput.html"><b> IFileEditorInput</b></a> represents an input
-that is a file in the file system.&nbsp;
-<a href="../reference/api/org/eclipse/ui/IStorageEditorInput.html"><b>IStorageEditorInput</b></a> represents an input
-that is a stream of bytes. These bytes may come from sources other than the file system.</P>
-
-
-<h3 >
-Resetting the editor input</h3>
-
-
-<P >If your editor can support the replacement of the
-editor's input object on the fly, you should implement&nbsp; <a href="../reference/api/org/eclipse/ui/IReusableEditor.html"><b>IReusableEditor</b></a>.
-Implementing this interface allows the workbench to &quot;recycle&quot; your
-editor.&nbsp; Workbench user preferences allow the user to dictate that editors
-should be reused after a certain number of them are open.</P>
-
-
-<h3 >
-Navigating the editor input&nbsp;</h3>
-
-
-<P >If you want to implement a navigation history in your editor, you should
-implement <a href="../reference/api/org/eclipse/ui/INavigationLocationProvider.html"><b>INavigationLocationProvider</b></a>.&nbsp;
-This provides a mechanism for the workbench to request a current navigation
-location (<a href="../reference/api/org/eclipse/ui/INavigationLocation.html"><b>INavigationLocation</b></a>)<b>
-</b>as needed to keep a navigation history.&nbsp; The workbench handles the
-mechanics of the navigation user interface.&nbsp; Your <a href="../reference/api/org/eclipse/ui/INavigationLocation.html"><b>INavigationLocation</b></a><b>
-</b>will be notified when it needs to restore the editor to the location that it
-represents.</P>
-
-
-<P >The rest of your editor's implementation depends on the content that you are
-trying to present.&nbsp; We'll look next at the most common type of editor - the
-text editor.</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/editors_workbench_outliner.htm b/bundles/org.eclipse.platform.doc.isv/guide/editors_workbench_outliner.htm
deleted file mode 100644
index b8aef92..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/editors_workbench_outliner.htm
+++ /dev/null
@@ -1,133 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Content outliners</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<h2>
-Content outliners</h2>
-<P >
-Editors often have corresponding <b>content outliners</b> that provide a
-structured view of the editor contents and assist the user in navigating through
-the contents of the editor.</P>
-<P >
-The workbench provides a standard <b>Outline</b> view for this purpose.&nbsp;
-The workbench user controls when this view is visible using the <b>Window &gt; Show
-View</b> menu.</P>
-<P >Since the generic
-<a href="../reference/api/org/eclipse/ui/editors/text/TextEditor.html"><b> TextEditor</b></a> 
-doesn't know anything about the structure of its text, it cannot provide
-behavior for an interesting outline view.&nbsp; Therefore, the default <b>Outline</b> view,
-shown below, doesn't
-do much.</P>
-<P ><img src="images/genericoutliner.gif" alt="Default content outliner" border="0" width="188" height="211"></P>
-<P >&nbsp;</P>
-<P >Editors in the text framework can supply their own content outliner page to the
-outline view.&nbsp; The outliner for an editor is specified when the workbench requests an
-adapter of type <b><a href="../reference/api/org/eclipse/ui/views/contentoutline/IContentOutlinePage.html">IContentOutlinePage</a></b>.</P>
-<font color='#4444CC'><pre>
-public Object getAdapter(Class required) {
-	if (IContentOutlinePage.class.equals(required)) {
-		if (fOutlinePage == null) {
-			fOutlinePage= new J<b>avaContentOutlinePage</b>(getDocumentProvider(), this);
-			if (getEditorInput() != null)
-				fOutlinePage.setInput(getEditorInput());
-		}
-		return fOutlinePage;
-	}
-	return super.getAdapter(required);
-}
-</pre></font>
-
-
-<P >A content outliner page must implement <b><a href="../reference/api/org/eclipse/ui/views/contentoutline/IContentOutlinePage.html">IContentOutlinePage</a></b>.&nbsp;
-This interface combines the ability to notify selection change listeners (<a href="../reference/api/org/eclipse/jface/viewers/ISelectionProvider.html"><b>ISelectionProvider</b></a>)
-with the behavior of being a page in a view (<a href="../reference/api/org/eclipse/ui/part/IPage.html"><b>IPage</b></a>).&nbsp;
-Content outliners are typically implemented using JFace viewers.&nbsp; The
-default implementation of a content outliner (<b><a href="../reference/api/org/eclipse/ui/views/contentoutline/ContentOutlinePage.html">ContentOutlinePage</a></b>)
-uses a JFace tree viewer to display a hierarchical representation of the
-outline.&nbsp; This representation is suitable for many structured outliners, including
-<b>JavaContentOutlinePage</b>.</P>
-
-
-<P >Let's take a look at the implementation of the page. When the outline page 
-  is created by the editor in the snippet above, its input element is set to the 
-  editor's input element.&nbsp; This input can often be passed directly to the 
-  outline page's viewer, as is done below.</P>
-
-
-<font color='#4444CC'><pre>
-public void createControl(Composite parent) {
-
-	super.createControl(parent);
-
-	TreeViewer viewer= getTreeViewer();
-	viewer.setContentProvider(new ContentProvider());
-	viewer.setLabelProvider(new LabelProvider());
-	viewer.addSelectionChangedListener(this);
-
-	if (fInput != null)
-		viewer.setInput(fInput);
-}</pre></font>
-
-
-<P >The tree viewer creation is inherited from <b><a href="../reference/api/org/eclipse/ui/views/contentoutline/ContentOutlinePage.html">ContentOutlinePage</a></b>.&nbsp; 
-  The standard content and label providers are used. Whenever the editor input 
-  is set (or changed),&nbsp; <b>JavaContentOutlinePage</b> obtains a document 
-  for the editor input and parses the text.</P>
-
-
-<font color='#4444CC'><pre>public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-	...
-	if (newInput != null) {
-		IDocument document= fDocumentProvider.getDocument(newInput);
-		if (document != null) {
-			document.addPositionCategory(SEGMENTS);
-			document.addPositionUpdater(fPositionUpdater);
-
-			parse(document);
-		}
-	}
-}</pre>
-
-
-<P >The text is parsed into ranges, called segments, within the document.&nbsp;
-These segments are displayed by name in the outline view.</P>
-
-
-<P ><img src="images/javacontentoutline.gif" alt="" border="0" width="220" height="215"></P>
-
-
-<P ><font color="#000000">When the selection changes, the selected segment is 
-  retrieved.&nbsp; Its offsets are used to set the highlight range in the editor.</font></P>
-
-
-</font><pre><font color='#4444CC'>public void selectionChanged(SelectionChangedEvent event) {
-
-	super.selectionChanged(event);
-
-	ISelection selection= event.getSelection();
-	if (selection.isEmpty())
-		fTextEditor.resetHighlightRange();
-	else {
-		Segment segment= (Segment) ((IStructuredSelection) selection).getFirstElement();
-		int start= segment.position.getOffset();
-		int length= segment.position.getLength();
-		try {
-			fTextEditor.setHighlightRange(start, length, true);
-		} catch (IllegalArgumentException x) {
-			fTextEditor.resetHighlightRange();
-		}
-	}
-}
-</font></pre><pre><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." width="324" height="14"></a></pre>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin.htm b/bundles/org.eclipse.platform.doc.isv/guide/firstplugin.htm
deleted file mode 100644
index 59d6d11..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Simple plug-in example</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Plug it in: Hello World meets the workbench</H1>
-<P >
-The Eclipse platform is structured as a core runtime engine and a set of additional features that are installed as platform
-<b>plug-ins</b>. Plug-ins contribute functionality to the platform by contributing to pre-defined
-<b> extension points</b>. The workbench UI is contributed by one such plug-in. When you start up the workbench, you are not starting up a single Java program. You are activating a platform runtime which can dynamically discover registered plug-ins and start them as needed.</P>
-<P >
-When you want to provide code that extends the platform, you do this by defining
-system extensions in your plug-in. The platform has a well-defined set of extension
-points - places where you can hook into the platform and contribute system behavior. From the platform's perspective, your plug-in is no different
-from basic plug-ins like the resource management system or the workbench itself.</P>
-<P >
-So how does your code become a plug-in?&nbsp;</P>
-<ul>
-  <li>Decide how your plug-in will be integrated with the platform.</li>
-  <li>Identify the extension points that you need to contribute in order to
-    integrate your plug-in.</li>
-  <li>Implement these extensions according to the specification for the
-    extension points.</li>
-  <li>Provide a manifest file (plugin.xml) that describes the extensions you are
-    providing and the packaging of your code.</li>
-</ul>
-<P >
-Creating a plug-in is best demonstrated by implementing an old classic, &quot;Hello World,&quot; as a plug-in.  We'll gloss over some details at first in order to get it running. Then we'll look at extension points in more detail, see where they are defined, and learn how plug-ins describe their implementation of an extension.</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_btb.htm b/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_btb.htm
deleted file mode 100644
index 42ecb5a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_btb.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Beyond the basics
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Beyond the basics</H2>
-<P >
-Hopefully you've got a good idea of how you can contribute to an extension point, and package the functionality in a plug-in. We are ready to take a closer look at the resources plug-in and its API. Then we'll put everything together to implement a more complex workbench plug-in that works with
-a special kind of file.</P>
-<P >
-For more information on workbench extension points, consult the following
-topics:</P>
-<ul>
-  <li><a href="workbench_basicext.htm">Basic workbench extension points</a></li>
-  <li><a href="workbench_menus.htm">Workbench menu contributions</a></li>
-  <li><a href="workbench_advext.htm">More workbench extensions</a></li>
-  <li><a href="dialogs_wizards_extensions.htm">Workbench wizard extension points</a></li>
-  <li><a href="preferences_prefs.htm">Preferences</a></li>
-  <li><a href="preferences_prop.htm">Properties</a></li>
-</ul>
-<P >
-A complete list of extension points can be found in the <a href="../reference/extension-points/index.html">Platform
-Extension Point Reference</a>.</P>
-<P >
-<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_install.htm b/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_install.htm
deleted file mode 100644
index 4a14428..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_install.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Installing and running the plug-in
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Installing and running the plug-in</H2>
-<P >
-Let's put everything together so that we can run our new plug-in.&nbsp; </P>
-<P > First, we need to compile our classes into a jar called <b>helloworld.jar</b>. 
-  Why? Because that's where we told the platform our plug-in could be found.&nbsp;You 
-  can do this by selecting the project, choosing <b>File &gt; Export</b> and exporting 
-  your generated class file to a <b>JAR File</b>.&nbsp; </P>
-<P > Next, we install the plug-in into a directory underneath the platform's plug-in 
-  directory. This directory corresponds to our plug-in id, which must be unique.&nbsp; 
-  The standard practice for plug-in directory names is to use the plug-in's fully 
-  qualified id, including the dots.&nbsp; In this case, we need to create a directory 
-  named <b>org.eclipse.examples.helloworld</b> inside the platform's plug-in directory. 
-  (The plug-in directory is named <b>plugins</b> and is typically located underneath 
-  the main directory where you installed the platform.) We copy the <b> helloworld.jar</b> 
-  and the <b> plugin.xml</b> to this new directory.&nbsp; (You can export the 
-  <b>plugin.xml</b> to the file system using the <b>File &gt; Export</b> wizard 
-  with destination type <strong>File system</strong>.) </P>
-<P >
-<img src="images/helloinstall.gif" alt="" border="0" width="592" height="454"> </P>
-<P >If you are currently running the workbench, you will need to shut it down
-and restart it.&nbsp; When the platform starts, it assembles a list of all of the plug-ins installed in the system, called the plug-in registry. This registry keeps track of plug-ins and the extension points that they contribute.&nbsp;
-Restarting the workbench will cause it to find your new plug-in.</P>
-<P >(Note:&nbsp; We are installing our plug-in and launching the workbench ourselves to show
-exactly how plug-ins are installed and found in the platform.&nbsp; The PDE
-plug-in automates much of this process by introducing a special launcher that
-launches a self-hosted workbench.&nbsp; We are ignoring this for now to keep
-things simple.)&nbsp;</P>
-<P > How do we run the plug-in?&nbsp; We can see all of the views that have been 
-  contributed by plug-ins using the <b>Window &gt;Show View</b> menu.</P>
-
-<img src="images/perspectivemenu.gif" alt="" border="0" width="425" height="349">
-<P >
-This menu shows us what views are available for the current perspective. You can see all of the views that are contributed to the platform (regardless of perspective) by selecting
-<b>Other...</b>. This will display a list of view categories and the views available under each category. </P>
-<P >
-The workbench creates the full list of views by using the plug-in registry to
-find all the plug-ins that have provided extensions for the
-<a href="../reference/extension-points/org_eclipse_ui_views.html"><b> org.eclipse.ui.views</b></a> extension point. </P>
-
-<img src="images/showview.gif" alt="Show View dialog with Hello entry" border="0" width="297" height="422">
-<P >
-There we are! The view called &quot;Hello Greetings&quot; has been added to the <b> Show View</b> window underneath our category &quot;Hello.&quot; The labels for our category and view were obtained from the extension point configuration markup in the
-<b>plugin.xml</b>. </P>
-<P ><i><b>
-Up to this point, we still have not run our plug-in code!&nbsp; </b></i>The
-declarations in the <b>plugin.xml </b>(which can be
-accessed via the plug-in registry) are enough for the workbench to know that there is a view called &quot;Hello View&quot; available in the &quot;Hello&quot; category. It knows what class implements the view. But none of our code will be run until we decide to
-show the view.</P>
-<P >
-If we choose the &quot;Hello Greetings' view from the <b> Show View</b> list, the
-workbench will
-activate our plug-in, instantiate and initialize our view class, and show the
-new view in the workbench along with all of the other views. Now our code is running.&nbsp;</P>
-
-<img src="images/workbenchwithhello.gif" alt="Workbench with Hello World view" border="0" width="584" height="444">
-<P >
-There it is, our first plug-in! We'll cover more specifics about UI classes and extension points later on.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_minimal.htm b/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_minimal.htm
deleted file mode 100644
index 98d2146..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/firstplugin_minimal.htm
+++ /dev/null
@@ -1,238 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-A minimal plug-in
-</TITLE>
-
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-A minimal plug-in</H2>
-<P >
-We all know what &quot;Hello World&quot; looks like in plain old Java without using any user interface or other framework.</P>
-<font color='#4444CC'><pre>
-   public class HelloWorld {
-      public static void main(String[] args) {
-         System.out.println(&quot;Hello World&quot;);
-      }
-   }
-</pre></font>
-<P >
-What happens to this old standard in the context of the Eclipse platform?  Instead of thinking of Hello World as a self-contained program, we recast it as an extension of the platform. Since we want to say hello to the world, we need to figure out how to extend the workbench to include our greeting.</P>
-<P >
-When we get deeper into the platform user interface components, we'll do an exhaustive review of the ways that you can extend and customize the workbench
-UI. For now, let's start with one of the simplest workbench extensions - a view.&nbsp;</P>
-
-<p>You can think of the workbench window as a frame that presents various visual
-parts. These parts fall into two major categories: views and editors.&nbsp; We
-will look at editors later.&nbsp; <b>Views</b>
-provide information about some object that the user is working with in the
-workbench. Views often change their content as the user selects different
-objects in the workbench.</p>
-
-<H3>
-Hello world view</H3>
-<P >
-For our hello world plug-in, we will implement our own view to greet the user with &quot;Hello World.&quot;</P>
-<P >
-The package <b><a href="../reference/api/org/eclipse/ui/package-summary.html"> org.eclipse.ui</a></b>
-and its sub packages contain the public interfaces that define the workbench
-user interface (UI) API. Many of these interfaces have
-default implementation classes that you can extend to provide simple modifications to the system. In our hello world example, we will extend a workbench view to provide a label that says hello.</P>
-<P >
-The interface of interest is <b><a href="../reference/api/org/eclipse/ui/IViewPart.html">IViewPart</a></b>, which defines the methods that must be implemented to contribute a view to the workbench. The class
-<b><a href="../reference/api/org/eclipse/ui/part/ViewPart.html">ViewPart</a></b> provides a default implementation of this interface. In a nutshell, a view part is responsible for creating the widgets needed to show the view.</P>
-<P > The standard views in the workbench often display some information about 
-  an object that the user has selected or is navigating. Views update their contents 
-  based on actions that occur in the workbench. In our case, we are just saying 
-  hello, so our view is quite simple.</P>
-<h4 >Using the tools to write our plug-in</h4>
-<P >You can use any Java IDE you wish to build Eclipse plug-ins, but we'll walk 
-  through the steps for building our plug-in with the Eclipse Java IDE.&nbsp; 
-  If you are not already familiar with the Eclipse workbench and the Java IDE, 
-  consult the Java Development User Guide for further explanations of the steps 
-  we are taking.&nbsp; For now we are focusing on the code, not the tool.&nbsp; 
-  However, there are some IDE logistics for getting started.</P>
-<h4 >Setting up your environment</h4>
-<p >If you are starting with a clean environment, you will need to ensure that 
-  your code has access to the plug-ins <b><a href="../reference/api/org/eclipse/ui/package-summary.html"> 
-  org.eclipse.ui</a></b>. Import this plug-in and any plug-ins it requires into 
-  your run-time workbench instance by performing the steps below. If you already 
-  have these plug-ins in your workbench instance, proceed to the section &quot;Creating 
-  your plug-in project&quot;.</p>
-<ol>
-  <li>From the resource perspective, use <strong>File &gt; Import... &gt; External 
-    Plug-ins and Fragments</strong>.</li>
-  <li>Continue clicking on the <strong>Next &gt;</strong> buttons until you get 
-    to the screen called <strong>Selection</strong>. This screen will contain 
-    a list of all of the plug-ins in your host workbench instance.</li>
-  <li>Select org.eclipse.ui and then click the button <strong>Add Required Plug-ins</strong>.</li>
-  <li>Click on the <strong>Finish</strong> button. Your Navigator view should 
-    contain org.eclipse.ui and all of the plug-ins it requires (including org.eclipse.swt).</li>
-</ol>
-<p>For a complete discussion of setting up host and run-time workbench instances 
-  consult the PDE Guide.</p>
-<h4>Creating your plug-in project</h4>
-<ol>
-  <li>You will need to create a project to do your work.&nbsp; The simplest way 
-    is to open the <b>New Project...</b> wizard (<strong>File &gt; New &gt; Project...</strong>) 
-    and choose <b>Plug-in Project </b>from the <b>Plug-in Development</b> category.&nbsp; 
-    This will set up your project for writing Java code and give you a default 
-    plug-in manifest file (explained in a moment.)&nbsp; Use <b>org.eclipse.examples.helloworld</b> 
-    as the name for your project. By default, the wizard sets <strong>org.eclipse.examples.helloworld</strong> 
-    as the id as well.&nbsp; The wizard gives you the option of generating code 
-    for different kinds of plug-ins, but we want to keep this simple.&nbsp; For 
-    now, be sure to choose <b>Create a blank plug-in project </b>on the <strong>Plug-in 
-    Code Generators</strong> page.</li>
-  <li>When asked if you would like to switch to the Plug-in Development perspective, 
-    answer <strong>Yes</strong>.</li>
-  <li>Create a package <b>org.eclipse.examples.helloworld</b> underneath the <b>src</b> 
-    directory for the project. To do this, double click on the project <strong>org.eclipse.examples.helloworld</strong> 
-    in the Package Explorer view. This expands the project and shows you the <strong>src</strong> 
-    directory. Right click on the <strong>src</strong> directory to get the context 
-    menu. Use <strong>New &gt; Package</strong> to create a new package and give 
-    it the name <b>org.eclipse.examples.helloworld</b></li>
-  <li>Create a new class called <b>HelloWorldView</b> in this package. Right click 
-    on the package you just created in the previous step to get the context menu. 
-    Use <strong>New &gt; Class</strong> to create your new class with the name 
-    <b>HelloWorldView</b>.</li>
-</ol>
-<h4>Writing the code</h4>
-<P >Now we're ready to study some code.&nbsp; Here is everything you need in
-your <b>HelloWorldView</b>.&nbsp; (You can copy the contents below into the
-class you created.)&nbsp;</P>
-<font color='#4444CC'><pre>
-   package org.eclipse.examples.helloworld;
-
-   import org.eclipse.swt.widgets.Composite;
-   import org.eclipse.swt.widgets.Label;
-   import org.eclipse.swt.SWT;
-   import org.eclipse.ui.part.ViewPart;
-
-   public class HelloWorldView extends ViewPart {
-      Label label;
-      public HelloWorldView() {
-      }
-      public void createPartControl(Composite parent) {
-         label = new Label(parent, SWT.WRAP);
-         label.setText(&quot;Hello World&quot;);
-      }
-      public void setFocus() {
-         // set focus to my widget.  For a label, this doesn't
-         // make much sense, but for more complex sets of widgets
-         // you would decide which one gets the focus.
-      }
-   }
-</pre></font>
-<P >
-The view part creates the widgets that will represent it in the <b> createPartControl</b> method. In this example, we create an SWT label and set the &quot;Hello World&quot; text into it.&nbsp;</P>
-<P >
-This is all we need!&nbsp; We can compile our new class, but we better make sure
-that our .classpath is set up properly so that we can compile the
-code.&nbsp;&nbsp;</P>
-
-<ol>
-  <li>Select the <b>org.eclipse.examples.helloWorld</b> project and open the <b>Properties</b> 
-    dialog (right click on the project <b>org.eclipse.examples.helloWorld</b> 
-    <strong>&gt; Properties</strong>).</li>
-  <li>In the <b>Java Build Path</b> properties, select the <b>Projects</b> tab, 
-    and check the projects&nbsp; <b>org.eclipse.ui</b> and <b>org.eclipse.swt</b>. 
-    These are the projects that contain the classes we imported.</li>
-  <li><b>Rebuild</b> the project.&nbsp;</li>
-</ol>
-<P >
-Okay, so we've compiled the view.&nbsp; Our new view is supposed to look something like this:</P>
-
-<p>
-
-<img src="images/hello.gif" alt="Simple view that says Hello World" border="0" width="377" height="120">
-</p>
-<P >
-How do we run the code and add this view to the workbench?</P>
-
-
-
-<H3>
-The hello world plug-in</H3>
-<P >
-We need to inform the platform that we want to contribute our view. This is done by extending the
-<b><a href="../reference/extension-points/org_eclipse_ui_views.html"> org.eclipse.ui.views</a></b> extension point. We register our extension by providing a manifest file,<b>
-plugin.xml</b>, which describes our plug-in, including where its code is located, and the extension
-we are adding.</P>
-<P >
-(If you are still following along, you can copy this information into the <b>plugin.xml
-</b>that was generated when you created the project.)</P>
-<font color='#4444CC'><pre>
-   &lt;?xml version=&quot;1.0&quot; ?&gt;
-   &lt;plugin
-      name=&quot;Hello World Example&quot; 
-      id=&quot;org.eclipse.examples.helloworld&quot;
-      version=&quot;1.0&quot;&gt;
-      &lt;requires&gt;
-         &lt;import plugin=&quot;org.eclipse.ui&quot; /&gt;
-      &lt;/requires&gt;
-      &lt;runtime&gt;
-         &lt;library name=&quot;helloworld.jar&quot; /&gt;
-      &lt;/runtime&gt;
-      &lt;extension point=&quot;org.eclipse.ui.views&quot;&gt;
-         &lt;category 
-            id=&quot;org.eclipse.examples.helloworld.hello&quot;
-            name=&quot;Hello&quot; /&gt;
-         &lt;view 
-            id=&quot;org.eclipse.examples.helloworld.helloworldview&quot;
-            name=&quot;Hello Greetings&quot;
-            category=&quot;org.eclipse.examples.helloworld.hello&quot;
-            class=&quot;org.eclipse.examples.helloworld.HelloWorldView&quot; /&gt;
-      &lt;/extension&gt;
-   &lt;/plugin&gt;
-</pre></font>
-<P >
-In this file, we define the <b>name</b>, <b>id</b>, and <b>version</b> for our plug-in. </P>
-<P >
-We also list our required plug-ins. Since we use workbench and SWT API in our
-plug-in, we must list
-<b>org.eclipse.ui</b>. We must also describe where our executable code is located.
-We intend to package the code in
-<b>helloworld.jar</b>, so we register that as our <b>library</b> name.</P>
-<P >
-Finally, we declare what extension point our plug-in is contributing. The <b><a href="../reference/extension-points/org_eclipse_ui_views.html"> org.eclipse.ui.views</a></b> extension has several different configuration parameters.
-We first declare a <b> category</b> for our view extension. Categories can be used to group related views together in the workbench
-<b> Show View</b> dialog. We define our own category, &quot;Hello,&quot; so that it will display in its own group.&nbsp;
-We declare a unique <b> id</b> for our view and specify the name of the
-<b> class</b> that provides the implementation of the view. We also specify a
-<b> name</b> for the view, &quot;Hello Greetings&quot; which will be shown in the Show View dialog and in our view's title bar.</P>
-
-<h4 >
-<a name="firstplugin_minimal_pluginid">Plug-in ids</a></h4>
-<P>
-There are many ids used in a plug-in manifest file. Individual extension points often define configuration parameters that require ids (such as the category id used above for the views extension point). We also define a plug-in id. In general, you should use Java package name prefixes for all of your ids in order to ensure uniqueness among all the
-installed plug-ins.&nbsp;</P>
-
-<P>
- The specific name that you use after the prefix is completely up to you.
-However, if your plug-in id prefix is exactly the same name as one of your packages, you
-should avoid using class names from that package.&nbsp;&nbsp; Otherwise it will become difficult to tell whether you are looking at an id name or a class name.&nbsp;</P>
-
-<P>
- You should also avoid using the same id for different extension configuration parameters.
-In the above manifest, we have used a common id prefix (<b>org.eclipse.examples.helloworld</b>)
-but all of our ids are unique.&nbsp; This naming approach helps us to read the
-file and see which ids are related.&nbsp; </P>
-
-<h4>
- What next? </h4>
-
-<P>
- At this point, we have implemented a view and declared our contribution in our
- plug-in manifest.&nbsp; Now we need to install our plug-in into the platform so
- that we can run it. </P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help.htm b/bundles/org.eclipse.platform.doc.isv/guide/help.htm
deleted file mode 100644
index ce0714d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Plugging in help
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Plugging in help</H1>
-<P >
-The Eclipse platform's help facilities provide you with the raw building blocks to structure and contribute
-documentation to the platform. It does not dictate structure or granularity of documentation.
-You can choose the tools and structure for your documentation that suits your
-needs.&nbsp; The help plug-in allows you to describe your documentation
-structure to the platform using a table of contents (toc) file.</P>
-<P >Your plug-in's online help is contributed using the <a href="../reference/extension-points/org_eclipse_help_toc.html"> <b> org.eclipse.help.toc</b></a> extension point. You can either contribute the online help as part of your code plug-in or provide it separately in its own documentation plug-in.</P>
-<P >
-Separating the documentation into a separate plug-in is beneficial in those situations where the code and documentation teams are different groups or where you want to reduce the coupling between the documentation and code. </P>
-<P >
-Advanced features of the help system include context-sensitive help with
-reference links (known as <b>infopops</b>) and the ability to invoke platform
-code from the documentation.&nbsp; A help browser lets you view,
-print, and search your documentation.&nbsp;&nbsp; </P>
-<P >The best way to demonstrate the contribution of help is to create a
-documentation plug-in.</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_active.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_active.htm
deleted file mode 100644
index 49aa25e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_active.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Active help
-</TITLE>
-<script language="JavaScript" src="../../org.eclipse.help/livehelp.js"> </script>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<H2>
-Active help</H2>
-
-<p>Active help is the ability to invoke Eclipse code from on-line
-documentation.&nbsp;It is implemented by including some JavaScript in your
-documentation that describes a class that should be run inside the Eclipse
-platform. </p>
-
-<p>For example, instead of writing, &quot;Go to the Window Menu and open the
-message dialog,&quot; your on-line help can include a link that will open your
-application's message dialog for the user.&nbsp; Active help links look like hyperlinks in
-the on-line help.</p>
-
-<p>Below is an active help link that opens a message dialog in the workbench.&nbsp;
-We will take a look at how to make this work.</p>
-
-<p><a href='javascript:liveAction(
-	"org.eclipse.platform.doc.isv", 
-	"org.eclipse.platform.doc.isv.activeHelp.ActiveHelpOpenDialogAction",
-	"")'>Click here for a Message.</a></p>
-
-<p>&nbsp;</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_active_action.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_active_action.htm
deleted file mode 100644
index cf6e8ec..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_active_action.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Writing the help action</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Writing the help action</h3>
-
-
-<p>The interface <a href="../reference/api/org/eclipse/help/ILiveHelpAction.html"><b>ILiveHelpAction</b></a>
-is used to build an active help action.</p>
-
-
-<p>It is straightforward to implement an <a href="../reference/api/org/eclipse/help/ILiveHelpAction.html"><b>ILiveHelpAction</b></a><b>.</b>&nbsp;
-You must implement two methods.</p>
-
-
-<ul>
-  <li><b>run()</b> - This method is called to run the live help action.&nbsp;
-    This method will be called by the help system from a non-UI thread, so UI
-    access must be wrapped in a <b><a href="../reference/api/org/eclipse/swt/widgets/Display.html">Display.syncExec()</a></b>
-    method.&nbsp;&nbsp;</li>
-  <li><b>setInitializationString(String)</b> - This method is called to
-    initialize your action with a String data parameter you can specify in the
-    HTML which runs the JavaScript <b>liveAction</b>.&nbsp;&nbsp;
-If you don't need initialization data, you can just implement
-this method to do nothing.&nbsp; This method is called before <b>run()</b>.</li>
-</ul>
-
-
-<p>Here is a simple implementation of a live help action that opens a message
-dialog. We don't need any information from the JavaScript, so the
-initialization data is ignored.</p>
-
-
-<pre><font color="#4444CC">package org.eclipse.platform.doc.isv.activeHelp;
-
-import org.eclipse.help.ILiveHelpAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-/**
- * Sample Active Help action.
- */
-public class ActiveHelpOpenDialogAction implements ILiveHelpAction {
-
-     public void setInitializationString(String data) {
-          // ignore the data.  We do not use any javascript parameters.
-     }
-
-     public void run() {
-          // Active help does not run on the UI thread, so we must use syncExec
-          Display.getDefault().syncExec(new Runnable() {
-               public void run() {
-                    IWorkbenchWindow window =
-                         PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-                    if (window != null) {
-                         // Bring the Workbench window to the top of other windows;
-                         // On some Windows systems, it will only flash the Workbench
-                         // icon on the task bar
-                         Shell shell = window.getShell();
-                         shell.setMinimized(false);
-                         shell.forceActive();
-                         // Open a message dialog
-                         MessageDialog.openInformation(
-                              window.getShell(),
-                              &quot;Hello World.&quot;,
-                              &quot;Hello World.&quot;);
-                    }
-               }
-          });
-     }
-}</font></pre>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_active_debug.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_active_debug.htm
deleted file mode 100644
index 82ae1a1..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_active_debug.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Tips for debugging active help</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Tips for debugging active help</h3>
-
-
-<p>The code and markup that triggered our active help link looks pretty
-straightforward.&nbsp; But what do you do if your active help link doesn't seem
-to work?</p>
-
-
-<h4>Test your action ahead of time</h4>
-
-
-<p>If your action implementation is fairly involved, you should invoke the
-action yourself with some test code inside Eclipse.&nbsp; This way, you'll know
-that the action is error-free before invoking it from the JavaScript.&nbsp; </p>
-
-
-<h4>Ensure the JavaScript is running</h4>
-
-
-<p>You can modify &quot;plugins/org.eclipse.help_2.1.0/<b>liveHelp.js</b>&quot;
-to include a call to the <b>alert</b> function as the first statement in the <b>liveAction</b>
-function:</p>
-
-
-<pre><font color="#4444CC">function liveAction(pluginId, className, argument)
-{
-<b>	alert(&quot;liveAction called&quot;);
-	...</b></font></pre>
-
-
-<p>The <b>alert</b> function opens a warning dialog in the browser and can be
-used to verify that the <b>liveAction</b> was properly invoked in your
-HTML.&nbsp; If you don't see a warning dialog when you click on your help link,
-then you have a problem in the HTML markup.</p>
-
-
-<h4>Debug the active help action</h4>
-
-
-<p>Once you know that the JavaScript is running, you can debug your action from
-inside Eclipse.&nbsp; To do this, you can set a breakpoint in your help action
-class and start up a self-hosted Eclipse instance.&nbsp; You must test your
-active help with the Help browser from the newly launched Eclipse instance, not
-from your host instance, since the JavaScript from your help HTML calls a
-servlet on the Eclipse help server that launched the browser.</p>
-
-
-<p>If nothing happens after you've set up the breakpoint and clicked on the
-active help link, it's likely that your plug-in and active help class were not
-correctly specified in the JavaScript.&nbsp; </p>
-
-
-<p>Once you've managed to stop at the breakpoint in your action, you can debug
-the action as you would any other Java code.</p>
-
-
-<h4>Make sure your UI code is wrapped in Display.syncExec</h4>
-
-
-<p>A common runtime problem is improperly accessing UI code from the thread that
-invokes the active help.&nbsp; If your live help action came from code that ran
-originally in a UI thread, it will need to be modified to handle the fact that
-it is running from a non-UI thread.&nbsp; </p>
-
-
-<pre><font color="#4444CC">	public void run() {
-		// Active help does not run on the UI thread, so we must use syncExec
-		Display.getDefault().syncExec(new Runnable() {
-							public void run() {
-								//do the UI work in here;
-							}
-		});		
-	}
-
-</font></pre>
-
-
-<pre><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></pre>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_active_invoke.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_active_invoke.htm
deleted file mode 100644
index a6dcb76..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_active_invoke.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Invoking the action from HTML</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Invoking the action from HTML</h3>
-
-<P >
- To include active help links in your documentation, you must first declare the
- use of the active help JavaScript in the <b>HEAD</b> tag of your HTML: </P>
-
-
-<pre ><font color="#4444CC"> &lt;script language=&quot;JavaScript&quot; src=&quot;../../org.eclipse.help/livehelp.js&gt; &lt;/script&gt;</font></pre>
-
-
-<P >The live help JavaScript is located in the <b>org.eclipse.help</b>
-plug-in.&nbsp; You can refer to it using the help system's <a href="help_plugin_files.htm#help_plugin_files_xref">cross
-plug-in referencing</a> technique.&nbsp;&nbsp; </P>
-
-
-<P > In this example, we have to navigate up two levels in the directory
-structure.&nbsp; The document with the
-active help link is located in the sub-directory <b>guide</b> underneath our
-plug-in directory.&nbsp; So we must navigate up one directory to reach our plug-in's
-root, and another level to reach the &quot;virtual&quot; location of all
-plug-ins.&nbsp;&nbsp; Then we can refer to the <b>org.eclipse.help</b> plug-in. </P>
-
-
-<P >
- In the body of your documentation, you invoke the liveAction script.&nbsp;&nbsp; </P>
-
-
-<pre ><font color="#4444CC"> &lt;a href='javascript:liveAction(
-	&quot;org.eclipse.platform.doc.isv&quot;, 
-	&quot;org.eclipse.platform.doc.isv.activeHelp.ActiveHelpOpenDialogAction&quot;,
-	&quot;&quot;)'&gt;Click here for a Message.&lt;/a&gt;</font></pre>
-
-
-<P >The parameters for <b>liveAction </b> are&nbsp; </P>
-
-
-<ul>
-  <li> the ID of the plug-in that
-contains the action</li>
-  <li>the name of the class that implements the action</li>
-  <li>the String that will be passed to the live help action using <b>setInitializationString</b>.&nbsp;
-    We don't need to pass any information from the HTML page, so we just
-    pass an empty string.</li>
-</ul>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_dynamic.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_dynamic.htm
deleted file mode 100644
index 6bdef31..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_dynamic.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-  <meta http-equiv="Content-Style-Type" content="text/css">
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Dynamic help</title>
-  <link rel="stylesheet" type="text/css" href="../book.css">
-</head>
-<body style="background-color: rgb(255, 255, 255);">
-<h3>Dynamic help</h3>
-<p>In addition to static HTML files present in doc.zip or file system
-under plug-in directory, help can display documents that are dynamically
-generated by the documentation plug-in.  Such plug-in needs to contain
-Java code capable of producing contents that would otherwise be read
-from static files by help system.  If a class implementing
-org.eclipse.help.IHelpContentProducer is contributed by a plug-in to
-help system using org.eclipse.help.contentProducer extension point, the
-help system will call getInputStream for every document accessed from
-this plug-in.  If that results in not null InputStream, it will be sent
-to the browser for displaying.  If IHelpContentProdcuer returns null,
-help system will default to searching doc.zip and plug-in directory for
-a document.</p>
-<h4>Content producer example</h4>
-<p>For example, an implementation of IHelpConentProducer as follows:</p>
-<font color="#4444cc">
-<pre>package com.my.company.doc;<br>public class DynamicTopics implements <span
- style="font-weight: bold;">IHelpContentProducer</span> {<br>	public InputStream getInputStream(<br>		String pluginID,<br>		String name,<br>		Locale locale) {<br>		if (name.indexOf("dynamic") &gt;= 0)<br>			<span
- style="font-weight: bold;">return</span> new ByteArray<span
- style="font-weight: bold;">InputStream</span>(<br>				("&lt;html&gt;&lt;body&gt;Content generated "<br>					+ new Date().toString()<br>					+ ".&lt;/body&gt;&lt;/html&gt;")<br>					.getBytes());<br>		else<br>			return <span
- style="font-weight: bold;">null</span>;<br>	}<br>}</pre>
-</font>
-<p>identified by extension in plugin.xml file as:<br>
-</p>
-<font color="#4444cc">
-<pre>&lt;extension point="org.eclipse.help.<span
- style="font-weight: bold;">contentProducer</span>"<br>&nbsp;&nbsp;&nbsp; name="dynamicTopics"<br>&nbsp;&nbsp;&nbsp; id="my.company.doc.dynamicTopics"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;contentProducer <span
- style="font-weight: bold;">producer</span>="com.my.company.doc.DynamicTopics" /&gt;<br>&lt;/extension&gt;</pre>
-</font>
-<p><br>
-will produce an HTML document content for all document references that
-have a word "dynamic" as part of the path or file name.<br>
-<br>
-</p>
-<h4>Constraints</h4>
-<p>A plug-in has a complete freedom of the method of method or
-underlying framework that is used to produce the content.&nbsp; It
-should however ensure that content is generated in correct language and
-encoded accordingly that a browser can display it.&nbsp; A locale used
-by the user is provided to the getInputStream method.&nbsp; If it is
-incapable of providing translatable content, it should default to
-content for the default locale of the platform.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif"
- alt="Copyright IBM Corporation and others 2000, 2003." width="324"
- height="14"></a></p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_infopops.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_infopops.htm
deleted file mode 100644
index 530651b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_infopops.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Infopops
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Infopops</H2>
-
-<font color='#4444CC'><p>An infopop is a small window associated with a
-particular SWT widget in a plug-in's user interface.&nbsp; It displays
-context-sensitive help and links to related help topics for the widget.&nbsp; It
-is activated when the user puts focus on the widget and presses the F1 key.
-</p><p>To associate an infopop with a widget, you must first assign a context ID
-to the widget and then provide the description and links for the infopop.&nbsp;
-Here is an infopop that has been defined on a workbench preferences page:
-</p><p><img src="images/infopops.gif" alt="File associations dialog with infopop" border="0" width="605" height="242">
-</p></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_infopops_id.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_infopops_id.htm
deleted file mode 100644
index c45d93c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_infopops_id.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Declaring a context id</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Declaring a context id</h3>
-
-<P >The <b>setHelp</b> method in <b><a href="../reference/api/org/eclipse/ui/help/WorkbenchHelp.html">org.eclipse.ui.help.WorkbenchHelp</a></b>
-is used to associate a context id with a Control, IAction, Menu, or MenuItem.&nbsp;
-The context id should be fully qualified with the plug-in id.&nbsp; For example,
-the following snippet associates the id &quot;com.example.helpexample.panic_button&quot;
-with a button in the application. </P>
-
-
-<pre ><font color="#000080">WorkbenchHelp.setHelp(myButton, com.example.helpexample.panic_button);</font></pre>
-
-
-<P >The following UI controls cannot have context ids (and therefore cannot have
-infopops): </P>
-
-
-<ul>
-  <li>Toolbar buttons (ToolItem)</li>
-  <li>CTabItem</li>
-  <li>TabItem</li>
-  <li>TableColumn</li>
-  <li>TableItem</li>
-  <li>TableTreeItem</li>
-  <li>TreeItem</li>
-</ul>
-<p>Widgets that do not get focus should not be assigned context ids, since they
-will never trigger an infopop.</p>
-<p>&nbsp;</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_infopops_xml.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_infopops_xml.htm
deleted file mode 100644
index 3fd3319..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_infopops_xml.htm
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Describing and packaging infopop content</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Describing and packaging infopop content</h3>
-
-
-<p>Infopops are described by associating the context id declared in the UI code
-with a description and list of links to related topics in the online help.&nbsp;
-These associations are made inside an XML file.&nbsp; You can create any number
-of XML files containing infopop associations for each plug-in.&nbsp; The
-description and links for each context id is made inside <b>&lt;context&gt;</b>
-elements in the XML file.&nbsp; Each context element can have an optional <b>&lt;description&gt;</b>
-element which is used to describe the UI object and any number of <b>&lt;topic&gt;</b>
-elements which link to the on-line documentation.<font color="#000080"><br>
-</font></p>
-<pre><font color="#4444CC">&lt;contexts&gt;
-	&lt;context id=&quot;panic_button&quot;&gt;
-		&lt;description&gt;This is the panic button.&lt;/description&gt;
-		&lt;topic href=&quot;tasks/pushing_the_panic_button.htm&quot; label=&quot;Pushing the panic button&quot;/&gt;
-		&lt;topic href=&quot;reference/panic_button.htm&quot; label=&quot;Panic Button Reference&quot;/&gt;
-	&lt;/context&gt;
-	...
-&lt;/contexts&gt;</font></pre>
-<p>Once the contexts have been described in the XML file (or files), you are
-ready to refer to the context files in your plug-in manifest.&nbsp; Note that
-the context id is not fully qualified above.&nbsp; This is allowed, as long as
-the context file is contributed in the manifest of the plug-in that defined the
-context id.&nbsp; In other words, the context id is resolved to the id of the
-plug-in that contributed the XML file.&nbsp;&nbsp;</p>
-<p>A plug-in contributes context files using the <b><a href="../reference/extension-points/org_eclipse_help_contexts.html">org.eclipse.help.contexts</a></b>
-extension point.&nbsp;&nbsp;</p>
-<font color="#4444CC">
-<pre>   &lt;extension point=&quot;org.eclipse.help.contexts&quot;&gt;
-      &lt;contexts name=&quot;myInfopops.xml&quot;  /&gt;
-   &lt;/extension&gt;</pre>
-</font>
-<p>You can reference context files from other plug-ins by including the <b>plugin</b>
-attribute.&nbsp; This allows you to group all of your documentation, including
-infopops, in one plug-in, and refer to it from the UI code plug-in or some other
-related plug-in.</p>
-<font color="#4444CC">
-<pre>   &lt;extension point=&quot;org.eclipse.help.contexts&quot;&gt;
-      &lt;contexts name=&quot;myInfopops.xml&quot; <b>plugin</b>=&quot;com.example.helpExample&quot;  /&gt;
-   &lt;/extension&gt;</pre>
-</font>
-<p>As you can see, you have a lot of flexibility in organizing your infopops
-into one or more files contained in one or more plug-ins.&nbsp; The main
-consideration is that the context ids in the files resolve correctly.&nbsp; If
-you do not fully qualify a context id, then you must contribute the context XML
-files in the plug-in that declared the context ids.&nbsp; If you use fully
-qualified context ids in your context XML file, then you have complete
-flexibility in the location of your XML files and which plug-in contributes the
-contexts.</p>
-
-
-<h4>
-Infopops from multiple plug-ins</h4>
-
-
-<p>Another level of flexibility is the ability to contribute infopops for the
-same context id from different plug-ins.&nbsp; This is useful, for example, if
-there are different sets of documentation plug-ins that may or may not be
-installed in a user's configuration.&nbsp; This allows each documentation
-plug-in to declare its contexts independently.&nbsp; The end user will see the
-merged infopop content for all plug-ins that contributed contexts for the
-widget's id.</p>
-
-
-<p>Note that the fully
-qualified context id for the widget must be used, since none of the documentation plug-ins
-declared the context id.&nbsp; When multiple plug-ins contribute infopops for
-the same context ID, the content defined in the plug-in that declared the
-context (the UI plug-in) is shown first.&nbsp; Additional descriptions and links
-are appended in no guaranteed order.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_plugin.htm
deleted file mode 100644
index 0383cb5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Building a help plug-in
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Building a help plug-in</H2>
-<P >
-In this example, we assume that a documentation author has already supplied you with the raw documentation in the form of HTML files. The granularity
-and structure of these files is completely up to the documentation team. Once the documentation is delivered, setting up the plug-in and topics can be done independently.</P>
-
-<P >
-We start by assuming that the documentation has already been provided in the following tree.</P>
-<font color='#4444CC'><pre>
-   html/
-      concepts/
-         concept1.html
-         concept1_1.html
-         concept1_2.html
-      tasks/
-         task1.html
-         task2.html
-         task3_1.html
-         task3_2.html
-      ref/
-         ref1.html
-         ref2.html
-</pre></font>
-<P >
-We will assume that the plug-in name is <b>com.example.helpexample</b>.</P>
-<P >
-The first step is to create a plug-in directory, <b>com.example.helpexample</b> underneath the platform
-<b>plugins</b> directory. The <b>doc\</b>
-sub tree shown above should be copied into the directory. </P>
-<P >
-Documentation plug-ins need a manifest just like code plug-ins. The following markup defines the documentation plug-in.</P>
-
-<font color='#4444CC'><pre>
-   &lt;?xml version=&quot;1.0&quot; ?&gt;
-   &lt;plugin name=&quot;Online Help Sample&quot;
-      id=&quot;com.example.helpexample&quot;
-      version=&quot;1.0&quot;
-      provider-name=&quot;MyExample&quot; /&gt;
-</pre></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_files.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_files.htm
deleted file mode 100644
index bba2ca2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_files.htm
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Help server and file locations</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3 >
- Help server and file locations </h3>
-<P >
-The platform utilizes its own documentation server to provide the actual web pages
-for your plug-in's documentation.&nbsp; A custom server allows the platform to handle HTML content
-in a browser independent manner and to provide plug-in aware support.&nbsp; The
-main difference to you as a plug-in developer is that you have a little more
-flexibility in the way you structure your files and specify your links. </P>
-<P >
-Documentation can be delivered in a zip file, avoiding problems that may result when a large number of files are present. In our example
-plug-in, we created a sub-directory called <b>html</b>.&nbsp;
-Alternatively, we could have placed our html files into a zip file called
-<b>doc.zip</b>.&nbsp; This zip file must mimic the file
-structure underneath the plug-in directory.&nbsp; In our case, it must contain
-the sub-directory <b>html</b> and all the contents
-underneath <b>html</b>.&nbsp; </P>
-<P >When resolving file names, the help server looks in the <b>doc.zip</b>
-file for documents before it looks in the plug-in directory itself.&nbsp; When used as a link, the argument in an
-<b> href</b> is assumed to be relative to the current plug-in.&nbsp; Consider the following link: </P>
-
-
-<pre ><font color='#4444CC'>   &lt;topic label=&quot;Ref1&quot; href=&quot;html/ref/ref1.html&quot;/&gt;</font></pre>
-
-
-<P >The help plug-in will look for this file as follows: </P>
-
-
-<ul>
-  <li>look in <b> doc.zip</b> for the file <b>/html/ref/ref1.html</b></li>
-  <li>look for the file <b>ref1.html</b> in the <b>/html/ref </b>sub-directory structure underneath the plug-in
-    directory.</li>
-</ul>
-<P >A fully qualified link can be used to refer to any content on the web.&nbsp; </P>
-
-
-<pre ><font color='#4444CC'>   &lt;topic label=&quot;Ref1&quot; href=&quot;http://www.example.com/myReference.html&quot;/&gt;</font></pre>
-
-
-<h4 >National language and translated documentation</h4>
-
-
-<p >The platform help system uses the same national language directory lookup
-scheme used by the rest of the platform for finding translated files.&nbsp; (See
-<a href="product_def_nl.htm#platform">Locale specific files</a> for an
-explanation of this directory structure.)&nbsp; If you are using a <b>doc.zip</b>
-file, you should produce a <b>doc.zip</b> file for <b>each</b> locale and place
-it inside the correct locale directory.&nbsp; (You should not replicate the <b>nl</b>
-locale directory structure inside the zip file.)</p>
-
-
-<h4 ><a name="help_plugin_files_xref">Cross plug-in referencing</a></h4>
-
-
-<P >The <b>href</b> argument can also refer to content from another
-plug-in.&nbsp; This is done by using a special cross plug-in referencing
-notation that is resolved by the help server: </P>
-
-
-<pre ><font color='#4444CC'>   &lt;topic label=&quot;Ref1&quot; href=&quot;<b>../&quot;another_plugin_id&quot;</b>/ref/ref1.html&quot;/&gt;</font></pre>
-
-
-<P >
-For example, you could link to this chapter of the programmer's guide using the
-following topic: </P>
-
-
-<pre ><font color='#4444CC'>   &lt;topic label=&quot;Help Chapter in Platform Doc&quot; href=&quot;<b>../org.eclipse.platform.doc.isv/guide/help.html</b>&quot;/&gt;</font></pre>
-
-
-<p class="Note">Note:&nbsp; When referencing content from another plug-in, be
-sure to use the plug-in's <b>id</b>, as declared in its <b>plugin.xml </b>file,
-not its directory name.&nbsp; While these are often the same in practice, it's
-important to check that you are using the id and not the directory name.</p>
-
-
-<pre >&nbsp;</pre>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_manifest.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_manifest.htm
deleted file mode 100644
index 95e2fb0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_manifest.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Completing the plug-in manifest</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Completing the plug-in manifest</h3>
-
-<P >
-We started this example by creating our plug-in and document files. Next we created
-toc files to describe the organization of our content.
-The remaining piece of work is to pull everything together into a master toc and
-update our <b> plugin.xml</b> to actually contribute the master toc.&nbsp; </P>
-
-<P >
- We start by creating a <b>toc.xml</b> to contribute the three tocs we created
- initially.&nbsp; Instead of providing an <b>href</b> for each topic, we use the
- <b>link</b> attribute to refer to our existing toc files. </P>
-
-<font color='#4444CC'><pre>&lt;toc label=&quot;Online Help Sample&quot; topic=&quot;html/book.html&quot;&gt;
-	&lt;topic label=&quot;Concepts&quot;&gt;
-		&lt;link toc=&quot;toc_Concepts.xml&quot; /&gt;
-	&lt;/topic&gt;
-	&lt;topic label=&quot;Tasks&quot;&gt;
-		&lt;link toc=&quot;toc_Tasks.xml&quot; /&gt;
-	&lt;/topic&gt;
-	&lt;topic label=&quot;Reference&quot;&gt;
-		&lt;link toc=&quot;toc_Ref.xml&quot; /&gt;
-	&lt;/topic&gt;
-&lt;/toc&gt;</pre>
-</font>
-
-<P >
- Then we update the <b>plugin.xml</b> to contribute our master toc: </P>
-<font color='#4444CC'><pre>
-   &lt;extension point=&quot;org.eclipse.help.toc&quot;&gt;
-      &lt;toc file=&quot;toc.xml&quot; <b>primary</b>=&quot;true&quot; /&gt;
-   &lt;/extension&gt;</pre></font>
-<P >Note the use of the <b>primary</b> attribute.&nbsp; Setting this attribute
-to true indicates that the toc should always appear in the navigation, even if
-it is not referenced by any other toc.&nbsp; This way, our &quot;master&quot;
-toc is always guaranteed to show up in the topics list.&nbsp; It appears at the
-top level list of books since no other toc references it.&nbsp;<I><BR>
-Note</I>: 
-If more files were associated with this toc but not present in the navigation, but just linked from other topics, then to have those topics available to the search engine we would have to use the <B>extradir</B> attribute in the toc.</P>
-<P >Finally, we contribute our individual toc files. </P>
-<font color='#4444CC'><pre>   &lt;extension point=&quot;org.eclipse.help.toc&quot;&gt;
-       &lt;toc file=&quot;toc_Concepts.xml&quot; /&gt;
-       &lt;toc file=&quot;toc_Tasks.xml&quot; /&gt;
-       &lt;toc file=&quot;toc_Reference.xml&quot; /&gt;
-   &lt;/extension&gt;</pre></font>
-<P >These toc files will not appear in the top level list of books because we
-did not set the <b>primary</b> attribute.&nbsp; Toc files that are not
-designated as primary will only appear in the documentation web if they are
-referred to from some toc that is a primary toc or is linked in by a primary
-toc. </P>
-
-<P >That's it. If you copy your plug-in directory to the platform's <b> plugins</b> directory, start the platform, and choose
-<b> Help-&gt;Help Contents</b>, you should see your example appear in the list
-of books. If you click on the "Online Help Sample", you'll see your toc structure:</P>
-
-<p></p>
-<p><img src="images/help_contents.gif" alt="On-line help browser with sample book structure" border="0" width="630" height="526"></p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_nested.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_nested.htm
deleted file mode 100644
index 484f555..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_nested.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Building nested documentation structures</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Building nested documentation structures</h3>
-<p>As plug-ins contribute function to the platform, it's common to add
-documentation that describes the new function.&nbsp; How can this documentation
-be structured so that the user sees a cohesive and complete set of documentation
-instead of many individual contributions?&nbsp; The table of contents definition
-provides mechanisms for building documentation in both a top-down and bottom-up
-fashion.</p>
-
-<h4>Top-down nesting</h4>
-
-<p>Top-down nesting refers to the technique of defining a master table of
-contents which refers to all other included tocs.&nbsp; Top-down nesting is a
-convenient method for breaking up known content into smaller pieces.&nbsp; With
-top-down nesting, the <b>link</b> attribute is used in the table of contents
-definition to refer to linked tocs rather than providing an <b>href</b>.&nbsp; </p>
-
-<font color='#4444CC'><pre>&lt;toc label=&quot;Online Help Sample&quot; topic=&quot;html/book.html&quot;&gt;
-	&lt;topic label=&quot;Concepts&quot;&gt;
-		&lt;link toc=&quot;toc_Concepts.xml&quot; /&gt;
-	&lt;/topic&gt;
-	&lt;topic label=&quot;Tasks&quot;&gt;
-		&lt;link toc=&quot;toc_Tasks.xml&quot; /&gt;
-	&lt;/topic&gt;
-	&lt;topic label=&quot;Reference&quot;&gt;
-		&lt;link toc=&quot;toc_Ref.xml&quot; /&gt;
-	&lt;/topic&gt;
-&lt;/toc&gt;</pre>
-</font>
-
-<p>The basic structure stays the same (Concepts, Tasks, Reference), but the
-individual tocs are free to evolve.&nbsp; They in turn might link to other sub-tocs.
-</p>
-
-<h4>Bottom-up composition</h4>
-
-<p>Bottom-up composition is more flexible in that it lets new plug-ins decide
-where the documentation should exist in the toc structure.&nbsp; Bottom-up
-composition is accomplished using <b>anchor</b> attributes.&nbsp; A toc defines
-named anchor points where other plug-ins can contribute documentation.&nbsp; In
-our example, we could add anchors so that plug-ins can contribute additional
-material between the concepts, tasks, and reference sections.</p>
-
-<font color='#4444CC'><pre>&lt;toc label=&quot;Online Help Sample&quot; topic=&quot;html/book.html&quot;&gt;
-	&lt;topic label=&quot;Concepts&quot;&gt;
-		&lt;link toc=&quot;toc_Concepts.xml&quot; /&gt;
-		&lt;<b>anchor</b> id=&quot;postConcepts&quot; /&gt;
-	&lt;/topic&gt;
-	&lt;topic label=&quot;Tasks&quot;&gt;
-		&lt;link toc=&quot;toc_Tasks.xml&quot; /&gt;
-		&lt;<b>anchor</b> id=&quot;postTasks&quot; /&gt;
-	&lt;/topic&gt;
-	&lt;topic label=&quot;Reference&quot;&gt;
-		&lt;link toc=&quot;toc_Ref.xml&quot; /&gt;		
-		&lt;<b>anchor</b> id=&quot;postReference&quot; /&gt;
-	&lt;/topic&gt;
-&lt;/toc&gt;</pre>
-<p>Other plug-ins can then contribute to the anchor from their plug-in.&nbsp;
-This is done using the <b>link_to</b> attribute when defining a toc.</p>
-<pre>&lt;toc <b>link_to=&quot;../com.example.helpexample/toc.xml#postConcepts&quot;</b> label=&quot;Late breaking info about concepts&quot;&gt;
-	&lt;topic&gt;
-</font>		...
-	<font color="#4444CC">&lt;/topic&gt;
-&lt;/toc&gt;</pre>
-</font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_toc.htm b/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_toc.htm
deleted file mode 100644
index 5df10eb..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/help_plugin_toc.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Table of contents (toc) files</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Table of contents (toc) files</h3>
-
-<P >
-Now that we have our sample content files we can create a table of contents (<b>toc</b>)
-file. A toc file defines the key entry points into the HTML content files by mapping a topic
-label to a reference in one of the HTML files.&nbsp; </P>
-<P >
-Applications that are being migrated to the platform can reuse existing documentation by
-using the toc file to define entry points into that documentation. </P>
-<P >
-A plug-in can have one or more toc files. Our example documentation is organized into three main categories: concepts, tasks and reference. How do we make
-toc files that represent this structure?</P>
-<P >
-We could make one large toc file, or we could create a separate toc file for each main category of content. This decision should be made according to the way your documentation teams work together.
-If a different author owns each category, it might be preferable to keep
-separate toc files for each category.&nbsp; It is not dictated by the platform architecture. </P>
-<P >
-In this example, we will create a toc file for each major content category. For such a small number of files,
-having separate toc files for each category may not be necessary.&nbsp; We
-will build this example as if we had many more files or had separate authors who
-own each content category.</P>
-<P >
-Our files look like this:</P>
-
-<H4>toc_Concepts.xml</H4>
-<font color='#4444CC'><pre>
-   &lt;toc label=&quot;Concepts&quot;&gt;
-      &lt;topic label=&quot;Concept1&quot; href=&quot;html/concepts/concept1.html&quot;&gt;
-         &lt;topic label=&quot;Concept1_1&quot; href=&quot;html/concepts/concept1_1.html&quot;/&gt;
-         &lt;topic label=&quot;Concept1_2&quot; href=&quot;html/concepts/concept1_2.html&quot;/&gt;
-      &lt;/topic&gt; 
-   &lt;/toc&gt;
-</pre></font>
-
-<H4>
-toc_Tasks.xml</H4>
-<font color='#4444CC'><pre>
-   &lt;toc label=&quot;Tasks&quot;&gt;
-      &lt;topic id=&quot;plainTasks&quot; label=&quot;Plain Stuff&quot;&gt;
-         &lt;topic label=&quot;Task1&quot; href=&quot;html/tasks/task1.html&quot;/&gt;
-         &lt;topic label=&quot;Task2&quot; href=&quot;html/tasks/task2.html&quot;/&gt;
-      &lt;/topic&gt;
-      &lt;topic id=&quot;funTasks&quot; label=&quot;Fun Stuff&quot; &gt;
-         &lt;topic label=&quot;Task3_1&quot; href=&quot;html/tasks/task3_1.html&quot;/&gt;
-         &lt;topic label=&quot;Task3_2&quot; href=&quot;html/tasks/task3_2.html&quot;/&gt;
-      &lt;/topic&gt;
-   &lt;/toc&gt;
-</pre></font>
-
-<H4>
-toc_Ref.xml</H4>
-<font color='#4444CC'><pre>
-   &lt;toc label=&quot;Reference&quot;&gt;
-      &lt;topic label=&quot;Ref1&quot; href=&quot;html/ref/ref1.html&quot;/&gt;
-      &lt;topic label=&quot;Ref2&quot; href=&quot;html/ref/ref2.html&quot;/&gt;
-   &lt;/toc&gt;
-</pre></font>
-<P >
- A topic can be a simple link to content.&nbsp;
-For example, &quot;Task1&quot; provides a <b>label</b>
-and an <b>href</b> linking to the content.&nbsp; A
-topic can also be a hierarchical grouping of sub topics with no content of its
-own.&nbsp; For example, &quot;Fun Stuff&quot; has only a <b>label</b>
-and sub topics, but no <b>href</b> .&nbsp; Topics can
-do both, too.&nbsp; &quot;Concept1&quot; has an <b>href</b>
-and sub topics. </P>
-<P >
- &nbsp; </P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/about.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/about.gif
deleted file mode 100644
index 322614c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/about.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/actionseteditorretargets.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/actionseteditorretargets.gif
deleted file mode 100644
index c699e10..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/actionseteditorretargets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/actionsetoutlineretargets.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/actionsetoutlineretargets.gif
deleted file mode 100644
index c699e10..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/actionsetoutlineretargets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/actionsets.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/actionsets.gif
deleted file mode 100644
index 1bcdf68..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/actionsets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/arch-npi.jpg b/bundles/org.eclipse.platform.doc.isv/guide/images/arch-npi.jpg
deleted file mode 100644
index 99e4170..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/arch-npi.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/arch.jpg b/bundles/org.eclipse.platform.doc.isv/guide/images/arch.jpg
deleted file mode 100644
index cdc0386..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/arch.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/cvsdecorators.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/cvsdecorators.gif
deleted file mode 100644
index 2aff1ca..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/cvsdecorators.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/debugactiongroups.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/debugactiongroups.gif
deleted file mode 100644
index 8cdcb39..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/debugactiongroups.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/editorAction.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/editorAction.gif
deleted file mode 100644
index 5f3d0a9..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/editorAction.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/editorInputLabel.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/editorInputLabel.gif
deleted file mode 100644
index 39f828f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/editorInputLabel.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/editormenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/editormenu.gif
deleted file mode 100644
index 0660ef6..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/editormenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/editoroutlineretargets.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/editoroutlineretargets.gif
deleted file mode 100644
index 966a9f4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/editoroutlineretargets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/editorretargets.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/editorretargets.gif
deleted file mode 100644
index 7aa504c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/editorretargets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/editortoolbar.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/editortoolbar.gif
deleted file mode 100644
index 9180d0b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/editortoolbar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/emptyworkbench.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/emptyworkbench.gif
deleted file mode 100644
index de5c44e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/emptyworkbench.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/exportwizard.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/exportwizard.gif
deleted file mode 100644
index 7786ae9..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/exportwizard.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/filetypes.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/filetypes.gif
deleted file mode 100644
index f790f9a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/filetypes.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/filtersmenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/filtersmenu.gif
deleted file mode 100644
index f0e04ad..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/filtersmenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/filtersselection.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/filtersselection.gif
deleted file mode 100644
index 4153bc3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/filtersselection.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/fontdefinitions.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/fontdefinitions.gif
deleted file mode 100644
index 649defc..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/fontdefinitions.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/genericoutliner.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/genericoutliner.gif
deleted file mode 100644
index c1d0d7d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/genericoutliner.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/hello.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/hello.gif
deleted file mode 100644
index 649bb5c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/hello.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/helloinstall.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/helloinstall.gif
deleted file mode 100644
index 731bb76..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/helloinstall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/help_contents.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/help_contents.gif
deleted file mode 100644
index 3bb90f5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/help_contents.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/ignore.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/ignore.gif
deleted file mode 100644
index 303ed57..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/ignore.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/importwizard.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/importwizard.gif
deleted file mode 100644
index a82b9cf..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/importwizard.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/infopops.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/infopops.gif
deleted file mode 100644
index 5af38d1..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/infopops.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentasist.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentasist.gif
deleted file mode 100644
index 2ede44d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentasist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentassist.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentassist.gif
deleted file mode 100644
index b7316c0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentassist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentoutline.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentoutline.gif
deleted file mode 100644
index 17a7315..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontentoutline.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontextassist.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javacontextassist.gif
deleted file mode 100644
index 4db3349..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javacontextassist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditor.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditor.gif
deleted file mode 100644
index 0479d31..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorcontextmenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorcontextmenu.gif
deleted file mode 100644
index c19b6c7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorcontextmenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditoroverviewruler.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditoroverviewruler.gif
deleted file mode 100644
index de2dcb2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditoroverviewruler.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorsquiggly.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorsquiggly.gif
deleted file mode 100644
index c908bb2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorsquiggly.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorverticalruler.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorverticalruler.gif
deleted file mode 100644
index 5085094..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javaeditorverticalruler.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javarulerhover.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javarulerhover.gif
deleted file mode 100644
index c0a273a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javarulerhover.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/javatexthover.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/javatexthover.gif
deleted file mode 100644
index 2a21ad0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/javatexthover.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/job-progress.jpg b/bundles/org.eclipse.platform.doc.isv/guide/images/job-progress.jpg
deleted file mode 100644
index 7f5a269..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/job-progress.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/keybindings.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/keybindings.gif
deleted file mode 100644
index 0d82217..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/keybindings.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/launch.jpg b/bundles/org.eclipse.platform.doc.isv/guide/images/launch.jpg
deleted file mode 100644
index 9b5e2e3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/launch.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/launchImage.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/launchImage.gif
deleted file mode 100644
index 8d3650f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/launchImage.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/launchdialog.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/launchdialog.gif
deleted file mode 100644
index ce3c3aa..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/launchdialog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/launchtabs.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/launchtabs.gif
deleted file mode 100644
index e759723..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/launchtabs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/markerquickfixmenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/markerquickfixmenu.gif
deleted file mode 100644
index ded3c6a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/markerquickfixmenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/navigator.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/navigator.gif
deleted file mode 100644
index d286b94..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/navigator.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/newwizardlist.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/newwizardlist.gif
deleted file mode 100644
index 1947229..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/newwizardlist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/newwizardmenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/newwizardmenu.gif
deleted file mode 100644
index a23443c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/newwizardmenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/perspectivemenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/perspectivemenu.gif
deleted file mode 100644
index db1ac5d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/perspectivemenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/preferences.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/preferences.gif
deleted file mode 100644
index a0111ac..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/preferences.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/projectset.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/projectset.gif
deleted file mode 100644
index 4ede29f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/projectset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionset.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionset.gif
deleted file mode 100644
index e4e0f84..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionsetmenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionsetmenu.gif
deleted file mode 100644
index ccf6f21..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionsetmenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionsettoolbar.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionsettoolbar.gif
deleted file mode 100644
index 81a0856..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeactionsettoolbar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmedialog.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmedialog.gif
deleted file mode 100644
index 2d5fd42..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmedialog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkerhelp.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkerhelp.gif
deleted file mode 100644
index 0ef9e74..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkerhelp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkermenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkermenu.gif
deleted file mode 100644
index 0cc9f90..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkermenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkerresolution.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkerresolution.gif
deleted file mode 100644
index f07e784..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmemarkerresolution.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoutliner.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoutliner.gif
deleted file mode 100644
index 0c09e57..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoutliner.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoutlinerpopup.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoutlinerpopup.gif
deleted file mode 100644
index a0ccf8e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoutlinerpopup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoverview.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoverview.gif
deleted file mode 100644
index 8f2d852..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeoverview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmepopupmenu.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmepopupmenu.gif
deleted file mode 100644
index 75597a0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmepopupmenu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmepreferences.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmepreferences.gif
deleted file mode 100644
index c68a236..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmepreferences.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeproperties.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeproperties.gif
deleted file mode 100644
index 8039241..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeproperties.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeview.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeview.gif
deleted file mode 100644
index 1342337..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeviewaction.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmeviewaction.gif
deleted file mode 100644
index 8cc4d09..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmeviewaction.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/readmewizard.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/readmewizard.gif
deleted file mode 100644
index 272e693..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/readmewizard.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/sdk-arch.jpg b/bundles/org.eclipse.platform.doc.isv/guide/images/sdk-arch.jpg
deleted file mode 100644
index eb19cab..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/sdk-arch.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/showview.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/showview.gif
deleted file mode 100644
index 63cbd41..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/showview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/singleclick.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/singleclick.gif
deleted file mode 100644
index 40c3fa8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/singleclick.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/teamdecorators.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/teamdecorators.gif
deleted file mode 100644
index 6a17039..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/teamdecorators.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/teamintegration.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/teamintegration.gif
deleted file mode 100644
index e9e9ac5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/teamintegration.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/teamprefs.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/teamprefs.gif
deleted file mode 100644
index 4c41d03..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/teamprefs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/texteditor.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/texteditor.gif
deleted file mode 100644
index 93817fa..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/texteditor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/textencoding.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/textencoding.gif
deleted file mode 100644
index ff0e342..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/textencoding.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/win_only.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/win_only.gif
deleted file mode 100644
index 1d7cb0c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/win_only.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/wiz_arch.jpg b/bundles/org.eclipse.platform.doc.isv/guide/images/wiz_arch.jpg
deleted file mode 100644
index 2af1d89..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/wiz_arch.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/workbench.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/workbench.gif
deleted file mode 100644
index 1c0b43e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/workbench.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/workbench_decomposed.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/workbench_decomposed.gif
deleted file mode 100644
index 89926e7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/workbench_decomposed.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/workbenchdecorators.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/workbenchdecorators.gif
deleted file mode 100644
index 564466c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/workbenchdecorators.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/workbenchwithhello.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/workbenchwithhello.gif
deleted file mode 100644
index 6ffbb26..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/workbenchwithhello.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/workingSetTypes.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/workingSetTypes.gif
deleted file mode 100644
index 3202de0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/workingSetTypes.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/images/workingset.gif b/bundles/org.eclipse.platform.doc.isv/guide/images/workingset.gif
deleted file mode 100644
index 5db8958..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/images/workingset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/int.htm b/bundles/org.eclipse.platform.doc.isv/guide/int.htm
deleted file mode 100644
index c9ebe2e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/int.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Welcome to Eclipse
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Welcome to Eclipse</H1>
-<p>Welcome to the Eclipse platform!&nbsp;</p>
-<p>The following sections discuss the issues and problems with building
-integrated tool suites, and how the Eclipse tooling platform can help solve
-these problems.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/int_eclipse.htm b/bundles/org.eclipse.platform.doc.isv/guide/int_eclipse.htm
deleted file mode 100644
index 14fae68..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/int_eclipse.htm
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-What is Eclipse?
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-What is Eclipse?</H2>
-<P >
- Eclipse is a platform that has been designed from the ground up for building integrated web and application development tooling. By design, the platform does not provide a great deal of
-end user functionality by itself. The value of the platform is what it encourages: rapid development of integrated features based on a
-<b> plug-in</b> model.</P>
-<P >
-Eclipse provides a common user interface (UI) model for working with tools.&nbsp; It is designed
-to run on multiple operating systems while providing robust integration with
-each underlying OS.&nbsp; Plug-ins can program to the Eclipse portable APIs and
-run unchanged on any of the supported operating systems.&nbsp;</P>
-<P >
-At the core of Eclipse is an architecture for dynamic discovery of plug-ins. The
-platform handles the logistics of the base environment and provides a standard
-user navigation model.&nbsp; Each plug-in can then focus on doing a small number of tasks well. What
-kinds of tasks? Defining, testing, animating, publishing, compiling, debugging,
-diagramming...the
-only limit is your imagination.</P>
-
-<H3>
-Open architecture</H3>
-<P >
-The Eclipse platform defines an open architecture so that each plug-in development team can focus on their area of expertise. Let the
-repository experts build the back ends and the usability experts build the end user tools. If the platform is designed well, significant new features and levels of integration can be added without impact to other tools.</P>
-<P >
-The Eclipse platform uses the model of a common workbench to integrate the tools from the end user's point of view. Tools that you develop can
-plug into the workbench using well defined hooks called extension points.</P>
-<P >
-The underlying platform runtime uses the same extension model to allow plug-in developers to add support for additional
-file types and customized installations, such as web servers, workgroup servers,
-and repositories.&nbsp; The artifacts for each tool, such as files and other data, are coordinated by a common platform resource model.&nbsp;&nbsp;&nbsp;</P>
-<P >
-The platform gives the users a common way to work with the tools, and provides integrated management of the resources they create with plug-ins.&nbsp;&nbsp;</P>
-<P >Plug-in developers also gain from this architecture.&nbsp; The platform
-manages the complexity of different runtime environments, such as different
-operating systems or workgroup server environments.&nbsp; Plug-in
-developers can focus on their specific task instead of worrying about these
-integration issues.</P>
-
-
-
-<H3>
-Platform structure</H3>
-<P >
-The Eclipse platform itself is structured as subsystems which are implemented in
-one or more plug-ins.&nbsp; The subsystems are built on top of a small runtime engine.&nbsp; </P>
-
-<P >
-<img src="images/arch-npi.jpg" alt="" border="0" width="312" height="312"> </P>
-
-<P >
-The subsystems define extension points for adding behavior to the
-platform.&nbsp; The following table describes the major runtime components of the platform that
-are implemented as one or more plug-ins. </P>
-
-<table border="1" width="100%">
-  <tr>
-    <td width="29%">
-
-<H4>
-Platform runtime</H4>
-    </td>
-    <td width="71%">Defines the extension point and plug-in model. It dynamically discovers plug-ins and maintains information in a platform registry.&nbsp;
-      Plug-ins are started up when required according to user operation of the
-      platform.</td>
-  </tr>
-  <tr>
-    <td width="29%">
-<H4>Resource management (workspace)</H4>
-    </td>
-    <td width="71%">Defines API for creating and managing resources (projects,
-      files, and folders) that are produced by tools and kept in the file system.</td>
-  </tr>
-  <tr>
-    <td width="29%">
-<H4>
-Workbench UI</H4>
-    </td>
-    <td width="71%">Implements the user cockpit for navigating the resources and using the tool plug-ins. It defines extension points for adding UI components such as views or menu actions.&nbsp;
-      It includes additional toolkits (JFace and SWT) for building user
-      interfaces.</td>
-  </tr>
-  <tr>
-    <td width="29%">
-
-
-<H4>
-Help system</H4>
-    </td>
-    <td width="71%">Defines extension points for plug-ins to provide help or
-      other documentation as browsable books.</td>
-  </tr>
-  <tr>
-    <td width="40%">
-
-
-<H4>Team support</H4>
-    </td>
-    <td width="60%">Defines a team programming model for managing and versioning resources.&nbsp;</td>
-  </tr>
-  <tr>
-    <td width="40%">
-
-
-<h4>Debug support</h4>
-    </td>
-    <td width="60%">Defines a language independent debug model and UI classes
-      for building debuggers and launchers.</td>
-  </tr>
-</table>
-
-
-
-<H3>
-Out of the box</H3>
-<P >
-Out of the box - or off the web - the basic platform is an integrated development environment (IDE) for anything (and nothing in particular). </P>
-<P >
-<img src="images/emptyworkbench.gif" alt="Workbench window" border="0" width="584" height="444"></P>
-<P >
-It's the plug-ins that determine the ultimate functionality of the platform.&nbsp;
-That's why the Eclipse SDK ships with additional plug-ins to enhance the
-functionality of the SDK.</P>
-<P >
-Your plug-ins can provide support for editing and manipulating additional types of
-resources such as Java files, C programs, Word documents, HTML pages, and JSP files.</P>
-<P >
-<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/int_goal.htm b/bundles/org.eclipse.platform.doc.isv/guide/int_goal.htm
deleted file mode 100644
index 4509beb..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/int_goal.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-The holy grail
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-The holy grail</H2>
-<P >
-What we all want is a level of integration that magically blends separately developed tools into a
-well designed suite.&nbsp; And it should be simple enough that existing tools can be moved to the platform without using a shoehorn or
-a crowbar.</P>
-<P >
-The platform should be open, so that users can select tools from the best source and know that their supplier has a voice in the development of the underlying platform. </P>
-<P >
-It should be simple to understand, yet robust enough to support integration without a lot of extra glue.</P>
-<P >
-It should provide tools that help automate mundane tasks.&nbsp; It should be stable enough
-so that industrial strength tools can build on top of it. And it should be useful enough that the platform developers can use it to build itself.</P>
-<P >
-These are all goals of Eclipse.&nbsp; The remainder of this programming guide
-will help you determine how close Eclipse has come to delivering on these
-ideals.</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/int_who.htm b/bundles/org.eclipse.platform.doc.isv/guide/int_who.htm
deleted file mode 100644
index aba7e3c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/int_who.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Who needs a platform?</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Who needs a platform?</H2>
-<P >
-On any given day, you can probably find an announcement about a strategic alliance,
-an open architecture, or a commercial API that promises to integrate all your tools, seamlessly move your data among applications, and simplify your programming life.</P>
-<P >
-Down in the trenches, you're trying to apply enough import/export duct tape to let marketing say &quot;suite&quot; with a straight face.</P>
-<P >
-Where is all this integration pressure coming from? Why is everyone trying to integrate their products into suites or build platforms to support open integration? Who needs these platforms?</P>
-
-<H3>
-End users</H3>
-<P >
-Let's face it. End users do not call the support line to say, &quot;What I really need is an open tools platform.&quot;</P>
-<P >
-But they do ask why your product doesn't integrate with their other tools. They ask for features outside of the scope of your application because they can't get their data to a tool that would do the job better. They run into problems importing and exporting between different programs. They wonder why their programs have completely different user interfaces for doing similar tasks. Doesn't it seem obvious that their web site design tool should be integrated with their scripting program?</P>
-<P >
-Your users want the freedom to pick the best tool for the task. They don't want to be constrained because
-your software only integrates with a few other programs. They have a job to do, and it's not managing the flow of files and data between their tools. They're busy solving their own problems. It's your job to make the tools
-work, and even better if you can make them work together.</P>
-
-
-<H3>
-Software developers</H3>
-<P >
-Meanwhile, you are slaving on your tool implementing the next round of critical features, fixing bugs, and shipping releases. The last thing you need is another emergency import feature added to your list.</P>
-<P >
-Wouldn't it be nice if you could just publish enough hooks to make integrating with your tool everyone else's problem?
-Unfortunately, unless you work for one of the giants, you just don't have enough clout to get away with that.
-</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/jface.htm b/bundles/org.eclipse.platform.doc.isv/guide/jface.htm
deleted file mode 100644
index 1a1da53..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/jface.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>JFace UI framework</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>JFace: UI framework for plug-ins</H1>
-<P >
-The workbench defines extension points for plug-ins to contribute UI function to the platform. Many of these extension points,
-particularly wizard extensions,&nbsp; are implemented using classes in the
-<b>
-org.eclipse.jface.*</b> packages. What's the distinction? </P>
-<P >
-JFace is a UI toolkit that provides helper classes for developing UI features
-that can be tedious to implement. JFace operates above the level of a raw widget system. It provides classes for handling common UI programming tasks:</P>
-<ul>
-  <li>
-<b>
-Viewers</b> handle the drudgery of populating, sorting, filtering, and updating widgets.</li>
-  <li>
-<b>
-Actions</b> and <b> contributions</b> introduce semantics for defining user actions and specifying where to make them available.</li>
-  <li>
-<b>
-Image</b> and <b> font registries</b> provide common patterns for handling UI resources.</li>
-  <li>
-<b>
-Dialogs</b> and <b> wizards</b> define a framework for building complex interactions with the
-user.</li>
-</ul>
-<P >
-JFace frees you up to focus on the implementation of your specific
-plug-in's function, rather than focusing on the underlying widget system or solving problems that are common in almost any UI application. </P>
-
-<h2>
-JFace and the workbench</h2>
-<P >
-Where does JFace end and the workbench begin? Sometimes the lines aren't so obvious. In general, the JFace APIs (from the packages
-<b>org.eclipse.jface.*</b>) are independent of the workbench extension points and APIs. Conceivably, a JFace program could be written without using any workbench code at all.</P>
-<P >
-The workbench makes use of JFace but attempts to reduce dependencies where possible. For example, the workbench part model
-(<a href="../reference/api/org/eclipse/ui/IWorkbenchPart.html"><b>IWorkbenchPart</b></a>)
-is designed to be independent of
-JFace. We saw earlier that views and editors can be implemented using SWT widgets directly without using any JFace classes. The workbench attempts to remain &quot;JFace neutral&quot; wherever possible, allowing programmers to use the parts of JFace they find useful. In practice, the workbench uses JFace for much of its implementation and there are references to JFace types in API definitions. (For example, the JFace interfaces for
-<b><a href="../reference/api/org/eclipse/jface/action/IMenuManager.html">IMenuManager</a></b>,
-<b><a href="../reference/api/org/eclipse/jface/action/IToolBarManager.html">IToolBarManager</a></b>, and
-<b><a href="../reference/api/org/eclipse/jface/action/IStatusLineManager.html"> IStatusLineManager</a></b> show up as types in the workbench
-<b><a href="../reference/api/org/eclipse/ui/IActionBars.html">IActionBar</a></b>
-methods.)</P>
-
-
-<h2>JFace and SWT</h2>
-<P >
-The lines between SWT and JFace are much cleaner. SWT does not depend on any JFace or platform code at all. Many of the SWT examples show how you can build a standalone application. </P>
-<P >
-JFace is designed to provide common application UI function on top of the SWT
-library. JFace does not try to &quot;hide&quot; SWT or replace its function. It provides classes and interfaces that handle many of the common tasks associated with programming a dynamic UI using
-SWT.</P>
-<P >
-The relationship between JFace and SWT is most clearly demonstrated by looking at viewers and their relationship to SWT widgets.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/jface_actions.htm b/bundles/org.eclipse.platform.doc.isv/guide/jface_actions.htm
deleted file mode 100644
index 3cc5f15..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/jface_actions.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Actions and contributions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Actions and contributions</H2>
-<P >
-The action classes allow you to define user commands independently from their presentation in the UI. This gives you the flexibility to change the presentation of an action in your plug-in without changing the code that actually performs the command once it has been chosen. The contribution classes are used to manage the actual UI items representing the commands. You don't program to the contribution classes, but you will see them in some of the workbench and JFace API.</P>
-
-<H3>
-Actions</H3>
-<P >
-An action (<a href="../reference/api/org/eclipse/jface/action/IAction.html"><b>IAction</b></a>) represents a command
-that can be triggered by the end user. Actions are typically associated with buttons, menu items, and items in tool bars. </P>
-<P >
-Although actions do not place themselves in the UI, they do have UI oriented properties, such as tool tip text, label text,
-and an image. This allows other classes to construct widgets for the presentation of the action.</P>
-<P >
-When the user triggers the action in the UI, the action's run method is invoked to do the actual work. A common pattern in the run method is to query the workbench selections and manipulate the objects that are selected. Another common pattern is to launch a wizard or dialog when an action is chosen. </P>
-<P >
-You should not directly implement the <a href="../reference/api/org/eclipse/jface/action/IAction.html"><b> IAction</b></a> interface. Instead, you should subclass the
-<b><a href="../reference/api/org/eclipse/jface/action/Action.html"> Action</a></b> class. Browse the subclasses of this class to see many of the common patterns for actions. The code below implements the &quot;About&quot; action. It is one of the simpler actions in the workbench.</P>
-<font color='#4444CC'><pre>
-   public void run() {
-      new AboutDialog(workbenchWindow.getShell()).open();
-   }
-</pre></font>
-<P >
-Earlier we saw the workbench interfaces <b><a href="../reference/api/org/eclipse/ui/IViewActionDelegate.html"> IViewActionDelegate</a></b> and
-<b><a href="../reference/api/org/eclipse/ui/IEditorActionDelegate.html">IEditorActionDelegate</a></b>. These interfaces are used when contributing view actions or editor actions to the workbench. The workbench action delegates are initialized with a reference to their associated view or editor. With this knowledge, they can navigate to the workbench page or window, accessing selections or any other information needed to perform the action. </P>
-<P >
-You will implement your own action classes whenever you want to define a command in your plug-in. If you are contributing actions to other views and editors, you will implement action delegates.</P>
-
-
-<H3>
-Contribution items</H3>
-<P >
-A contribution item (<a href="../reference/api/org/eclipse/jface/action/IContributionItem.html"><b>IContributionItem</b></a>) represents the UI portion of an action. More specifically, it represents an item that is contributed to a shared UI resource such as a menu or tool bar.</P>
-<P >
-Contribution items know how to fill a specific SWT widget with the appropriate SWT item that represents the contribution.</P>
-<P >
-You don't have to worry about creating a contribution item when you are
-contributing actions to the workbench UI. This is done on your behalf when the workbench creates UI items for the actions that you have defined.</P>
-
-
-<H3>
-Contribution managers</H3>
-<P >
-A contribution manager (<b><a href="../reference/api/org/eclipse/jface/action/IContributionManager.html">IContributionManager</a></b>) represents a collection of contribution items that will be
-presented in the UI. You can add and insert contribution items using named contribution ids to place the items in the appropriate order. You can also find items by id and remove individual items.</P>
-<P >
-Each implementation of <a href="../reference/api/org/eclipse/jface/action/IContributionManager.html"><b> IContributionManager</b></a> knows how to fill a specific SWT widget with its items. JFace provides contribution managers for
-menus (<b><a href="../reference/api/org/eclipse/jface/action/IMenuManager.html">IMenuManager</a></b>),
-tool bars (<b><a href="../reference/api/org/eclipse/jface/action/IToolBarManager.html">IToolBarManager</a></b>), and status
-lines (<b><a href="../reference/api/org/eclipse/jface/action/IStatusLineManager.html">IStatusLineManager</a></b>).</P>
-<P >
-As a plug-in developer, you do not need to implement these interfaces, but you will see references to some of these managers in API methods.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/jface_operations.htm b/bundles/org.eclipse.platform.doc.isv/guide/jface_operations.htm
deleted file mode 100644
index 813ccbb..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/jface_operations.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
- Long-running operations
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Long-running operations</H2>
-<P >
-The <b><a href="../reference/api/org/eclipse/jface/operation/package-summary.html"> org.eclipse.jface.operations</a></b> package defines interfaces for
-long-running operations that require progress indicators or allow user cancellation of the operation.</P>
-
-<H3>Runnables and progress</H3>
-<P >
-The platform core runtime defines a common interface, <b><a href="../reference/api/org/eclipse/core/runtime/IProgressMonitor.html">IProgressMonitor</a></b>, which is used to report progress to the user while long running operations are in progress. The
-client can provide a monitor as a parameter in many platform API methods when it
-is important to show progress to the user.</P>
-<P >JFace defines more specific interfaces for objects that implement the user interface for a progress monitor.&nbsp;</P>
-<P >
-<b><a href="../reference/api/org/eclipse/jface/operation/IRunnableWithProgress.html"> IRunnableWithProgress</a></b> 
-is the interface for a long-running operation.&nbsp; The <b>run</b>
-method for this interface has an <b><a href="../reference/api/org/eclipse/core/runtime/IProgressMonitor.html">IProgressMonitor</a>
-</b>parameter that is used to report progress and check for user cancelation.</P>
-<P ><a href="../reference/api/org/eclipse/jface/operation/IRunnableContext.html"><b>IRunnableContext</b></a>
-is the interface for the different places in the UI where progress can be
-reported.&nbsp; Classes that implement this interface may choose to use different techniques for showing progress and running the operation.&nbsp;
-For example, <b><a href="../reference/api/org/eclipse/jface/dialogs/ProgressMonitorDialog.html">ProgressMonitorDialog</a></b>
-implements this interface by showing a progress dialog.&nbsp; <b><a href="../reference/api/org/eclipse/ui/IWorkbenchWindow.html">IWorkbenchWindow</a></b>
-implements this interface by showing progress in the workbench window's status
-line.&nbsp; <a href="../reference/api/org/eclipse/jface/wizard/WizardDialog.html"><b>WizardDialog</b></a>
-implements this interface to show long running operations inside the wizard
-status line.</P>
-<i><blockquote>Note:&nbsp; The workbench UI provides additional support for
-operations in <b><a href="../reference/api/org/eclipse/ui/actions/WorkspaceModifyOperation.html">WorkspaceModifyOperation</a></b>.&nbsp;
-This class simplifies the implementation of long-running operations that modify
-the workspace.&nbsp; It maps between <a href="../reference/api/org/eclipse/jface/operation/IRunnableWithProgress.html"><b>IRunnableWithProgress</b></a>
-and <a href="../reference/api/org/eclipse/core/resources/IWorkspaceRunnable.html"><b>IWorkspaceRunnable</b></a>.&nbsp;
-See the javadoc for further detail.</blockquote></i>
-
-
-<H3>
-Modal operations</H3>
-<P >
-The <b><a href="../reference/api/org/eclipse/jface/operation/ModalContext.html"> ModalContext</a></b> class is provided to run an operation that is modal from the client code's perspective.
-It is used inside the different implementations of <a href="../reference/api/org/eclipse/jface/operation/IRunnableContext.html"><b>IRunnableContext</b></a>.&nbsp;
-If your plug-in needs to wait on the completion of a long-running operation before continuing
-execution, <b><a href="../reference/api/org/eclipse/jface/operation/ModalContext.html">ModalContext</a></b> can be used to accomplish this while still keeping the user interface responsive.</P>
-<P >
-When you run an operation in a modal context, you can choose to fork the operation in a different thread. If
-<b>fork</b> is false, the operation will be run in the
-calling thread.&nbsp; If <b>fork</b> is true,&nbsp; the
-operation will be run in a new thread, the calling thread will be blocked, and
-the UI event loop will be run until the operation terminates.&nbsp;&nbsp;</P>
-<P >
-For more information on the UI event loop, see <a HREF="swt_threading.htm" CLASS="XRef"> Threading issues for clients</a>.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/jface_resources.htm b/bundles/org.eclipse.platform.doc.isv/guide/jface_resources.htm
deleted file mode 100644
index 8704417..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/jface_resources.htm
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-User interface resources
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-User interface resources</H2>
-<P >
-The <b><a href="../reference/api/org/eclipse/jface/resource/package-summary.html"> org.eclipse.jface.resource</a></b> package defines classes that help plug-ins manage UI resources such as fonts and icons.</P>
-<P >
-Many of the workbench extension points allow plug-ins to supply icons that can be used to show their contributions in the workbench. Since GUI operating systems support a limited number of images or fonts in memory at once, a plug-in's UI resources must be carefully managed and sometimes shared between widgets.</P>
-<P >
-We've already seen several references to icons in the readme tool plug-in. Some of its icons are specified in the
-<b> plugin.xml</b> markup.</P>
-<pre><font color="#4444CC">&lt;extension
-   point=&quot;org.eclipse.ui.views&quot;&gt;
-	&lt;category
-	   id=&quot;org.eclipse.ui.examples.readmetool&quot;
-	   name=&quot;%Views.category&quot;&gt;
-	&lt;/category&gt;
-	&lt;view
-	   id=&quot;org.eclipse.ui.examples.readmetool.views.SectionsView&quot;
-	   name=&quot;%Views.ReadmeSections&quot;
-	   <b>icon</b>=&quot;icons/view16/sections.gif&quot;
-	   category=&quot;org.eclipse.ui.examples.readmetool&quot;
-	   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeSectionsView&quot;&gt;
-	&lt;/view&gt;
-&lt;/extension&gt;</font></pre>
-<P >
-We've also seen code that describes images on the fly. The following is from the readme tool's
-<b>ReadmeEditorActionBarContributor</b>.</P>
-<font color='#4444CC'><pre>public ReadmeEditorActionBarContributor() {
-      	...
-	action1 = new EditorAction(MessageUtil.getString(&quot;Editor_Action1&quot;));
-	action1.setToolTipText(MessageUtil.getString(&quot;Readme_Editor_Action1&quot;));
-<b>	action1.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_DISABLE);
-	action1.setImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_ENABLE);
-</b>	...
-</pre></font>
-<P >JFace provides the basic support classes that allow plug-ins to manage their icons and fonts without worrying about when the corresponding platform graphics objects
-are created and destroyed. These support classes are used directly by plug-ins as shown above, or indirectly when the workbench uses these classes to obtain images that are described in extension point markup.</P>
-
-<H3>
-Image descriptors and the registry</H3>
-<P >
-The SWT <b><a href="../reference/api/org/eclipse/swt/graphics/Image.html">Image</a></b> class represents an image from the operating system's perspective. Because most GUI operating systems have a limit on the number of images that can be open at once, plug-ins should be very careful when creating them,
-and ensure that they also dispose of them properly when finished using them. By using the JFace
-<b><a href="../reference/api/org/eclipse/jface/resource/ImageDescriptor.html"> ImageDescriptor</a></b> and
-<b><a href="../reference/api/org/eclipse/jface/resource/ImageRegistry.html"> ImageRegistry</a></b> classes instead of the SWT image, plug-ins can generally avoid creating, managing, and disposing these images directly.</P>
-
-<H4>
-Image descriptor</H4>
-<P >
-The <b><a href="../reference/api/org/eclipse/jface/resource/ImageDescriptor.html"> ImageDescriptor</a></b> class can be used as a lightweight description of an image. It specifies everything that is needed to create an image, such as the
-URL or filename where the image can be obtained.
-<b><a href="../reference/api/org/eclipse/jface/resource/ImageDescriptor.html"> ImageDescriptors</a></b> do not allocate an actual platform image unless specifically requested using the
-<b> createImage()</b> method. </P>
-<P >
-Image descriptors are the best strategy when your code is structured such that it defines all the icons in one place and allocates them as they are needed. Image descriptors can be created at any time without concern for OS resources, making it convenient to create them all in initialization code. </P>
-
-
-<H4>
-Image registry</H4>
-<P >
-The <a href="../reference/api/org/eclipse/jface/resource/ImageRegistry.html"><b> ImageRegistry</b></a> class is used to keep a list of named images. Clients can add image descriptors or SWT images directly to the list. When an image is requested by name from the registry, the registry will return the image if it has been created, or create one from the descriptor. This allows clients of the registry to share images.</P>
-<P >
-Images that are added to or retrieved from the registry must not be disposed by any client. The registry is responsible for disposing of the image since the images are shared by multiple clients. The registry will dispose of the images when the platform GUI system shuts down.</P>
-
-
-
-<H3>
-<a name="jface_resources_patterns">
-Plug-in patterns for using images</a></H3>
-
-<H4>
-Specifying the image in the plugin.xml</H4>
-<P >
-Where possible, specify the icon for your plug-in's UI objects in the <b> plugin.xml</b> file. Many of the workbench extension points include configuration parameters for an icon file. By defining your icons in your extension contribution in the plugin.xml, you leave the image management strategy up the platform. Since the icons are typically kept in your plug-in's directory, this allows you to specify the icons and manage the files all in one place.</P>
-<P >
-The other patterns should only be considered when you can't specify the icon as part of your extension contribution.</P>
-
-
-<H4>
-Explicit creation</H4>
-<P >
-Explicitly creating an image is the best strategy when the image is infrequently used and not shared. The image can be created directly in SWT and disposed after it is used.</P>
-<P >
-Images can also be created explicitly using an <b><a href="../reference/api/org/eclipse/jface/resource/ImageDescriptor.html"> ImageDescriptor</a></b> and invoking the
-<b> createImage()</b> method. As in the first case, the dispose() method for the image must be invoked after the image is
-no longer needed.&nbsp; For example, if a dialog creates an image when it is
-opened, it should dispose the image when it is closed.</P>
-
-
-<H4>
-Image registry</H4>
-<P >
-When an image is used frequently in a plug-in and shared across many different objects in the UI, it is useful to register the image descriptor with an
-<a href="../reference/api/org/eclipse/jface/resource/ImageRegistry.html"><b>ImageRegistry</b></a>. The images in the registry will be shared with any object that queries an image by the same name. You must not dispose any images in the registry since they are shared by other objects.</P>
-<P >
-Adding an image to the image registry is the best strategy when the image is used frequently, perhaps through the lifetime of the plug-in, and is shared by many objects. The disadvantage of using the registry is that images in the registry are not disposed until the
-GUI system shuts down. Since there is a limit on the number of platform (SWT) images that can be open at one time, plug-ins should be careful not to register too many icons in a registry.</P>
-<P >
-The class <b><a href="../reference/api/org/eclipse/ui/plugin/AbstractUIPlugin.html"> AbstractUIPlugin</a></b> includes protocol for creating a plug-in wide image registry.</P>
-
-
-<H4>
-Label providers</H4>
-<P >
-When an icon is used frequently to display items in a particular viewer, it can be shared among similar items in the viewer using a label provider. Since a label provider is responsible for returning an image for any
-object in a viewer, it can control the creation of the image and any sharing of images across objects in the viewer. </P>
-<P >
-The label provider can use any of the previously discussed techniques to produce an image. If you browse the various implementations of
-<b> getImage()</b> in the <b><a href="../reference/api/org/eclipse/jface/viewers/LabelProvider.html"> LabelProvider</a></b> subclasses, you will see a variety of approaches including caching a single icon for objects and maintaining a table of images by type.&nbsp;
-Images created by a label provider must be disposed in the provider's <b>dispose()
-</b>method, which is called when the viewer is disposed.</P>
-<P >
-Using a label provider is a good compromise between explicit creation and the image registry. It promotes sharing of icons like the image registry, yet still maintains control over the creation and disposal of the actual image.</P>
-
-
-<H4>
-Plug-in wide image class</H4>
-<P >
-When fine-tuning a plug-in, it is common to experiment with all of these different image creation patterns. It
-can be useful to isolate the decision making regarding image creation in a separate class and instruct all clients to use the class to obtain all images. This way, the creation sequence can be tuned to reflect the actual performance characteristics of the plug-in.&nbsp;</P>
-
-
-
-<H3>
-Font registry</H3>
-<P >
-Fonts are another limited resource in platform operating systems. The creation and disposal issues are the same for fonts as
-for images, requiring similar speed/space tradeoffs. In general, fonts are allocated in SWT by requesting a font with a platform dependent font name.</P>
-<P >
-The <b><a href="../reference/api/org/eclipse/jface/resource/FontRegistry.html"> FontRegistry</a></b> class keeps a table of fonts by their name. It manages the allocation and disposal of the font.</P>
-<P >
-In general, plug-ins should avoid allocating any fonts or describing fonts with platform specific names. Although the font registry is used internally in JFace, it is typically not used by plug-ins. The
-<b><a href="../reference/api/org/eclipse/jface/resource/JFaceResources.html"> JFaceResources</a></b> class should be used to access common fonts.</P>
-<P >It is very common to allow users to specify their preferences for the
-application's fonts in a preference page.&nbsp; In these cases, the
-<b><a href="../reference/api/org/eclipse/jface/preference/FontFieldEditor.html"> FontFieldEditor</a></b> should be used to obtain the font name from the user, and a
-<b><a href="../reference/api/org/eclipse/jface/resource/FontRegistry.html"> FontRegistry</a></b> may be used to keep the font.&nbsp;
-The
-<b><a href="../reference/api/org/eclipse/jface/preference/FontFieldEditor.html"> FontFieldEditor</a></b>
-is only used in preference pages.</P>
-
-
-<H3>
-JFaceResources</H3>
-<P >
-The class <a href="../reference/api/org/eclipse/jface/resource/JFaceResources.html"><b> JFaceResources</b></a> controls access to common platform fonts and images. It maintains an internal font and image registry so that clients can share named fonts and images.</P>
-<P >
-There are many techniques used in the workbench and other plug-ins to share images where required. The
-<a href="../reference/api/org/eclipse/jface/resource/JFaceResources.html"><b> JFaceResources</b></a> image registry is not widely used across the workbench and plug-in code.</P>
-<P >
-Use of fonts is much simpler. The workbench and most plug-ins use the <a href="../reference/api/org/eclipse/jface/resource/JFaceResources.html"><b> JFaceResources</b></a> class to request fonts by logical name. Methods such as
-<b> getDialogFont() </b> and <b> getDefaultFont()</b> are provided so that plug-ins can use the expected fonts in their UI.</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/jface_viewers.htm b/bundles/org.eclipse.platform.doc.isv/guide/jface_viewers.htm
deleted file mode 100644
index da184b3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/jface_viewers.htm
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Viewers
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Viewers</H2>
-<P >
-Why would you ever want to use a viewer when we have already seen that workbench
-UI contributions like views, editors, wizards, and dialogs can be implemented
-directly with SWT widgets?&nbsp;&nbsp;</P>
-<P >Viewers allow you to create widgets while still using your model
-objects.&nbsp; If you use an SWT widget directly, you have to convert your
-objects into the strings and images expected by SWT.&nbsp; Viewers act as
-adapters on SWT widgets, handling the common code for handling widget events
-that you would otherwise have to implement yourself.&nbsp;</P>
-<P > We first saw a viewer in the readme tool's view contribution, inside the
-<b>ReadmeSectionsView</b>.</P>
-<font color='#4444CC'><pre>
-   public void createPartControl(Composite parent) {
-      viewer = new ListViewer(parent);
-      ...
-   }
-</pre></font>
-<i><blockquote>
-Note:&nbsp; Viewers can be used to provide the implementation for both workbench views and editors. The term viewer does not imply that they are only useful for implementing views. For example, the
-<b> TextViewer</b> is used in the implementation in many of the workbench and plug-in editors.</blockquote></i>
-
-<H3>
-Standard viewers</H3>
-<P >JFace provides viewers for most of the non-trivial widgets in SWT. Viewers are most commonly used for
-list, tree, table, and text widgets.&nbsp;</P>
-<P >
-Each viewer has an associated SWT widget. This widget can be created implicitly by supplying the parent
-<b> Composite</b> in a convenience viewer constructor, or explicitly by creating it first and supplying it to the viewer in its constructor.</P>
-<h4 ><a name="listviewer">List-oriented viewers</a></h4>
-<P > Lists, trees, and tables share many common capabilities from a user's point of view, such as population with objects, selection, sorting, and filtering.&nbsp;</P>
-<P >These viewers keep
-a list of domain objects (called <b>elements</b>) and display them in their
-corresponding SWT widget. A list viewer knows how to get a text label from any
-element in the list.&nbsp; It obtains the label from an <a href="../reference/api/org/eclipse/jface/viewers/ILabelProvider.html"><b>ILabelProvider</b></a>
-which can be set on the viewer.&nbsp; List viewers know how to map from the widget callbacks back into the
-world of elements known by the viewer client.</P>
-<P >
-Clients that use a plain SWT widget have to operate
-at the SWT level - where items are strings and events often relate to an index within the list of strings. Viewers provide higher level semantics. Clients are notified of selections and changes to the list
-using the elements they provided to the viewer. The viewer handles all the grunt work for mapping indexes back to
-elements, adjusting for a filtered view of the objects, and re-sorting when necessary.</P>
-<P >
-Filtering and sorting capability is handled by designating a viewer sorter (<a href="../reference/api/org/eclipse/jface/viewers/ViewerSorter.html"><b>ViewerSorter</b></a>)
-and/or viewer filter (<a href="../reference/api/org/eclipse/jface/viewers/ViewerFilter.html"><b>ViewerFilter</b></a>)
-for the viewer. (These can be specified for tree and table viewers in addition to
-list viewers.) The client need only provide a class that can compare or filter the objects in the list. The viewer handles the details of populating the list according to the specified order and
-filter, and maintaining the order and filter as elements are added and removed.</P>
-
-
-<P >
-Viewers are not intended to be extended by clients.&nbsp; To customize a viewer,
-you can configure it with your own content and label providers.</P>
-
-
-<P >A <b><a href="../reference/api/org/eclipse/jface/viewers/ListViewer.html">ListViewer</a></b>
-maps elements in a list to an SWT <b><a href="../reference/api/org/eclipse/swt/widgets/List.html">List</a></b>
-control.</P>
-
-<P >
-A <a href="../reference/api/org/eclipse/jface/viewers/TreeViewer.html"><b> TreeViewer</b></a> displays hierarchical objects in an SWT
-<a href="../reference/api/org/eclipse/swt/widgets/Tree.html"><b> Tree</b></a> widget. It handles the
-details for expanding and collapsing items. There are several different kinds of tree viewers for different SWT tree controls (plain tree, table tree, checkbox tree).</P>
-<P >A <a href="../reference/api/org/eclipse/jface/viewers/TableViewer.html"><b>TableViewer</b></a>
- is very similar to a list viewer, but adds the ability to view multiple columns
-of information for each element in the table.&nbsp; Table viewers significantly extend the function of the SWT table widget by introducing the concept of editing a cell. Special cell editors can be used to allow the user to edit a table cell using a combo
-box, dialog, or text widget. The table viewer handles the creation and placement of these widgets when needed for user editing.&nbsp;
-This is done using the <b><a href="../reference/api/org/eclipse/jface/viewers/CellEditor.html">CellEditor</a></b>
-classes, such as <b><a href="../reference/api/org/eclipse/jface/viewers/TextCellEditor.html">TextCellEditor</a></b>
-and <b><a href="../reference/api/org/eclipse/jface/viewers/CheckboxCellEditor.html">CheckboxCellEditor</a></b>. </P>
-
-
-<H4>
-Text viewer</H4>
-<P >
- Text widgets have many common semantics such as double click behavior, undo, coloring, and navigating by index or line.&nbsp;
-A <b><a href="../reference/api/org/eclipse/jface/text/TextViewer.html">TextViewer</a></b>
-is an adapter for an SWT <a href="../reference/api/org/eclipse/swt/custom/StyledText.html"><b>StyledText</b></a>
-widget. Text viewers provide a document model to the client and manage the conversion of the document to the styled text information provided by the text widget.</P>
-<P >
-Text viewers are covered in more detail in <a HREF="editors.htm" CLASS="XRef">Workbench
-Editors</a>.</P>
-
-
-
-<H3>
-Viewer architecture</H3>
-<P >
-To understand a viewer, you must become familiar with the relationship between a viewer's input element, its contents, its selection, and the information actually displayed in the widget that it is manipulating.</P>
-
-<H4>
-Input elements</H4>
-<P >
-An <b> input element</b> is the main object that the viewer is displaying (or editing). From the viewer's point of view, an input element can be any object at all. It does not assume any particular interface is implemented by the input element. (We'll see why in a moment when we look at content providers.)</P>
-<P >
-A viewer must be able to handle a change of input element. If a new input element is set into a viewer, it must repopulate its widget according to the new element, and disassociate itself from the previous input element. The semantics
-for registering as a listener on an input element and populating the widget
-based on the element are different for each kind of viewer.</P>
-
-
-<H4>
-Content viewers</H4>
-<P >
-A <b> content viewer</b> is a viewer that has a well defined protocol for obtaining information from its input element. Content viewers use two specialized helper classes, the
-<b><a href="../reference/api/org/eclipse/jface/viewers/IContentProvider.html">IContentProvider</a></b> and
-<b><a href="../reference/api/org/eclipse/jface/viewers/ILabelProvider.html">ILabelProvider</a></b>, to populate their widget and display information about the input element.</P>
-<P >
-<b><a href="../reference/api/org/eclipse/jface/viewers/IContentProvider.html">
-IContentProvider</a></b> provides basic lifecycle protocol for associating a content provider with an input element and handling a change of input element. More specialized content providers are implemented for different kinds of viewers. The most common content provider is
-<b><a href="../reference/api/org/eclipse/jface/viewers/IStructuredContentProvider.html">IStructuredContentProvider</a></b>, which can provide a list of objects given an input element. It is used in list-like viewers, such as lists, tables, or trees. In general, the content provider knows how to map between the input element and the expected viewer content.</P>
-<P >
-<b><a href="../reference/api/org/eclipse/jface/viewers/ILabelProvider.html">
-ILabelProvider</a></b> goes a step further. Given the content of a viewer (derived from the input element and content provider), it can produce the specific UI elements, such as names and icons, that are needed to display the content in the viewer. Label providers can aid in saving icon resources since they can ensure the same instance of the icon is used for all like types in a viewer.</P>
-<i><blockquote>
-Note:&nbsp; Instances of particular content and label providers are not intended to be shared across multiple viewers. Even if all your viewers use the same type of content or label provider, each viewer should be initialized with
-its own instance of the provider class. The provider life cycle protocol is
-designed for a 1-to-1 relationship between a provider and its
-viewer.&nbsp;&nbsp;</blockquote></i>
-<P >
-Input elements, content providers, and label providers allow viewers to hide most of the implementation details for populating widgets. Clients of a viewer need only worry about populating a viewer with the right kind of input and content provider. The label provider must know how to derive the UI information from the viewer content.</P>
-
-
-
-<H3>
-Viewers and the workbench</H3>
-<P >
-The flexibility provided by viewers, content providers, and label providers can be demonstrated by looking at how the workbench uses them.</P>
-<P >
-The <b><a href="../reference/api/org/eclipse/ui/model/WorkbenchContentProvider.html"> WorkbenchContentProvider</a></b> is a structured content provider that obtains contents from an input element by asking for its children. The concept of adapters is used again in order to implement generic function. When asked for the list of elements from its input element, the
-<b><a href="../reference/api/org/eclipse/ui/model/WorkbenchContentProvider.html"> WorkbenchContentProvider</a></b> obtains an
-<b><a href="../reference/api/org/eclipse/ui/model/IWorkbenchAdapter.html">IWorkbenchAdapter</a></b> for the input element. If an
-<b><a href="../reference/api/org/eclipse/ui/model/IWorkbenchAdapter.html">IWorkbenchAdapter</a></b> has been registered for the input element, then the content provider can safely assume that the element can be queried for its
-children.&nbsp; <b><a href="../reference/api/org/eclipse/ui/model/WorkbenchContentProvider.html">WorkbenchContentProvider</a>
-</b>also does the work needed to keep its viewer up to date when the
-workspace changes.&nbsp;</P>
-<P >
-The <b><a href="../reference/api/org/eclipse/ui/model/WorkbenchLabelProvider.html">WorkbenchLabelProvider</a></b>
-is a label provider that obtains an <b><a href="../reference/api/org/eclipse/ui/model/IWorkbenchAdapter.html">IWorkbenchAdapter</a></b> from an object in order to find its text and image. The concept of a label provider is particularly helpful for workbench objects because it allows a single label provider to cache images that are commonly used in a viewer. For example, once the
-<b><a href="../reference/api/org/eclipse/ui/model/WorkbenchLabelProvider.html">WorkbenchLabelProvider</a></b> obtains an image to use for an
-<b><a href="../reference/api/org/eclipse/core/resources/IProject.html">IProject</a></b>, it can cache that image and use it for all
-<b><a href="../reference/api/org/eclipse/core/resources/IProject.html"> IProject</a></b> objects shown in the viewer.</P>
-<P >
-By defining a common adapter, <b><a href="../reference/api/org/eclipse/ui/model/IWorkbenchAdapter.html">IWorkbenchAdapter</a></b>, and registering it for many of the platform types, we make it possible for these types to be represented correctly in many of the common viewers and the workbench views that contain them. </P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences.htm
deleted file mode 100644
index 9165e02..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Preferences and properties
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>Preferences and properties</H1>
-<P >
-The workbench provides additional extension points
-for contributing specialized dialog pages.&nbsp;&nbsp; <b>Preference pages</b> allow
-the user to customize a plug-in by selecting values for a plug-in defined set of
-preferences.</P>
-<P >
-<b>
-Properties pages</b> allow users to see, and possibly edit, the plug-in specific properties of a resource.</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs.htm
deleted file mode 100644
index 57cf239..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Preferences
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Preferences</H2>
-<P >
-The workbench implements a generic preferences architecture that allows plug-ins to store user preference values and contribute a preference page to the workbench preferences dialog. We will look again at the readme tool example to see how this is done, and then look at some of the underlying support for building preference pages.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_contribute.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_contribute.htm
deleted file mode 100644
index c25b65f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_contribute.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Contributing a preference page
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Contributing a preference page</h3>
-<P >
-The <b><a href="../reference/extension-points/org_eclipse_ui_preferencePages.html"> org.eclipse.ui.preferencePages</a></b> extension point allows you to contribute pages to the workbench preferences
-(<b>Window-&gt;Preferences</b>) dialog. The preferences dialog presents a hierarchical list of user preference entries. Each entry displays a corresponding preference page when selected.</P>
-<P >
-The readme tool uses this extension point to add the Readme Example preferences page.</P>
-<font color='#4444CC'><pre>   &lt;extension
-      point = &quot;org.eclipse.ui.preferencePages&quot;&gt;
-       &lt;page id=&quot;org.eclipse.ui.examples.readmetool.Page1&quot;
-	    class=&quot;org.eclipse.ui.examples.readmetool.ReadmePreferencePage&quot;
-            name=&quot;%PreferencePage.name&quot;&gt;
-       &lt;/page&gt;
-   &lt;/extension&gt;</pre></font>
-<P >
-This markup defines a preference page named &quot;Readme Example&quot; which is implemented by the class
-<b>ReadmePreferencePage</b>. The class must implement the
-<b><a href="../reference/api/org/eclipse/ui/IWorkbenchPreferencePage.html"> IWorkbenchPreferencePage</a></b> interface.</P>
-<P > The workbench uses a
-<b><a href="../reference/api/org/eclipse/jface/preference/PreferenceManager.html"> PreferenceManager</a></b> to keep a list of all nodes in the preference tree and their corresponding pages. This list can be initialized from information in the plug-in registry without running any plug-in code.&nbsp;
-Your plug-in's contribution to the preferences dialog (the &quot;Readme
-Example&quot; entry on the left) is shown before any of your code is run. </P>
-<P >
-<img src="images/preferences.gif" alt="Workbench preferences page" border="0" width="519" height="541"></P>
-<P >
-The &quot;Readme Example&quot; preference is added to the top level of the
-preference tree on the left.&nbsp; Why? Because a preference page contribution will be added as a root of the tree unless a
-<b> category</b> attribute is specified. (The name <b> category</b> is somewhat misleading.
-Perhaps a better name is
-<b>path</b>.) The <b> category</b> attribute
-specifies the id (or a sequence of ids from the root) of the parent page. For example, the following markup would create a second readme tool preference page, &quot;Readme Example Child Page,&quot; as a child of the original page.</P>
-<font color='#4444CC'><pre>
-   &lt;extension
-      point = &quot;org.eclipse.ui.preferencePages&quot;&gt;
-      &lt;page
-         id=&quot;org.eclipse.ui.examples.readmetool.Page1&quot;
-         class=&quot;org.eclipse.ui.examples.readmetool.ReadmePreferencePage&quot;
-         name=&quot;%PreferencePage.name&quot;&gt;
-      &lt;/page&gt;
-      &lt;page
-         id=&quot;org.eclipse.ui.examples.readmetool.Page2&quot;
-         class=&quot;org.eclipse.ui.examples.readmetool.ReadmePreferencePage2&quot;
-         name=&quot;Readme Example Child Page&quot;
-         category=&quot;org.eclipse.ui.examples.readmetool.Page1&gt;
-      &lt;/page&gt;
-   &lt;/extension&gt;
-</pre></font>
-
-
-<P >
-Once the user selects the entry for a preference page in the tree on the left,
-the workbench will create and display a preference page using the <b> class</b> specified in the
-extension definition.&nbsp; This action is what activates the plug-in (if it
-wasn't already activated due to another user operation).</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_fieldeditors.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_fieldeditors.htm
deleted file mode 100644
index 313ab1a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_fieldeditors.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Field editors
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<font color='#4444CC'></font>
-
-
-
-<H3>
-Field editors</H3>
-<P >
-The implementation of a preference page is primarily SWT code.&nbsp; SWT code is
-used to create the preference page controls, set the values of the controls, and
-retrieve the values of the controls. The
-<b><a href="../reference/api/org/eclipse/jface/preference/package-summary.html">org.eclipse.jface.preference</a></b> package provides helper classes, called
-<b> field editors</b>, that create the widgets and implement the value setting and retrieval code for the most common preference types. The platform provides field editors for displaying and updating many value types, including booleans, colors, strings, integers, fonts, and file names.</P>
-<P >
- <b><a href="../reference/api/org/eclipse/jface/preference/FieldEditorPreferencePage.html"> FieldEditorPreferencePage</a></b> implements a
-page that uses these field editors to display and store the preference values on the page.&nbsp;
- Instead of creating SWT controls to fill its contents, a <b><a href="../reference/api/org/eclipse/jface/preference/FieldEditorPreferencePage.html"> FieldEditorPreferencePage</a></b> 
-subclass creates field editors to display the contents.&nbsp; All of the fields
- on the page must be implemented as field editors.&nbsp; The following is a
-snippet from the debug UI preferences page:</P>
-<font color='#4444CC'><pre>protected void createFieldEditors() {
-	addField(new BooleanFieldEditor(IDebugUIConstants.PREF_BUILD_BEFORE_LAUNCH, 
-		DebugPreferencesMessages.getString(&quot;DebugPreferencePage.auto_build_before_launch&quot;), 
-		SWT.NONE, getFieldEditorParent())); 
-	...	
-	String[][] perspectiveNamesAndIds = getPerspectiveNamesAndIds();
-	addField(new ComboFieldEditor(IDebugUIConstants.PREF_SHOW_DEBUG_PERSPECTIVE_DEFAULT,
-		DebugPreferencesMessages.getString(&quot;DebugPreferencePage.Default_perspective_for_Debug_2&quot;), //$NON-NLS-1$
-		perspectiveNamesAndIds,
-		getFieldEditorParent()));
-	...
-}</pre></font>
-<P >
-Each field editor is assigned the name of its corresponding preference key and the text label for the SWT
-control that it will create. The kind of control created depends on the type of field editor. For example, a boolean field editor creates a checkbox.</P>
-<P >
-Since the preference page is associated with a preference store (specified in the
-<b> doGetPreferenceStore</b> method), the code for storing the current values,
-for initializing the control values from the preference store, and for restoring the controls to
-their default values can all be implemented in the
-<b><a href="../reference/api/org/eclipse/jface/preference/FieldEditorPreferencePage.html">FieldEditorPreferencePage</a></b>.</P>
-<P >
-The <b><a href="../reference/api/org/eclipse/jface/preference/FieldEditorPreferencePage.html"> FieldEditorPreferencePage</a></b> 
-will use a grid layout with one column as the default layout for field editor
-widgets.&nbsp; For special layout requirements, you can override the <b>createContents</b> method.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_implement.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_implement.htm
deleted file mode 100644
index 607ee8f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prefs_implement.htm
+++ /dev/null
@@ -1,159 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Implementing a preference page
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Implementing a preference page</h3>
-
-<H4>
-Defining the page</H4>
-<P >
-Implementing a preference page is similar to creating a page for a wizard. The preference page supplies a
-<b> createContents</b> method that creates the SWT controls representing the page content and adds listeners for any events of interest. The page is responsible for creating and returning the composite that will parent all of the controls in the page.&nbsp;
-The following snippet shows the highlights:</P>
-<font color='#4444CC'><pre>
-protected Control createContents(Composite parent)
-{
-	...
-	//composite_textField &lt;&lt; parent
-	Composite composite_textField = createComposite(parent, 2);
-	Label label_textField = createLabel(composite_textField, MessageUtil.getString(&quot;Text_Field&quot;));	 
-	textField = createTextField(composite_textField);
-	pushButton_textField = createPushButton(composite_textField, MessageUtil.getString(&quot;Change&quot;)); 
-
-	//composite_tab &lt;&lt; parent
-	Composite composite_tab = createComposite(parent, 2);
-	Label label1 = createLabel(composite_tab, MessageUtil.getString(&quot;Radio_Button_Options&quot;)); 
-
-	//
-	tabForward(composite_tab);
-	//radio button composite &lt;&lt; tab composite
-	Composite composite_radioButton = createComposite(composite_tab, 1);
-	radioButton1 = createRadioButton(composite_radioButton, MessageUtil.getString(&quot;Radio_button_1&quot;)); 
-	radioButton2 = createRadioButton(composite_radioButton, MessageUtil.getString(&quot;Radio_button_2&quot;)); 
-	radioButton3 = createRadioButton(composite_radioButton, MessageUtil.getString(&quot;Radio_button_3&quot;)); 
-
-
-	//composite_tab2 &lt;&lt; parent
-	Composite composite_tab2 = createComposite(parent, 2);
-	Label label2 = createLabel(composite_tab2, MessageUtil.getString(&quot;Check_Box_Options&quot;)); //$NON-NLS-1$
-
-	//
-	tabForward(composite_tab2);
-	//composite_checkBox &lt;&lt; composite_tab2
-	Composite composite_checkBox = createComposite(composite_tab2, 1);
-	checkBox1 = createCheckBox(composite_checkBox, MessageUtil.getString(&quot;Check_box_1&quot;)); 
-	checkBox2 = createCheckBox(composite_checkBox, MessageUtil.getString(&quot;Check_box_2&quot;)); 
-	checkBox3 = createCheckBox(composite_checkBox, MessageUtil.getString(&quot;Check_box_3&quot;)); 
-
-	initializeValues();
-
-	return new Composite(parent, SWT.NULL);
-}</pre></font>
-<P >
- Most of the code in this method is concerned with creating and laying out the controls, so we won't dissect it here.&nbsp;
-Here is what the corresponding page looks like:</P>
-<P >
-<img src="images/readmepreferences.gif" alt="Readme tool preferences page" border="0" width="519" height="541"></P>
-<P >
-The other primary responsibility of a preference page is to react to the <b> performOk</b> message. Typically, this method
-updates and stores the user preferences and, if necessary, updates any other plug-in objects to reflect the change in preferences.&nbsp;
-The <b>performDefaults</b> method is used to restore preferences to their
-default state when the user presses the <b>Restore Defaults</b>
-button.&nbsp;&nbsp;</P>
-<P >
-You may override <b>performApply</b> if you have additional processing when the
-user selects <b>Apply</b>.&nbsp; The default implementation is to call <b>performOk</b>.&nbsp;&nbsp;</P>
-<P >
-Preference pages should override the <b> doGetPreferenceStore()</b> method to return a preference store for storing their values. </P>
-
-
-<H4>
-Plug-in preference store</H4>
-<P >
-Preference stores are similar in nature to dialog settings. In <a HREF="dialogs_settings.htm" CLASS="XRef">Dialog settings</a>, we saw how the
-<b><a href="../reference/api/org/eclipse/ui/plugin/AbstractUIPlugin.html"> AbstractUIPlugin</a></b> class maintains dialog settings during the lifetime of a plug-in. The same strategy is employed for user preferences. Your plug-in can add entries to a preference store and update the values as the user changes the settings in your preferences page. The platform will take care of saving these values in your plug-in's
-working directory and initializing the preference store from the saved settings.</P>
-<P >
-The following code in the <b> ReadmePreferencePage</b> obtains the preference store for the
-<b>ReadmePlugin</b>.</P>
-<font color='#4444CC'><pre>
-   protected IPreferenceStore doGetPreferenceStore() {
-      return ReadmePlugin.getDefault().getPreferenceStore();
-   }
-</pre></font>
-<P >
-Because <b> ReadmePlugin</b> extends the <b><a href="../reference/api/org/eclipse/ui/plugin/AbstractUIPlugin.html"> AbstractUIPlugin</a></b> class, it automatically inherits a preference store. This preference store is initialized from a preferences file stored in the
-plug-in's directory.&nbsp; The only thing the <b> ReadmePlugin</b> has to do is implement a method that initializes the
-preference controls to their default values. These values are used the first time the preference page is shown or when the user presses the
-<b>Defaults</b> button in the preferences page.</P>
-<font color='#4444CC'><pre>
-protected void initializeDefaultPreferences(IPreferenceStore store) {
-	// These settings will show up when Preference dialog
-	// opens up for the first time.
-	store.setDefault(IReadmeConstants.PRE_CHECK1, true);
-	store.setDefault(IReadmeConstants.PRE_CHECK2, true);
-	store.setDefault(IReadmeConstants.PRE_CHECK3, false);
-	store.setDefault(IReadmeConstants.PRE_RADIO_CHOICE, 2);
-	store.setDefault(IReadmeConstants.PRE_TEXT, MessageUtil.getString(&quot;Default_text&quot;)); //$NON-NLS-1$
-}</pre></font>
-
-
-<i><blockquote>
-Note:&nbsp; If there are no preferences saved for a plug-in, the plug-in will get an empty preference
-store.</blockquote></i>
-
-
-<H4>
-Retrieving and saving preferences</H4>
-<P >
-Once you've associated your plug-in's preference store with your preference page, you can implement the logic for retrieving and saving the preferences.</P>
-<P >
-Preference pages are responsible for initializing the values of their controls using the preferences settings from the preference store. This
-process is similar to initializing dialog control values from dialog settings. The
-<b> ReadmePreferencePage</b> initializes all of its controls in a single method,
-<b>initializeValues</b>, which is called from its <b> createContents</b> method.</P>
-<font color='#4444CC'><pre>private void initializeValues() {
-	IPreferenceStore store = getPreferenceStore();
-	checkBox1.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK1));
-	checkBox2.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK2));
-	checkBox3.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK3));
-	...
-}</pre></font>
-<P >
-When the <b>OK</b> (or <b>Apply</b>) button is pressed, the current values of the controls on the preference page should be stored back into the
-preference store. The
-<b> ReadmePreferencePage</b> implements this logic in a separate method,
-<b>storeValues</b>.</P>
-<font color='#4444CC'><pre>
-private void storeValues() {
-	IPreferenceStore store = getPreferenceStore();
-	store.setValue(IReadmeConstants.PRE_CHECK1, checkBox1.getSelection());
-	store.setValue(IReadmeConstants.PRE_CHECK2, checkBox2.getSelection());
-	store.setValue(IReadmeConstants.PRE_CHECK3, checkBox3.getSelection());
-	...
-}</pre></font>
-<P >
-When the user presses the <b>Defaults</b> button, the platform will restore all preference store values to the default values specified in the plug-in class. However, your preference page is responsible for reflecting these default values
-in the controls on the preference page. The
-<b> ReadmePreferencePage</b> implements this in <b>initializeDefaults</b>.</P>
-<font color='#4444CC'><pre>
-   private void initializeDefaults() {
-      IPreferenceStore store = getPreferenceStore();
-      checkBox1.setSelection(store.getDefaultBoolean(IReadmeConstants.PRE_CHECK1));
-      checkBox2.setSelection(store.getDefaultBoolean(IReadmeConstants.PRE_CHECK2));
-      checkBox3.setSelection(store.getDefaultBoolean(IReadmeConstants.PRE_CHECK3));
-      ...
-   }</pre><pre>
-</font><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></pre>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop.htm
deleted file mode 100644
index 2f097d8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Property pages
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
- Property pages</h2>
-<P >
-Property pages are very similar to preference pages. The primary difference is that property pages are associated with a particular resource, while preferences are associated with the plug-in itself.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop_contribute.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop_contribute.htm
deleted file mode 100644
index 08d74ec..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop_contribute.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Contributing a property page
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Contributing a property page</h3>
-<P >
-You can contribute a property page for an object by using the
-<a href="../reference/extension-points/org_eclipse_ui_propertyPages.html"> <b> org.eclipse.ui.propertyPages</b></a> extension point.
-An object's property page is invoked using the <b>Properties </b>menu in any
-view that shows objects, such as the resource navigator view.&nbsp; This menu is available when a single
-object is
-selected.&nbsp;</P>
-<P >The readme tool contributes two property pages.</P>
-<font color='#4444CC'><pre>
-&lt;extension
-     point = &quot;org.eclipse.ui.propertyPages&quot;&gt;
-        &lt;page
-           id=&quot;org.eclipse.ui.examples.readmetool.FilePage&quot;
-           name=&quot;%PropertiesPage.filePage&quot;
-	   objectClass=&quot;org.eclipse.core.resources.IFile&quot;
-	   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage&quot;
-           nameFilter=&quot;*.readme&quot;&gt;
-        &lt;/page&gt;
-         &lt;page
-            id=&quot;org.eclipse.ui.examples.readmetool.FilePage2&quot;
-            name=&quot;%PropertiesPage.filePage2&quot;
- 	   objectClass=&quot;org.eclipse.core.resources.IFile&quot;
- 	   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2&quot;
-            nameFilter=&quot;*.readme&quot;&gt;
-         &lt;/page&gt;
-  &lt;/extension&gt;
-</pre></font>
-<P >When you define a property page, you specify the <b>objectClass</b> for
-which this page is valid.&nbsp; Objects of this class will include your page
-when the properties are shown.&nbsp; You may optionally supply a <b>nameFilter</b>
-that further refines the class.&nbsp; In the readme tool example, both pages are contributed for objects of type <b><a href="../reference/api/org/eclipse/core/resources/IFile.html"> IFile</a></b> with a
-<b>.readme</b> file extension. </P>
-<P >Property pages are not limited to workbench resources.&nbsp; All objects
-showing up in the workbench (even domain-specific objects created by other
-plug-ins) may have property pages.&nbsp; Any plug-in may register property pages
-for any object type. </P>
-<P >
-Property pages look a lot like preference pages, except there is no hierarchy or categorization of property pages. In the dialog below, both readme property pages appear in the main list of pages.</P>
-<P >
-<img src="images/readmeproperties.gif" alt="Properties dialog with readme entries" border="0" width="503" height="541"></P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop_implement.htm b/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop_implement.htm
deleted file mode 100644
index 83e11cb..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/preferences_prop_implement.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Implementing a property page
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Implementing a property page</h3>
-<P >
-When the workbench creates and launches a properties page, it sets the selected resource into the page. The page can use the
-<b> getElement()</b> method to obtain its element, an <b><a href="../reference/api/org/eclipse/core/runtime/IAdaptable.html">IAdaptable</a></b>. </P>
-<P >
-The pattern for creating property pages is similar to that of preference pages, so we will only focus on what is different. Property pages show information about their element. This information can be obtained
-by accessing the element in order to query or compute the relevant
-information.&nbsp; The information can also be stored and retrieved from the
-resource's properties.</P>
-<P >
-The <b> ReadmeFilePropertyPage</b> computes most of its information using its element. The following snippet shows how the number of sections is computed and displayed in a label.</P>
-<font color='#4444CC'><pre>
-   ...
-   IResource resource = (IResource) getElement();
-   ...
-   IAdaptable sections = getSections(resource);
-   if (sections instanceof AdaptableList) {
-      AdaptableList list = (AdaptableList)sections;
-      label = createLabel(panel, String.valueOf(list.size()));
-   ...
-</pre></font>
-<P >
-When a property is computed, there is no need for corresponding logic to save the value, since the user cannot update this value.</P>
-<P >
-Properties pages are commonly used for viewing and for setting the
-application-specific&nbsp; properties of a resource.
-(See <a HREF="resInt_properties.htm" CLASS="XRef">Resource properties</a>  for a
-discussion of session and persistent properties.)&nbsp;
-Since the property page knows its resource, the resources API can be used in the page to initialize control values or
-to set new property values based on user selections in the properties page.</P>
-<P >
-The following snippet shows a checkbox value being initialized from a property on a property page's element.</P>
-<font color='#4444CC'><pre>
-   private void initializeValues() {
-      ...
-      IResource resource = (IResource) getElement();
-      label.setText(resource.getPersistentProperty(&quot;MyProperty&quot;));
-      ...
-   }
-</pre></font>
-<P >
-The corresponding code for saving the checkbox value back into the property looks like this:</P>
-<font color='#4444CC'><pre>
-   private void storeValues() {
-      ...
-      IResource resource = (IResource) getElement();
-      resource.setPersistentProperty(&quot;MyProperty&quot;, label.getText());
-      ...
-   }
-</pre></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product.htm b/bundles/org.eclipse.platform.doc.isv/guide/product.htm
deleted file mode 100644
index 03700d4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Packaging and delivering Eclipse based products</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Packaging and delivering Eclipse based products</H1>
-<p>
-  The Eclipse platform is designed so you can add plug-ins that provide function
-  for the software development tools community.&nbsp; Commercial software
-  vendors can build, brand, and package products using the platform as a base
-  technology.&nbsp; These products can be sold and supported commercially.&nbsp;
-</p>
-<p>
-  The Eclipse SDK can be downloaded and used as a Java IDE and Eclipse plug-in
-  development tool, but it is not marketed as a commercial product.&nbsp; The
-  platform provides the raw ingredients for a product without a box, label, or
-  price tag.&nbsp; It defines a file and directory structure that lets you
-  easily customize the platform's about dialog and splash screen to brand your
-  product.</p>
-<p>
-  The license governing the Eclipse platform gives you a lot of freedom over how
-  to build and configure a product.&nbsp; However, Eclipse based products will
-  coexist more easily on a user's system if the products use similar standards
-  for packaging, configuring, and installing their products.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_config.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_config.htm
deleted file mode 100644
index 84753ce..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_config.htm
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Customizing a product</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Customizing a product</h2>
-<p>The plug-in associated with a <a href="product_def_primary.htm">primary
-feature</a> is where the branding information for a product is specified.&nbsp;
-There are many customizable aspects of a product.&nbsp; Product-level
-customizations are defined using the <b>about.ini</b> file and other files
-described therein.&nbsp; Products can also control the default preference values
-of other plug-ins.&nbsp; This is done using the <b>plugin_customization.ini</b>
-file.</p>
-<p>Referring once again to our sample product's primary feature plug-in, let's
-look closer at how the product is customized.</p>
-<pre><font color="#4444CC"><b>com.example.acme.acmefeature_1.0.0/</b></font><font color="#4444CC">
-		plugin.xml
-		<b>about.ini
-		about.html
-		about.mappings
-		about.properties
-		acme.gif
-		plugin_customization.ini
-		plugin_customization.properties
-		splash.bmp
-		welcome.xml</b></font></pre>
-<h3>About dialogs</h3>
-<p>The platform &quot;about&quot; dialog is shown whenever the user selects <b>Help-&gt;About
-</b>in the workbench menu.&nbsp;&nbsp;</p>
-<p><img src="images/about.gif" alt="" border="0" width="466" height="341"></p>
-<p>The about dialog is constructed using information supplied by features and
-plug-ins.&nbsp; All features and plug-ins should contribute an <b>about.html</b>
-file that provides information about that particular plug-in.&nbsp; This
-information is displayed when the user requests feature details or plug-in
-details and selects a particular feature or plug-in.</p>
-<p>The primary feature also supplies the information and graphics for the
-overall product.&nbsp; Additional files are used to specify this information.</p>
-<ul>
-  <li><b>about.ini</b> specifies the about text and images for features,
-    windows, and the about dialog itself.&nbsp; It also specifies the welcome
-    page.&nbsp; See <a href="../reference/misc/about_customization.html">Customization
-    using about.ini </a>for a complete description of the format of this file.&nbsp;</li>
-  <li><b>about.properties</b> should be used to hold translated strings from the
-    <b>about.ini </b>file (using &quot;%var&quot; as the value in about.ini paired with an
-    entry for the key &quot;var&quot; in about.properties.&nbsp; This file is a <b>java.io.Properties</b>
-    format file.</li>
-  <li><b>about.mappings</b> can be used to fill in values for fill-in fields in
-    the about text.&nbsp; This is useful when the about text contains
-    information specific to a particular install, such as license key, install
-    date, or licensed user. For example, the about text could be defined as
-    &quot;AcmeWeb is licensed to {0}&quot;.&nbsp; The about.mappings file could
-    be generated at install time based on input from the user.&nbsp; The final
-    form should contain a mapping for the field, such as &quot;0=Joe Q. Webuser&quot;.&nbsp;
-    The about.mappings file is a <b>java.io.Properties</b> format file.</li>
-</ul>
-<h3>Window images</h3>
-<p>A 16x16 pixel color image can be used to brand windows created by the
-product.&nbsp; It will appear in the upper left hand corner of product
-windows.&nbsp; It is specified in the <b>windowImage</b> attribute in the <b>about.ini</b>
-file.&nbsp; The path should be specified as a plug-in relative path.&nbsp; A
-proper entry for the directory structure shown above would be as follows:</p>
-<pre><font color="#4444CC">windowImage=acme.gif</font></pre>
-<h3>Welcome page</h3>
-<p>The description for the product's welcome page should be defined in an xml
-file in the format described in <a href="../reference/misc/welcome.html">Platform
-Welcome Page Configuration</a>.&nbsp; It is specified in the welcomePage
-attribute in the about.ini file. The path should be specified as a plug-in
-relative path.&nbsp; A proper entry for the directory structure shown above
-would be as follows:</p>
-<pre><font color="#4444CC">welcomePage=welcome.xml</font></pre>
-<p>You can also specify an national language lookup for the file.&nbsp; (See <a href="product_def_nl.htm">Locale
-specific files</a> for more detail.)</p>
-<pre><font color="#4444CC">welcomePage=$nl$/welcome.xml</font></pre>
-<h3>Splash screens</h3>
-<p>The product splash screen is supplied in a <b>splash.bmp</b> file located in
-the primary feature plug-in directory.&nbsp; The image should be supplied in
-24-bit color BMP format (RGB format) and should be approximately 500x330 pixels in
-size.&nbsp; If splash screens need to be customized for different locales, they
-can be placed in a fragment of the primary feature's plug-in.</p>
-<a name="preferences"></a>
-<h3>Preferences defaults</h3>
-
-<p>The <b>plugin_customization.ini</b>
- file is used to set the default preference values for preferences defined by
-other plug-ins.&nbsp; This file is a <b>java.io.Properties</b> format file.
-Typically this file is used to set the values for preferences that are published
-as part of a plug-in's public API.&nbsp; That is, you are taking a risk if you
-refer to preferences that are used by plug-ins but not defined formally in the
-API.&nbsp;&nbsp;</p>
-<p>One common customization is to set the default perspective for the
-workbench.&nbsp; This preference is defined in the <b>org.eclipse.ui </b>plug-in.&nbsp;&nbsp;
-The
-following example assumes that the product should be launched with the resource
-perspective as the default perspective.</p>
-<pre><font color="#4444CC">org.eclipse.ui/defaultPerspectiveId=org.eclipse.ui.resourcePerspective</font></pre>
-<p>If you discover you need to change the default value for one of another plug-in's
-preferences, consult the API documentation for that plug-in to see if the
-preference is considered public.</p>
-<p>The <b>plugin_customization.properties</b> file contains translated strings
-for the <b>plugin_customization.ini</b>
- file.<font color="#4444CC"><br>
-</font></p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_config_install.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_config_install.htm
deleted file mode 100644
index 08add5c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_config_install.htm
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Product installation guidelines</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Product installation guidelines</h2>
-<p>The platform provides standard tools for updating and extending
-products.&nbsp; In order to participate in the platform mechanisms for updating
-and extending products, your packaged product should follow the following
-guidelines.&nbsp; This will allow your product to peacefully
-coexist with, or even enhance, other Eclipse based products.</p>
-<p>Consider again the sample directory structure for the acmeweb product:</p>
-<pre><font color="#4444CC">acmeweb/
-</font>	<font color="#4444CC">acmeweb.exe</font>		
-	<font color="#4444CC">eclipse/</font>		
-		<font color="#4444CC">.eclipseproduct</font>	
-		<font color="#4444CC">eclipse.exe	
-		startup.jar	
-		install.ini	
-		.config/	
-			platform.cfg
-		jre/
-		features/</font>	
-			<font color="#4444CC">com.example.acme.acmefeature_1.0.0/
-				feature.xml
-			org.eclipse.platform_2.0.0/
-			org.eclipse.platform.win32_2.0.0/
-			...
-		plugins/
-			com.example.acme.acmefeature_1.0.0/
-				plugin.xml
-				about.ini
-				about.html
-				about.mappings
-				about.properties
-				acme.gif
-				plugin_customization.ini
-				splash.jpg
-				welcome.xml
-			com.example.acme.acmewebsupport_1.0.0/
-			org.eclipse.platform_2.0.0/
-			...
-		links/
-			...</font></pre>
-
-<p>Where did these files come from?&nbsp; Let's look at the product content from
-the perspective of the development team.&nbsp; The installed files can be
-grouped into five main categories:</p>
-<ul>
-  <li>top-level product files (such as the acmeweb.exe)</li>
-  <li>product features and plug-ins</li>
-  <li>the Eclipse platform itself</li>
-  <li>the Java runtime environment (JRE)</li>
-  <li>files generated by the installation process itself</li>
-</ul>
-<p>A proper installation script will produce the appropriate directory structure
-by doing the following:</p>
-<ul>
-  <li>allow the user to specify the top level directory of the install (such as <b>c:\acmeweb.&nbsp;
-    </b>We will refer to it as <b>acmeweb</b> for the remaining steps.)</li>
-  <li>ensure that a product is not already installed in the location</li>
-  <li>copy the files as follows:
-    <ul>
-      <li>Top-level product files are copied to <b>acmeweb</b></li>
-      <li>Eclipse files are copied to <b>acmeweb/eclipse </b>using the expected
-        feature and plugin directory structures</li>
-      <li>JRE files are copied to <b>acmeweb/eclipse/jre</b>.&nbsp; If a JRE is
-        already located elsewhere, then the application shortcut should be setup
-        to invoke eclipse with the <b>-vm</b> command line argument so that the
-        location of the JRE is known by the platform</li>
-      <li>Product features and plug-ins are copied to <b>acmeweb/eclipse/features</b>
-        and <b>acmeweb/eclipse/plugins</b></li>
-    </ul>
-  </li>
-  <li>create a marker file, <b>.eclipseproduct</b>, in <b>acmeweb/eclipse</b>.&nbsp;
-    The marker file is a <b>java.io.Properties</b> format file that indicates
-    the name, id, and version of the product.</li>
-  <li>store any necessary install info (user, license, date) that is to be shown
-    in the about dialog in <b>acmeweb/eclipse/plugins/com.example.acmefeature_1.0.0/about.mappings</b></li>
-  <li>replace the <b>acmeweb/eclipse/install.ini</b> with one that sets the property <b>feature.default.id
-    </b>to the product's primary feature</li>
-  <li>invoke the product executable using the <b>-initialize</b> option.&nbsp;
-    This causes the platform to quietly perform all time-consuming first-time
-    processing and cache the results, so that when the user starts the product
-    it comes up promptly in an open-for-business state.</li>
-</ul>
-<h3>Multi-user issues</h3>
-<p>When a product is installed for the intention of allowing multiple users,
-care must be taken to separate individual users' data (such as the <b>workspace</b>
-directory) from the shared product install directory.</p>
-<h3>Uninstall issues</h3>
-<p>When a product is uninstalled, the following concepts are important.</p>
-<ul>
-  <li><b>all</b> files in the <b>eclipse/features</b> and <b>eclipse/plugins</b>
-    directories should be removed, even if they weren't originally installed by
-    the installation program.&nbsp; This ensures that files added by the
-    platform update manager are removed when the product is
-    removed.</li>
-  <li>except for the point above, <b>only</b> those files installed by the
-    installation program in other directories should be removed.&nbsp; It is
-    important to preserve any important data, such as the <b> workspace</b>
-    directory, so
-    that reinstalling the product after an uninstall will produce expected
-    results.</li>
-</ul>
-<h3>Reinstalling the product</h3>
-<p>When the product is already installed, the installer should allow a service
-update or upgrade if one is available.&nbsp; The existence of the product can be
-confirmed by looking for <b>acmeweb/eclipse/.eclipseproduct</b>.&nbsp; The
-information in this marker file can be used to confirm with the user that the
-correct product is being updated.&nbsp; The availability of updates can be
-confirmed with pattern matches against feature names.&nbsp; For example, the
-presence of <b>acmeweb/eclipse/plugins/com.example.acmefeature_1.0.1 </b>would
-indicate that the 1.0.1 version update had already been applied to the product.</p>
-<p>Once the validity of the reinstall is established, the install program should
-copy or replace files as needed.&nbsp; If the version of the underlying Eclipse
-platform has not changed, there is a good chance that complete directories can
-be ignored.&nbsp; The version numbers appended to the platform features and
-plugins can be used to determine whether any changes underneath a plug-in or
-feature's directory are necessary.&nbsp; </p>
-<p>Additional information on installing products can be found in <a href="../reference/misc/eclipse-install.html">How
-to write an Eclipse installer</a>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_def.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_def.htm
deleted file mode 100644
index 334f0e5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_def.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>What is a product?</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-  What is a product?</h2>
-<p>An Eclipse based <b>product</b> is a stand-alone program built with the
-Eclipse platform.&nbsp;
-Products include all the code and plug-ins needed to run them.&nbsp; This
-includes a Java runtime environment (JRE) and the Eclipse platform code.&nbsp;
-The plug-in code, JRE, and Eclipse platform are typically installed with a
-product-specific installation program.&nbsp; Product providers are free to use
-any installation tool or program that is appropriate for their needs.&nbsp; </p>
-<p>Once installed, the user launches the product and is presented with an
-Eclipse workbench configured specifically for the purpose supported by the
-product, such as web development, C++ program development, or any other
-purpose.&nbsp; The platform makes it easy to configure labels, about dialogs,
-graphics, and splash screens, so that the user has no concept of a platform
-workbench, but instead views the workbench as the main window of the product
-itself.</p>
-<p>The top level directory structure of such a product looks something like this
-for a hypothetical product called &quot;AcmeWeb&quot; that has been installed on
-a Windows platform:</p>
-<pre><font color="#4444CC">acmeweb/
-</font>	<font color="#4444CC">acmeweb.exe</font>		(product executable)
-	<font color="#4444CC">eclipse/</font>		(directory for installed Eclipse files)
-		<font color="#4444CC">.eclipseproduct</font>	(marker file)
-		<font color="#4444CC">eclipse.exe	
-		startup.jar	
-		install.ini	
-		.config/	
-			platform.cfg
-		jre/
-		features/</font>	(installed features)
-			<font color="#4444CC">com.example.acme.acmefeature_1.0.0/
-				feature.xml
-			org.eclipse.platform_2.0.0/
-			org.eclipse.platform.win32_2.0.0/
-			...
-		plugins/
-			com.example.acme.acmefeature_1.0.0/
-				plugin.xml
-				about.ini
-				about.html
-				about.mappings
-				about.properties
-				acme.gif
-				plugin_customization.ini
-				splash.jpg
-				welcome.xml
-			com.example.acme.acmewebsupport_1.0.0/
-			org.eclipse.platform_2.0.0/
-			...
-		links/
-			...</font></pre>
-<p>Let's take a look at what this means in more detail.&nbsp; We'll
-look first at the concept of Eclipse <b><a href="product_def_feature.htm">features</a></b>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_def_feature.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_def_feature.htm
deleted file mode 100644
index 990497b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_def_feature.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Features</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Features</h3>
-<p>A <b>feature</b> is a way of grouping and describing plug-ins that comprise a
-product.&nbsp; Grouping plug-ins into features allows the product to be
-installed and updated in a way that coexists with other Eclipse based
-products.&nbsp; The platform itself is partitioned into three major features:</p>
-<ul>
-  <li>Platform</li>
-  <li>JDT (Java Development Tooling)</li>
-  <li>PDE (Plug-in Developer Environment)</li>
-</ul>
-<p>There are other minor features, such as examples and OS-dependent portions of
-the platform.&nbsp; </p>
-<blockquote>
-<p><i>Note:&nbsp; The platform installation and update framework
-allows you to build your own custom implementations of the concepts discussed
-here.&nbsp; That is, you can define your own types of <b>features</b>, (their
-packaging formats, install procedures, etc.), as well as your own types of
-server sites for updating your features.&nbsp; The remainder of this discussion
-is focused on the platform default implementations for features and update
-sites.</i> </p>
-</blockquote>
-<p>Features do not contain any code.&nbsp; They merely describe a set of
-plug-ins that provide the function for the feature and information about how to
-update it.&nbsp; Features are packaged in a <a href="../reference/misc/feature_archive.html">feature
-archive</a> file and described using a <a href="../reference/misc/feature_archive.html#manifest">feature
-manifest file</a>, feature.xml.&nbsp;&nbsp; The following is the manifest for
-the platform feature:</p>
-<pre><font color="#4444CC">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt; 
-  &lt;feature 
-	id=&quot;org.eclipse.platform&quot; 
-	label=&quot;%featureName&quot; 
-	version=&quot;2.0.0&quot; 
-	image=&quot;eclipse_update_120.jpg&quot; 
-	provider-name=&quot;%providerName&quot; 
-	primary=&quot;true&quot; 
-	application=&quot;org.eclipse.ui.workbench&quot;&gt;
-	  &lt;description&gt;%description&lt;/description&gt; 
-	  &lt;license url=&quot;%licenseURL&quot;&gt;%license&lt;/license&gt; 
-	  &lt;url&gt;
-	  	&lt;update url=&quot;http://update.eclipse.org/updates&quot; label=&quot;%updateSiteName&quot; /&gt; 
-	  &lt;/url&gt;
-	  &lt;plugin id=&quot;org.apache.ant&quot; version=&quot;1.4.1&quot; /&gt; 
-	  &lt;plugin id=&quot;org.apache.lucene&quot; version=&quot;1.2.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.apache.xerces&quot; version=&quot;4.0.3&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.ant.core&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.compare&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.core.boot&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.core.resources&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.core.runtime&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.debug.core&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.debug.ui&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.help&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.help.webapp&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.help.ui&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.platform&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.platform.doc.user&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.search&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.swt&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.team.core&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.team.cvs.core&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.team.cvs.ssh&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.team.cvs.ui&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.team.ui&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.tomcat&quot; version=&quot;4.0.3&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.ui&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.ui.externaltools&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.update.core&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.update.ui&quot; version=&quot;2.0.0&quot; /&gt; 
-	  &lt;plugin id=&quot;org.eclipse.update.ui.forms&quot; version=&quot;2.0.0&quot; /&gt; 
-  &lt;/feature&gt;</font></pre>
-<p>&nbsp;</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_def_nl.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_def_nl.htm
deleted file mode 100644
index 221bbd2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_def_nl.htm
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Locale specific files</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Locale specific files</h3>
-<p>Fragments are a convenient way to package national language
-translations.&nbsp; Let's look more closely at the directory structure used for
-installing locale-specific translation files.&nbsp; This directory structure is
-used regardless of whether the translated files are packaged in a fragment or
-delivered in the original plug-in.</p>
-<p>There are two mechanisms for locating locale specific files in a
-plug-in.&nbsp;&nbsp;</p>
-<ul>
-  <li><b>Platform core mechanism</b> (the platform's runtime locale-specific
-    sub-directory search)</li>
-  <li><b>Java resource bundles</b> (java.util.ResourceBundle)</li>
-</ul>
-<p>It is important to understand which mechanism is used to access any given
-file that must be translated so that you'll know what to name the file and where
-to put it in the file system relative to the plug-in.</p>
-<h4><a name="platform">Platform core mechanism</a></h4>
-<p>The platform core defines a directory structure that uses locale-specific
-subdirectories for files that differ by locale.&nbsp; Translated files are
-placed in a directory called <b>nl</b> under the plug-in.&nbsp; For example, the
-following install tree shows a trivial (no code) plug-in with locale-specific
-translations of its <b>about.properties</b> file.&nbsp; The various translations
-are shown as coming from a plug-in fragment rather than the plug-in
-itself.&nbsp; This is typical for shipping translations separately from the
-base, but you could also place the <b>nl</b> sub-directory under the plug-in
-itself.</p>
-<pre><font color="#4444CC">acmeweb/
-  eclipse/
-    plugins/
-      com.example.acme.acmewebsupport_1.0.0/
-        plugin.xml
-        about.properties    (default locale)
-      com.example.acme.fragmentofacmewebsupport_1.0.0/
-        fragment.xml   (a fragment of com.example.acme.acmewebsupport 1.0.0)
-        nl/
-          fr/
-            about.properties  (French locale)
-            CA/
-              about.properties  (French Canadian locale)
-            FR/
-              EURO/
-                about.properties (French France Euros)
-          en/
-            about.properties  (English locale)
-            CA/
-              about.properties  (English Canadian locale)
-            US/
-              about.properties (English US locale)
-         de/
-            about.properties (German locale) </font></pre>
-<p>The files to be translated are not contained in JAR files.&nbsp; Each file
-should have exactly the same file name, but be located in subdirectories
-underneath the <b>nl</b> sub-directory in the fragment's (or plug-in's) root.</p>
-<p>Only the most specific file is accessed at runtime.&nbsp; The file paths are
-searched as part of the <a href="../reference/api/org/eclipse/core/runtime/IPluginDescriptor.html"><b>IPluginDescriptor.find</b></a><b>
-</b>and<b> <a href="../reference/api/org/eclipse/core/runtime/Plugin.html">Plugin.find</a>
-</b>mechanism.&nbsp; For example, suppose the default locale is <b>en_CA</b>,
-and a plug-in searches for the <b>about.properties</b> as follows:</p>
-<pre><font color="#4444CC">somePlugin.find(&quot;$nl$/about.properties&quot;);</font></pre>
-<p>The method will return a URL corresponding to the first place <b>about.properties</b> is found according to the following
-order:</p>
-<pre><font color="#4444CC">com.example.acme.acmewebsupport_1.0.0/nl/en/CA/about.properties
-com.example.acme.fragmentofacmewebsupport_1.0.0/nl/en/CA/about.properties
- ...  		&lt;any other fragments&gt;
-com.example.acme.acmewebsupport_1.0.0/nl/en/about.properties
-com.example.acme.fragmentofacmewebsupport_1.0.0/nl/en/about.properties
- ...
-com.example.acme.acmewebsupport_1.0.0/about.properties
-com.example.acme.fragmentofacmewebsupport_1.0.0/about.properties</font></pre>
-<p>This mechanism is used by plug-ins to search for well known file names inside
-other plug-ins.&nbsp; This includes the following well known file names:</p>
-<ul>
-  <li><b>preferences.properties</b>&nbsp; (externalized strings for plug-in
-    -specific preference default overrides)</li>
-  <li><b>about.properties</b>&nbsp; (externalized strings for feature
-    &quot;about&quot; information)</li>
-  <li><b>plugin_customization.properties</b>&nbsp; (externalized strings for
-    product-specific preference default overrides)</li>
-  <li><b>splash.bmp</b>&nbsp; (product-specific splash screens)</li>
-</ul>
-<blockquote>
-  <p><i>(Note:&nbsp; The <b>plugin.properties</b> and <b>fragment.xml </b>are
-  conspicuously absent from this list.&nbsp; For historical reasons, these files
-  are treated as Java properties resource bundles and use the other mechanism.)</i></p>
-</blockquote>
-<h4>Java resource bundles</h4>
-<p>The standard Java handling of property resource bundles is used for other
-files.&nbsp; Translated files are contained in a JAR file, with each properties
-file having a locale-specific name, such as &quot;<b>message_en_CA.properties</b>&quot;.&nbsp;
-The files are in package-specific subdirectories and may appear in the plug-in
-itself or one of its fragments.&nbsp; Each translated properties file may be
-partial since lookup of keys accesses a well-defined chain of properties files.</p>
-<p>As noted above, <b>plugin.properties</b> and <b>fragment.xml</b> are accessed
-using this technique.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_def_plugins.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_def_plugins.htm
deleted file mode 100644
index 97e0d41..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_def_plugins.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Plug-ins</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Plug-ins and fragments</h3>
-<p>Features are described in terms of the plug-ins that comprise them.&nbsp;
-This means that plug-ins are the fundamental unit for packaging
-function.&nbsp;&nbsp;</p>
-<p>While features are organized for the purposes of distributing and updating
-products, plug-ins are organized to facilitate the development of the product
-function among the product team.&nbsp; The development team determines when to
-carve up program function into a separate plug-in.&nbsp;&nbsp;</p>
-<p>Plug-ins are packaged in a <a href="../reference/misc/plugin_archive.html">plug-in
-archive</a> file and described using a <a href="../reference/misc/plugin_manifest.html">plug-in
-manifest file</a>, <b>plugin.xml</b>.&nbsp;&nbsp;</p>
-<p>Plug-in <b>fragments</b> are separately packaged files whose contents are
-treated as if they were in the original plug-in archive file.&nbsp; They are
-useful for adding plug-in functionality, such as additional national language
-translations, to an existing plug-in after it has been installed.&nbsp;
-Fragments are ideal for shipping function that may trail the initial product
-release, since they can be used to add function without repackaging or
-reinstalling the original plug-in.&nbsp; When a fragment is detected by the
-platform, its contents are merged with the function in the original
-plug-in.&nbsp; In other words, if you query the platform plug-in registry, you
-would see the extensions and other function provided in the fragment as if it
-was in the original plug-in.</p>
-<p>Fragments are described using a fragment manifest file, <b>fragment.xml.</b>&nbsp;
-It is similar to the plug-in manifest file.&nbsp; Since a fragment shares many
-properties with its plug-in, some attributes in the plug-in manifest are not
-valid, such as the plug-in class and plug-in imports.</p>
-<p><a href="../reference/misc/plugin_archive.html">Plug-in
-archive</a> files can contain plug-ins or fragments.&nbsp; </p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_def_primary.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_def_primary.htm
deleted file mode 100644
index 20a4b9a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_def_primary.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Primary feature</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Primary feature</h3>
-<p>When the Eclipse platform is started, exactly one feature gets to control the
-overall &quot;personality&quot; or &quot;branding&quot; of the platform,
-including the splash screen, window images, about box, welcome page, and other
-customizable aspects of the platform.&nbsp; This feature is called the product's
-<b>primary feature</b>.</p>
-<p>Let's look again at the description of the platform feature in its platform
-manifest:</p>
-<pre><font color="#4444CC">feature 
-	id=&quot;org.eclipse.platform&quot; 
-	label=&quot;%featureName&quot; 
-	version=&quot;2.0.0&quot; 
-	provider-name=&quot;%providerName&quot; 
-	<b>primary=&quot;true&quot;</b> 
-	application=&quot;org.eclipse.ui.workbench&quot;&gt;</font></pre>
-<p>The platform feature has been designated as a primary feature. Although it's
-possible to designate many features as primary features in their <b>feature.xml</b> 
-files,
-only one primary feature gets control when the platform is launched.&nbsp; This
-is controlled in the product's <b>install.ini </b>file underneath the <b>eclipse</b>
-directory.&nbsp; The <b>feature.default.id</b> property in this file designates
-the primary feature for the product.&nbsp; Typically, a product only defines branding information for
-one feature and designates this feature in the <b>install.ini </b>file.&nbsp;
-(If there are multiple eligible primary features, the <b>-feature </b>command
-line option for <b>eclipse.exe</b> overrides the choice made in <b>install.ini</b>.) </p>
-<p>The branding information for the feature is located in a plug-in of the same
-name as the primary feature.&nbsp; The files that designate and define branding
-information for our hypothetical acmeweb application are highlighted in the
-sample directory structure below:</p>
-<pre><font color="#4444CC">acmeweb/
-	<b>acmeweb.exe	</b></font>(product executable - invokes eclipse.exe and specifies the primary feature)
-	<font color="#4444CC">eclipse/</font>
-		<font color="#4444CC">.eclipseproduct</font>
-		<font color="#4444CC">eclipse.exe
-		startup.jar
-		install.ini
-		.config/
-		platform.cfg
-		jre/
-		features/</font>
-			<font color="#4444CC"><b>com.example.acme.acmefeature_1.0.0/</b>&nbsp;&nbsp;&nbsp; </font>(primary feature)<font color="#4444CC">
-				feature.xml
-			org.eclipse.platform_2.0.0/
-			org.eclipse.platform.win32_2.0.0/
-		plugins/
-			<b>com.example.acme.acmefeature_1.0.0/</b>&nbsp;&nbsp;&nbsp; </font>(plug-in for primary feature.  Contains branding info.)<font color="#4444CC">
-				plugin.xml
-				<b>about.ini
-				about.html
-				about.mappings
-				about.properties
-				acme.gif
-				plugin_customization.ini
-				splash.jpg
-				welcome.xml</b>
-			com.example.acme.acmewebsupport_1.0.0/
-			org.eclipse.platform_2.0.0/
-			...
-			links/
-			...</font></pre>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_extension.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_extension.htm
deleted file mode 100644
index 8f487c7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_extension.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Product extensions</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Product extensions</h2>
-<p>An <b>extension</b> is a set of Eclipse features and plug-ins that are
-designed to extend the functionality of already-installed Eclipse based
-products.&nbsp; Extensions are installed separately, but used only in
-conjunction with other Eclipse based products.&nbsp; This means that an extension does not
-need to install a JRE, the Eclipse platform, or a primary feature.&nbsp; The
-recommended directory structure for extensions allows a single installation to be
-used with multiple Eclipse based products.</p>
-<p>The following directory structure shows how an extension for a hypothetical
-product, <b>betterwebs</b>, could be used to extend the function of the <b>acmeweb</b>
-product.</p>
-<pre><font color="#4444CC">betterwebs/
-</font>	<font color="#4444CC">eclipse/</font>			(directory for installed Eclipse files)
-		<font color="#4444CC">.eclipseextension</font>	(marker file)
-<font color="#4444CC">		features/</font>		(installed features)
-			<font color="#4444CC">com.example.betterwebs.betterfeature_1.0.0/
-				feature.xml
-		plugins/
-			com.example.betterwebs.betterfeature_1.0.0/
-				plugin.xml
-				about.html
-			com.example.betterwebs.betterwebsupport_1.0.0/
-</font></pre>
-
-<p>The relationship between an extension and the product that it is designed to
-enhance is set up in the <b>links</b> directory of the original product.&nbsp;
-Recall the following directory in the acmeweb product:</p>
-<pre><font color="#4444CC">acmeweb/
-</font>	...
-	<font color="#4444CC">eclipse/</font>		(directory for installed Eclipse files)
-		<font color="#4444CC">...
-		jre/
-		features/</font>	(installed features)
-<font color="#4444CC">			...
-		plugins/
-			...
-<b>		links/
-</b>			com.example.betterwebs.betterfeature.link</font></pre>
-
-<p>When an extension is installed, it creates a link file in the <b>links</b>
-directory of any product that it is intending to extend.&nbsp; This link file
-makes the original product aware of the existence of the extension.</p>
-
-<h3>Installing and uninstalling extensions</h3>
-
-<p>The install process for extensions is similar to that for products except for
-the following differences:</p>
-
-<ul>
-  <li>Determine which already-installed product is to be extended (by asking the
-    user or searching the computer for the appropriate marker file)</li>
-  <li>Create an <b>.eclipseextension</b> marker file (instead of an <b>.eclipseproduct</b>
-    marker file).&nbsp; The format and content are similar to the product
-    markers.</li>
-  <li>Create a link file for the extension and write it into the <b>links</b>
-    directory of the associated product.&nbsp; The link file has the same name
-    as the extension's feature directory without the version suffix.&nbsp; The
-    link file is a <b>java.io.Properties </b>format file which defines the path
-    to the installed extension.</li>
-</ul>
-<p>The uninstall process for extensions is similar to that for products except
-that the uninstall must remove the link file from any products where it added
-one. </p>
-<p>Additional information on installing extensions can be found in <a href="../reference/misc/eclipse-install.html">How
-to write an Eclipse installer</a>.</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/product_update.htm b/bundles/org.eclipse.platform.doc.isv/guide/product_update.htm
deleted file mode 100644
index d57ffe8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/product_update.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Updating a product or extension</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Updating a product or extension</h2>
-<p>By following the prescribed procedures for packaging and installing products,
-we can take advantage of the <b>platform update manager,</b> which treats
-products and extensions in a uniform way and allows users to discover and
-install updated versions of products and extensions.</p>
-<p>Before looking at the implementation of such a server, it's important to
-revisit some important concepts:</p>
-<ul>
-  <li>The platform provides a framework for defining <b>features</b> and update <b>sites</b>.&nbsp;
-    The platform itself defines a concrete implementation of features and
-    sites.&nbsp; This concrete implementation is what allows the update server
-    to upgrade and install additional features.</li>
-  <li>The platform <b>update server</b> can be used to <b>update</b> products by
-    installing new versions of features.&nbsp; It can also be used to <b>install</b>
-    or <b>update</b> extensions by adding or upgrading features.&nbsp;&nbsp;
-    This is only possible for products and extensions that conform to the
-    platform's concrete implementation of features and sites and conform to the
-    appropriate install guidelines.</li>
-  <li>Developers are free to use native installers and uninstallers to upgrade
-    their own products and extensions without regard to sites and the
-    update manager.</li>
-</ul>
-<p>That said, what do we do if we want to fully participate in the platform
-update support as defined by the default implementation?</p>
-<h3>Feature and plug-in packaging</h3>
-<p>The previous example product and extension directory structures show how
-features and plug-ins are laid out once they are installed.&nbsp; In order to
-install features using the update server, the features must be packaged in a
-feature archive file.&nbsp; This is described in <a href="../reference/misc/feature_archive.html"> Feature
-Archive Files</a>. </p>
-<p>Plug-ins and fragments must be packaged according to the format described in <a href="../reference/misc/plugin_archive.html"> Plug-in
-Archive Files</a>.</p>
-<h3>Update server layout</h3>
-<p>The update server must be a URL-accessible server with a fixed layout.&nbsp;
-The list of available features and plug-ins provided by the server is described
-in a site map file, <b>site.xml</b>.&nbsp; The update server URL can be
-specified a full URL to the site map file, or a URL of a directory path
-containing the site map.&nbsp; The site map file contains a list of all the
-available features and the location of the feature archives on the server.&nbsp;
-It also describes the locations of the plug-in archives that are referenced in
-the feature manifest.</p>
-<p>A simple site layout for our example web product and extension could look something like this:</p>
-<pre><font color="#4444CC">&lt;site root&gt;/
-	site.xml
-	features/	</font>(contains feature archive files)<font color="#4444CC">
-		com.example.acme.acmefeature_1.0.1.jar
-		com.example.betterwebs.betterfeature_1.0.1.jar
-		...
-	plugins/	</font>(contains plug-in archive files)<font color="#4444CC">
-		com.example.acme.acmefeature_1.0.1.jar
-		com.example.acme.acmewebsupport_1.0.3.jar
-		com.example.betterwebs.betterfeature_1.0.1.jar
-		com.example.betterwebs.betterwebsupport_1.0.1.jar
-		...</font></pre>
-<p>The complete definition for the site map is described in <a href="../reference/misc/update_sitemap.html"> Update Server Site Map</a>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv.htm
deleted file mode 100644
index 4932166..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Resource and workspace API
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>Resource and workspace API</H1>
-<p >In <a HREF="resInt.htm" CLASS="XRef">Introduction
-to resources</a>, we saw how resources are represented in the platform and how
-they map to files in the file system. Now that we have built several plug-ins
-for the platform, we look again at the resources API and how you can use it for
-additional functionality in your plug-in.</p>
-<p >The resources API allows you to tag
-resources with special information, find out about changes to resources, implement specialized
-builders that perform transformations on resources, and save
-plug-in specific information along with a resource.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_builders.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv_builders.htm
deleted file mode 100644
index a35cb45..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_builders.htm
+++ /dev/null
@@ -1,233 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Incremental project builders</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Incremental project builders</H2>
-<P >
-An <b>incremental project builder</b> is an object that manipulates the resources in a project in
-a fashion that is defined by the builder itself.
-Incremental project builders are often used to apply a
-transformation on a resource to produce a resource or artifact of another kind.</P>
-<P >
-Plug-ins contribute incremental project builders to the platform in order to implement specialized resource transformations. For example, the Java development tooling (JDT)
-plug-in that is provided
-with the platform SDK defines an
-incremental project builder that compiles a Java source file into a class file any time a file is added or modified in a
-Java project and recompiles any other files affected by the change. </P>
-<P >
-The platform defines two types of builds:</P>
-<ul>
-  <li>
-    
-A <b> full build </b> performs a build from scratch. It treats all resources in
-the projects as if they have never been seen by the builder.</li>
-  <li>
-    
-An <b> incremental build</b> uses a &quot;last build state,&quot; maintained internally by the builder,
-to do an optimized
-build based on the changes since the last build.</li>
-</ul>
-<P >
-Incremental builds are seeded with a resource change delta. The delta reflects the net effect of all resource changes since the builder last built the project.
-This delta is similar to the one used inside resource change events.</P>
-<P >
-Builders are best understood by example. The Java development tooling (JDT) provides a Java compiler
-which is driven by a Java incremental project builder to recompile files that
-are affected by changes. When a full build is triggered, all of the
-<b> .java</b> files in the project are compiled.&nbsp; Any compile problems encountered are added as problem markers on the affected
-<b> .java</b> files. When an incremental build is triggered, the builder selectively recompiles
-the added, changed, or otherwise affected
-<b> .java</b> files that are described in the resource delta and updates the problem markers as necessary. Any
-<b> .class</b> files or markers that are no longer appropriate are removed.</P>
-<P >
-Incremental building has obvious performance benefits for projects with hundreds or thousands of resources, most of which are unchanging at any given point in time.</P>
-<P >
-The technical challenge for incremental building is to determine exactly what needs to be rebuilt. For example, the
-internal state maintained by the Java builder includes things like a dependency
-graph and a list of compilation problems reported.&nbsp;
-This information is used during an incremental build to identify which classes
-need to be recompiled in response to a change in a Java resource. </P>
-<P >
-Although the basic structure for building is defined in the platform, the real work is done in your plug-in. Patterns for implementing complex incremental builders are beyond the scope of this discussion, since the implementation is dependent on the specific builder design. </P>
-
-<H3>
-Invoking a build</H3>
-<P >
-A builder can be invoked explicitly in one of the following ways:</P>
-<ul>
-  <li>
-<b>
-IProject.build()</b> runs the build processing on the receiving project.</li>
-  <li>
-<b>
-IWorkspace.build()</b> runs the build processing on all open projects in the workspace.</li>
-</ul>
-<P >
-In practice, the workbench user triggers a build by selecting the corresponding commands in the resource navigator menu.</P>
-<P >
-Incremental project builders are also invoked implicitly by the platform during an auto-build.
-If enabled, auto-builds run whenever the workspace is changed.</P>
-
-
-<H3>
-Defining an incremental project builder</H3>
-<P >
-The <a href="../reference/extension-points/org_eclipse_core_resources_builders.html"> <b> org.eclipse.core.resources.builders</b></a> extension point is used to contribute an
-incremental project builder to the platform. The following markup shows how the hypothetical plug-in
-<b> com.example.builders</b> could contribute an
-incremental project builder.</P>
-<font color='#4444CC'><pre>
-   &lt;extension
-      id=&quot;mybuilder&quot; name=&quot;My Sample Builder&quot; point=&quot;org.eclipse.core.resources.builders&quot;&gt;
-      &lt;builder
-         &lt;run 
-            <b>class=&quot;com.example.builders.BuilderExample&quot;</b>&gt;
-            &lt;parameter name=&quot;optimize&quot; value=&quot;true&quot; /&gt;
-            &lt;parameter name=&quot;comment&quot; value=&quot;Builder comment&quot; /&gt;
-         &lt;/run&gt;
-      &lt;/builder&gt;
-   &lt;/extension&gt;
-</pre></font>
-<P >
-The <b> class</b> identified in the extension point must extend the platform class <b><a href="../reference/api/org/eclipse/core/resources/IncrementalProjectBuilder.html">IncrementalProjectBuilder</a></b>. </P>
-<font color='#4444CC'><pre>
-   public class BuilderExample extends IncrementalProjectBuilder {
-      IProject[] build(int kind, Map args, IProgressMonitor monitor)
-            throws CoreException {
-         // add your build logic here
-         return null;
-      }
-      protected void startupOnInitialize() {
-         // add builder init logic here
-      }
-   }
-</pre></font>
-<P >
-Build processing begins with the <b> build()</b> method, which includes information about the kind of build that has been requested,
-<b>FULL_BUILD</b>, <b>INCREMENTAL_BUILD</b>, or
-<b>AUTO_BUILD</b>. If an incremental build has been requested, a resource delta is provided to describe the changes in the project's resources since the last build. The following snippet further refines the
-<b> build() </b> method.</P>
-<font color='#4444CC'><pre>
-   protected IProject[] build(int kind, Map args, IProgressMonitor monitor
-         throws CoreException {
-      if (kind == IncrementalProjectBuilder.FULL_BUILD) {
-         fullBuild(monitor);
-      } else {
-         IResourceDelta delta = getDelta(getProject());
-         if (delta == null) {
-            fullBuild(monitor);
-         } else {
-            incrementalBuild(delta, monitor);
-         }
-      }
-      return null;
-   }
-</pre></font>
-
-<P>It sometimes happens that when building project &quot;X,&quot; a builder
-needs information about changes in some other project &quot;Y.&quot;&nbsp; (For
-example, if a Java class in X implements an interface provided in Y.)&nbsp;
-While building X, a delta for Y is available by calling <b>getDelta(Y)</b>.&nbsp;
-To ensure that the platform can provide such deltas, X's builder must have
-declared the dependency between X and Y by returning an array containing Y from
-a previous <b>build()</b> call.&nbsp; If a builder has
-no dependencies, it can simply return null.&nbsp; See <b><a href="../reference/api/org/eclipse/core/resources/IncrementalProjectBuilder.html">IncrementalProjectBuilder</a></b>
-for further information.</P>
-
-<H4>
-Full build</H4>
-<P >
-The logic required to process a full build request is specific to the plug-in. It may involve visiting every resource in the project (if the build was triggered for a project) or
-even examining other projects if there are dependencies between projects.&nbsp; The following snippet
-suggests how a full build might be implemented.</P>
-<font color='#4444CC'><pre>
-   protected void fullBuild(final IProgressMonitor monitor) throws CoreException {
-      try {
-         getProject().accept(new MyBuildVisitor());
-      } catch (CoreException e) { }
-   }
-</pre></font>
-<P >
-The build visitor would perform the build for the specific resource (and answer true to continue visiting all child resources).</P>
-<font color='#4444CC'><pre>
-   class MyBuildVisitor implements IResourceVisitor {
-      public boolean visit(IResource res) {
-         //build the specified resource.
-         //return true to continue visiting children.
-         return true;
-      }
-   }
-</pre></font>
-<P >
-The visit process continues until the full resource tree has been traveled.</P>
-
-
-<H4>
-Incremental build</H4>
-<P >
-When performing an incremental build, you work with a resource change delta instead of the
-whole project.</P>
-<font color='#4444CC'><pre>
-   protected void incrementalBuild(IResourceDelta delta, 
-         IProgressMonitor monitor) throws CoreException {
-      // the visitor does the work.
-      delta.accept(new MyBuildDeltaVisitor());
-   }
-</pre></font>
-<P >
-Note that for an incremental build, the build visitor works with a resource delta tree instead of a complete resource tree. </P>
-<P >
-The visit process continues until the complete resource delta tree has been traveled. The specific nature of changes
-is similar to that described in
-<a HREF="resAdv_events.htm#resAdv_events_listener" CLASS="XRef">Implementing a resource change listener</a>.&nbsp;
-One important difference is that with incremental project builders, you are working with a resource delta based on a particular project, not the
-entire workspace.</P>
-
-
-
-<H3>
-Associating an incremental project builder with a project</H3>
-<P >
-To make a builder available for a given project, it must be included in the build spec for the project. A project's build spec is a list of commands to run, in sequence, when the project is built. Each command names a single
-incremental project builder. </P>
-<P >
-The following snippet adds a new builder as the first builder in the existing list of builders.</P>
-<font color='#4444CC'><pre>
-   IProjectDescription desc = project.getDescription();
-   ICommand[] commands = desc.getBuildSpec();
-   boolean found = false;
-
-   for (int i = 0; i &lt; commands.length; ++i) {
-      if (commands[i].getBuilderName().equals(BUILDER_ID)) {
-         found = true;
-         break;
-      }
-   }
-   if (!found) { 
-      //add builder to project
-      ICommand command = desc.newCommand();
-      command.setBuilderName(BUILDER_ID);
-      ICommand[] newCommands = new ICommand[commands.length + 1];
-
-      // Add it before other builders.
-      System.arraycopy(commands, 0, newCommands, 1, commands.length);
-      newCommands[0] = command;
-      desc.setBuildSpec(newCommands);
-      project.setDescription(desc, null);
-   }
-</pre></font>
-<P >
-Configuring a project's builder is done just once, usually as the project is being created.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_derived.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv_derived.htm
deleted file mode 100644
index fab9c07..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_derived.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Derived resources
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Derived resources</h2>
-
-<p>Many resources get created in the course of translating, compiling, copying,
-or otherwise processing files that the user creates and edits.&nbsp; <b>Derived
-resources</b> are resources that are not original data, and can be recreated
-from their source files.&nbsp; It is common for derived files to be excluded
-from certain kinds of processing.&nbsp;&nbsp;</p>
-<p>For example, derived resources are typically not kept in a team repository,
-since they clutter the repository, change regularly, and can be recreated from
-their source files.&nbsp; It is not practical for team providers to make
-decisions about which files are derived.&nbsp; The resource API provides a
-common mechanism for plug-ins to indicate the resources they create that are
-derived.</p>
-<p>Plug-ins may use <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>.<b>setDerived(boolean)
-</b>to indicate that a resource is derived from other resources. Newly created resources are not
-derived by default, so this
-method must be used to explicitly mark the resource as derived.&nbsp; A
-common use is to mark a subfolder of the project as derived when an
-&quot;output&quot; folder (such as the &quot;bin&quot; folder in Java projects)
-is created by the plug-in.</p>
-<p>Other plug-ins, usually team providers, can use <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>.<b>isDerived
-</b>to determine whether a particular resource should be managed by the
-repository.&nbsp; Attempts to mark projects or the workspace root as derived will be
-ignored.</p>
-<blockquote>
-<p><i>Note:&nbsp; The concept of derived resources is provided for other
-(non-team) plug-ins to indicate which resources are inappropriate for repository
-management.&nbsp; Special files created by team implementations to manage their
-data should not be marked as derived resources.&nbsp; See <a href="team_resources_private.htm">Team
-private resources</a> for a technique for marking team-related implementation
-resources hidden.</i></p>
-</blockquote>
-<p>&nbsp;</p>
-
-<P >
-<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_events.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv_events.htm
deleted file mode 100644
index c25b007..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_events.htm
+++ /dev/null
@@ -1,289 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Tracking resource changes
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Tracking resource changes</H2>
-<P >
-The resources plug-in includes an event mechanism for notifying interested parties of changes to resources.  If you need to keep track of changes to the resource tree while your plug-in is running, you can register an
-<b><a href="../reference/api/org/eclipse/core/resources/IResourceChangeListener.html"> IResourceChangeListener</a></b> with the workspace. Your listener will be notified
-of the changes via an
-<b><a href="../reference/api/org/eclipse/core/resources/IResourceChangeEvent.html"> IResourceChangeEvent</a></b> 
-object, which describes the changes.</P>
-
-<H3>
-Resource change processing</H3>
-<P >
-To track changes to resources, you must register a resource change listener with the workspace.</P>
-<font color='#4444CC'><pre>
-   IResourceChangeListener listener = new MyResourceChangeReporter();
-   ResourcesPlugin.getWorkspace().addResourceChangeListener(
-      listener, IResourceChangeEvent.POST_CHANGE);
-</pre></font>
-<P >
-Your listener will be notified after modifications to the workspace resources
-have been made. Resource API methods that modify resources trigger these events as part of their documented behavior. The
-method comment for a resource API method explicitly states whether or not it triggers a resource change event. For example, the following is included in the
-<b> IFile.setContents()</b> comment:</P>
-<font color='#4444CC'><pre>
-   This method changes resources; these changes will be reported in a subsequent
-   resource change event, including an indication that this file's content have
-   been changed.
-</pre></font>
-<P >
-Methods that create, delete, or change a resource typically trigger these events. Methods that read, but do not write, resources typically do not trigger these events.</P>
-
-
-<H3>
-Batch changes and resource deltas</H3>
-<P >
-If you need to modify a number of resources at once, you can batch your resource change API
-calls so that only one resource change event will be sent for the entire set of changes.<b> IWorkspace.run(runnable, monitor)</b> is used to batch the operations. Resource change events are only sent to registered listeners when the specified
-<b>runnable</b> is completed. Any additional (nested)
-Runnables created in the runnable will be considered part of the parent batch
-operation and the resource changes made in those runnables will appear in the
-parent's resource change notification.</P>
-<P >
-You should batch your changes whenever possible to limit the overhead of
-broadcasting many granular changes.&nbsp; Failure to use batching will likely flood the system
-with resource change notifications and auto-builds.</P>
-<P >
-The resource change event describes the specifics of the change (or set of changes) that have occurred in the workspace. The event contains a
-<b> resource delta</b> that describes the <i> net</i> effect of the changes. For example, if you add a resource and later delete it during one batch of changes, the resource will not appear in the delta.</P>
-<P >
-The resource delta is structured as a tree rooted at the workspace root. The resource delta tree describes these types of changes:</P>
-<ul>
-  <li>
-Resources that have been created, deleted, or changed. If you have deleted (or added) a folder, the resource delta will include the folder and all files contained in the folder.</li>
-  <li>
-Resources that have been moved or renamed using the <b> IResource.move()</b> API.</li>
-  <li>
-Markers that have been added, removed, or changed. Marker modification is considered to be a workspace modification operation.</li>
-  <li>
-Files that have been modified. Changed files are identified in the resource delta, but you do not have access to the previous content of the file in the resource delta.</li>
-</ul>
-<P >
-To traverse a resource delta tree, you may implement the <b><a href="../reference/api/org/eclipse/core/resources/IResourceDeltaVisitor.html"> IResourceDeltaVisitor</a></b> 
-interface or traverse the tree explicitly using <b>IResource.getAffectedChildren</b>. Resource delta visitors implement a
-<b> visit</b> method that is called by the resource delta as it enumerates each change in the tree.</P>
-<i><blockquote>
-Note:&nbsp; Changes made to resource session properties or resource persistent properties are not identified in the resource delta.</blockquote></i>
-
-
-<H3>
-Resource change events</H3>
-<P >
-Resource change events are sent whenever a change (or batched set of changes) is made to the workspace. In addition, resource change events are sent for
-certain specific workspace operations. The table below summarizes the types of resource change events and when they are
-reported.</P>
-<TABLE BORDER="1">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Event type</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<b>
-PRE_CLOSE</b></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Notifies listeners that a project is about to be closed. This event can be used to extract and save necessary information from the in-memory representation
-(e.g., session properties) of a project before it is closed. (When a project is closed, the in-memory representation is disposed). The workspace is locked (no resources can be updated) during this event.
-The event contains the project that is being closed.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<b>
-PRE_DELETE</b></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Notifies listeners that a project is about to deleted. This event can be used to
-perform clean-up operations, such as removing any saved state that is related to
-the project from your plug-in's directory.&nbsp; The workspace is locked (no resources can be updated) during this event. The event contains the project that is being deleted.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody"><b>PRE_AUTOBUILD</b></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Notifies listeners before any auto-building occurs.&nbsp; This event is
-broadcast when the platform detects an auto-build needs to occur, regardless of
-whether auto-building is actually enabled.&nbsp; The workspace is <b> not</b> locked during this event (resources can be updated). The event contains a resource delta describing the changes that have occurred since the last
-<b>POST_CHANGE</b> event was reported.</P>
-</TD>
-</TR>
-<tr>
-<TD>
-<P CLASS="CellBody">
-<b>
-POST_AUTOBUILD</b></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Notifies listeners after any auto-building has occurred. This event is broadcast
-after the platform would have performed an auto-build, regardless of whether
-auto-building is actually enabled.&nbsp; The workspace is <b> not</b> locked during this event (resources can be updated). The event contains a resource delta describing the changes that have occurred since the last
-<b>POST_CHANGE</b> event was reported.</P>
-</TD>
-</tr>
-<tr>
-<TD>
-<P CLASS="CellBody">
-<b>
-POST_CHANGE</b></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Describes a set of changes that have occurred to the workspace since the last <b> POST_CHANGE</b> event was reported. Triggered after a resource change API is used individually or in a batched set of workspace changes. Also triggered after any
-<b>PRE_AUTOBUILD</b> or <b>POST_AUTOBUILD</b>
-notification is complete. The event contains a resource delta describing the net changes since the last
-<b> POST_CHANGE</b> event.&nbsp; The workspace is
-locked (no resources can be updated) during this event.</P>
-</TD>
-</tr>
-</TABLE>
-
-
-<H3>
-<a name="resAdv_events_listener">
-Implementing a resource change listener</a></H3>
-<P >
-The following example implements a console-based resource change listener. A resource change listener is registered for specific types of events and information about these events is printed to the console:</P>
-<font color='#4444CC'><pre>
-   IResourceChangeListener listener = new MyResourceChangeReporter();
-   ResourcesPlugin.getWorkspace().addResourceChangeListener(listener,
-      IResourceChangeEvent.PRE_CLOSE
-      | IResourceChangeEvent.PRE_DELETE
-      | IResourceChangeEvent.PRE_AUTO_BUILD
-      | IResourceChangeEvent.POST_AUTO_BUILD
-      | IResourceChangeEvent.POST_CHANGE);
-</pre></font>
-<P >
-The listener checks for each event type and reports information about the resource that was changed and the kinds of changes that occurred.&nbsp;
-Although this example is designed to show a general listener that handles all
-the types of resource events, a typical listener would register for just one
-type of event.</P>
-<P >
-The implementation for <b> POST_CHANGE </b> uses another class that can be used to visit the changes in the resource delta.</P>
-<font color='#4444CC'><pre>
-   import org.eclipse.resources.*;
-   import org.eclipse.runtime.*;
-
-   public class MyResourceChangeReporter implements IResourceChangeListener {
-      public void resourceChanged(IResourceChangeEvent event) {
-         IResource res = event.getResource();
-         switch (event.getType()) {
-            case IResourceChangeEvent.PRE_CLOSE:
-               System.out.print(&quot;Project &quot;);
-               System.out.print(res.getFullPath());
-               System.out.println(&quot; is about to close.&quot;);
-               break;
-            case IResourceChangeEvent.PRE_DELETE:
-               System.out.print(&quot;Project &quot;);
-               System.out.print(res.getFullPath());
-               System.out.println(&quot; is about to be deleted.&quot;);
-               break;
-            case IResourceChangeEvent.POST_CHANGE:
-               System.out.println(&quot;Resources have changed.&quot;);
-               event.getDelta().accept(new DeltaPrinter());
-               break;
-            case IResourceChangeEvent.PRE_AUTO_BUILD:
-               System.out.println(&quot;Auto build about to run.&quot;);
-               event.getDelta().accept(new DeltaPrinter());
-               break;
-            case IResourceChangeEvent.POST_AUTO_BUILD:
-               System.out.println(&quot;Auto build complete.&quot;);
-               event.getDelta().accept(new DeltaPrinter());
-               break;
-         }
-      }
-   }
-</pre></font>
-<P >
-The <b> DeltaPrinter</b> class implements the <b><a href="../reference/api/org/eclipse/core/resources/IResourceDeltaVisitor.html">IResourceDeltaVisitor</a></b> interface to interrogate the resource delta. The
-<b> visit()</b> method is called for each resource change in the resource delta. The visitor uses a return value to indicate whether
-deltas for child resources should be visited. </P>
-<font color='#4444CC'><pre>
-   class DeltaPrinter implements IResourceDeltaVisitor {
-      public boolean visit(IResourceDelta delta) {
-         IResource res = delta.getResource();
-         switch (delta.getKind()) {
-            case IResourceDelta.ADDED:
-               System.out.print(&quot;Resource &quot;);
-               System.out.print(res.getFullPath());
-               System.out.println(&quot; was added.&quot;);
-               break;
-            case IResourceDelta.REMOVED&quot;
-               System.out.print(&quot;Resource &quot;);
-               System.out.print(res.getFullPath());
-               System.out.println(&quot; was removed.&quot;);
-               break;
-            case IResourceDelta.CHANGED:
-               System.out.print(&quot;Resource &quot;);
-               System.out.print(res.getFullPath());
-               System.out.println(&quot; has changed.&quot;);
-               break;
-         }
-         return true; // visit the children
-      }
-   }
-</pre></font>
-<P >
-Further information can be obtained from the supplied resource delta. The following snippet shows how
-the <b>IResourceDelta.CHANGED</b> case could be implemented to further describe the resource changes.</P>
-<font color='#4444CC'><pre>
-   ...
-   case IResourceDelta.CHANGED:
-      System.out.print(&quot;Resource &quot;);
-      System.out.print(delta.getFullPath());
-      System.out.println(&quot; has changed.&quot;);
-      int flags = delta.getFlags();
-      if ((flags &amp; IResourceDelta.CONTENT) != 0) {
-            System.out.println(&quot;--&gt; Content Change&quot;);
-      }
-      if ((flags &amp; IResourceDelta.REPLACED) != 0) {
-            System.out.println(&quot;--&gt; Content Replaced&quot;);
-      }
-      if ((flags &amp; IResourceDelta.MARKERS) != 0) {
-            System.out.println(&quot;--&gt; Marker Change&quot;);
-            IMarkerDelta[] markers = delta.getMarkerDeltas();
-            // if interested in markers, check these deltas
-      }
-      break;
-   ...
-</pre></font>
-<P >
-For a complete description of resource deltas, visitors, and marker deltas, consult the
-API specification for <b><a href="../reference/api/org/eclipse/core/resources/IResourceDelta.html">IResourceDelta</a></b>,
-<b><a href="../reference/api/org/eclipse/core/resources/IResourceDeltaVisitor.html">IResourceDeltaVisitor</a></b>, and
-<b><a href="../reference/api/org/eclipse/core/resources/IMarkerDelta.html">IMarkerDelta</a></b>.</P>
-<i><blockquote>
-Note:&nbsp; Resource change listeners are useful for tracking changes that occur to resources while your plug-in is activated. If your plug-in registers a resource change listener during its startup code, it's possible that many resource change events have been triggered before the activation of your plug-in. The resource delta contained in the first resource change event received by your plug-in will not contain all of the changes made since your plug-in was last activated. If you need to track changes made between activations of your plug-in, you should use the support provided for workspace saving. This is described in
-<a HREF="resAdv_saving.htm" CLASS="XRef"> Workspace save participation</a>.</blockquote></i>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_hooks.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv_hooks.htm
deleted file mode 100644
index c08c524..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_hooks.htm
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Resource modification hooks
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Resource modification hooks</H2>
-<P >So far, we've assumed that resource API is being used to modify resources
-that are located in the user's file system.&nbsp; This is indeed the fundamental
-structure of the workspace, but it's also possible that a plug-in adds
-capabilities for manipulation of resources that are managed somewhere
-else.&nbsp; For example, the platform <a href="team.htm">Team support</a>
-plug-ins add the ability to work with resources that are under the management of
-a versioning repository.</P>
-
-<P >
-The resource API includes capabilities that have been added specifically to
-enable the team support plug-ins and plug-ins that implement repository
-providers using the team support.&nbsp; The following discussion covers the
-generic mechanism for registering resource hooks.&nbsp; See <a href="team_provider_hooks.htm">Team
-resource modification hooks </a>for a discussion of how team uses these
-hooks.&nbsp;&nbsp;</P>
-
-<h3 >
-Resource move/delete hooks</h3>
-
-<P >
-This hook allows the team plug-in and its providers to control
-    how resource moves and deletes are implemented.&nbsp; The hook includes the ability to prevent
-these operations from
-    happening.&nbsp; Implementors can provide alternate implementations for
-    moving or deleting files, folders, and projects.&nbsp;</P>
-
-<P >
-The team plug-in uses the <a href="../reference/extension-points/org_eclipse_core_resources_moveDeleteHook.html"><b>org.eclipse.core.resources.moveDeleteHook</b></a>
-extension point to register its hook:</P>
-
-<pre ><font color="#4444CC">&lt;extension point=&quot;org.eclipse.core.resources.moveDeleteHook&quot; id=&quot;MoveDeleteHook&quot;&gt;
-	&lt;moveDeleteHook class=&quot;org.eclipse.team.internal.core.MoveDeleteManager&quot;/&gt;
-&lt;/extension&gt;</font>
-</pre>
-
-<P >
-The supplied class must implement <a href="../reference/api/org/eclipse/core/resources/team/IMoveDeleteHook.html"><b>IMoveDeleteHook</b></a>,
-which is called by the platform whenever a resource is moved or deleted.&nbsp;
-The team plug-in installs a move delete hook manager that can determine which
-team provider is managing a resource and invoke its specific hook.</P>
-
-<blockquote>
-
-<P ><i>Note:&nbsp; The move delete hook was designed specifically for
-use by the team core plug-in and other team repository provider clients.&nbsp;
-It is not intended for general use.&nbsp; Team providers should not install the
-hook using the extension point, but instead implement their hook in their
-RepositoryProvider class.&nbsp; See <a href="team_provider_hooks.htm">Team
-resource modification hooks</a> for more information about using these hooks.</i></P>
-
-</blockquote>
-
-<h3 >
-File modification validators</h3>
-
-<p>It's also possible that team repository providers will need to prevent or
-intervene in the editing or saving of a file.&nbsp; The team plug-in
-accomplishes this by using the extension point <a href="../reference/extension-points/org_eclipse_core_resources_moveDeleteHook.html"><b>org.eclipse.core.resources.fileModificationValidator</b></a>
-to register a validator that is called whenever a resource is to be modified.</p>
-
-<pre ><font color="#4444CC">&lt;extension point=&quot;org.eclipse.core.resources.fileModificationValidator&quot; id=&quot;FileValidator&quot;&gt;
-	&lt;fileModificationValidator class=&quot;org.eclipse.team.internal.core.FileModificationValidatorManager&quot;/&gt;
-&lt;/extension&gt;</font></pre>
-
-<P >The supplied class must implement <a href="../reference/api/org/eclipse/core/resources/IFileModificationValidator.html"><b>IFileModificationValidator</b></a>,
-which is called by the platform whenever a resource is saved or
-opened.&nbsp;&nbsp; The team plug-in installs a file modification manager that
-can determine which team provider is managing a resource and invoke its specific
-validator.</P>
-
-<blockquote>
-
-<P ><i>Note:&nbsp; The file modification validator hook was designed
-specifically for use by the team core plug-in.&nbsp; It is not intended for
-general use.&nbsp; Team providers should not install the hook using the
-extension point, but instead implement their hook in their Repository Provider
-class.&nbsp;&nbsp; See <a href="team_provider_hooks.htm">Team resource
-modification hooks</a> for more information about using these hooks.</i></P>
-
-</blockquote>
-
-<P >
-<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_markers.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv_markers.htm
deleted file mode 100644
index 4f052fd..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_markers.htm
+++ /dev/null
@@ -1,273 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Resource markers
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Resource markers</H2>
-<P >
-We know that plug-ins can define specialized file extensions and contribute editors that provide
-specialized editing features for these file types.&nbsp; During the course of editing (or building) a resource, a plug-in may need to tag resources to communicate problems or other information to the user. The resource marker mechanism is used to manage this kind of information.</P>
-<P >
-A <b> marker</b> is like a yellow sticky note stuck to a resource.  On the marker you can record information about a
-problem (e.g., location, severity) or a task to be done.&nbsp; Or you can simply
-record a location for a marker as a bookmark.&nbsp;</P>
-<P >
-  Users can quickly jump to the marked location within a resource. The workbench UI supports presentation of
-bookmarks, breakpoints, tasks, and problems along the side of the editor.&nbsp;
-These markers can also be shown as items in views, such as the tasks or bookmarks view.</P>
-<P >
-The platform resources API defines methods for creating markers, setting marker values, and extending the platform with new marker types. While the platform manages markers, it is the plug-ins that control their creation, removal and attribute values. </P>
-<P >
-Markers are intended to be small, lightweight objects.  There could be hundreds, even thousands of markers in a single
-project.&nbsp; For example, the Java compiler uses a marker to flag each problem
-it finds in source code.</P>
-<P >
-The platform will throw away markers attached to resources that are deleted, but plug-ins are responsible for removing
-their stale markers when they no longer apply to a resource that still exists.</P>
-
-<H3>
-Marker operations</H3>
-<P >
-Manipulating a marker is similar to manipulating a resource.&nbsp; Markers are <b>handle</b>
-objects.&nbsp; You can obtain a marker handle from a resource, but you don't
-know if it actually exists until you use <b>exists()</b>
-protocol or otherwise try to manipulate it.&nbsp; Once you've established that a
-marker exists, you can query named attributes that may have been assigned to it.</P>
-
-<P >
-Markers are owned and managed by the platform, which takes care of making
-markers persistent and notifying listeners as markers are added, deleted, or
-changed.&nbsp; Plug-ins are responsible for creating any necessary markers, changing their attributes, and removing them when they are
-no longer needed.</P>
-
-<H4>
-Marker creation</H4>
-<P >
-Markers are not directly created using a constructor. They are created using a factory method
-(<b>IResource.createMarker()</b>) on the associated resource. </P>
-<font color='#4444CC'><pre>
-   IMarker marker = file.createMarker(IMarker.TASK);
-</pre></font>
-<P >
-To create a marker that has global scope (not associated with any specific resource), you can use
-the workspace root
-(<b>IWorkspace.getRoot()</b>) as the resource. </P>
-
-
-<H4>
-Marker deletion</H4>
-<P >
-The code for deleting a marker is straightforward.</P>
-<font color='#4444CC'><pre>
-   try {
-      marker.delete();
-   } catch (CoreException e) {
-      // Something went wrong
-   }
-</pre></font>
-<P >
-When a marker is deleted, its marker object (handle) becomes &quot;stale.&quot; Plug-ins should use the
-<b> IMarker.exists()</b> protocol to make sure a marker object is still valid.</P>
-<P >
-Markers can be deleted in batch by asking a resource to delete its markers. This method is useful when removing
-many markers at once or if individual marker references or ids are not available.</P>
-<font color='#4444CC'><pre>
-   int depth = IResource.DEPTH_INFINITE;
-   try {
-      resource.deleteMarkers(IMarker.PROBLEM, true, depth);
-   } catch (CoreException e) {
-      // something went wrong
-   }
-</pre></font>
-<P >
-When deleting a group of markers, you specify a marker <b> type</b> to delete, such as <b> IMarker.PROBLEM</b>, or
-<b> null</b> to delete all markers. The second argument
-indicates whether you want to delete subtype markers.&nbsp; (We'll look a
-subtypes in a moment when we define new marker types.)&nbsp; The <b> depth</b> argument controls the depth of deletion.&nbsp; </P>
-
-
-<P >
-You can also delete markers using <b>IWorkspace.deleteMarkers(IMarker
-[])</b>. </P>
-
-
-<H4>
-Marker attributes</H4>
-<P >
-Given a marker, you can ask for its associated resource, its id (unique relative to that resource), and its type. You can also access additional information
-via generic attributes. </P>
-<P >
-Each type of marker has a specific set of attributes that are defined by the
-creator of the marker type using naming conventions.&nbsp; The
-<b><a href="../reference/api/org/eclipse/core/resources/IMarker.html"> IMarker</a></b> interface defines a set of constants containing
-the standard attribute names (and some of the expected values) for the platform marker types.  The following method manipulates attributes using the platform constants.</P>
-<font color='#4444CC'><pre>
-   IMarker marker = file.createMarker(IMarker.TASK);
-   if (marker.exists()) {
-      try {
-         marker.setAttribute(IMarker.MESSAGE, &quot;A sample marker message&quot;);
-         marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
-      } catch (CoreException e) {
-         // You need to handle the case where the marker no longer exists      }
-   }</pre></font>
-
-
-<P>
-Attributes are maintained generically as name/value pairs, where the names are strings and a value can be any one of the supported value types
-(boolean, integer, string). The limitation on value types allows the platform to persist the markers quickly and simply.</P>
-
-
-<H4>
-Querying markers</H4>
-<P >
-Resources can be queried for their markers and the markers of their children. For example, querying the workspace root with infinite depth considers all of the markers in the workspace.</P>
-<font color='#4444CC'><pre>
-   IMarker[] problems = null;
-   int depth = IResource.DEPTH_INFINITE;
-   try {
-      problems = resource.findMarkers(IMarker.PROBLEM, true, depth);
-   } catch (CoreException e) {
-      // something went wrong
-   }
-</pre></font>
-<P >
-The result returned by <b>findMarkers</b>  depends on
-the arguments passed.&nbsp; In the snippet above, we are looking for all markers
-of <b> type</b> <b>PROBLEM</b> that appear on the resource and
-all of its direct and indirect descendants.&nbsp; </P>
-
-
-<P >
-If you pass
-<b> null</b>  as the marker type, you will get all the
-marker types associated with the resource. The second argument specifies whether
-you want to look at the resource's children.&nbsp; The
-<b> depth</b> argument controls the depth of the search
-when you are looking at the resource's children. The depth can be <b>DEPTH_ZERO</b>
-(just the given resource), <b>DEPTH_ONE</b> (the resource and all
-of its direct children) or
-<b>DEPTH_INFINITE</b> (the resource and all of its direct and indirect
-descendants). </P>
-
-
-<H4>
-Marker persistence</H4>
-<P >
-The platform standard markers (task, problem, and bookmark) are <b>persistent</b>. This means that their state will be saved across workbench shutdown and startup.
-However, markers of a persistent type may be selectively made transient by setting the reserved attribute <strong>transient</strong> to true.
-</P>
-<P >
-New marker types declared by plug-ins are not persistent unless they are declared as such.</P>
-
-
-
-<H3>
-<a name="resAdv_markers_extending">
-Extending the platform with new marker types</a></H3>
-<P >
-Plug-ins can declare their own marker types using the <b><a href="../reference/extension-points/org_eclipse_core_resources_markers.html"> org.eclipse.core.resources.markers</a></b> 
-extension point. The standard marker types for problems, tasks and bookmarks are declared by the platform in the resources plug-in's markup.</P>
-<font color='#4444CC'><pre>
-   &lt;extension
-      id=&quot;problemmarker&quot; 
-      point=&quot;org.eclipse.core.resources.markers&quot; 
-      name=&quot;%problemName&quot;&gt;
-      &lt;super type=&quot;org.eclipse.core.resources.marker&quot;/&gt;
-      &lt;persistent value=&quot;true&quot;/&gt;
-      &lt;attribute name=&quot;severity&quot;/&gt;
-      &lt;attribute name=&quot;message&quot;/&gt;
-      &lt;attribute name=&quot;location&quot;/&gt;
-   &lt;/extension&gt;
-   &lt;extension
-      id=&quot;taskmarker&quot; 
-      point=&quot;org.eclipse.core.resources.markers&quot; 
-      name=&quot;%taskName&quot;&gt;
-      &lt;super type=&quot;org.eclipse.core.resources.marker&quot;/&gt;
-      &lt;persistent value=&quot;true&quot;/&gt;
-      &lt;attribute name=&quot;priority&quot;/&gt;
-      &lt;attribute name=&quot;message&quot;/&gt;
-      &lt;attribute name=&quot;done&quot;/&gt;
-      &lt;attribute name=&quot;userEditable&quot;/&gt;      
-   &lt;/extension&gt;
-   &lt;extension
-      id=&quot;bookmark&quot; 
-      point=&quot;org.eclipse.core.resources.markers&quot; 
-      name=&quot;%bookmarkName&quot;&gt;
-      &lt;super type=&quot;org.eclipse.core.resources.marker&quot;/&gt;
-      &lt;persistent value=&quot;true&quot;/&gt;
-      &lt;attribute name=&quot;message&quot;/&gt;
-      &lt;attribute name=&quot;location&quot;/&gt;
-   &lt;/extension&gt;
-</pre></font>
-<P >
-New marker types are derived from existing ones using multiple inheritance. New marker types inherit all of the attributes from their
-super types and add any new attributes defined as part of the declaration. They also transitively inherit
-attributes from the super types of their super types.  The following markup defines a new kind of marker in a hypothetical
-<b>com.example.markers</b> plug-in.</P>
-<font color='#4444CC'><pre>
-   &lt;extension
-      id=&quot;mymarker&quot;
-      point=&quot;org.eclipse.core.resources.markers&quot; /&gt;
-   &lt;extension
-      id=&quot;myproblem&quot;
-      point=&quot;org.eclipse.core.resources.markers&quot;&gt;
-      &lt;super type=&quot;org.eclipse.core.resources.problemmarker&quot;/&gt;
-      &lt;super type=&quot;com.example.markers.mymarker&quot;/&gt;
-      &lt;attribute name=&quot;myAttribute&quot; /&gt;
-      &lt;persistent value=&quot;true&quot; /&gt;
-   &lt;/extension&gt;
-</pre></font>
-<P >
-Note that the type <b> org.eclipse.core.resources.problemmarker</b> is actually one of the pre-defined types (aka
-<b>IMarker.PROBLEM</b>).&nbsp; </P>
-<P >
-  The only aspect of a marker
-super type that is not inherited is its <b> persistence</b> flag.&nbsp;
-  The default value for persistence is false, so any marker type that should be
-  persistent must specify <b>&lt;persistent
-  value=&quot;true&quot;/&gt;</b>. </P>
-<P >
-After declaring the new marker type in your plug-in manifest file, you can create instances of
-<b>com.example.markers.myproblem</b> marker type and freely set or get the
-<b> myAttribute</b> attribute.</P>
-<P >
-Declaring new attributes allows you to associate data with markers that you plan to use elsewhere (in your
-views and editors).  Markers of a particular type do not have to have values for all of the declared attributes.  The attribute declarations are more for solving naming convention problems (so everyone uses &quot;message&quot; to talk about a marker's description) than
-for constraining content. </P>
-<font color='#4444CC'><pre>
-   public IMarker createMyMarker(IResource resource) {
-      try {
-         IMarker marker = resource.createMarker(&quot;com.example.markers.myproblem&quot;);
-         marker.setAttribute(&quot;myAttribute&quot;, &quot;MYVALUE&quot;);
-         return marker;
-      } catch (CoreException e) {
-         // You need to handle the cases where attribute value is rejected
-      }
-   }
-</pre></font>
-<P >
-You can query your own marker types in the same way you query the platform marker
-types.&nbsp; The method below finds all <b>mymarkers</b> associated with the given target resource and all
-of its descendents.  Note that this will also find all
-<b>myproblems</b> since true is passed for the <b>includeSubtypes</b>
-argument.</P>
-<font color='#4444CC'><pre>
-   public IMarker[] findMyMarkers(IResource target) {
-      String type = &quot;com.example.markers.mymarker&quot;;
-      IMarker[] markers = target.findMarkers(type, true, IResource.DEPTH_INFINITE);
-   }
-</pre></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_natures.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv_natures.htm
deleted file mode 100644
index 1babe3d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_natures.htm
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Project natures
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Project natures</H2>
-<P >
-Project natures allow a plug-in to tag a project as a specific kind of project. For example, the Java development tools (JDT) use a &quot;Java nature&quot; to add
-Java-specific behavior to projects.&nbsp; Project natures are defined by
-plug-ins, and are typically added or removed per-project when the user performs
-some action defined by the plug-in.</P>
-<P >A project can have more than one nature.&nbsp; However, when you define a
-project nature, you can define special constraints for the nature:</P>
-<ul>
-  <li><b>one-of-nature</b> - specifies that the nature is one of a named
-    set.&nbsp; Natures in a set are mutually exclusive; that is, only one nature
-    belonging to the set can exist for a project.</li>
-  <li><b>requires-nature</b> - specifies that the nature depends on another
-    nature and can only be added to a project that already has the required
-    nature.</li>
-</ul>
-<P >
-To implement your own nature, you need to define an extension and supply a class
-which implements <b><a href="../reference/api/org/eclipse/core/resources/IProjectNature.html">IProjectNature</a></b>.</P>
-
-<H3>
-Defining a nature</H3>
-<P >
-The <a href="../reference/extension-points/org_eclipse_core_resources_natures.html"> <b> org.eclipse.core.resources.natures</b></a> extension point is used to add a project nature definition. The following markup adds a nature for the hypothetical
-<b> com.example.natures</b> plug-in.</P>
-<font color='#4444CC'><pre>
-   &lt;extension
-      point=&quot;org.eclipse.core.resources.natures&quot;
-      id=&quot;myNature&quot;
-      name=&quot;My Nature&quot;&gt;
-      &lt;runtime&gt;
-         &lt;run class=&quot;com.example.natures.MyNature&quot;&gt;
-         &lt;/run&gt;
-      &lt;/runtime&gt;
-   &lt;/extension&gt;
-</pre></font>
-<P >
-The class identified in the extension must implement the platform interface
-<b><a href="../reference/api/org/eclipse/core/resources/IProjectNature.html">IProjectNature</a></b>. This class implements plug-in specific behavior for associating nature-specific information with a project when
-the nature is configured.</P>
-<font color='#4444CC'><pre>
-   public class MyNature implements IProjectNature {
-
-      private IProject project;
-
-      public void configure() throws CoreException {
-         // Add nature-specific information
-         // for the project, such as adding a builder
-         // to a project's build spec.
-      }
-      public void deconfigure() throws CoreException {
-         // Remove the nature-specific information here.
-      }
-      public IProject getProject() {
-         return project;
-      }
-      public void setProject(IProject value) {
-         project = value;
-      }
-   }
-</pre></font>
-<P >
-The <b> configure()</b> and <b> deconfigure()</b> methods are sent by the platform
-when natures are added and removed from a project.&nbsp; You can implement the
-<b> configure()</b> method to add a builder to a project as discussed in
-<a HREF="resAdv_builders.htm" CLASS="XRef">Builders</a>.</P>
-
-
-<H3>
-Associating the nature with a project</H3>
-<P >
-Defining the nature is not enough to associate it with a project.&nbsp; You must
-assign a nature to a project by updating the project's description to include
-your nature.&nbsp; This usually happens when the user creates a new project with a specialized new project wizard that assigns the
-nature.&nbsp; The following snippet
-shows how to assign our new nature to a given project.</P>
-<font color='#4444CC'><pre>
-   try {
-      IProjectDescription description = project.getDescription();
-      String[] natures = description.getNatureIds();
-      String[] newNatures = new String[natures.length + 1];
-      System.arraycopy(natures, 0, newNatures, 0, natures.length);
-      newNatures[natures.length] = &quot;com.example.natures.myNature&quot;;
-      description.setNatureIds(newNatures);
-      project.setDescription(description, null);
-   } catch (CoreException e) {
-      // Something went wrong
-   }
-</pre></font>
-<P>The natures are not actually assigned to (and configured) for the project
-until you set the project description into the project.&nbsp; Also note that the identifier used for the nature is the fully qualified name (plug-in id + extension id) of the nature extension. </P>
-<P>
-If the nature has been defined with constraints, then workspace API can be used
-to validate the new nature.&nbsp; For example, suppose a nature is defined with
-a prerequisite: </P>
-<pre><font color='#4444CC'>   &lt;extension
-      point=&quot;org.eclipse.core.resources.natures&quot;
-      <b>id=&quot;myOtherNature&quot;</b>
-      name=&quot;My Other Nature&quot;&gt;
-      &lt;runtime&gt;
-         &lt;run class=&quot;com.example.natures.MyOtherNature&quot;&gt;
-         &lt;/run&gt;
-      &lt;/runtime&gt;
-<b>   &lt;requires-nature id=&quot;com.example.natures.myNature&quot;/&gt;
-</b>   &lt;/extension&gt;
-</font></pre>
-<P >
-The new nature is not valid unless the first nature exists for the
-project.&nbsp; Depending on the design of your plug-in, you may want to check
-whether the prerequisite nature has been installed, or you may want to add the
-prerequisite nature yourself.&nbsp; Either way, you can check on the validity of
-proposed combinations of project natures using workspace API. </P>
-
-<font color='#4444CC'><pre>   try {
-      IProjectDescription description = project.getDescription();
-      String[] natures = description.getNatureIds();
-      String[] newNatures = new String[natures.length + 1];
-      System.arraycopy(natures, 0, newNatures, 0, natures.length);
-<b>      newNatures[natures.length] = &quot;com.example.natures.myOtherNature&quot;;
-</b>      IStatus status = <b>workspace.validateNatureSet(natures);
-</b>
-      // check the status and decide what to do
-      if (status.getCode() == IStatus.OK) {
-      	description.setNatureIds(newNatures);
-      	project.setDescription(description, null);
-      } else {
-      	// raise a user error
-	...
-      }
-   } catch (CoreException e) {
-      // Something went wrong
-   }
-</pre></font>
-
-
-<H3>
-Nature descriptors</H3>
-<p>In addition to working with natures by their id, you can obtain the
-descriptor (<a href="../reference/api/org/eclipse/core/resources/IProjectNatureDescriptor.html"><b>IProjectNatureDescriptor</b></a>)
-which describes a nature, its constraints, and its label.&nbsp; You can query a
-particular nature for its descriptor, or get descriptors from the
-workspace.&nbsp; The following snippet gets the project nature descriptor for
-our new nature:</p>
-<font color='#4444CC'><pre>      IProjectNatureDescriptor descriptor = workspace.getNatureDescriptor(&quot;com.example.natures.myOtherNature&quot;);<b>
-</b></pre><p>You can also get an array of descriptors for all installed natures:
-</p><pre>      IProjectNatureDescriptor[] descriptors = workspace.getNatureDescriptors();<b>
-</b></pre></font>
-<p>&nbsp;</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_saving.htm b/bundles/org.eclipse.platform.doc.isv/guide/resAdv_saving.htm
deleted file mode 100644
index 5a3c3b3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resAdv_saving.htm
+++ /dev/null
@@ -1,263 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Workspace save participation
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Workspace save participation</H2>
-<P >
-Workspace save processing is triggered when the workbench is shut down by the user and at other times
-periodically by the platform.&nbsp; Plug-ins can participate in the workspace save process so that critical
-plug-in data is saved to disk whenever the rest of the workspace's persistent data is saved. </P>
-<P >
-The workspace save process can also be used to track changes that occur between activations of your plug-in.</P>
-
-<H3>
-Implementing a save participant</H3>
-<P >
-To participate in workspace saving, you must add a save participant to the workspace. This is typically done during your plug-in's startup method.&nbsp;
-This is also where you read any state that you might have saved
-when your plug-in was last shut down.</P>
-<P >
-Let's look at a simple plug-in which will demonstrate the save process.</P>
-<font color='#4444CC'><pre>
-   package com.example.saveparticipant;
-
-   import org.eclipse.core.runtime.*;
-   import org.eclipse.core.resources.*;
-   import java.io.File;
-   import java.util.*;
-
-   public class MyPlugin extends Plugin {
-      private static MyPlugin plugin;
-
-      public MyPlugin(IPluginDescriptor descriptor) {
-         super(descriptor);
-         plugin = this;
-      }
-
-      public static MyPlugin getDefault() {
-         return plugin;
-      }
-
-      protected void readStateFrom(File target) {
-      }
-
-      public void startup() throws CoreException {
-         super.startup();
-         ISaveParticipant saveParticipant = new MyWorkspaceSaveParticipant();
-         ISavedState lastState =
-            <b>ResourcesPlugin.getWorkspace().addSaveParticipant(this, saveParticipant);</b>
-         if (lastState == null)
-            return;
-         IPath location = lastState.lookup(new Path(&quot;save&quot;));
-         if (location == null)
-            return;
-         // the plugin instance should read any important state from the file.
-         File f = getStateLocation().append(location).toFile();
-         readStateFrom(f);
-      }
-
-      protected void writeImportantState(File target) {
-      }
-   }</pre></font>
-<P >
-<b><a href="../reference/api/org/eclipse/core/resources/ISaveParticipant.html">
-ISaveParticipant</a></b> defines the protocol for a workspace save participant. Implementors of this
-interface can provide behavior for different stages of the save process.&nbsp;
-Let's look at the stages and how our class <b>WorkspaceSaveParticipant</b>
-implements each of these steps.</P>
-<ul>
-  <li>
-<b>
-prepareToSave</b> notifies the participant that the workspace is about to be saved and that it should suspend normal operation until further notice.&nbsp;
-Our save particpant does nothing here.</li>
-</ul>
-<font color='#4444CC'><pre>
-      public void prepareToSave(ISaveContext context) throws CoreException {
-      }
-</pre></font>
-<ul>
-  <li>
-<b>
-saving</b> tells the participant to save its important state.</li>
-</ul>
-<font color='#4444CC'><pre>
-      public void saving(ISaveContext context) throws CoreException {
-         switch (context.getKind()) {
-            case ISaveContext.FULL_SAVE:
-               MyPlugin myPluginInstance = MyPlugin.getDefault();
-               // save the plug-in state
-               <b>int saveNumber = context.getSaveNumber();
-               String saveFileName = &quot;save-&quot; + Integer.toString(saveNumber);
-               File f = myPluginInstance.getStateLocation().append(saveFileName).toFile();
-               </b>// if we fail to write, an exception is thrown and we do not update the path
-               <b>myPluginInstance.writeImportantState(f);
-               context.map(new Path(&quot;save&quot;), new Path(saveFileName));
-               context.needSaveNumber();</b>
-               break;
-            case ISaveContext.PROJECT_SAVE:
-               // get the project related to this save operation
-               IProject project = context.getProject();
-               // save its information, if necessary
-               break;
-            case ISaveContext.SNAPSHOT:
-               // This operation needs to be really fast because
-               // snapshots can be requested frequently by the
-               // workspace.
-               break;
-         }
-      }
-</pre></font>
-<blockquote>
-  <p>The <a href="../reference/api/org/eclipse/core/resources/ISaveContext.html"><b> ISaveContext</b></a> describes information about the save operation.&nbsp;
-There are three kinds of save operations:&nbsp; <b>FULL_SAVE</b>,
-<b>SNAPSHOT</b>, and <b>PROJECT_SAVE</b>.&nbsp;
-Save participants should be careful to perform the processing appropriate for
-the kind of save event they have received.&nbsp; For example, snapshot events
-may occur quite frequently and are intended to allow plug-ins to save their
-critical state.&nbsp; Taking a long time to save state which can be recomputed
-in the event of a crash will slow down the platform.</p>
-<P >
-A save number is used to create data save files that are named using sequential numbers (<b>save-1</b>,
-<b>save-2</b>, etc.)&nbsp; Each save file is mapped to a logical file name (<b>save</b>) that is independent of the save number. Plug-in data is written to the corresponding file and can be retrieved later without knowing the specific save number of the last successful save operation.&nbsp;
-Recall that we saw this technique in our&nbsp; plug-in's startup code:</P>
-<font color='#4444CC'><pre>
-<b>IPath location = lastState.lookup(new Path(&quot;save&quot;));</b>
-</pre></font>
-<P >
-After we have saved our data and mapped the file name, we call <b>needSaveNumber</b> 
-to indicate that we have actively participated in a workspace save and want to assign a number to the save activity.
-The save numbers can be used to create data files as above.&nbsp;</P>
-
-
-</blockquote>
-<ul>
-  <li>
-<b>
-doneSaving</b> notifies the participant that the workspace has been saved and the participant can continue normal operation.</li>
-</ul>
-<font color='#4444CC'><pre>
-      public void doneSaving(ISaveContext context) {
-         MyPlugin myPluginInstance = MyPlugin.getDefault();
-
-         // delete the old saved state since it is not necessary anymore
-         int previousSaveNumber = <b>context.getPreviousSaveNumber()</b>;
-         String oldFileName = &quot;save-&quot; + Integer.toString(previousSaveNumber);
-         File f = myPluginInstance.getStateLocation().append(oldFileName).toFile();
-         f.delete();
-      }
-</pre></font>
-<blockquote>
-  <p>Here, we clean up the save information from the previous save
-  operation.&nbsp; We use <b>getPreviousSaveNumber</b> 
-  to get the save number that was assigned in the previous save operation (not
-  the one we just completed).&nbsp; We use this number to construct the name of
-  the file that we need to delete.&nbsp; Note that we do not use the save
-  state's logical file map since we've already mapped our current save file
-  number.&nbsp;</p>
-</blockquote>
-<ul>
-  <li>
-<b>
-rollback</b> tells the participant to rollback the important state because the save operation has failed.</li>
-</ul>
-<font color='#4444CC'><pre>
-      public void rollback(ISaveContext context) {
-         MyPlugin myPluginInstance = MyPlugin.getDefault();
-
-         // since the save operation has failed, delete the saved state we have just written
-         int saveNumber = context.getSaveNumber();
-         String saveFileName = &quot;save-&quot; + Integer.toString(saveNumber);
-         File f = myPluginInstance.getStateLocation().append(saveFileName).toFile();
-         f.delete();
-      }
-</pre></font>
-<blockquote>
-  <p>Here, we delete the state that we just saved.&nbsp; Note that we use the
-  current save number to construct the file name of the file we just saved.&nbsp;
-  We don't have to worry about the fact that we mapped this file name into the <a href="../reference/api/org/eclipse/core/resources/ISaveContext.html"><b> ISaveContext</b></a><b>.
-  </b>The platform will discard the context when a save operation fails.</p>
-</blockquote>
-
-
-<p>If your plug-in throws an exception at any time during the save lifecycle, it
-will be removed from the current save operation and will not get any of the
-remaining lifecycle methods.&nbsp; For example, if you fail during your <b>saving</b> 
-method, you will not receive a
-<b>
-rollback</b>  or
-<b>
-doneSaving</b>  message.&nbsp;</p>
-
-
-<H3>
-Using previously saved state</H3>
-<P >
-When you add a save participant to the workspace, it will return an <b><a href="../reference/api/org/eclipse/core/resources/ISavedState.html"> ISavedState</a></b> 
-object, which describes what your plug-in saved during its last save operation (or
-<b> null</b> if your plug-in has not previously saved any state). This
-object can be used to access information from the previous save file (using the save number and file map) or to process changes that have occurred between activations of a plug-in.</P>
-
-<H4>
-Accessing the save files</H4>
-<P >
-If a file map was used to save logically named files according to the save number, this same map can be used to retrieve the data from the last known save state.</P>
-<font color='#4444CC'><pre>
-   ISaveParticipant saveParticipant = new MyWorkspaceSaveParticipant();
-   ISavedState lastState =
-      ResourcesPlugin.getWorkspace().addSaveParticipant(myPluginInstance, saveParticipant);
-
-   if (lastState != null) {
-      String saveFileName = lastState.lookup(new Path(&quot;save&quot;)).toString();
-      File f = myPluginInstance.getStateLocation().append(saveFileName).toFile();
-      // the plugin instance should read any important state from the file.
-      myPluginInstance.readStateFrom(f);
-   }
-</pre></font>
-
-
-<H4>
-Processing resource deltas between activations</H4>
-<P >
-Recall that any number of resource change events could occur in the workspace before your plug-in is ever activated. If you want to know what changes have occurred since your plug-in was
-deactivated, you can use the save mechanism to do so, even if you don't need to save any other data.</P>
-<P >
-The save participant must request that the platform keep a resource delta on its behalf. This is done as part of the save operation.</P>
-<font color='#4444CC'><pre>
-   public void saving(ISaveContext context) throws CoreException {
-      // no state to be saved by the plug-in, but request a
-      // resource delta to be used on next activation.
-      context.needDelta();
-   }
-</pre></font>
-<P >
-During plug-in startup, the previous saved state can be accessed and change events will be created for all changes that have occurred since the last save.</P>
-<font color='#4444CC'><pre>
-   ISaveParticipant saveParticipant = new MyWorkspaceSaveParticipant();
-   ISavedState lastState =
-      ResourcesPlugin.getWorkspace().addSaveParticipant(myPluginInstance, saveParticipant);
-   if (lastState != null) {
-      lastState.processResourceChangeEvents(new MyResourceChangeReporter());
-   }
-</pre></font>
-<P >
-The provided class must implement <a href="../reference/api/org/eclipse/core/resources/IResourceChangeListener.html"><b>IResourceChangeListener</b></a>, as described in
-<a HREF="resAdv_events.htm" CLASS="XRef"> Tracking resource changes</a>.&nbsp; The changes since the last save are reported as part of the <b> POST_AUTO_BUILD</b> resource change event.</P>
-<i><blockquote>
-Note:&nbsp; Marker changes are not reported in the change events stored in an <b> ISavedState</b>. You must assume that any or all markers have changed since your last state was saved.</blockquote></i>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resInt.htm b/bundles/org.eclipse.platform.doc.isv/guide/resInt.htm
deleted file mode 100644
index c01c5b5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resInt.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Resources overview</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Resources overview</H1>
-<p>
-  An essential plug-in for Eclipse IDE applications is the resources plug-in (named
-<b>org.eclipse.core.resources</b>).  The resources plug-in provides services for accessing the 
-projects and files that a user is working with.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resInt_btb.htm b/bundles/org.eclipse.platform.doc.isv/guide/resInt_btb.htm
deleted file mode 100644
index 3d85e67..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resInt_btb.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Beyond the basics
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Beyond the basics</H2>
-<P >
-We've completed a quick survey of the resource API and explored how the
-resources and the workspace relate to the file system. </P>
-<P >
-It is best to look at resources in the context of a workbench plug-in. In the next few chapters, we will look at a sample plug-in, the readme tool, which manipulates resources and integrates with the workbench.</P>
-<P >
-More information on resources can be found in <a HREF="resAdv.htm" CLASS="XRef"> Resource and workspace API</a>.</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resInt_filesystem.htm b/bundles/org.eclipse.platform.doc.isv/guide/resInt_filesystem.htm
deleted file mode 100644
index ba40f9c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resInt_filesystem.htm
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Resources and the local file system
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Resources and the local file system</H2>
-<P >
-When the platform core is running and the resources plug-in is active, the workspace is represented by an instance of
-<b><a href="../reference/api/org/eclipse/core/resources/IWorkspace.html"> IWorkspace</a></b>, which provides protocol for accessing the resources it contains.  An
-<b><a href="../reference/api/org/eclipse/core/resources/IWorkspace.html"> IWorkspace</a></b> instance
-represents an associated collection of files and directories in the local file system.  You can access the workspace from the
-resources plug-in class in <b><a href="../reference/api/org/eclipse/core/resources/package-summary.html">org.eclipse.core.resources</a></b>. </P>
-<font color='#4444CC'><pre>
-   ResourcesPlugin.getWorkspace(); 
-</pre></font>
-<P >
-When the resources plug-in is not running, the workspace exists solely in the local file system and is viewed or manipulated by the user
-via standard file-based tools. Let's look at what a workspace looks like on disk as we explain the
-resources plug-in API. </P>
-
-<H3>
-Our sample tree on disk</H3>
-<P >
-When you installed the platform SDK, you unzipped the files into a directory of
-your choosing.&nbsp; We will call this directory the platform root directory.
-This is the directory that contains the
-<b> plugins</b> directory, among others.  Inside the platform root directory, there
-is a <b>workspace</b> directory which is used to hold
-the resources that are created and manipulated by the platform.&nbsp; If you
-look in your <b>workspace</b> directory, you'll see separate subdirectories for each project that exists in the workspace.  Within these subdirectories are the folders and files that
-each project contains.  </P>
-<P >
-If the SDK in our example is installed in <b> c:\MySDK</b>, then inside
-the <b>c:\MySDK\workspace</b> directory we find subdirectories named after the workspace's projects,
-<b> MyWeb</b> and <b>MyServlet</b>.  These are called the projects' content directories.
-Content directories are created by the platform when the user creates a project.</P>
-<P >
-Inside each directory, we find the files and folders within the project, laid out exactly the same as they are in the workspace's resource tree.  All file names are the same, and the files' contents are the same
-whether accessed from the file system or from the workspace. The only surprise
-is the <b>.project</b> file, explained in a moment.</P>
-<font color='#4444CC'><pre>
-   C:\MySDK\workspace  (workspace root)
-      .metadata\ (platform metadata directory
-      MyWeb\ (project content directory for MyWeb)
-	 .project
-         index.html
-         images\
-            logo.gif
-      MyServlet\ (project content directory for MyServlet)
-	 .project
-         src\
-            main.java
-         bin\
-            main.class</pre></font>
-<P >
-The platform has a special <b>.metadata</b> directory for holding platform internal information.  The
-<b>.metadata</b> directory of a workspace is considered to be a &quot;black box.&quot;  Important information about the workspace structure, such as a project's references or a resource's properties,
-is stored in the metadata portion of the workspace and should only be accessed by tools through the
-platform API.&nbsp; These files should never be edited or manipulated using
-generic file system API. </P>
-<P >In addition, each project has its own <b>.project</b> file, where metadata
-about the project is kept.&nbsp; This file is basically an on-disk equivalent of
-the information found in a project's
-<b><a href="../reference/api/org/eclipse/core/resources/IProjectDescription.html">IProjectDescription</a></b>.&nbsp;&nbsp; </P>
-<P >Apart from the <b>.metadata</b>  directory and the <b>.project</b> files, the folders and files in the workspace directory are fair game for other
-tools.&nbsp; The files and folders can be manipulated by non-integrated tools, such as text editors and file system
-utilities.&nbsp; The only issue is that the user must be careful when editing
-these files both in the workbench and externally.&nbsp; (This is no
-different than when a user edits a file using two independent stand-alone
-tools.)&nbsp; The workbench provides refresh operations to reconcile the
-workspace view of resources with the actual state in the file system. </P>
-
-
-<H3>
-Our sample tree in code</H3>
-<P >
-The resource API allows us to manipulate this resource tree in code.  Here we will look at some code snippets for a quick taste of the resource
-API.  The resource API is defined in a series of interfaces in
-<b><a href="../reference/api/org/eclipse/core/resources/package-summary.html">org.eclipse.core.resources</a></b>.  There are interfaces for all of the resource types, such as
-<b><a href="../reference/api/org/eclipse/core/resources/IProject.html">IProject</a></b>,
-<b><a href="../reference/api/org/eclipse/core/resources/IFolder.html">IFolder</a></b>, and
-<b><a href="../reference/api/org/eclipse/core/resources/IFile.html">IFile</a></b>.  Extensive common protocol is defined in
-<b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a></b>.  We also make use of the
-<b><a href="../reference/api/org/eclipse/core/runtime/package-summary.html">org.eclipse.core.runtime</a></b> interface
-<b><a href="../reference/api/org/eclipse/core/runtime/IPath.html">IPath</a></b>, which represents segmented paths such as resource or file system paths.</P>
-<P >
-Manipulating resources is very similar to manipulating files using <b> java.io.File</b>.&nbsp;
-The API is based on <b>handles</b>.&nbsp; When you use API like <b>getProject</b>
-or <b>getFolder</b>, you are returned a handle to the
-resource.&nbsp;&nbsp; There is no guarantee or requirement that the resource itself exists
-until you try to do something with the handle.&nbsp; If you expect a resource to
-exist, you can use <b>exists</b> method to ensure
-this is the case.&nbsp;&nbsp;  </P>
-<P >
-To navigate the workspace from a plug-in, we must first obtain the <a href="../reference/api/org/eclipse/core/resources/IWorkspaceRoot.html"><b>IWorkspaceRoot</b></a>, which represents the top of the resource hierarchy in the workspace.</P>
-<font color='#4444CC'><pre>
-   IWorkspaceRoot myWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();</pre></font>
-<P >
-Once we have a workspace root, we can access the projects in the workspace. </P>
-<font color='#4444CC'><pre>
-   IProject myWebProject = myWorkspaceRoot.getProject(&quot;MyWeb&quot;);
-   // open if necessary
-   if (myWebProject.exists() &amp;&amp; !myWebProject.isOpen())
-      myWebProject.open(null);
-</pre></font>
-<P >
-Before we can manipulate a project, we must open it.  Opening the project reads the project's
-structure from disk and creates the in-memory object representation of the project's resource tree.  Opening a project is an explicit operation since each open project consumes memory to represent the resource tree
-internally and open projects participate in various resource lifecycle events
-(such as building) which can be lengthy.&nbsp; In general, closed projects
-cannot be accessed and will appear empty even though the resources are still present in the file system.</P>
-<P >
-You'll notice that many of these resource examples pass a <b> null</b> parameter when manipulating resources.
-Many resource operations are potentially heavyweight enough to warrant progress reporting and
-user cancellation.  If your code has a user interface, you will typically pass an <b><a href="../reference/api/org/eclipse/core/runtime/IProgressMonitor.html"> IProgressMonitor</a></b>,
-which allows the
-resources plug-in to report progress as the resource is manipulated and allows the user to cancel the operation if desired.&nbsp;
-For now, we simply pass <b>null</b>, indicating no
-progress monitor.</P>
-<P >
-Once we have an open project, we can access its folders and files, as well as create additional ones.&nbsp;
-In the following example we create a file resource from the contents of a file
-located outside of our workspace.  </P>
-<font color='#4444CC'><pre>
-   IFolder imagesFolder = myWebProject.getFolder(&quot;images&quot;);
-   if (imagesFolder.exists()) {
-      // create a new file
-      IFile newLogo = imagesFolder.getFile(&quot;newLogo.gif&quot;);
-      FileInputStream fileStream = new FileInputStream(
-         &quot;c:/MyOtherData/newLogo.gif&quot;);
-      newLogo.create(fileStream, false, null);
-      // create closes the file stream, so no worries.   
-   }
-</pre></font>
-<P >
- In the example above, the
-first line obtains a handle to the images folder.&nbsp; We must check that the
-folder <b>exists</b> before we can do anything
-interesting with it.&nbsp; Likewise, when we get the file <b>newLogo</b>,
-the handle does not represent a real file until we create the file in the last
-line.&nbsp; In this example, we create the file by populating it with the
-contents of <b>logo.gif</b>.  </P>
-<P >
-The next snippet is similar to the previous one, except that it copies the <b> newLogo</b> file from the original logo rather than create a new
-one from its contents.</P>
-<font color='#4444CC'><pre>
-   IFile logo = imagesFolder.getFile(&quot;logo.gif&quot;);
-   if (logo.exists()) {
-      IPath newLogoPath = new Path(&quot;newLogo.gif&quot;);
-      logo.copy(newLogoPath, false, null);
-      IFile newLogo = imagesFolder.getFile(&quot;newLogo.gif&quot;);
-      ...
-   }
-</pre></font>
-<P >
-Finally, we'll create another images folder and move the newly created file to it.  We rename the file as a side effect of moving it.</P>
-<font color='#4444CC'><pre>
-   ...
-   IFolder newImagesFolder = myWebProject.getFolder(&quot;newimages&quot;);
-   newImagesFolder.create(false, true, null);
-   IPath renamedPath = newImagesFolder.getFullPath().append(&quot;renamedLogo.gif&quot;);
-   newLogo.move(renamedPath, false, null);
-   IFile renamedLogo = newImagesFolder.getFile(&quot;renamedLogo.gif&quot;);
-</pre></font>
-
-
-<P>Many of the resource API methods include a <b>force</b>
-boolean flag which specifies whether resources that are out of synch with the
-corresponding files in the local file system will be updated anyway.&nbsp; See <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>
-for more information.&nbsp; You can also use <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a><b>.isSynchronized
-</b>to determine whether a particular resource is in synch with the file system.</P>
-
-
-<H3>
-<a name="mapping">
-Mapping resources to disk locations</a></H3>
-<P >
-  In the sample resource tree, we've assumed that all of the project content directories are
-in the <b>workspace</b> directory underneath the platform root
-directory (<b>C:\MySDK\workspace)</b>.  This is the default configuration
-for projects.&nbsp; However, a project's content directory can be remapped to any arbitrary directory in the file system, perhaps on a different disk drive.</P>
-<P >
-The ability to map the location of a project independent of other projects allows the user to
-store the contents of a project in a place that makes sense for the project and the project team.  A project's content directory should be considered &quot;out in the open.&quot;  This means that users can create, modify, and delete resources
-by using the workbench and plug-ins, or by directly using file system based tools and editors.</P>
-<P> Resource path names are not complete file system paths.  Resource paths are always
-based on the project's location (usually the <b>workspace</b>
-directory).&nbsp; To obtain the full file system path to a resource, you must query its location using
-<b>
-<a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a>.getLocation.&nbsp;
-</b>Howevever, you cannot use
-<b> <a href="../reference/api/org/eclipse/core/resources/IProjectDescription.html">IProjectDescription</a>.setLocation
-</b>to change its location, because that method is just a simple setter for a
-data structure.&nbsp;&nbsp;</P>
-<P>Conversely, if you want to get the corresponding resource object given a file
-system path, you can use <a href="../reference/api/org/eclipse/core/resources/IWorkspaceRoot.html"><b>IWorkspaceRoot</b></a>.<b>getFileForLocation</b>
-or <a href="../reference/api/org/eclipse/core/resources/IWorkspaceRoot.html"><b>IWorkspaceRoot</b></a>.<b>getContainerForLocation</b>.</P>
-
-
-<H3>
-Resource API and the file system</H3>
-<P >
-When we use the resources API to modify our workspace's resource tree, the files
-are changed in the file system in addition to updating our resource objects.  What about changes to
-resource files that happen outside of the platform's API?  </P>
-<P >
-External changes to resources will not be reflected in the workspace and resource objects until detected by the resources plug-in.
-Clients can use resource API to reconcile workspace and resource objects with
-the local file system quietly and without user intervention.&nbsp; The user can
-always explicitly force a refresh&nbsp; in the resource navigator view of the
-workbench.  </P>
-<i><blockquote>
-Note:&nbsp; Many of the methods in the resource APIs include a force parameter which specifies how resources that
-are out of sync with the file system should be handled.  The API Reference for
-each method provides specific information about this parameter. Additional methods in the API allow programmatic control of file system refresh, such as
-<b> IResource.refreshLocal(int depth, IProgressMonitor monitor)</b>. See <b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a></b>
-for information on correct usage and costs.</blockquote></i>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resInt_linked.htm b/bundles/org.eclipse.platform.doc.isv/guide/resInt_linked.htm
deleted file mode 100644
index fedcef0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resInt_linked.htm
+++ /dev/null
@@ -1,206 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Linked resources
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Linked resources</H2>
-<P >Earlier discussions of resources and the file system (<a href="resInt_filesystem.htm#mapping">Mapping
-resources to disk locations)</a> assumed that all resources in a project are
-located in the same place in the file system.&nbsp; This is generally
-true.&nbsp; However, the concept of <b>linked resources</b> in the workbench is
-provided so that files and folders inside a project can be stored in the file system outside of the project's location.&nbsp;
-</P>
-<P >Linked resources must
-have a project as their parent resource. They can
-be located virtually anywhere in the file system.  They can reside outside the project location,
-or even within another project.  There are only a few restrictions on linked
-resource locations. The method 
-<b><a href="../reference/api/org/eclipse/core/resources/IWorkspace.html">IWorkspace</a>.validateLinkLocation</b>
-can be used to ensure that a given location is valid for creating a linked
-resource.
-</P>
-<P>
-Linked resources are created using the method 
-<b><a href="../reference/api/org/eclipse/core/resources/IFolder.html">IFolder</a>.createLink</b> or
-<b><a href="../reference/api/org/eclipse/core/resources/IFile.html">IFile</a>.createLink</b>.  
-To determine programmatically whether a given resource is a linked resource, you
-can use the method
-<b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a>.isLinked</b>.
-Note that this method will only return <code>true</code> for linked resources, not for children 
-of linked resources.
-</P>
-<P>
-Apart from these special methods for creating linked resources and
-finding out if a resource is linked, you can use normal workspace API when manipulating linked
-resources.  In most respects, linked resources act exactly like any other resource in
-the workspace.  However, some restrictions apply when moving, copying, or
-deleting linked resources.&nbsp; See <b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a></b>
-and its sub-classes for information on individual operatiosn and their
-limitations.
-</P>
-<h3>Path variables</h3>
-<P>
-  Path variables can be used
-when specifying the location of linked resources.&nbsp; A path variable is a simple (String -&gt;
-<b><a href="../reference/api/org/eclipse/core/runtime/IPath.html">IPath</a></b>) mapping that 
-defines a shortcut for a location in the file system.&nbsp; Variables can ease
-the management of linked resources by reducing the number of places where
-hard-coded, absolute file system paths are used.&nbsp;&nbsp;<P>Path variables
-streamline the management of linked resources for users in several ways:
-<ul>
-<li>Allows a single reference to the absolute path when defining several linked resources under a common
-  root</li>
-<li>Allows the location of several resources to be redefined by changing a
-  single variable</li>
-<li>Allows users to share projects containing linked resources without updating
-  the paths of each resource (since the absolute path can vary from one machine
-  to another.)</li>
-</ul>
-<p>
-The last item in this list deserves a bit of explanation.  When a user creates a
-linked resource in a project, a description of the linked resource is added to the
-project description file (&quot;.project&quot;) in the project's location. By
-using a path variable, users can share a project (by copying the project's
-content or by using a repository), and redefine the variable to suit each
-individual workstation.&nbsp; For example, one user might store external resources under c:\temp on
-one system,
-while another user using Unix might store the same resources in /home/username/tmp.&nbsp;
-Defining a path variable on each workspace (<code>TEMP=c:\temp</code> and <code>TEMP=/home/userb/tmp)</code>
- allows users to work around this difference and share the projects with linked
-resources as is.<p>
-<b><a href="../reference/api/org/eclipse/core/resources/IPathVariableManager.html">IPathVariableManager</a></b>
- defines the API for creating, manipulating, and resolving path variables. It also provides methods for validating variable names and values before
-creating them, and for installing a listener to be notified when path variable definitions
-change.  You can obtain an instance of this class using
-<b><a href="../reference/api/org/eclipse/core/resources/IWorkspace.html">IWorkspace</a>.getPathVariableManager</b>.
-See the code examples at the end of this section for more detail.
-</p>
-<p>
-The method 
-<b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a>.getRawLocation</b>
-can be used to find out the unresolved location of a linked resource. That is,
-to get the actual path variable name instead of resolving it to its value.&nbsp;
-If a resource location is not defined with a path variable, the <b>getRawLocation</b>
-method acts exactly like the <b>getLocation</b> method.
-</p>
-<h3>Broken links</h3>
-<p>
-Clients that manipulate resources programmatically need to be aware of the possibility of
-broken links.  Broken links occur when a linked resource's location does not
-exist, or is specified relative to an undefined path variable. The following
-special cases apply when using <b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a></b>
-protocol:
-<ul>
-<li>The <b>copy</b> and <b>move</b> methods will fail when called on broken links.</li>
-<li>Calling <b>refreshLocal</b> on a broken link will not cause the resource to be removed
-from the workspace, as it does for normal resources that are missing from the file system.</li>
-<li>The method <b>getLocation</b> will return <code>null</code> for linked resources
-whose locations are relative to undefined path variables.</li>
-<li>You can still use <b>delete</b> to remove broken links from the workspace.</li>
-</ul>
-<H3>Compatibility with installed plug-ins</H3>
-<p>
-Some plug-ins may not be able to handle linked resources, so there are a number
-of mechanisms available for disabling them.  If you are writing a plug-in that absolutely
-needs all of a project's contents to be located in the project's default location, you 
-can use these mechanisms to prevent users from creating linked resources where
-you don't want them to appear.
-</p>
-<p>
-The first mechanism is called the <i>project nature veto</i>.  If you define your
-own <a href="resAdv_natures.htm">project nature</a>, you can specify in the nature 
-definition that the nature is not compatible with linked resources.  Here is an example 
-of a nature definition that 
-employs the nature veto:
-<font color='#4444CC'><pre>
-&lt;extension
-	id=&quot;myNature&quot;
-	name=&quot;My Nature&quot;
-	point=&quot;org.eclipse.core.resources.natures&quot;&gt;
-	&lt;runtime&gt;
-		&lt;run class=&quot;com.xyz.MyNature&quot;/&gt;
-	&lt;/runtime&gt;
-	&lt;options <b>allowLinking=&quot;false&quot;</b>/&gt;
-&lt;/extension&gt;
-</pre></font>
-<p>
-The second mechanism for preventing linked resource creation is the <i>team hook</i>.
-If you define your own repository implementation, you can make use of the <b><a href="../reference/extension-points/org_eclipse_core_resources_teamHook.html">org.eclipse.core.resources.teamHook</a></b>
-extension point to prevent the creation of linked
-resources in projects that are shared with your repository type.  By default, 
-repository providers do <em>not</em> allow linked resources in projects
-connected to the repository.&nbsp;
-</p>
-<p>If the repository support is provided by an older plug-in
-that is not aware of linked resources, you will not be able to create linked resources
-in those projects.&nbsp;
-</p>
-<p>
-Finally, there is a preference setting that can be used to disable linked resources
-for the entire workspace.  While the previous two veto mechanisms work
-on a per-project basis, this preference affects all projects in the workspace.  To
-set this preference programatically, use the preference <code>ResourcesPlugin.PREF_DISABLE_LINKING</code>.
-This setting will typically be used in conjunction with the primary feature
-<a href="product_config.htm#preferences">preference override mechanism</a> to 
-allow the primary feature of the Eclipse install to turn off linked resources.  
-Note that even when set, users or plug-ins can override this by turning the preference
-off.
-</p>
-
-<H3>Linked resources in code</H3>
-<P >
-Let's go into some examples of using linked resources in code. We'll start by 
-defining a path variable:
-<font color='#4444CC'><pre>
-   IWorkspace workspace = ResourcesPlugin.getWorkspace();
-   IPathVariableManager pathMan = workspace.getPathVariableManager();
-   String name = &quot;TEMP&quot;;
-   IPath value = new Path(&quot;c:\\temp&quot;);
-   if (pathMan.validateName(name).isOK() &amp;&amp; pathMan.validateValue(value).isOK()) {
-      pathMan.setValue(name, value);
-   } else {
-      //invalid name or value, throw an exception or warn user
-   }
-</pre></font>
-Now we can create a linked resource relative to the defined path variable:
-<font color='#4444CC'><pre>
-   IProject project = workspace.getProject(&quot;Project&quot;);//assume this exists
-   IFolder link = project.getFolder(&quot;Link&quot;);
-   IPath location = new Path(&quot;TEMP/folder&quot;);
-   if (workspace.validateLinkLocation(location).isOK()) {
-      link.createLink(location, IResource.NONE, null);
-   } else {
-      //invalid location, throw an exception or warn user
-   }
-</pre></font>
-That's it!  You now have a linked folder in your workspace called &quot;Link&quot;
-that is located at &quot;c:\temp\folder&quot;.
-<p>
-Let's end with some code snippets on this linked resource to illustrate the behavior other
-methods related to linked resources:
-<font color='#4444CC'><pre>
-   link.getFullPath() ==&gt; &quot;/Project/Link&quot;
-   link.getLocation() ==&gt; &quot;c:\temp\folder&quot;
-   link.getRawLocation() ==&gt; &quot;TEMP/folder&quot;
-   link.isLinked() ==&gt; &quot;true&quot;
-   
-   IFile child = link.getFile(&quot;abc.txt&quot;);
-   child.create(...);
-   child.getFullPath() ==&gt; &quot;/Project/Link/abc.txt&quot;
-   child.getLocation() ==&gt; &quot;c:\temp\folder\abc.txt&quot;
-   child.getRawLocation() ==&gt; &quot;c:\temp\folder\abc.txt&quot;
-   child.isLinked() ==&gt; &quot;false&quot;
-   
-</pre></font>
-<p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resInt_properties.htm b/bundles/org.eclipse.platform.doc.isv/guide/resInt_properties.htm
deleted file mode 100644
index 9788226..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resInt_properties.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Resource properties
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Resource properties</H2>
-<P >
-Resources can have properties that hold state information defined by your tool.  Resource properties are declared, accessed, and maintained by various plug-ins, and are not interpreted by the platform.  When a resource is deleted from the workspace, its properties are also deleted.</P>
-<P >
-There are two kinds of resource properties:</P>
-<ul>
-  <li>
-    
-<b>
-Session properties</b> allow your plug-ins to cache information in key-value pairs.
-The values are arbitrary objects.&nbsp; These properties are maintained in memory and lost when a resource is deleted from the workspace, or
-when the project or workspace is closed.</li>
-  <li>
-    
-<b>
-Persistent properties</b> are used to store resource-specific information on disk.  The value of a persistent property is an arbitrary string. Your plug-in decides how to interpret the string.  The strings are intended to be short (under 2KB).  Persistent properties are stored on disk
-with the platform metadata and maintained across platform shutdown and restart.</li>
-</ul>
-<i><blockquote>
-Note:&nbsp; If you have large persistent properties, you should expose these as resources in their own right rather than using the persistent properties API.</blockquote></i>
-<i><blockquote>
-Note:&nbsp; If you follow the convention of qualifying property key names with
-the unique id of your plug-in, you won't have to worry about your property names colliding with those of other plug-ins.</blockquote></i>
-<P >
-<b><a href="../reference/api/org/eclipse/core/resources/IResource.html">
-IResource</a></b> provides protocol (<b>getSessionProperty</b>,
-<b>setSessionProperty</b>, <b>getPersistentProperty</b>,
-<b>setPersistentProperty</b>) for using properties.</P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/resInt_workspace.htm b/bundles/org.eclipse.platform.doc.isv/guide/resInt_workspace.htm
deleted file mode 100644
index 99e8f2b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/resInt_workspace.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Resources and the workspace
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Resources and the workspace</H2>
-<P >
-The central hub for your user's data files is called a <b>workspace</b>.  You can think of the platform workbench as a tool that allows the user to navigate and manipulate the workspace.  The resources plug-in provides APIs for creating, navigating, and manipulating resources in a workspace. The workbench uses these APIs to provide this functionality to the user. Your plug-in can also use these APIs.</P>
-<P >
-From the standpoint of a resource-based plug-in, there is exactly one workspace, and it is always open for business as long as the plug-in is running.  The workspace gets opened automatically when the resources plug-in is activated, and closed when the platform is shut down.  If your plug-in requires the resources plug-in, then the resources plug-in will be started before your plug-in, and
-the workspace will be available to you.</P>
-<P >
-The workspace contains a collection of resources.  From the user's perspective, there are three different types of resources:
-<b>projects</b>, <b>folders</b>, and <b>files</b>. A project is a collection of any number of files and folders.  It is a container for organizing other resources that relate to a specific area.  Files and folders are just like files and directories in the file system.  A folder contains other folders or files.  A file contains an arbitrary sequence of bytes.
-Its content is not interpreted by the platform.</P>
-<P >
-A workspace's resources are organized into a tree structure, with projects at the top, and folders and files underneath. A special resource, the workspace root resource, serves as the root of the resource tree. The workspace root is created internally when a workspace is created and exists as long as the workspace exists.</P>
-<P >
-A workspace can have any number of projects. </P>
-
-<H3>
-A sample resource tree</H3>
-<P >
-The tree below (represented in the workbench navigator view) illustrates a typical hierarchy of resources in a workspace. The
-(implied) root of the tree is the workspace root.  The projects are immediate children of the workspace root.  Each node (other than the root) is one of the 3 kinds of resource, and each has a name that is different from its siblings. </P>
-<P >
-
-<img src="images/navigator.gif" alt="Navigator view with sample workspace" border="0" width="160" height="164">
-
-
- </P>
-
-
-<P >
-Resource names are arbitrary strings (almost -- they must be legal file names).  The platform itself does not dictate resource names, nor does it specify any names with special
-significance.&nbsp; (One exception is that you cannot name a project &quot;<b>.metadata</b>&quot;
-since this name is used internally.) </P>
-<P >
-Projects contain files and folders, but not other projects. Projects and folders
-are like directories in a file system.&nbsp; When you delete a project, you will
-be asked whether you want to delete all of the files and folders that it
-contains.&nbsp; Deleting a folder from a project will delete
-the folder and all of its children.  Deleting a file is analogous to deleting a file in the file system.  </P>
-<P >
-&nbsp;<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/runtime.htm b/bundles/org.eclipse.platform.doc.isv/guide/runtime.htm
deleted file mode 100644
index 237a844..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/runtime.htm
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Runtime overview</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Runtime overview</H1>
-<p>
-The only truly essential plug-in in the platform is the runtime plug-in (named
-<b>org.eclipse.core.runtime</b>).  This plug-in represents the micro-kernel
-of Eclipse that all other plug-ins connect to. The runtime is responsible for finding and
-executing the main Eclipse application, and for computing and maintaining the
-registry of installed plugins, extensions, and extension points.  The runtime plug-in
-also provides an assortment of utilities, such as logging, debug trace options, 
-adapters, a preference store, and a concurrency infrastructure. Of course, as 
-a minimal kernel, the runtime is only interesting once an application is created
-that makes use of it. Like Atlas, the runtime plug-in stoically resides at the bottom
-of the plug-in heap, holding the Eclipse universe aloft on its steady shoulders.
-</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs.htm b/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs.htm
deleted file mode 100644
index d36a2a3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs.htm
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Concurrency infrastructure</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Concurrency infrastructure</H1>
-<h2>An introduction to jobs</h2>
-<p>
-The <tt>org.eclipse.core.runtime.jobs</tt> package provides infrastructure for
-scheduling, executing, and managing concurrently running operations. The basic
-unit of concurrently running work is represented by the <tt>Job</tt> class. When
-a job is scheduled, it is added to a job queue managed by the platform.  A background
-thread will then remove jobs from the queue and invoke the <tt>Job.run</tt> method.
-Let's look at a trivial example of a job:
-<font color='#4444CC'><pre>
-   class TrivialJob extends Job {
-      public TrivialJob() {
-         super("Trivial Job");
-      }
-      public IStatus run(IProgressMonitor monitor) {
-         System.out.println("This is a job");
-         return Status.OK_STATUS;
-      }
-   }
-</pre></font>
-This job can be created and scheduled to execute as follows:
-<font color='#4444CC'><pre>
-   TrivialJob job = new TrivialJob();
-   System.out.println("About to schedule a job");
-   job.schedule();
-   System.out.println("Finished scheduling a job");
-</pre></font>
-The output of this program is timing dependent.  That is, there is no way
-to be sure when the job's <tt>run</tt> method will execute in relation
-to the thread that invoked <tt>schedule</tt>.  In this case, the output
-will either be:
-<font color='#4444CC'><pre>
-   About to schedule a job
-   This is a job
-   Finished scheduling a job
-</pre></font>
-Or:
-<font color='#4444CC'><pre>
-   About to schedule a job
-   Finished scheduling a job
-   This is a job
-</pre></font>
-</p>
-<p>
-If you want to be certain that a job has completed before continuing, you can use
-the <tt>Job.join</tt> method.  As with <tt>java.lang.Thread.join()</tt>, this 
-method will block the caller until the job has completed, or until the calling thread
-is interrupted.  Let's rewrite our snippet from above in a more deterministic manner:
-<font color='#4444CC'><pre>
-   TrivialJob job = new TrivialJob();
-   System.out.println("About to schedule a job");
-   job.schedule();
-   job.join();
-   if (job.getResult().isOk())
-      System.out.println("Job completed with success");
-   else
-      System.out.println("Job did not complete successfully");
-</pre></font>
-Assuming the <tt>join</tt> call is not interrupted, this method is guaranteed to
-return the following result:
-<font color='#4444CC'><pre>
-   About to schedule a job
-   This is a job
-   Job completed with success
-</pre></font>
-</p>
-<p>
-Of course, it is generally not useful to join a job immediately after scheduling it,
-since you obtain no concurrency by doing so. In this case you might as well
-call <tt>Job.run</tt> directly in the calling thread.  However, we will see some
-examples later on where <tt>join</tt> is more useful.
-</p>
-<p>
-You'll notice this new example also makes use of the job <i>result</i>.  The result
-is the <tt>IStatus</tt> object that is returned from the Job's <tt>run</tt> method.
-By creating your own subclass of <tt>Status</tt>, you can use the result to pass
-arbitrary objects back from the job's run method. The result can also be used to
-indicate failure (by returning an <tt>IStatus</tt> with severity <tt>IStatus.ERROR</tt>),
-or cancelation (<tt>IStatus.CANCEL</tt>).
-</p>
-<h2>Common job operations</h2>
-<p>
-We've seen the <tt>schedule</tt> and <tt>join</tt> methods, but jobs have a 
-number of other interesting methods to allow you to interact with them. If you
-schedule a job but then decide it is no longer needed, the job can be stopped using
-the <tt>cancel</tt> method.  If the job has not yet started running when <tt>cancel</tt>
-is called, the job is immediately discarded and will not run.  If, on the other hand, the job 
-has already started running, it is up to the job whether it wants to respond to the cancelation.
-This is a situation where joining the job comes in handy.  Here is a common idiom for
-canceling a job, and ensuring that the job has finished before proceeding:
-<font color='#4444CC'><pre>
-   if (!job.cancel())
-      job.join();
-</pre></font>
-If the cancelation did not take effect immediately, then <tt>cancel</tt> will return 
-<tt>false</tt>, and the <tt>join</tt> is needed to wait for the job to respond to the
-cancelation request.
-</p>
-<p>
-Slightly less drastic than cancelation is the <tt>Job.sleep</tt> method.  Again,
-if the job has not yet started running, the <tt>sleep</tt> method will cause the
-job to be put on hold indefinitely.  The job will still be remembered by the platform,
-and a call to <tt>Job.wakeUp</tt> will cause the job to be added to the wait
-queue where it will eventually be executed. 
-</p>
-<h2>Job families</h2>
-<p>
-Sometimes you may want to query or modify a whole group of related jobs. This
-can be accomplished using <i>job families</i>.  A job declares that it belongs to
-a certain family by overriding the <tt>belongsTo</tt> method:
-<font color='#4444CC'><pre>
-   public static final String MY_FAMILY = "myJobFamily";
-   ...
-   class FamilyJob extends Job {
-      ...
-      public boolean belongsTo(Object family) {
-         return family == MY_FAMILY;
-      }
-   }
-</pre></font>
-You can now cancel, join, sleep, or find all jobs in that family by using methods on
-<tt>IJobManager</tt>:
-<font color='#4444CC'><pre>
-   IJobManager jobMan = Platform.getJobManager();
-   jobMan.cancel(MY_FAMILY);
-   jobMan.join(MY_FAMILY, null);
-</pre></font>
-Note that since job families are arbitrary objects, you can store interesting
-state in the job family itself, and jobs can dynamically decide what families
-they belong to as needed. Just be sure to use a family object that is 
-fairly unique, to avoid accidental interaction with the families created by
-other plug-ins. Families are also a convenient way of locating particular
-groups of jobs.  The method <tt>IJobManager.find(Object family)</tt> can
-be used to locate instances of all running, waiting, and sleeping jobs at any
-given time.
-</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_locks.htm b/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_locks.htm
deleted file mode 100644
index 1dedc46..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_locks.htm
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Locking</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Locking</H1>
-<p>
-[This documentation is under construction]
-</p>
-<p>
-Topics to be covered in this section:
-<ul>
-<li>ILock</li>
-</ul>
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_progress.htm b/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_progress.htm
deleted file mode 100644
index 595e1e4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_progress.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Reporting and listening to progress</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Reporting and listening to progress</H1>
-<p>
-Long running jobs (those lasting more than a second) should report progress to the <tt>IProgressMonitor</tt> passed to the
-job's <tt>run</tt> method.  The workbench progress view will
-show all progress messages and units of completed work given
-to this monitor.  The supplied progress monitor is also used to respond to
-cancelation requests made from the progress view.  When a user
-(or plug-in) attempts to cancel a job, the method <tt>IProgressMonitor.isCanceled</tt>
-will return <tt>true</tt>. When this occurs, it is the job's responsibility to
-respond to the cancelation by exiting the <tt>run</tt> method as soon as possible.
-Here is a sample <tt>run</tt> method from a job that reports progress and responds 
-to cancelation:
-<font color='#4444CC'><pre>
-   public IStatus run(IProgressMonitor monitor) {
-      final int ticks = 6000;
-      monitor.<b>beginTask</b>("Doing some work", ticks);
-      try {
-         for (int i = 0; i &lt; ticks; i++) {
-            if (monitor.<b>isCanceled</b>())
-               return Status.CANCEL_STATUS;
-            monitor.<b>subTask</b>("Processing tick #" + i);
-            //... do some work ...
-            monitor.<b>worked</b>(1);
-         }
-      } finally {
-         monitor.<b>done</b>();
-      }
-      return Status.OK_STATUS;
-   }
-</pre></font>
-In the progress view, the string supplied to <tt>beginTask</tt> will appear
-after the job name, and the <tt>subTask</tt> messages will appear as
-a child in the progress tree. The progress view will calculate and display a 
-percent completion based on the number of <tt>worked</tt> calls that
-have occurred.  Here is a snapshot of the progress view while the above
-job is running:
-</p>
-<P ><img src="images/job-progress.jpg" alt="Job progress view" ></P>
-
-<p>
-If your job is an implementation detail that you do not want to show to users,
-you can flag your job as a <i>system job</i>.  A system job is just like any
-other job, except it does not appear in the progress view or cause the progress
-busy indicator in the status line to animate.  If your job is not either directly
-initiated by a user, or a periodic task that can be configured by a user, then your
-job should be a system job.  Making your job a system job is easy as pie:
-<font color='#4444CC'><pre>
-   class TrivialJob extends Job {
-      public TrivialJob() {
-         super("Trivial Job");
-         <b>setSystem(true)</b>;
-      }
-      ...
-   }
-</pre></font>
-<p>
-[The remainder of this document is under construction]<br>
-
-Other topics to be covered in this section:
-<ul>
-<li>progress groups</li>
-<li>job state</li>
-<li>job change listeners</li>
-
-</ul>
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_rules.htm b/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_rules.htm
deleted file mode 100644
index 67dd0c5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_rules.htm
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Scheduling rules</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Scheduling rules</H1>
-<p>
-Job scheduling rules can be used to control when your jobs run in relation to
-other jobs. In particular, scheduling rules allow you to prevent multiple jobs
-from running concurrently in situations where concurrency can lead to inconsistent
-results. They also allow you to guarantee the execution order of a series of jobs.
-The power of scheduling rules is best illustrated by an example. Let's start by 
-defining two jobs that are used to turn a light switch on and off concurrently:
-<font color='#4444CC'><pre>
-   public class LightSwitch {
-      private boolean isOn = false;
-      public boolean isOn() {
-         return isOn;
-      }
-      public void on() {
-         new LightOn().schedule();
-      }
-      public void off() {
-         new LightOff().schedule();
-      }
-      class LightOn extends Job {
-         public LightOn() {
-            super("Turning on the light");
-         }
-         public IStatus run(IProgressMonitor monitor) {
-            System.out.println("Turning the light on");
-            isOn = true;
-            return Status.OK_STATUS;
-         }
-      }
-      class LightOff extends Job {
-         public LightOff() {
-            super("Turning off the light");
-         }
-         public IStatus run(IProgressMonitor monitor) {
-            System.out.println("Turning the light off");
-            isOn = false;
-            return Status.OK_STATUS;
-         }
-      }
-   }
-</pre></font>
-Now we create a simple program that creates a light switch and turns it
-on and off again:
-<font color='#4444CC'><pre>
-   LightSwitch light = new LightSwitch();
-   light.on();
-   light.off();
-   System.out.println("The light is on? " + switch.isOn());
-</pre></font>
-If we run this little program enough times, we will eventually obtain the following output:
-<font color='#4444CC'><pre>
-   Turning the light off
-   Turning the light on
-   The light is on? true
-</pre></font>
-How can that be?  We told the light to turn on and then off, so its final state
-should be off!  The problem is that there was nothing preventing the
-<tt>LightOff</tt> job from running at the same time as the <tt>LightOn</tt>
-job.  So, even though the &quot;on&quot; job was scheduled first, their
-concurrent execution means that there is no way to predict the exact
-execution order of the two concurrent jobs. If the <tt>LightOff</tt> job ends
-up running before the <tt>LightOn</tt> job, we get this invalid result.
-What we need is a way to prevent the two jobs from running concurrently, and 
-that's where scheduling rules come in.
-<p>
-We can fix this example by creating a simple scheduling rule that acts as a 
-<i>mutex</i> (also known as a <i>binary semaphore</i>):
-<font color='#4444CC'><pre>
-   class Mutex implements ISchedulingRule {
-      public boolean isConflicting(ISchedulingRule rule) {
-         return rule == this;
-      }
-      public boolean contains(ISchedulingRule rule) {
-         return rule == this;
-      }
-   }
-</pre></font>
-This rule is then added to the two light switch jobs from our previous example:
-<font color='#4444CC'><pre>
-   public class LightSwitch {
-      <b>final MutextRule rule = new MutexRule();</b>
-      ...
-      class LightOn extends Job {
-         public LightOn() {
-            super("Turning on the light");
-            <b>setRule(rule);</b>
-         }
-         ...
-      }
-      class LightOff extends Job {
-         public LightOff() {
-            super("Turning off the light");
-            <b>setRule(rule);</b>
-         }
-         ...
-      }
-   }
-</pre></font>
-<p>
-Now, when the two light switch jobs are scheduled, the job infrastructure will
-call the <tt>isConflicting</tt> method to compare the scheduling rules of the
-two jobs. It will notice that the two jobs have conflicting scheduling rules, and 
-will make sure that they run in the correct order. It will also make sure they never
-run at the same time. Now, if you run the example program a million times,
-you will always get the same result:
-<font color='#4444CC'><pre>
-   Turning the light on
-   Turning the light off
-   The light is on? false
-</pre></font>
-
-<p>
-[Patience! This document is a work in progress.]
-</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_scheduling.htm b/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_scheduling.htm
deleted file mode 100644
index b6342b3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/runtime_jobs_scheduling.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Job scheduling</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Job scheduling</H1>
-<p>
-[This documentation is under construction]
-</p>
-<p>
-Topics to be covered in this section:
-<ul>
-<li>Advanced scheduling options</li>
-<li>Job priority</li>
-<li>schedule with delay</li>
-<li>reschedule while running</li>
-</ul>
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/search.htm b/bundles/org.eclipse.platform.doc.isv/guide/search.htm
deleted file mode 100644
index 66a249f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/search.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Search support</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Search support</H1>
-
-
-<p>
-If your plug-in defines and manipulates its own resource types, you may have
-special requirements for searching a resource.&nbsp; For example, the Java IDE
-plug-in implements a search engine specialized for Java files.&nbsp;&nbsp;&nbsp;</p>
-
-
-<p>
-The <b>search</b> plug-in allows you to add a specialized page describing your
-search to the workbench search dialog.&nbsp; This allows you to correct any
-specialized information needed from the user and perform a search using your
-plug-ins internal model.</p>
-
-
-<p>
-Once the search results are found, you may also provide a specialized class for
-sorting the search results in the search results view.</p>
-
-
-<p>
-Both of these services are provided using search plug-in extension points.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/search_page.htm b/bundles/org.eclipse.platform.doc.isv/guide/search_page.htm
deleted file mode 100644
index c568965..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/search_page.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Contributing a search page</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Contributing a search page</H2>
-
-
-<p>When the user selects a resource and chooses the search command, the search
-plug-in launches a dialog containing pages for different kinds of content
-searches.&nbsp; These pages are contributed using the <a href="../reference/extension-points/org_eclipse_search_searchPages.html"><b>org.eclipse.search.searchPages</b></a>
-extension point.<p>The markup for contributing a search page is
-straightforward.&nbsp; The following example is the JDT plug-in's contribution
-of the Java search page:
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.search.searchPages&quot;&gt;
-   &lt;page id=&quot;org.eclipse.jdt.ui.JavaSearchPage&quot;
-         icon=&quot;icons/full/obj16/jsearch_obj.gif&quot;
-         label=&quot;%JavaSearchPage.label&quot;
-         sizeHint=&quot;460,160&quot;
-	 extensions=&quot;java:90, jav:90&quot;
-	 showScopeSection=&quot;true&quot;
-	 <b>class</b>=&quot;org.eclipse.jdt.internal.ui.search.JavaSearchPage&quot;&gt;
-   &lt;/page&gt;
-&lt;/extension&gt;
-</pre></font>
-<p>The <b>class</b> that implements the
-search page must be specified.&nbsp; This class must implement the <a href="../reference/api/org/eclipse/search/ui/ISearchPage.html"><b>ISearchPage</b></a><b>
-</b>interface and typically extends <a href="../reference/api/org/eclipse/jface/dialogs/DialogPage.html"><b>DialogPage</b></a>.&nbsp;
-The <b>label</b> and <b>icon</b> that can be
-used to describe the search in the search dialog are also specified.&nbsp;
-Additional parameters control the size of the page and the location of the page
-within the search dialog.<p>The <b>extensions</b> attribute specifies the
-resources on which the search page can operate.&nbsp; It is formatted as a comma
-separated list of file extensions.&nbsp; Each file extension should be followed
-by a numeric weight value, where 0 is the lowest weight, separated by a
-colon.&nbsp; The weight value is a relative value used to allow the search
-infrastructure to find the search page most appropriate for a given resource.<p>If
-a search page can search all possible resources then &quot;*&quot; should be used.<h3>Implementing
-the search page</h3>
-<p>The
-protocol for <a href="../reference/api/org/eclipse/search/ui/ISearchPage.html"><b>ISearchPage</b></a>
-is simple.&nbsp; Your search page must implement <code>performAction()</code> which
-is called when the <b>Search</b> button is pressed.&nbsp; Of course, your
-particular search implementation depends on your plug-in's function, but it is
-typical to open a results viewer in this method using
-the <a href="../reference/api/org/eclipse/search/ui/SearchUI.html"><b>SearchUI</b></a><b>
-</b>method <code>activateSearchResultView().</code>
-<p>Your plug-in is responsible for
-showing its results in the search result view.&nbsp; Matches are added to the
-view using <a href="../reference/api/org/eclipse/search/ui/ISearchResultView.html"><b>ISearchResultView</b></a>
-protocol.&nbsp; For each search match, a description of the match and a marker
-in the resource is specified.&nbsp; See <a href="resAdv_markers.htm">Resource
-markers</a> for information about markers and how they work.
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/search_sort.htm b/bundles/org.eclipse.platform.doc.isv/guide/search_sort.htm
deleted file mode 100644
index 4fb6b36..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/search_sort.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Sorting search results</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Sorting search results</H2>
-
-
-<p>Once you've populated the <a href="../reference/api/org/eclipse/search/ui/ISearchResultView.html"><b>ISearchResultView</b></a>
- with your search matches, the search results viewer does the rest of the work,
-launching the appropriate editor and navigating to the location of the result as
-the user selects different matches.&nbsp; The search infrastructure sorts the
-match results by the name of the resource.</p>
-
-
-<p>You can supply one or more customized sorters if a different sorting order is
-more appropriate for your search results.&nbsp; By providing customized sorters,
-you can allow the user
-to select an appropriate sorting order for your matches from the result view's <b>Sort By</b> popup
-menu.&nbsp;&nbsp;&nbsp;</p>
-
-
-<p>Customized sorters are contributed using the <a href="../reference/extension-points/org_eclipse_search_searchResultSorters.html"><b>org.eclipse.search.searchResultSorters</b></a>
-extension point.</p>
-
-
-<p> The following example shows how the JDT plug-in contributes different
-sorters for the Java search page results.</p>
-
-
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.search.searchResultSorters&quot;&gt;
-	&lt;sorter
-		id=&quot;org.eclipse.search.internal.ui.ElementNameSorter&quot;
-		<b>pageId=&quot;org.eclipse.jdt.ui.JavaSearchPage&quot;</b>
-		label=&quot;%ElementNameSorter.label&quot;
-		tooltip=&quot;%ElementNameSorter.tooltip&quot;
-		icon=&quot;icons/full/clcl16/search_sortmatch.gif&quot;
-		<b>class</b>=&quot;org.eclipse.jdt.internal.ui.search.ElementNameSorter&quot;&gt;
-	&lt;/sorter&gt;
-	&lt;sorter
-		id=&quot;org.eclipse.search.internal.ui.ParentNameSorter&quot;
-		<b>pageId=&quot;org.eclipse.jdt.ui.JavaSearchPage&quot;</b>
-		label=&quot;%ParentNameSorter.label&quot;
-		tooltip=&quot;%ParentNameSorter.tooltip&quot;
-		icon=&quot;icons/full/clcl16/search_sortmatch.gif&quot;
-		<b>class</b>=&quot;org.eclipse.jdt.internal.ui.search.ParentNameSorter&quot;&gt;
-	&lt;/sorter&gt;
-	...
-&lt;/extension&gt;</pre></font>
-
-
-
-<p>The <b>class</b> that implements the
-search page must be specified.&nbsp;The class provided should extend <a href="../reference/api/org/eclipse/jface/viewers/ViewerSorter.html"><b>ViewerSorter</b></a>.&nbsp;&nbsp;</p>
-
-
-
-<p>
-The <b>label</b> and <b>icon</b> that can be
-used to describe the sort order in the <b>Sort By</b> menu are also specified.&nbsp;
-The <b> pageId</b> designates the search pages for which the sorter should be
-activated.&nbsp;&nbsp;</p>
-
-
-
-<p>
-&nbsp;Specifying a <b> pageId</b> of <code> &quot;*&quot; </code>will activate the sorter
-for all pages.</p>
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt.htm
deleted file mode 100644
index 0cf4ad8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Standard Widget Toolkit</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Standard Widget Toolkit</H1>
-<P >
-The Standard Widget Toolkit (SWT) is a widget toolkit for Java developers that provides a portable API and tight integration with the underlying native OS GUI platform.</P>
-<P >
-Many low level UI programming tasks are handled in higher layers of the Eclipse platform. For example, the
-<strong> plugin.xml</strong> markup for UI contributions specifies menu and toolbar content without requiring any SWT programming. Additionally, JFace viewers and actions provide implementations for the common
-interactions between applications and widgets. However, knowledge of the underlying SWT architecture and design philosophy is important for understanding how the rest of the platform
-works.</P>
-
-<h2>
-Portability and platform integration</h2>
-<P >
-A common issue in widget toolkit design is the tension between portable toolkits and platform integration. The Java AWT
-(Abstract Window Toolkit) provides platform integrated widgets for lower level widgets such as lists, texts, and buttons, but does not provide access to higher level platform components such as trees or rich text. This forces application developers into a &quot;least common denominator&quot; situation in which they can only use widgets that are available on all platforms.</P>
-<P >
-The Swing toolkit attempts to address this problem by providing non-native implementations of high level widgets like trees, tables, and text.
-This provides a great deal of functionality, but makes applications developed in Swing stand out as being different. Platform look and feel emulation layers help the applications look more like the platform, but the user interaction is different enough to be noticed. This makes it difficult to use emulated toolkits to build applications that compete with shrink-wrapped applications developed specifically for a particular OS platform.</P>
-<P >
-SWT addresses this problem by defining a common portable API that is provided on all supported platforms,
-and implementing the API on each platform using native widgets wherever possible. This allows the toolkit to immediately reflect any changes in the underlying OS GUI look and feel while maintaining a consistent programming model on all platforms.</P>
-<P >
-The &quot;least common denominator&quot; problem is solved by SWT in several ways:</P>
-<ul>
-  <li>
-Features that are not available on all platforms but are generally useful for the workbench and tooling plug-ins can be emulated on platforms that provide no native support. For example, the
-OSF/Motif 2.1 widget toolkit does not contain a tree widget, so SWT provides an emulated tree widget on Motif
-    2.1 that is API compatible with the Windows native implementation.</li>
-  <li>
-Features that are not available on all platforms but are not widely used can be omitted from
-SWT. For example, Windows provides a widget that implements a calendar, but this is not provided in
-SWT.</li>
-  <li>
-Features that are specific to a platform, such as ActiveX integration, are only provided on the relevant platform. Platform specific features are separated into separate packages that clearly denote the platform name in the package.</li>
-</ul>
-
-
-<h2>
-Consistency with the platform</h2>
-<P >
-Platform integration is not strictly a matter of look and feel. Tight integration includes the ability to
-interact with native desktop features such as drag and drop, to integrate with OS desktop applications, and to use components developed with OS component models like Win32
-ActiveX.</P>
-<P >
-<img alt="Windows Only" border="0" src="images/win_only.gif" width="51" height="13">SWT ActiveX support is discussed in
-the article <a href="http://www.eclipse.org/articles/Article-ActiveX%20Support%20in%20SWT/ActiveX%20Support%20in%20SWT.html">ActiveX
-Support in SWT</a>.</P>
-<P >
-Consistency is also achieved in the code itself by providing an implementation that looks familiar to the native OS developer. Rather than hide OS differences in native C code or attempt to build portable and non-portable layers in the Java implementation, SWT provides separate and distinct implementations in Java for each platform. </P>
-<P >
-One important implementation rule is that natives in C map one-to-one with calls to the OS. A Windows programmer will immediately recognize the implementation of the SWT toolkit on Windows, because it uses natives that directly map to the system calls used in C. None of the &quot;platform magic&quot; is hidden in C code. A platform developer can eyeball the code and know exactly which platform calls are executed by the toolkit. This greatly simplifies debugging.
-If a failure occurs when calling a native method, calling the platform API with
-the same parameters from C code will exhibit the same failure.&nbsp; (A complete
-discussion of this issue can be found in <a href="http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html">SWT
-Implementation Strategy for Java Natives</a>.)</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_error.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_error.htm
deleted file mode 100644
index 8bd4eb5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_error.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Error handling
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Error handling</H2>
-<P >
-SWT has a well defined strategy for triggering errors and exceptions. Where possible, exceptions are triggered consistently across platforms. However, some errors are specific to an SWT implementation on a particular platform.</P>
-<P >
-SWT can trigger three types of exceptions: <strong>IllegalArgumentException</strong>,
-<strong><a href="../reference/api/org/eclipse/swt/SWTException.html">SWTException</a></strong>, and
-<strong><a href="../reference/api/org/eclipse/swt/SWTError.html">SWTError</a></strong>. Applications should not have to catch any other kind of exception or error when calling
-SWT. </P>
-<em><blockquote>
-Note:&nbsp; If any other exception besides these three is thrown from SWT, it should be considered a bug in the SWT implementation. </blockquote></em>
-
-<H3>
-IllegalArgumentException</H3>
-<P >
-The arguments passed in SWT API methods are checked for appropriate state and range before any other work is done. An
-<strong> IllegalArgumentException</strong> will be thrown when it is determined that an argument is invalid.</P>
-<P >
-SWT throws this exception consistently across all platforms. Code that causes an
-<strong> IllegalArgumentException</strong> on one platform will cause the same exception on a different platform.</P>
-
-
-<H3>
-SWTException</H3>
-<P >
-<strong><a href="../reference/api/org/eclipse/swt/SWTException.html">
-SWTException</a></strong> is thrown when a recoverable error occurs internally in SWT. The error code and message text provide a further description of the problem.</P>
-<P >
-SWT throws this exception consistently across all platforms. On all platforms, SWT remains in a known stable state after throwing the exception.
-For example, this exception is thrown when an SWT call is made from a non-UI thread.</P>
-
-
-<H3>
-SWTError</H3>
-<P >
-<a href="../reference/api/org/eclipse/swt/SWTError.html"><strong>
-SWTError</strong></a> is thrown when an unrecoverable error occurs inside SWT. </P>
-<P >
-SWT will throw this error when an underlying platform call fails, leaving SWT in an unknown state, or when SWT is known to have an unrecoverable error, such as running out of platform graphics resources. </P>
-<P >
-Once an SWT error has occurred, there is little that an application can do to correct the problem. These errors should not be encountered during normal course of operation in an application, but high reliability applications should still catch and report the errors.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_graphics.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_graphics.htm
deleted file mode 100644
index aa48a0f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_graphics.htm
+++ /dev/null
@@ -1,188 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Graphics
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Graphics</H2>
-<P >
-SWT provides a robust graphics engine for drawing graphics and displaying images in widgets. You can get pretty far without ever programming to the graphics interface, since widgets handle the painting of icons, text, and other data for you. However, if your application displays custom graphics, or if you are implementing a custom drawn widget, then you will need to understand some basic drawing objects in
-SWT.</P>
-
-<H3>
-Graphics context</H3>
-<P >
-The graphics context, <strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a></strong>, is the focal point for SWT graphics support. Its API describes all of the drawing capabilities in
-SWT.</P>
-<P >
-A <strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a>
-</strong>can be used for drawing on a control (the most common case), on an image,
-on a display, or to a printer. When drawing on a control, you use the
-<strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a>
-</strong>supplied to you in the control's paint event. When drawing on an image,
-display, or printer, you must create a
-<strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a>
-</strong>configured for it, and dispose of the
-<strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a>
-</strong>when you are finished using it.</P>
-<P >
-Once you've got a <strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a></strong>, you can set its attributes, such as color, line width, and font, which control the appearance of the graphics drawn in the
-<strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a></strong>.</P>
-<P >
-The API Reference for <strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a>
-</strong>describes the complete set of graphics functions. </P>
-
-
-<H3>
-Fonts</H3>
-<P >
-The <strong><a href="../reference/api/org/eclipse/swt/graphics/Font.html"> Font</a></strong> and
-<strong><a href="../reference/api/org/eclipse/swt/graphics/FontData.html"> FontData</a></strong> classes are used when manipulating fonts in SWT.</P>
-<P >
-<strong><a href="../reference/api/org/eclipse/swt/graphics/FontData.html"> FontData</a></strong> describes the characteristics of a font. You can create a
-<strong><a href="../reference/api/org/eclipse/swt/graphics/FontData.html"> FontData</a></strong> by specifying a font name, style, and size.
-<strong><a href="../reference/api/org/eclipse/swt/graphics/FontData.html"> FontData</a></strong> includes API for querying these attributes. Since
-<strong><a href="../reference/api/org/eclipse/swt/graphics/FontData.html"> FontData</a></strong> does not allocate any OS resources, you do not need to dispose of it.</P>
-<P >
-The <strong><a href="../reference/api/org/eclipse/swt/graphics/Font.html"> Font</a>
-</strong>is the actual graphic object representing a font that is used in the drawing API. You create a
-<strong><a href="../reference/api/org/eclipse/swt/graphics/Font.html"> Font</a>
-</strong>for a <strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html"> Display</a></strong> by specifying the
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html"> Display</a>
-</strong>and the <strong><a href="../reference/api/org/eclipse/swt/graphics/FontData.html"> FontData</a></strong> of the font that you want. You can also query a
-<strong><a href="../reference/api/org/eclipse/swt/graphics/Font.html"> Font</a>
-</strong>for its <strong><a href="../reference/api/org/eclipse/swt/graphics/FontData.html"> FontData</a></strong>.</P>
-<P >
-You must dispose of an allocated
-<strong><a href="../reference/api/org/eclipse/swt/graphics/Font.html"> Font</a></strong>
-when you are finished using it.</P>
-
-
-<H3>
-Colors</H3>
-<P >
-Colors are similar to fonts. You create a <strong><a href="../reference/api/org/eclipse/swt/graphics/Color.html"> Color</a></strong> for a
-<a href="../reference/api/org/eclipse/swt/widgets/Display.html"><strong> Display</strong></a> by specifying the RGB values for the desired color. You must dispose of an allocated color when you are finished using it.</P>
-<P >
-The <strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html"> Display</a>
-</strong>method <strong> getSystemColor(int)</strong> allows you to query the predefined system colors for the OS platform. You should not free colors obtained using this technique.</P>
-
-
-<P >
-The color model is discussed in detail in the article <a href="http://www.eclipse.org/articles/SWT%20Color%20Model/swt-color-model.htm">SWT
-color model</a>.</P>
-
-
-<H3>
-Images</H3>
-<P >
-The <strong><a href="../reference/api/org/eclipse/swt/graphics/Image.html">Image</a></strong>,
-<strong><a href="../reference/api/org/eclipse/swt/graphics/ImageData.html">ImageData</a></strong>, and
-<strong><a href="../reference/api/org/eclipse/swt/graphics/ImageLoader.html"> ImageLoader</a></strong> classes are used when manipulating Images in SWT.</P>
-<P >
-<strong><a href="../reference/api/org/eclipse/swt/graphics/ImageData.html">ImageData</a></strong>
-describes the actual pixels in the image, using the <a href="../reference/api/org/eclipse/swt/graphics/PaletteData.html"><strong> PaletteData</strong></a> class to describe the utilized color values.
-<strong><a href="../reference/api/org/eclipse/swt/graphics/ImageData.html">ImageData</a></strong>
-is a device- and platform-independent description of an image.</P>
-<P >
-<strong><a href="../reference/api/org/eclipse/swt/graphics/ImageLoader.html"> ImageLoader</a></strong>
-loads and saves <strong><a href="../reference/api/org/eclipse/swt/graphics/ImageData.html">ImageData</a></strong>
-in different file formats. SWT currently supports loading and saving of <em> BMP</em> (Windows Bitmap),
-<em> ICO</em> (Windows Icon), <em>JPEG</em>,
-<em>GIF</em>, and <em> PNG</em> image formats.</P>
-<P >
-The <strong><a href="../reference/api/org/eclipse/swt/graphics/Image.html">Image</a></strong>
-is the actual graphic object representing the image that is used in the drawing API. You create an image for a particular
-<a href="../reference/api/org/eclipse/swt/widgets/Display.html"><strong> Display</strong></a>. Images can be created
-in several ways:</P>
-
-
-<ul>
-  <li>use an <strong><a href="../reference/api/org/eclipse/swt/graphics/ImageData.html">ImageData</a></strong>
-    to initialize the image's contents</li>
-  <li>copy an existing <strong><a href="../reference/api/org/eclipse/swt/graphics/Image.html">Image</a></strong>
-  </li>
-  <li>load an <strong><a href="../reference/api/org/eclipse/swt/graphics/Image.html">Image</a></strong>
-    from a file</li>
-</ul>
-<p> Regardless of how you create the <strong><a href="../reference/api/org/eclipse/swt/graphics/Image.html">Image</a></strong>, you are responsible for disposing it.</p>
-
-
-<H3>
-Graphics object lifecycle</H3>
-<P >
-Most of the graphics objects used for drawing in SWT allocate resources in the underlying OS and must be explicitly freed. The same rule discussed earlier applies here. If you create it using a constructor, you should free it. If you get access to it from somewhere else, do not free it.</P>
-
-<H4>
-Creation</H4>
-<P >
-Graphics objects such as graphics contexts, fonts, colors, and images are allocated in the OS as soon as the object is created. How you plan to use your graphics objects determines when you should create them.</P>
-<P >
-For graphics objects that are used heavily throughout the application, you can create them at the time that you create your widgets. This is commonly done for colors and fonts. In other cases, it is more appropriate to create your graphics objects on the fly. For example, you might create a graphics context in one of your widget event handlers in order to perform some calculations.</P>
-<P >
-If you are implementing a custom widget, you typically allocate graphics objects
-in the constructor if you always make use of them. You might allocate them on the fly if you do not always use them or if they are dependent upon the state of some attribute.</P>
-
-
-<H4>
-Painting</H4>
-<P >
-Once you have allocated your graphics objects, you are ready to paint. <em> You should always do your painting inside of a paint listener.</em> There are rare cases, particularly when implementing custom widgets, when you paint while responding to some other event. However this is generally discouraged. If you think you need to paint while handling some other
-event, you should first try to use the <strong> redraw()</strong> method, which will generate another paint
-event in the OS. Drawing outside of the paint method defeats platform optimizations and can cause bugs depending upon the number of pending paints in the event queue.</P>
-<P >
-When you receive a paint event, you will be supplied with a <strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a></strong>
-pre-configured for drawing in the widget. <em>Do not free this</em> <strong><a href="../reference/api/org/eclipse/swt/graphics/GC.html">GC</a></strong>! You did not create it. </P>
-<P >
-Any other graphics objects must be allocated while handling the event (or
-beforehand). Below is a snippet based on the
-<strong> org.eclipse.swt.examples.HelloWorld5</strong> sample. The color red was previously allocated when creating the widget, so it can be used here.</P>
-<font color='#4444CC'><pre>
-   shell.addPaintListener (new PaintListener () {
-      public void paintControl (PaintEvent event) {
-         GC gc = event.gc;
-         gc.setForeground (red);
-         Rectangle rect = event.widget.getClientArea ();
-         gc.drawRectangle (rect.x + 10, rect.y + 10, rect.width - 20, rect.height - 20);
-         gc.drawString (resHello.getString(&quot;Hello_world&quot;), rect.x + 20, rect.y + 20);
-      }
-   });
-</pre></font>
-
-
-<H4>
-Disposal</H4>
-<P >
-Every graphics object that you allocate must be freed when you are finished using it. </P>
-<P >
-The timing of the disposal depends upon when you created the object. If you create a graphics object while creating your widget, you should generally add a dispose listener onto the widget and dispose of the graphics when the widget is disposed. If you create an object on the fly while painting, you should dispose of it when finished painting.</P>
-<P >
-The next code snippet shows a slightly modified version of our paint listener. In this example, it allocates and frees the color red while painting.</P>
-<font color='#4444CC'><pre>
-   shell.addPaintListener (new PaintListener () {
-      public void paintControl (PaintEvent event) {
-         GC gc = event.gc;
-         Color red = new Color (event.widget.getDisplay (), 0xFF, 0, 0);
-         gc.setForeground (red);
-         Rectangle rect = event.widget.getClientArea ();
-         gc.drawRectangle (rect.x + 10, rect.y + 10, rect.width - 20, rect.height - 20);
-         gc.drawString (resHello.getString (&quot;Hello_world&quot;), rect.x + 20, rect.y + 20);
-         red.dispose ();
-      }
-   });
-</pre></font>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts.htm
deleted file mode 100644
index 0cd720e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Layouts
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Layouts</H2>
-<P >
-We have seen some simple examples that show how to size or position child widgets based on the size of the parent. So far,
-this kind of computation has occurred in response to a resize listener. This is often the best way to handle simple widget positioning. However, there are common patterns used by applications when placing widgets. These patterns can be structured as configurable layout algorithms that can be reused by many different applications.</P>
-<P >
-SWT defines <em> layouts</em> that provide general purpose positioning and sizing of child widgets in a composite. Layouts are subclasses of the abstract class
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Layout.html">Layout</a></strong>. The SWT standard layouts can be found in the
-<strong><a href="../reference/api/org/eclipse/swt/layout/package-summary.html"> org.eclipse.swt.layout</a></strong> package.</P>
-
-<P >
-You should understand some general definitions when resizing and positioning
-widgets: </P>
-<ul>
-  <li>The <em>location</em> of a widget is its x,y coordinate location within its
-    parent widget.</li>
-  <li>The <em>preferred size</em> of a widget is the minimum size needed to show
-    its content. This is computed differently for each kind of widget.&nbsp; In
-    the case of a composite, the preferred size is the minimum size that
-    contains the composite and all of its children at their preferred sizes.</li>
-  <li>The <em>clientArea</em> is the size of a widget's content area.</li>
-  <li>The <em>trim</em> is the distance between a widget's client area and its
-    actual border.&nbsp; Trim is occupied by the widget's borders or extra space
-    at its edge.&nbsp; The size and appearance of the trim is widget
-    and platform dependent.</li>
-</ul>
-<P >
-These concepts are relevant for applications regardless of whether a layout is used. You can think of a layout as a convenient way to package resize functionality for reuse. </P>
-<P >
-Some additional concepts are introduced by layouts: </P>
-<ul>
-  <li>Some layouts support&nbsp; <em>spacing</em> between widgets in the
-    layout.&nbsp;&nbsp;</li>
-  <li>Some layouts support a <em>margin</em> between the edge of the layout and
-    the widget adjacent to the edge.</li>
-</ul>
-<P >
-See <a href="http://www.eclipse.org/articles/Understanding%20Layouts/Understanding%20Layouts.htm">Understanding
-layouts in SWT</a>&nbsp; for further discussion and pictures demonstrating these concepts. </P>
-<P >
-The following code snippet shows the simple case of an application using a resize callback to size a label to the size of its parent shell:</P>
-<font color='#4444CC'><pre>
-   Display display = new Display ();
-   Shell shell = new Shell (display);
-   Label label = new Label (shell, SWT.CENTER);
-   shell.addControlListener (new ControlAdapter () {
-      public void controlResized (ControlEvent e) {
-         label.setBounds (shell.getClientArea ());
-      }
-   });
-</pre></font>
-<P >
-The next snippet uses a layout to achieve the same effect:</P>
-<font color='#4444CC'><pre>
-   Display display = new Display ();
-   Shell shell = new Shell (display);
-   Label label = new Label (shell, SWT.CENTER);
-   shell.setLayout (new FillLayout ());
-</pre></font>
-<P >
-Even for this simple example, using a layout reduces the application code. For more complex layouts, the simplification is much greater.</P>
-<P >
-SWT provides four default layout classes that can be used for many situations.</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_custom.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_custom.htm
deleted file mode 100644
index 50227b2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_custom.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Custom Layouts
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-Custom layouts</H3>
-<P >
-Occasionally you may need to write your own custom <a href="../reference/api/org/eclipse/swt/widgets/Layout.html"><strong> Layout</strong></a> class. This is most appropriate when you have a complex layout that is used
-in many different places in your application. It may be appropriate when you can optimize layout using application specific knowledge. Before building a custom layout you should consider the following:</P>
-<ul>
-  <li>Can the layout be achieved with an existing layout such as <a href="../reference/api/org/eclipse/swt/layout/GridLayout.html"><strong>
-GridLayout</strong></a><strong> </strong>or by nesting several different layouts?</li>
-  <li>Can the layout be isolated into a common resize listener?</li>
-  <li>Are you defining a general layout algorithm with programmer supplied configuration parameters or just positioning widgets specifically for your application?</li>
-</ul>
-<P >
-Unless you are writing a very generic layout that will be used by several <strong><a href="../reference/api/org/eclipse/swt/widgets/Composite.html"> Composite</a></strong> widgets, it is often simpler and easier to calculate sizes and position children in a resize listener. Many of the SWT custom widgets were written this way. Although a new widget can be implemented as a
-<strong>Composite</strong>/<strong>Layout </strong> pair, implementing it as a
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Composite.html"> Composite</a></strong>
-that does its layout in a resize listener and computes its preferred size in <strong> computeSize(...)</strong> is clearer, and does not require the writing of an extra class.</P>
-<P >
-If you still believe that you need a custom layout class then it is a good idea to first implement the layout algorithm in a resize listener. This makes for simpler debugging of the algorithm itself. Be sure to test the various cases for layout, which are resizing smaller, resizing larger, wrapping, and clipping.&nbsp;
-Once you have the algorithm working, the code can be refactored into a subclass of
-<a href="../reference/api/org/eclipse/swt/widgets/Layout.html"><strong> Layout</strong></a>.&nbsp;</P>
-<P >
- Layouts are responsible for implementing two methods:</P>
-<ul>
-  <li><strong>computeSize(...)</strong> calculates the width and height of a rectangle that encloses all of the composite's children once they have been sized and placed according to the layout algorithm. The hint parameters allow the width and/or height to be constrained. For example, a layout may choose to grow in one dimension if constrained in another.</li>
-  <li><strong>layout(...)</strong> positions and sizes the composite's children. A layout can choose to cache layout-related information, such as the preferred extent of each of the children. The
-    <strong> flushCache</strong> parameter tells the <a href="../reference/api/org/eclipse/swt/widgets/Layout.html"><strong> Layout</strong></a>
-    to flush cached data, which is necessary when other factors besides the size of the composite have changed, such as the creation of removal of children, or a change in the widget's font.</li>
-</ul>
-<p>Further discussion of custom layouts can be found in <a href="http://www.eclipse.org/articles/Understanding%20Layouts/Understanding%20Layouts.htm">Understanding
-layouts in SWT</a>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_fill.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_fill.htm
deleted file mode 100644
index 707b699..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_fill.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-FillLayout
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-FillLayout</H3>
-<P >
-<strong><a href="../reference/api/org/eclipse/swt/layout/FillLayout.html">
-FillLayout</a></strong> is the simplest layout class. It lays out widgets in a single row or column, forcing them all to be the same size. Initially, the widgets will all be as tall as the tallest widget and as wide as the widest.
-<strong><a href="../reference/api/org/eclipse/swt/layout/FillLayout.html">
-FillLayout</a></strong> does not wrap, and you cannot specify margins or spacing. </P>
-<P >
-You might use a <strong><a href="../reference/api/org/eclipse/swt/layout/FillLayout.html">
-FillLayout</a></strong> to lay out buttons in a task bar or tool bar, or to stack checkboxes in a
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Group.html">Group</a></strong>.&nbsp;&nbsp;
-<strong><a href="../reference/api/org/eclipse/swt/layout/FillLayout.html">FillLayout</a></strong>
-can also be used when a <strong><a href="../reference/api/org/eclipse/swt/widgets/Composite.html">Composite</a></strong>
-only has one child. In the example above, the <strong><a href="../reference/api/org/eclipse/swt/layout/FillLayout.html">
-FillLayout</a></strong> forces the label to completely the fill its parent shell.</P>
-
-
-<P >
-The following table summarizes the attributes of
-<strong><a href="../reference/api/org/eclipse/swt/layout/FillLayout.html">
-FillLayout</a></strong>.</P>
-
-
-<TABLE BORDER="1">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Attribute</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>type</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">Can be one of <strong>HORIZONTAL </strong>(layout in a row), <strong>VERTICAL</strong>
- (layout in a column). </P>
-</TD>
-</TR>
-</TABLE>
-<P >
-&nbsp;</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_form.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_form.htm
deleted file mode 100644
index d838ba4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_form.htm
+++ /dev/null
@@ -1,235 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-FormLayout
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-FormLayout</H3>
-<P ><a href="../reference/api/org/eclipse/swt/layout/FormLayout.html"><strong>FormLayout</strong></a>
-lays out widgets using an attachment model.&nbsp; A <a href="../reference/api/org/eclipse/swt/layout/FormAttachment.html"><strong>FormAttachment
-</strong></a>can be defined for each side of a widget and stored in its layout data (<a href="../reference/api/org/eclipse/swt/layout/FormData.html"><strong>FormData</strong></a>).&nbsp;
-The <a href="../reference/api/org/eclipse/swt/layout/FormData.html"><strong>FormData</strong></a><strong>
-</strong>can be used to designate a requested <strong>width</strong> and <strong>height</strong> for the
-widget, provided that these values do not conflict with the attachment constraints.&nbsp;&nbsp;</P>
-<P >A <a href="../reference/api/org/eclipse/swt/layout/FormAttachment.html"><strong>FormAttachment
-</strong></a>is used to attach a designated side of the widget to the parent <strong><a href="../reference/api/org/eclipse/swt/widgets/Composite.html">Composite</a>
-</strong>or another widget in the layout.&nbsp; You typically do not set attachments
-on all sides of a widget.&nbsp; It is very common to specify only one horizontal
-(<strong>left</strong> or <strong>right</strong>) attachment and one vertical (<strong>top</strong> or <strong>bottom</strong>)
-attachment and allow the widgets to take the size specified in their <a href="../reference/api/org/eclipse/swt/layout/FormData.html"><strong>FormData</strong></a><strong>,
-</strong>or their preferred size if no size is specified in the <a href="../reference/api/org/eclipse/swt/layout/FormData.html"><strong>FormData</strong></a>.</P>
-<P >Attachments can be configured in a variety of ways:</P>
-<ul>
-  <li>You can attach the specified side of a widget to a <strong>position</strong> (percentage value
-0-100) in the parent widget.&nbsp; An optional pixel <strong>offset</strong> can be added.</li>
-  <li>You can attach the specified side of a widget to the adjacent side of a target widget
-inside the composite.&nbsp; An optional pixel <strong>offset</strong> can be added.&nbsp;
-The side where the target widget is attached is inferred based upon the side
-specified in the source widget.&nbsp; For example, attaching the <strong>top</strong> edge
-to a widget implies that it is being attached to the <strong>bottom</strong> edge of the
-    adjacent widget.</li>
-  <li>You can attach the specified side of a widget to a particular side of a target widget
-inside the composite.&nbsp; An optional pixel <strong>offset</strong> can be added.&nbsp;
-This can be used, for example, to align the top of a widget with the top of
-another widget so that they will always line up vertically.</li>
-  <li>You can center the widget relative to a target widget.&nbsp; The center need only be
-specified for one side (<strong>left</strong> or <strong>right</strong>, <strong>top</strong> or <strong>bottom</strong>)
-in the direction being centered.</li>
-</ul>
-<p>The following table summarizes the attributes of a <a href="../reference/api/org/eclipse/swt/layout/FormLayout.html"><strong>FormLayout</strong></a><strong>:</strong></p>
-<TABLE BORDER="1" width="658">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="163">
-<P CLASS="CellHeading">
-Attribute</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="479">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-</TR>
-<TR>
-<TD width="163">
-<P CLASS="CellBody">
-<strong>marginHeight</strong></P>
-</TD>
-<TD width="479">
-<P CLASS="CellBody">Specifies the number of pixels of vertical margin that will
-be placed along the top and bottom edges of the layout.</P>
-</TD>
-</TR>
-<tr>
-<TD width="163">
-<P CLASS="CellBody"><strong>marginWidth</strong></P>
-</TD>
-<TD width="479">
-<P CLASS="CellBody">Specifies the number of pixels of horizontal margin that
-will be placed along the left and right edges of the layout.</P>
-</TD>
-</tr>
-</TABLE>
-
-
-<p>The following table summarizes the attributes of a <a href="../reference/api/org/eclipse/swt/layout/FormLayout.html"><strong>FormData</strong></a><strong>:</strong></p>
-<TABLE BORDER="1" width="658">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="163">
-<P CLASS="CellHeading">
-Attribute</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="479">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-</TR>
-<TR>
-<TD width="163">
-<P CLASS="CellBody">
-<strong>top</strong></P>
-</TD>
-<TD width="479">
-<P CLASS="CellBody">Specifies the attachment for the top side of the
-control.</P>
-</TD>
-</TR>
-<tr>
-<TD width="163">
-<P CLASS="CellBody"><strong>left</strong></P>
-</TD>
-<TD width="479">
-<P CLASS="CellBody">Specifies the attachment for the left side of the
-control.</P>
-</TD>
-</tr>
-<tr>
-<TD width="163">
-<strong>bottom</strong>
-</TD>
-<TD width="479">
-Specifies the attachment for the bottom side of the control.
-</TD>
-</tr>
-<tr>
-<TD width="163">
-<strong>right</strong>
-</TD>
-<TD width="479">
-Specifies the attachment for the right side of the control.
-</TD>
-</tr>
-<tr>
-<TD width="163">
-<strong>width</strong>
-</TD>
-<TD width="479">
-Specifies the preferred width in pixels of the control in the form.
-</TD>
-</tr>
-<tr>
-<TD width="163">
-<strong>height</strong>
-</TD>
-<TD width="479">
-Specifies the preferred height in pixels of the control in the form.
-</TD>
-</tr>
-</TABLE>
-
-
-<p>
-The following table summarizes the attributes of a <a href="../reference/api/org/eclipse/swt/layout/FormAttachment.html"><strong>FormAttachment:</strong></a></p>
-
-
-<TABLE BORDER="1" width="658">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="163">
-<P CLASS="CellHeading">
-Attribute</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="479">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-</TR>
-<TR>
-<TD width="163">
-<P CLASS="CellBody"><strong>alignment</strong></P>
-</TD>
-<TD width="479">
-<P CLASS="CellBody">Specifies the alignment of the control side that is attached
-to a control.&nbsp; <strong>DEFAULT</strong> indicates that the widget should be attached
-to the adjacent side of the specified <strong>control</strong>.&nbsp; For top and bottom
-attachments, <strong>TOP</strong>, <strong>BOTTOM</strong>, and <strong>CENTER</strong> are used to indicate
-attachment of the specified side of the widget to the specified side of the <strong>control</strong>.&nbsp;
-For left and right attachments, <strong>LEFT</strong>, <strong>RIGHT</strong>, and <strong>CENTER</strong> are
-used to indicate attachment of the specified side of the widget to the specified
-side of the <strong>control</strong>.&nbsp; (For example, using <strong>TOP</strong> indicates that
-the <strong>top</strong> side of the attachment's widget should be attached to the top
-side of the specified <strong>control</strong>.)</P>
-</TD>
-</TR>
-<tr>
-<TD width="163">
-<P CLASS="CellBody"><strong>control</strong></P>
-</TD>
-<TD width="479">
-<P CLASS="CellBody">Specifies the target control to which the attachment's
-widget is attached.</P>
-</TD>
-</tr>
-<tr>
-<TD width="163">
-<strong>denominator</strong>
-</TD>
-<TD width="479">
-Specifies the denominator of the &quot;a&quot; term in the equation, y=ax+b,
-which defines the attachment.
-</TD>
-</tr>
-<tr>
-<TD width="163">
-<strong>numerator</strong>
-</TD>
-<TD width="479">
-Specifies the numerator of the &quot;a&quot; term in the equation y=ax+b, which
-defines the attachment.
-</TD>
-</tr>
-<tr>
-<TD width="163">
-<strong>offset</strong>
-</TD>
-<TD width="479">
-Specifies the offset in pixels of the control side from the attachment
-position.&nbsp; Can be positive or negative.&nbsp; This is the &quot;b&quot;
-term in the equation y=ax+b, which defines the attachment.
-</TD>
-</tr>
-</TABLE>
-
-
-<p>
-&nbsp;</p>
-
-
-<p>
-See&nbsp;<a href="http://www.eclipse.org/articles/Understanding%20Layouts/Understanding%20Layouts.htm">Understanding
-layouts in SWT</a>
-for further descriptions and example screen captures using the various
-attachment styles.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_grid.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_grid.htm
deleted file mode 100644
index 3bec19f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_grid.htm
+++ /dev/null
@@ -1,249 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-GridLayout
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-GridLayout</H3>
-<P >
-<a href="../reference/api/org/eclipse/swt/layout/GridLayout.html"><strong>
-GridLayout</strong></a> is one of the more powerful and complex layouts. <a href="../reference/api/org/eclipse/swt/layout/GridLayout.html"><strong>
-GridLayout</strong></a> lays out widgets in a grid, providing many configurable parameters that control the sizing behavior of the grid rows and columns when the composite is resized.</P>
-<P >
-The <a href="../reference/api/org/eclipse/swt/layout/GridLayout.html"><strong>
-GridLayout</strong></a> defines API that controls the overall strategy of the layout. The most important attribute is
-<strong>numColumns</strong>, which determines the horizontal size of the grid. Typically you decide on this value when you first design your window's appearance. The order of the widgets in the grid is the same as the order in which you create them. To change the order of the widgets in the grid, you can use the
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Control.html"> Control</a></strong> methods
-<strong> moveAbove(Control)</strong> and <strong> moveBelow(Control).</strong> These methods allow widgets to be inserted before or after each other in the layout. (The &quot;above&quot; and &quot;below&quot; refer to the widget Z ordering, not to the location in the grid itself).</P>
-<P >
-The following table summarizes the configurable parameters for a <a href="../reference/api/org/eclipse/swt/layout/GridLayout.html"><strong>
-GridLayout</strong></a>:</P>
-<TABLE BORDER="1">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Attribute</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-horizontalSpacing</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Number of pixels between the right edge of one cell and the left edge of its neighboring cell.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-makeColumnsEqualWidth</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Specifies whether all columns should be forced to the same width.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-marginWidth</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Number of pixels used for margin on the right and left edge of the grid.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-marginHeight</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Number of pixels used for margin on the top and bottom edge of the grid.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-numColumns</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Number of columns that should be used to make the grid.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-verticalSpacing</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Number of pixels between the bottom edge of one cell and the top edge of its neighboring cell.</P>
-</TD>
-</TR>
-</TABLE>
-<P ><a href="../reference/api/org/eclipse/swt/layout/GridLayout.html"><strong>
-GridLayout</strong></a> supports many other layout parameters for each widget in the grid. These properties are specified in
-a <a href="../reference/api/org/eclipse/swt/layout/GridData.html"><strong>GridData</strong></a>
- object. You must set a <a href="../reference/api/org/eclipse/swt/layout/GridData.html"><strong> GridData</strong></a>
-as the layout data for each widget in the grid.</P>
-<P >
-The <a href="../reference/api/org/eclipse/swt/layout/GridData.html"><strong> GridData</strong></a> class defines style constants that
-let you specify commonly used combinations of layout parameters in the
-<a href="../reference/api/org/eclipse/swt/layout/GridData.html"><strong> GridData</strong></a>
-constructor. You can also set these attributes individually using the public methods in
-<a href="../reference/api/org/eclipse/swt/layout/GridData.html"><strong> GridData</strong></a>.</P>
-<P >
-You can achieve some highly dynamic and complex layouts using the <a href="../reference/api/org/eclipse/swt/layout/GridData.html"><strong> GridData</strong></a>. Tweaking these values for different widgets in the grid can produce many different combinations of layouts. 
-The ability to allow widgets to span across cells produces many layouts that don't even look like a grid.</P>
-<P >
-The following table summarizes the configurable parameters for <a href="../reference/api/org/eclipse/swt/layout/GridData.html"><strong> GridData</strong></a>.&nbsp;&nbsp;
-See&nbsp;<a href="http://www.eclipse.org/articles/Understanding%20Layouts/Understanding%20Layouts.htm">Understanding
-layouts in SWT</a>
-for further description and example screen captures using the various grid
-parameters.</P>
-<TABLE BORDER="1">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Attribute</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-grabExcessHorizontalSpace</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Specifies whether a cell should grow to use any extra horizontal space available in the grid. After the cell sizes in the grid are calculated based on the widgets and
-their grid data, any extra space remaining in the Composite will be allocated to those cells that grab excess space.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-grabExcessVerticalSpace</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Specifies whether a cell should grow to use any extra vertical space available in the grid.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-heightHint</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Specifies a minimum height for the widget (and therefore for the row that contains it).</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-horizontalAlignment</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Can be one of <strong>BEGINNING</strong>, <strong>CENTER</strong>,
-<strong>END</strong>, <strong>FILL</strong>. <strong> FILL</strong> means that the widget will be sized to take up the entire width of its grid cell.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-horizontalIndent</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Number of pixels between the widget and the left edge of its grid cell.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-horizontalSpan</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Specifies the number of columns in the grid that the widget should span. By default, a widget takes up one cell in the grid. It can take additional cells horizontally by increasing this value.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-verticalAlignment</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Can be one of <strong>BEGINNING</strong>, <strong>CENTER</strong>,
-<strong>END</strong>, <strong>FILL</strong>. <strong> FILL</strong> means that the widget will be sized to take up the entire height of its grid cell.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-verticalSpan</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Specifies the number of rows in the grid that the widget should span. By default, a widget takes up one
-cell in the grid. It can take additional cells vertically by increasing this value.</P>
-</TD>
-</TR>
-<TR>
-<TD>
-<P CLASS="CellBody">
-<strong>
-widthHint</strong></P>
-</TD>
-<TD>
-<P CLASS="CellBody">
-Specifies a minimum width for the widget (and therefore the column that contains it).</P>
-</TD>
-</TR>
-</TABLE>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_row.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_row.htm
deleted file mode 100644
index e0ac318..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_row.htm
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-RowLayout
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-RowLayout</H3>
-<P >
-<a href="../reference/api/org/eclipse/swt/layout/RowLayout.html"><strong>
-RowLayout</strong></a> lays out widgets in rows, but is more flexible than <strong><a href="../reference/api/org/eclipse/swt/layout/FillLayout.html">
-FillLayout</a></strong>. The <strong>type</strong> field controls whether the widgets will be
-placed in horizontal rows or vertical columns.</P>
-<P >It can optionally <strong>wrap</strong> the widgets, creating as many rows or columns as are needed to display them. It also provides configurable margins on each edge of the layout, and configurable spacing between widgets within the layout. You can
-<strong> pack</strong> a
-<a href="../reference/api/org/eclipse/swt/layout/RowLayout.html"><strong>
-RowLayout</strong></a>, which will force all widgets to be the same size. If you <strong> justify</strong> a
-<a href="../reference/api/org/eclipse/swt/layout/RowLayout.html"><strong>
-RowLayout</strong></a>, extra space remaining in the <strong><a href="../reference/api/org/eclipse/swt/widgets/Composite.html">Composite</a>
-</strong>will be allocated as margins between the widgets.</P>
-<P >
-The height and width of each widget in a <a href="../reference/api/org/eclipse/swt/layout/RowLayout.html"><strong>
-RowLayout</strong></a> can be specified in a <a href="../reference/api/org/eclipse/swt/layout/RowData.html"><strong> RowData</strong></a> 
-object which should be set in the widget using
-<strong>setLayoutData(Object)</strong>.</P>
-
-
-<p>The following table summarizes the attributes of
-<a href="../reference/api/org/eclipse/swt/layout/RowLayout.html"><strong>
-RowLayout</strong></a>.</p>
-<table BORDER="1">
-  <tr>
-    <th ROWSPAN="1" COLSPAN="1">
-      <p CLASS="CellHeading">Attribute</p>
-    </th>
-    <th ROWSPAN="1" COLSPAN="1">
-      <p CLASS="CellHeading">Description</p>
-    </th>
-  </tr>
-  <tr>
-    <td>
-      <p CLASS="CellBody"><strong>justify</strong></p>
-    </td>
-    <td>
-      <p CLASS="CellBody">Can be one of <strong>HORIZONTAL </strong>(layout in a row),
-      <strong>VERTICAL</strong> (layout in a column).</p>
-    </td>
-  </tr>
-  <tr>
-    <td><strong>marginBottom</strong></td>
-    <td>Specifies the number of pixels to be placed along the bottom edge of the
-      layout.</td>
-  </tr>
-  <tr>
-    <td><strong>marginLeft</strong></td>
-    <td>Specifies the number of pixels to be placed along the left edge of the
-      layout.</td>
-  </tr>
-  <tr>
-    <td><strong>marginRight</strong></td>
-    <td>Specifies the number of pixels to be placed along the right edge of the
-      layout.</td>
-  </tr>
-  <tr>
-    <td><strong>marginTop</strong></td>
-    <td>Specifies the number of pixels to be placed along the top edge of the
-      layout.</td>
-  </tr>
-  <tr>
-    <td><strong>pack</strong></td>
-    <td>Specifies whether all widgets should be forced to be the same size.</td>
-  </tr>
-  <tr>
-    <td><strong>spacing</strong></td>
-    <td>Specifies the number of pixels between one cell and its adjacent cells</td>
-  </tr>
-  <tr>
-    <td><strong>type</strong></td>
-    <td>Can be one of <strong>HORIZONTAL </strong>(layout in rows), <strong>VERTICAL</strong>
-      (layout in columns).</td>
-  </tr>
-  <tr>
-    <td><strong>wrap</strong></td>
-    <td>Specifies whether a control will be wrapped to the next row or column if
-      there is insufficient space in<br>
-      the current row or column.</td>
-  </tr>
-</table>
-<p>The following table summarize the attributes of <a href="../reference/api/org/eclipse/swt/layout/RowData.html"><strong> RowData</strong></a>.</p>
-<table BORDER="1" width="681">
-  <tr>
-    <th ROWSPAN="1" COLSPAN="1" width="90">
-      <p CLASS="CellHeading">Attribute</p>
-    </th>
-    <th ROWSPAN="1" COLSPAN="1" width="575">
-      <p CLASS="CellHeading">Description</p>
-    </th>
-  </tr>
-  <tr>
-    <td width="90">
-      <p CLASS="CellBody"><strong>width</strong></p>
-    </td>
-    <td width="575">
-      <p CLASS="CellBody">Specifies the width of the cell in pixels.</p>
-    </td>
-  </tr>
-  <tr>
-    <td width="90">
-      <strong>height</strong>
-    </td>
-    <td width="575">
-      Specifies the height of the cell in pixels.
-    </td>
-  </tr>
-</table>
-<P >
-&nbsp;</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_stack.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_stack.htm
deleted file mode 100644
index 3c6b7d5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_layouts_stack.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-StackLayout
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>
-StackLayout</H3>
-<P >
-<a href="../reference/api/org/eclipse/swt/custom/StackLayout.html"><strong>StackLayout</strong></a>
-creates a conceptual stack of widgets.  The widgets are all set to have the same size
-and location, and the one that is designated as being on top is shown.
-<P >The designated top widget can be changed by setting the layout's <strong>topControl</strong> field to the desired widget
-and then invoking <strong>layout()</strong> on the <strong>Composite</strong> with the stack layout.
-The height and width of the margins used by the layout can be specified by setting the layout's
-<strong>marginHeight</strong> and <strong>marginWidth</strong> attributes accordingly.
-
-<p>The following table summarizes the attributes of
-<a href="../reference/api/org/eclipse/swt/custom/StackLayout.html"><strong>StackLayout</strong></a>.</p>
-<table BORDER="1">
-  <tr>
-    <th ROWSPAN="1" COLSPAN="1">
-      <p CLASS="CellHeading">Attribute</p>
-    </th>
-    <th ROWSPAN="1" COLSPAN="1">
-      <p CLASS="CellHeading">Description</p>
-    </th>
-  </tr>
-  <tr>
-    <td><strong>marginHeight</strong></td>
-    <td>Specifies the number of pixels to be placed along the top and bottom edges of the
-      layout.</td>
-  </tr>
-  <tr>
-    <td><strong>marginWidth</strong></td>
-    <td>Specifies the number of pixels to be placed along the left and right edges of the
-      layout.</td>
-  </tr>
-  <tr>
-    <td><strong>topControl</strong></td>
-    <td>Specifies the conceptual top control in the stack.  All other controls will not be shown.</td>
-  </tr>
-</table>
-&nbsp;</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_threading.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_threading.htm
deleted file mode 100644
index 95f73a0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_threading.htm
+++ /dev/null
@@ -1,133 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Threading issues</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Threading issues</H2>
-<P >
-When working with a widget toolkit, it is important to understand the underlying thread model that is used for reading and dispatching platform GUI events. The implementation of the UI thread affects the rules that applications must follow when using Java threads in their code.</P>
-
-<H3>
-Native event dispatching</H3>
-<P >
-Underneath any GUI application, regardless of its language or UI toolkit, the OS platform detects GUI events and places them in application event queues. Although the mechanics are slightly different on different OS platforms, the basics are similar. As the user clicks the mouse, types characters, or surfaces windows, the OS generates application GUI events, such as mouse clicks, keystrokes, or window paint events. It determines which window and application should receive each event and places it in
-the application's event queue.</P>
-<P >
-The underlying structure for any windowed GUI application is an event loop. Applications initialize and then start a loop which simply reads the GUI events from the queue and reacts accordingly. Any work that is done while handling one of these events must happen quickly in order to keep the GUI system responsive to the user. </P>
-<P >
-Long operations triggered by UI events should be performed in a separate thread in order to allow the event loop thread to return quickly and fetch the next event from the application's queue. However, access to the widgets and platform API from other threads must be controlled with explicit locking and serialization. An application that fails to follow the rules can cause an OS call to fail, or worse, lock up the entire GUI system.</P>
-
-
-<H3>
-Toolkit UI threads</H3>
-<P >
-Native GUI programmers using C are quite familiar with the design considerations for working with the platform event loop. However, higher level widget toolkits in Java often attempt to shield application developers from UI threading issues by hiding the platform event loop. </P>
-<P >
-A common way to achieve this is to set up a dedicated toolkit UI thread for reading and dispatching from the event loop, and posting the events to an internal queue that is serviced by applications running in separate threads. This allows the toolkit to respond in sufficient time to the operating system, while not placing any restrictions on the application's timing in handling the event. Applications
-must still use special locking techniques to access UI code from their application thread, but it is done consistently throughout the code since all application code is running in a non-UI thread.</P>
-<P >
-Although it sounds tempting to &quot;protect&quot; applications from UI threading issues, it causes many problems in practice. </P>
-<P >
-It becomes difficult to debug and diagnose problems when the timing of GUI events is dependent on the Java threading implementation and application performance.</P>
-<P >
-Modern GUI platforms perform many optimizations with the event queue. A common optimization is to collapse consecutive paint events in the queue. Every time that part of a window must be repainted, the queue can be checked for overlapping or redundant paint events that have not been dispatched yet. These events can be merged into one paint event, causing less flicker and less frequent execution of the application's paint code. This optimization will be defeated if the widget toolkit is pulling the events off the queue quickly and posting them to an internal queue.</P>
-<P >
-Changing the developer's perception of the threading model causes confusion for programmers that have experience with programming the native GUI system in other languages and toolkits.</P>
-
-
-<H3>
-SWT UI thread</H3>
-<P >
-SWT follows the threading model supported directly by the platforms. The application program runs the event loop in its main thread and dispatches events directly from this thread. This is the application's &quot;UI thread.&quot; </P>
-<em><blockquote>
-Note:&nbsp; Technically, the UI thread is the thread that creates the
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html"> Display</a></strong>. In practice, this is also the thread that runs the event loop and creates the widgets.</blockquote></em>
-<P >
-Since all event code is triggered from the application's UI thread, application code that handles events can freely access the widgets and
-make graphics calls without any special techniques. However, the application is responsible for forking computational threads when performing long operations in response to an event.</P>
-<em><blockquote>
-Note:&nbsp; SWT will trigger an 
-<strong><a href="../reference/api/org/eclipse/swt/SWTException.html">SWTException</a></strong>
-for any calls made from a non-UI thread that must be made from the UI thread.</blockquote></em>
-<P >
-The main thread, including the event loop, for an SWT application looks like the following:</P>
-<font color='#4444CC'><pre>
-   public static void main (String [] args) {
-      Display display = new Display ();
-      Shell shell = new Shell (display);
-      shell.open ();
-      // start the event loop. We stop when the user has done
-      // something to dispose our window.
-      while (!shell.isDisposed ()) {
-         if (!display.readAndDispatch ())
-            display.sleep ();
-      }
-      display.dispose ();
-   }
-</pre></font>
-<P >
-Once the widgets are created and the shell is opened, the application reads and dispatches events from the OS queue until the shell window is disposed. If there are no events available for us in the queue, we tell the display to sleep to give other applications a chance to run.</P>
-<em><blockquote>
-Note:&nbsp; The most common threading model for an SWT application is to run a single UI thread and perform long operations in computational threads. However, SWT does not restrict developers to this model. An application could run multiple UI-threads with a separate event loop in each thread.</blockquote></em>
-<P >
-SWT provides special access methods for calling widget and graphics code from a background thread.</P>
-
-
-<H3>
-<a name="syncExec">
-Executing code from a non-UI thread</a></H3>
-<P >
-Applications that wish to call UI code from a non-UI thread must provide a <strong> Runnable</strong> that calls the UI code. The methods
-<strong> syncExec(Runnable) </strong> and <strong> asyncExec(Runnable)</strong> in the
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html"> Display</a></strong> class are used to execute these runnables
-in the UI thread at an appropriate time.</P>
-<ul>
-  <li><strong>syncExec(Runnable)</strong> should be used when the application code in the non-UI thread depends on the return value from the UI code or otherwise needs to ensure that the runnable is run to completion before returning to the thread. SWT will block the calling thread until the runnable has been run from the application's UI thread. For example, a background thread that is computing something based on a window's current size would want to synchronously run the code to get the window's size and then continue with its computations.</li>
-  <li><strong>asyncExec(Runnable)</strong> should be used when the application needs to perform some UI operations, but is not dependent upon the operations being completed before continuing. For example, a background thread that updates a progress indicator or redraws a window could request the update asynchronously and continue with its processing. In this case, there is no guaranteed relationship between the timing of the background thread and the execution of the
-    runnable.</li>
-</ul>
-<P >
-The following code snippet demonstrates the pattern for using these methods:</P>
-<font color='#4444CC'><pre>
-   // do time-intensive computations
-   ...
-   // now update the UI. We don't depend on the result,
-   // so use async.
-   display.asyncExec (new Runnable () {
-      public void run () {
-         myWindow.redraw ();
-      }
-   });
-   // now do more computations
-   ...
-</pre></font>
-
-
-<H3>
-The workbench and threads</H3>
-<P >
-The threading rules are very clear when you are implementing an SWT application from the ground up since you control the creation of the event loop and the decision to fork computational threads in your application.</P>
-<P >
-If you are contributing plug-in code to the workbench, there is no threading &quot;magic&quot; hidden in the JFace or workbench code. The rules are straightforward:</P>
-<ul>
-  <li>Your workbench plug-in code executes in the workbench's UI thread.</li>
-  <li>If you receive an event from the workbench, it is always executing in the UI thread of the
-    workbench.</li>
-  <li>If your plug-in forks a computational thread, it must use the <strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html"> Display</a></strong>
-    <strong>asyncExec(Runnable)</strong> or <strong> syncExec(Runnable)</strong> methods when calling any API for the workbench, JFace, or
-    SWT.</li>
-  <li>Workbench and JFace API calls do not check that the caller is executing in the UI thread. However, SWT triggers an
-    <strong><a href="../reference/api/org/eclipse/swt/SWTException.html"> SWTException</a></strong> for all API calls made from a non-UI thread.</li>
-  <li>If your plug-in uses the JFace <a href="../reference/api/org/eclipse/jface/operation/IRunnableContext.html"><strong> IRunnableContext</strong></a> interface to invoke a progress monitor and run an operation, it supplies an argument to specify whether a computational thread is forked for running the operation.</li>
-</ul>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets.htm
deleted file mode 100644
index 9aeb3f3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets.htm
+++ /dev/null
@@ -1,181 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Widgets
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Widgets</H2>
-<P >
-SWT includes many rich features, but a basic knowledge of the system's core -
-<em>widgets</em>, <em>layouts</em>, and <em>events </em>- is all that is needed to
-implement useful and robust applications.</P>
-
-<H3>
-Widget application structure</H3>
-<P >When you are contributing UI elements using platform workbench
-extensions,&nbsp; the mechanics of starting up SWT are handled for you by the
-workbench.</P>
-<P >If you are writing an SWT application from scratch outside of the
-workbench, you must understand more about SWT's application structure.</P>
-<P >
-A typical stand-alone SWT application has the following structure:</P>
-<ul>
-  <li>
-    
-Create a <strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html">Display</a></strong>
-which represents an SWT session.</li>
-  <li>
-    
-Create one or more <strong><a href="../reference/api/org/eclipse/swt/widgets/Shell.html"> Shell</a></strong>s which
-serve as the main window(s) for the application.</li>
-  <li>
-    
-Create any other widgets that are needed inside the shell.</li>
-  <li>
-    
-Initialize the sizes and other necessary state for the widgets. Register listeners
-for widget events that need to be handled.</li>
-  <li>
-    
-Open the shell window.</li>
-  <li>
-    
-Run the event dispatching loop until an exit condition occurs, which is typically when
-    the main shell window is closed by the user.</li>
-  <li>
-    
-Dispose the display.</li>
-</ul>
-<P >
-The following code snippet is adapted from the <strong> <a href="../samples/org.eclipse.swt.examples/doc-html/swt_helloworld_ex.html"> org.eclipse.swt.examples.helloworld.HelloWorld2</a></strong> application. Since the application only displays the string &quot;Hello World,&quot; it does not need to register for any widget events.</P>
-<font color='#4444CC'><pre>
-   public static void main (String [] args) {
-      Display display = new Display ();
-      Shell shell = new Shell (display);
-      Label label = new Label (shell, SWT.CENTER);
-      label.setText (&quot;Hello_world&quot;);
-      label.setBounds (shell.getClientArea ());
-      shell.open ();
-      while (!shell.isDisposed ()) {
-         if (!display.readAndDispatch ()) display.sleep ();
-      }
-      display.dispose ();
-   }
-</pre></font>
-
-<H4>
-Display</H4>
-<P >
-The <strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html">Display</a></strong>
-represents the connection between SWT and the underlying platform's GUI system. Displays are primarily used to manage the platform event loop and
-control communication between the UI thread and other threads. (See
-<a HREF="swt_threading.htm" CLASS="XRef"> Threading issues for clients</a> for a complete discussion of UI threading issues.)</P>
-<P >
-For most applications you can follow the pattern that is used above. You must create a display before creating any windows, and you must dispose of the display when your shell is closed. You don't need to think about the display much more unless you are designing a multi-threaded application.</P>
-
-
-<H4>
-Shell</H4>
-<P >
-A <strong><a href="../reference/api/org/eclipse/swt/widgets/Shell.html">Shell</a></strong>
-is a&nbsp; &quot;window&quot; managed by the OS platform window manager. Top level shells are those that are created as a child of the display. These windows are the windows that users move, resize,
-minimize, and maximize while using the application. Secondary shells are those that are created as a child of another shell. These windows are typically used as dialog windows or other transient windows that only exist in the context of another window.</P>
-
-
-<H4>
-Parents and children</H4>
-<P >
-All widgets that are not top level shells must have a parent. Top level shells do not
-have a parent, but they are created in association with a particular <strong><a href="../reference/api/org/eclipse/swt/widgets/Display.html">Display</a></strong>.&nbsp;
-You can access this display using <strong>getDisplay()</strong>.&nbsp;
-All other widgets are created as descendants (direct or indirect) of top level shells.</P>
-<P >
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Composite.html">
-Composite</a></strong> widgets are widgets that can have children.</P>
-<P >
-When you see an application window, you can think of it as a widget tree, or
-hierarchy, whose root is the shell. Depending on the complexity of the application, there may be a single child of the shell, several children, or nested layers of composites with children.</P>
-
-
-
-<H3>
-Widget life cycle</H3>
-<P >
-When your application creates a widget, SWT immediately creates the underlying platform widget. This eliminates the need for code that operates differently depending upon whether the underlying OS widget exists. It also allows a majority of the widget's data to be kept in the platform layer rather than replicating it in the toolkit. This means that the toolkit's concept of a widget lifecycle must conform to the rules of the underlying GUI system.</P>
-
-<H4>
-Widget creation</H4>
-<P >
-Most GUI platforms require you to specify a parent when you create a widget. Since SWT creates a platform widget as soon as you create a toolkit widget, the parent widget must be specified in the constructor for the widget.</P>
-
-
-<H4>
-Style bits</H4>
-<P >
-Some widget properties must be set in the OS at the time a widget is created and cannot be subsequently changed. For example, a list may be single or multi-selection, and may or may not have scroll bars. </P>
-<P >
-These properties, called <em>styles</em>, must be set in the constructor. All widget constructors take an
-<strong> int</strong> argument that specifies the bitwise <strong> OR</strong> of all desired styles. In some cases, a particular style is considered a hint, which means that it may not be available on all platforms, but will be gracefully ignored on platforms that do not support it.</P>
-<P >
-The style constants are located in the <strong><a href="../reference/api/org/eclipse/swt/SWT.html"> SWT</a></strong> class as public static fields. A list of applicable constants for each
-widget class is contained in the
-API Reference for <strong><a href="../reference/api/org/eclipse/swt/SWT.html">SWT</a></strong>. </P>
-
-
-<H4>
-Resource disposal</H4>
-<P >
-The OS platforms underneath SWT require explicit allocation and freeing of OS resources. In keeping with the SWT design philosophy of reflecting the platform application structure in the widget toolkit, SWT requires
-that you explicitly free any OS resources that you have allocated. In SWT, the <strong>Widget.dispose()
-</strong>method is used to free resources associated with a particular toolkit object.</P>
-<P >
-The rule of thumb is that if you create the object, you must dispose of it. Here are some specific ground rules that further explain this philosophy:</P>
-<ul>
-  <li>
-    
-If you create a widget or graphic object using a constructor, you must dispose of it manually when you are finished using it.</li>
-  <li>
-    
-If you get a widget or graphic object without using a constructor, you must not dispose of it manually since you did not allocate it.</li>
-  <li>
-    
-If you pass a reference to your widget or graphic object to another object, you must take care not to dispose of it while it is still being used.
-(Similar to the rule described in <a HREF="jface_resources.htm#jface_resources_patterns" CLASS="XRef">Plug-in patterns for using images</a>.)</li>
-  <li>
-    
-When the user closes a <a href="../reference/api/org/eclipse/swt/widgets/Shell.html"><strong>Shell</strong></a>, the shell and all of its
-child widgets are recursively disposed. In this case, you do not need to dispose of the widgets themselves. However, you must free any graphics resources allocated in conjunction with those widgets.</li>
-  <li>
-    
-If you create a graphic object for use during the lifetime of one of your widgets, you must dispose of the
-graphic object when the widget is disposed. This can be done by registering a dispose listener for your widget and freeing the
-graphic object when the <strong> dispose</strong> event is received.</p>
-  </li>
-</ul>
-
-
-    <p align="left" >
-There is one exception to these rules.&nbsp; Simple data objects, such as <strong><a href="../reference/api/org/eclipse/swt/graphics/Rectangle.html"> Rectangle</a></strong> and
-<strong><a href="../reference/api/org/eclipse/swt/graphics/Point.html">Point</a></strong>, do not use operating system resources. They do not have a
-<strong> dispose()</strong> method and you do not have to free them.&nbsp;
-If in doubt, check the javadoc for a particular class.</p>
-
-
-    <p align="left" >
-See <a href="http://www.eclipse.org/articles/swt-design-2/swt-design-2.html">Managing
-operating resources</a> for further discussion of this topic.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_controls.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_controls.htm
deleted file mode 100644
index 789fb53..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_controls.htm
+++ /dev/null
@@ -1,480 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Controls
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-Controls</H3>
-
-<P >
-So far we have used the term <em> widget</em> without a formal definition. In the SWT class hierarchy, a
-<strong><a href="../reference/api/org/eclipse/swt/widgets/Widget.html">Widget</a></strong>
-is the abstract class for any UI object that can be placed inside another widget. A
-<a href="../reference/api/org/eclipse/swt/widgets/Control.html"><strong>Control</strong></a>
-is a widget that typically has a counterpart representation, denoted by an OS window handle, in the underlying platform.</P>
-<P>
-We tend to use the terms widget and control interchangeably. Although the distinction matters in the SWT implementation, we don't focus on this difference from an application's point of view. If you review the SWT widget hierarchy, you will see that a
-<strong>Control</strong> is something that you can create and place anywhere you want in your widget parent/child tree. Widgets that are not controls are typically more specialized UI objects that can be created only for certain types of
-parents.</P>
-<P >
-The <a href="../reference/api/org/eclipse/swt/package-summary.html"> SWT API
-reference</a> and examples are full of information about the different kinds of controls and their usage. The
-<strong><a href="../reference/api/org/eclipse/swt/widgets/package-summary.html"> org.eclipse.swt.widgets</a></strong> package defines the core set of widgets in SWT. The following table summarizes the concrete types of controls provided in this package and their purpose. (Abstract classes are eliminated from this list).</P>
-&nbsp;
-<table BORDER="1" WIDTH="698" >
-<tr>
-<th WIDTH="115">
-<div CLASS="CellHeading">Widget</div>
-</th>
-
-<th WIDTH="226">
-<div CLASS="CellHeading">Purpose</div>
-</th>
-
-<th WIDTH="183">
-<div CLASS="CellHeading">Styles</div>
-</th>
-
-<th WIDTH="146">Events</th>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Button.html">Button</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that issues notification when pressed
-and/or released.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, CHECK, PUSH,
-RADIO, TOGGLE, FLAT, LEFT, RIGHT, CENTER, ARROW (</strong>with <strong>UP, DOWN)</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Canvas.html">Canvas</a></strong></div>
-</td>
-
-<td WIDTH="226">Composite control that provides a surface for drawing arbitrary
-graphics. Often used to implement custom controls.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, H_SCROLL, V_SCROLL,
-NO_BACKGROUND, NO_FOCUS, NO_MERGE_PAINTS, NO_REDRAW_RESIZE, NO_RADIO_GROUP</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Caret.html">Caret</a></strong></div>
-</td>
-
-<td WIDTH="226">An i-beam that is typically used as the insertion point
-for text.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody">&nbsp;</div>
-</td>
-
-<td WIDTH="146">Dispose</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Combo.html">Combo</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that allows the user to choose a string
-from a list of strings, or optionally type a new value into an editable
-text field. Often used when limited space requires a pop-down presentation
-of the available strings rather than using a single selection list box.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, DROP_DOWN, READ_ONLY,
-SIMPLE</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, DefaultSelection, Modify, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Composite.html">Composite</a></strong></div>
-</td>
-
-<td WIDTH="226">Control that is capable of containing other widgets.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, H_SCROLL, V_SCROLL</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/CoolBar.html">CoolBar</a></strong></div>
-</td>
-
-<td WIDTH="226">Composite control that allows users to dynamically reposition
-the cool items contained in the bar.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody" style="width: 111; height: 19"><strong><a href="../reference/api/org/eclipse/swt/widgets/CoolItem.html">CoolItem</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable user interface object that represents a dynamically
-positionable area of a cool bar.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>DROP_DOWN</strong></div>
-</td>
-
-<td WIDTH="146">Dispose</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Group.html">Group</a></strong></div>
-</td>
-
-<td WIDTH="226">Composite control that groups other widgets and surrounds
-them with an etched border and/or label.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, SHADOW_ETCHED_IN,
-SHADOW_ETCHED_OUT, SHADOW_IN, SHADOW_OUT, SHADOW_NONE</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Label.html">Label</a></strong></div>
-</td>
-
-<td WIDTH="226">Non-selectable control that displays a string or an image.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, CENTER, LEFT, RIGHT,
-WRAP, SEPARATOR (</strong>with<strong> HORIZONTAL, SHADOW_IN, SHADOW_OUT, SHADOW_NONE, VERTICAL)</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/List.html">List</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that allows the user to choose a string
-or strings from a list of strings.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, H_SCROLL, V_SCROLL,
-SINGLE, MULTI</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection, DefaultSelection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Menu.html">Menu</a></strong></div>
-</td>
-
-<td WIDTH="226">User interface object that contains menu items.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BAR, DROP_DOWN, NO_RADIO_GROUP, POP_UP</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Help, Hide, Show</td>
-</tr>
-
-<tr>
-<td WIDTH="115"><strong><a href="../reference/api/org/eclipse/swt/widgets/MenuItem.html">MenuItem</a></strong></td>
-
-<td WIDTH="226">Selectable user interface object that represents an item
-in a menu.</td>
-
-<td WIDTH="183"><strong>CHECK, CASCADE, PUSH, RADIO, SEPARATOR</strong></td>
-
-<td WIDTH="146">Dispose, Arm, Help, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/ProgressBar.html">ProgressBar</a></strong></div>
-</td>
-
-<td WIDTH="226">Non-selectable control that displays progress to the user,
-typically in the form of a bar graph.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, INDETERMINATE, SMOOTH, HORIZONTAL,
-VERTICAL</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Sash.html">Sash</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that allows the user to drag a rubber
-banded outline of the sash within the parent window. Used to allow users
-to resize child widgets by repositioning their dividing line.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, HORIZONTAL, VERTICAL</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Scale.html">Scale</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that represents a range of numeric values.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, HORIZONTAL, VERTICAL</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115"><strong><a href="../reference/api/org/eclipse/swt/widgets/ScrollBar.html">ScrollBar</a></strong></td>
-
-<td WIDTH="226">Selectable control that represents a range of positive
-numeric values. Used in a Composite that has V_SCROLL and/or H_SCROLL styles.</td>
-
-<td WIDTH="183"><strong>HORIZONTAL, VERTICAL</strong></td>
-
-<td WIDTH="146">Dispose, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Shell.html">Shell</a></strong></div>
-</td>
-
-<td WIDTH="226">Window that is managed by the OS window manager. Shells
-can be parented by a Display (top level shells) or by another shell (secondary
-shells).</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, H_SCROLL, V_SCROLL,
-CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE (</strong>see also <strong>SHELL_TRIM, DIALOG_TRIM)</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Activate, Close, Deactivate, Deiconify,
-Iconify</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Slider.html">Slider</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that represents a range of numeric values.
-A slider is distinguished from a scale by providing a draggable thumb that
-can adjust the current value along the range.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, HORIZONTAL, VERTICAL</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/TabFolder.html">TabFolder</a></strong></div>
-</td>
-
-<td WIDTH="226">Composite control that groups pages that can be selected
-by the user using labeled tabs.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115"><strong><a href="../reference/api/org/eclipse/swt/widgets/TabItem.html">TabItem</a></strong></td>
-
-<td WIDTH="226">Selectable user interface object corresponding to a tab
-for a page in a tab folder.</td>
-
-<td WIDTH="183">&nbsp;</td>
-
-<td WIDTH="146">Dispose</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Table.html">Table</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that displays a list of table items
-that can be selected by the user. Items are presented in rows that display
-multiple columns representing different aspects of the items.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, H_SCROLL, V_SCROLL,
-SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection, DefaultSelection</td>
-</tr>
-
-<tr>
-<td WIDTH="115"><strong><a href="../reference/api/org/eclipse/swt/widgets/TableColumn.html">TableColumn</a></strong></td>
-
-<td WIDTH="226">Selectable user interface object that represents a column
-in a table.</td>
-
-<td WIDTH="183"><strong>LEFT, RIGHT, CENTER</strong></td>
-
-<td WIDTH="146">Dispose, Move, Resize, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115"><strong><a href="../reference/api/org/eclipse/swt/widgets/TableItem.html">TableItem</a></strong></td>
-
-<td WIDTH="226">Selectable user interface object that represents an item
-in a table.</td>
-
-<td WIDTH="183">&nbsp;</td>
-
-<td WIDTH="146">Dispose</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Text.html">Text</a></strong></div>
-</td>
-
-<td WIDTH="226">Editable control that allows the user to type text into
-it.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, SINGLE,&nbsp; READ_ONLY, LEFT, CENTER, RIGHT, WRAP, MULTI (</strong>with <strong>H_SCROLL, V_SCROLL)</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, DefaultSelection, Modify, Verify</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/ToolBar.html">ToolBar</a></strong></div>
-</td>
-
-<td WIDTH="226">Composite control that supports the layout of selectable
-tool bar items.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, FLAT, WRAP, RIGHT, SHADOW_OUT
-HORIZONTAL, VERTICAL</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*,</td>
-</tr>
-
-<tr>
-<td WIDTH="115"><strong><a href="../reference/api/org/eclipse/swt/widgets/ToolItem.html">ToolItem</a></strong></td>
-
-<td WIDTH="226">Selectable user interface object that represents an item
-in a tool bar.</td>
-
-<td WIDTH="183"><strong>PUSH, CHECK, RADIO, SEPARATOR,
-DROP_DOWN</strong></td>
-
-<td WIDTH="146">Dispose, Selection</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Tracker.html">Tracker</a></strong></div>
-</td>
-
-<td WIDTH="226">User interface object that implements rubber banding rectangles.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>LEFT, RIGHT, UP, DOWN, RESIZE</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Move, Resize</td>
-</tr>
-
-<tr>
-<td WIDTH="115">
-<div CLASS="CellBody"><strong><a href="../reference/api/org/eclipse/swt/widgets/Tree.html">Tree</a></strong></div>
-</td>
-
-<td WIDTH="226">Selectable control that displays a hierarchical list of
-tree items that can be selected by the user.</td>
-
-<td WIDTH="183">
-<div CLASS="CellBody"><strong>BORDER, H_SCROLL, V_SCROLL,
-SINGLE, MULTI, CHECK</strong></div>
-</td>
-
-<td WIDTH="146">Dispose, Control*, Selection, DefaultSelection, Collapse,
-Expand</td>
-</tr>
-
-<tr>
-<td WIDTH="115"><strong><a href="../reference/api/org/eclipse/swt/widgets/TreeItem.html">TreeItem</a></strong></td>
-
-<td WIDTH="226">Selectable user interface object that represents a hierarchy
-of tree items in a tree.</td>
-
-<td WIDTH="183">&nbsp;</td>
-
-<td WIDTH="146">Dispose</td>
-</tr>
-</table>
-
-<p>Control* = Events inherited from
-<a href="../reference/api/org/eclipse/swt/widgets/Control.html"><strong>Control</strong></a>:&nbsp; 
-FocusIn, FocusOut, Help, KeyDown, KeyUp, MouseDoubleClick, MouseDown, MouseEnter, MouseExit,
-MouseHover, MouseUp, MouseMove, Move, Paint, Resize
-
-<p CLASS="CellBody"><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_custom.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_custom.htm
deleted file mode 100644
index e3d7a0b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_custom.htm
+++ /dev/null
@@ -1,326 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Custom widgets</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-Custom widgets</H3>
-
-<P >
-Occasionally, you may find that none of the controls provided in SWT meet the need of your application. In these cases, you may want to extend SWT by implementing your own custom widget. SWT itself
-provides a package,
-<strong><a href="../reference/api/org/eclipse/swt/custom/package-summary.html">org.eclipse.swt.custom</a></strong>, which contains custom controls that
-are not in the core set of SWT controls but are needed to implement the platform workbench.</P>
-<table BORDER="1" WIDTH="698" >
-<tr>
-<th WIDTH="115">
-<div CLASS="CellHeading">Control</div>
-</th>
-<th WIDTH="226">
-<div CLASS="CellHeading">Purpose</div>
-</th>
-<th WIDTH="183">
-<div CLASS="CellHeading">Styles</div>
-</th>
-<th WIDTH="146">Events</th>
-</tr><TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/CCombo.html">
-CCombo</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Similar to Combo, but custom drawn to allow for using a combo without a border. This class was developed for using combos inside table cells.</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-BORDER, FLAT, READ_ONLY</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*, Selection</td>
-</tr>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/CLabel.html">
-CLabel</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Similar to Label, but supports clipping of text with ellipsis. Also supports a gradient effect for the background color as seen in the active workbench view. Does not support wrapping.</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-CENTER, LEFT, RIGHT, SHADOW_IN, SHADOW_OUT, SHADOW_NONE</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/CTabFolder.html">
-CTabFolder</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Similar to TabFolder, but supports additional configuration of the visual appearance of tabs (top or bottom) and borders.</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-BORDER, FLAT, BOTTOM, TOP</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*, Selection</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/CTabItem.html">
-CTabItem</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Selectable user interface object corresponding to a tab for a page in a CTabFolder.</P>
-</TD>
-<TD width="183">
-<div CLASS="CellBody">&nbsp;</div>
-</TD>
-<td WIDTH="146">Dispose, Control*</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/SashForm.html">
-SashForm</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Composite control that lays out its children in a row or column arrangement and uses a Sash to separate them so that the user can
-resize them.</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-BORDER, HORIZONTAL, VERTICAL</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/ScrolledComposite.html">
-ScrolledComposite</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Composite control that scrolls its contents and optionally stretches its contents to fill the available space.</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-BORDER, H_SCROLL, V_SCROLL</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/StyledText.html">
-StyledText</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Editable control that allows the user to type text. Ranges of text inside the control can have distinct colors (foreground and background) and font styles (bold and regular).</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-BORDER, FULL_SELECTION, MULTI, SINGLE, WRAP, READ_ONLY</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*, ExtendedModify, LineGetBackground, LineGetSegments, LineGetStyle, Modify, Selection, Verify, VerifyKey</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/TableTree.html">
-TableTree</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Selectable control that displays a hierarchical list of items that can be selected by the user. Items are presented
-in rows that display multiple columns representing different aspects of the
-items.</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-BORDER, SINGLE, MULTI, CHECK, FULL_SELECTION</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*, Selection, DefaultSelection, Collapse, Expand</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/TableTreeItem.html">
-TableTreeItem</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Selectable user interface object that represents a hierarchy of tree items in a TableTree.</P>
-</TD>
-<TD width="183">
-<div CLASS="CellBody">&nbsp;</div>
-</TD>
-<td WIDTH="146">&nbsp;</td>
-</TR>
-<TR>
-<TD width="115">
-<P CLASS="CellBody">
-<strong><a href="../reference/api/org/eclipse/swt/custom/ViewForm.html">
-ViewForm</a></strong></P>
-</TD>
-<TD width="226">
-<P CLASS="CellBody">
-Composite control that lays out three children horizontally and allows programmatic control of layout and border parameters. Used in the workbench to implement a view's label/toolbar/menu local bar.</P>
-</TD>
-<TD width="183">
-<P CLASS="CellBody">
-<strong>
-BORDER, FLAT</strong></P>
-</TD>
-<td WIDTH="146">Dispose, Control*</td>
-</TR>
-</TABLE>
-
-<p><em>Control* = Events inherited from
-<a href="../reference/api/org/eclipse/swt/widgets/Control.html"><strong>Control</strong></a>:&nbsp; 
-FocusIn, FocusOut, Help, KeyDown, KeyUp, MouseDoubleClick, MouseDown, MouseEnter, MouseExit,
-MouseHover, MouseUp, MouseMove, Move, Paint, Resize</em>
-
-<P >
-Before implementing a custom widget, you should consider several important issues:</P>
-<ul>
-  <li>
-Can an existing SWT control be used as a simpler or plainer version of your widget? If so, consider using the existing control and finishing your application. You can always write a custom widget later that is API compatible with the simpler control.</li>
-  <li>
-Does the widget have to be portable? If so, does a native widget exist on all platforms? If you are comfortable writing native platform code, you can provide a native implementation for each platform that your application supports. If it does not exist on any (or all) platforms, you will also have to provide a portable implementation.</li>
-  <li>
-Can the function be achieved by extending the behavior of an existing control? If so, consider using an existing control and wrapping it with additional behavior.</li>
-  <li>
-Will your widget contain other controls from the user's point of view? It's useful to think about this issue in advance because it influences your implementation and API.</li>
-</ul>
-<P >
-Once you've determined that you need a custom widget and have decided which platforms must be supported, you can consider several implementation techniques for your widget. These techniques can be mixed and matched depending on what is available in the underlying OS platform.</P>
-
-<H4>
-Native implementation</H4>
-<P >
-If your application requires a native widget that is not provided by SWT, you will need to implement it natively. This may be a platform widget, a third party widget, or any other widget in a platform shared library.</P>
-<P >
-Each SWT platform is shipped with both a shared library (for example, a DLL on Windows) and a
-JAR (for the Java class files). The shared library contains all of the native function required for SWT, but it was not meant to be a complete set of the functions available on the platform. To expose native function or native widgets that were not exposed by SWT, you need to write your own shared library. If you are using a combination of native code on one platform and portable code on another, make sure you call your shared library on the platform with the native widget, and your jar on the platform with the portable widget.</P>
-<P >
-To implement a native widget, you must understand the Java Native Interface (JNI), the API of the widget in the shared library, and the underlying OS platform APIs in C.</P>
-<P >
-The basic process for implementation is to decide which part of the API of the native widget will be exposed in the Java API and writing the Java code that calls the natives to implement the behavior. JNI C code must be written to call the shared library.</P>
-<P >
-It is a good idea to follow the design principles used to implement SWT when building your own native widget implementation. For example, your JNI natives should map one to one with the API calls being made into the shared library.</P>
-<P >
-A complete example of a native custom widget implementation can be found in <a href="http://www.eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm">Creating
-Your Own Widgets using SWT..</a></P>
-
-
-<H4>
-Extending an existing widget</H4>
-<P >
-If your new widget is similar in concept or implementation to an existing widget, you may want to wrap an existing SWT widget. This technique is used for the implementation of
-<strong><a href="../reference/api/org/eclipse/swt/custom/TableTree.html">TableTree</a></strong>.</P>
-<P >
-To wrap a widget, you create a subclass of the <a href="../reference/api/org/eclipse/swt/widgets/Composite.html"><strong> Composite</strong></a> or
-<a href="../reference/api/org/eclipse/swt/widgets/Canvas.html"><strong> Canvas</strong></a> widget (depending on whether your control will have children). In the constructor for the custom widget, create the wrapped widget. The resulting widget will be 100% Java portable since you are calling the wrapped widget's API for your implementation.</P>
-<P >
-Wrapping a widget is often a simpler way to implement custom widgets than starting from scratch. However, you must be careful in designing the API of your new widget. Here are some important tips:</P>
-<P >
-Consider whether your widget is a &quot;kind of&quot; wrapped widget or whether it just uses one for its implementation. For example, a table tree is not a kind of table. It doesn't refer to items by row number index. The
-<strong><a href="../reference/api/org/eclipse/swt/custom/TableTree.html">TableTree</a></strong>
-just uses a table to implement the presentation and adds tree behavior. If you are wrapping a widget purely for implementation reasons, then your API may not look similar to the underlying widget's API.</P>
-<P >
-Forward as few methods and events as possible. Don't reimplement the entire API of the wrapped widget or you'll be constantly playing
-catch-up when the wrapped API changes in a future release. Methods that are common to most widgets, such as
-<strong>setFont</strong>, <strong>setForeground</strong>,
-<strong>setBackground</strong>, should be forwarded.</P>
-<P >
-If you find yourself implementing most of the wrapped widget's API, consider exposing the wrapped widget at the API level and letting the application code use the wrapped widget directly. In this case, you may want to reconsider whether providing a new widget makes sense at all. It may be better to implement your feature as an &quot;adapter&quot; which adds behavior to a widget but does not pretend to be a widget. (JFace viewers follow this pattern.)</P>
-<em><blockquote>
-Note:&nbsp; This discussion has focused solely on extending the behavior of a widget by wrapping it. Extending a widget by subclassing it is highly discouraged, since it will make your widget dependent on the implementation of the
-superclass.</blockquote></em>
-
-
-<H4>
-Custom drawn implementation</H4>
-<P >
-In some cases, you don't have any native code or existing widgets that help you in the implementation of your new widget. This means you must draw the widget yourself using SWT graphics calls. Although this technique can become quite complicated, it has the advantage of producing a completely portable implementation.</P>
-<P >
-Custom drawn controls are implemented by subclassing the <a href="../reference/api/org/eclipse/swt/widgets/Canvas.html"><strong> Canvas</strong></a>
-or <a href="../reference/api/org/eclipse/swt/widgets/Composite.html"><strong> Composite</strong></a>
-class using these rules:</P>
-<ul>
-  <li>
-Subclass <a href="../reference/api/org/eclipse/swt/widgets/Canvas.html"><strong> Canvas</strong></a>
-    if your widget will not have any children. This means you do not intend to allow applications to create children of your widget, and that you do not intend to create any children in order to implement your widget.
-    <a href="../reference/api/org/eclipse/swt/widgets/Canvas.html"><strong> Canvas</strong></a>
-    is used for both simple controls, such as stylized labels, and for more complex controls, such as the styled text editor. In both cases, the widget is implemented completely internally using graphics calls and no children are added by applications.</li>
-  <li>
-Subclass <a href="../reference/api/org/eclipse/swt/widgets/Composite.html"><strong> Composite</strong></a>
-    if your widget will have children from the application's perspective, or if you will be creating children to implement your widget.
-    <a href="../reference/api/org/eclipse/swt/widgets/Composite.html"><strong> Composite</strong></a>
-    is used when you are combining widgets to create a new widget, such as using a text and list to implement a combo control. It is also used when you implement
-a widget without children that allows clients to add children. This is the case with the
-    <a href="../reference/api/org/eclipse/swt/custom/ViewForm.html"><strong> ViewForm</strong></a> control. The
-    <a href="../reference/api/org/eclipse/swt/custom/SashForm.html"><strong> SashForm</strong></a> widget represents both cases: it uses widgets (sashes) internally for its implementation and allows clients to add their
-own children.</li>
-</ul>
-<P >
-In a custom drawn control, your internal state is kept in Java instance variables. You define your API and styles according to the requirements of your widget. </P>
-<P >
-The internal implementation of a custom drawn widget usually involves these major tasks:</P>
-<ul>
-  <li>
-Create any graphics objects needed in your constructor and store them in an instance variable. Register a listener for the
-    <strong> dispose</strong> event on your canvas or composite so that you can free these objects when the widget is destroyed.</li>
-  <li>
-Add a <strong> paintListener</strong> to your canvas or composite and paint the widget according to your design. For complex widgets, a lot of work goes into optimizing this process by calculating and repainting only what's absolutely necessary.</li>
-  <li>
-Ensure that any API calls that affect the appearance of your widget trigger a repaint of the widget. In general, you should use
-    <strong> redraw</strong> to damage your widget when you know you must repaint, rather than call your internal painting code directly. This gives the platform a chance to collapse the paint you want to generate with any other pending paints and
-    helps streamline your code by funneling all painting through one place.</li>
-  <li>
-If your widget defines events in its API, determine what low level <a href="../reference/api/org/eclipse/swt/widgets/Canvas.html"><strong> Canvas</strong></a>
-    or <a href="../reference/api/org/eclipse/swt/widgets/Composite.html"><strong> Composite</strong></a>
-    events will trigger your widget's events. For example, if you have a clicked event, you will want to register a mouse event on your
-    canvas and perform calculations (such as hit testing) to determine whether the mouse event in your canvas should trigger your widget event.</li>
-</ul>
-<P >
-Many of the widgets implemented in the <a href="../reference/api/org/eclipse/swt/custom/package-summary.html"><strong> org.eclipse.swt.custom</strong></a> use this approach. A simple example can be found in
-<a href="../reference/api/org/eclipse/swt/custom/CLabel.html"><strong>CLabel</strong></a>.</P>
-
-
-<P >
-Further information on custom widgets can be found in <a href="http://www.eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm">Creating
-your own widgets using SWT.</a></P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_events.htm b/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_events.htm
deleted file mode 100644
index 849dae2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/swt_widgets_events.htm
+++ /dev/null
@@ -1,365 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Events
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-Events</H3>
-
-<P >
-Once we create a display and some widgets, and start up the application's message
-loop, where does the real work happen? It happens every time an event is read from the queue and dispatched to
-a widget. Most of the application logic is implemented as responses to user events.</P>
-<P >
-The basic pattern is that you add a listener to some widget that you have created, and when the appropriate event occurs
-the listener code will be executed. This simple example is adapted from
-<strong>org.eclipse.swt.examples.helloworld.HelloWorld3</strong>:</P>
-<font color='#4444CC'><pre>
-   Display display = new Display ();
-   Shell shell = new Shell (display);
-   Label label = new Label (shell, SWT.CENTER);
-   ...
-   shell.addControlListener (new ControlAdapter () {
-      public void controlResized (ControlEvent e) {
-         label.setBounds (shell.getClientArea ());
-      }
-   });
-</pre></font>
-<P >
-For each type of listener, there is an interface that defines the listener (<em>Xyz</em><strong>Listener</strong>), a class that provides event information
-(<em>Xyz</em><strong>Event</strong>), and an API method to add the listener (<strong>add</strong><em>Xyz</em><strong>Listener</strong>).&nbsp;
-If there is more than one method defined in the listener interface then an adapter
-(<em>Xyz</em><strong>Adapter</strong>) that implements the listener interface and provides empty methods
-is provided as well. All of the events, listeners, and adapters are defined in the package
-<strong><a href="../reference/api/org/eclipse/swt/events/package-summary.html">org.eclipse.swt.events</a></strong>.</P>
-<P >
-The following table summarizes the events that are available and the widgets
-that support each event.</P>
-<TABLE BORDER="1" width="597">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="101">
-<P CLASS="CellHeading">
-Event Type</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="224">
-<P CLASS="CellHeading">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="250">
-<P CLASS="CellHeading">
-Widgets</P>
-</TH>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Arm</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a widget, such as a menu item, is armed.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-MenuItem</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a control is moved or resized.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>Control</strong>, <strong>TableColumn</strong>, <strong> Tracker</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Dispose</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a widget is disposed, either programmatically or by the user.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Widget</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Focus</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a control gains or loses focus.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Help</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when the user requests help for a widget, such as pressing the F1 key.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>Control</strong>, <strong>Menu</strong>, <strong> MenuItem</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Key</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when the user presses or releases a keyboard key when the control has
-keyboard focus.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Menu</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a menu is hidden or shown.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Menu</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Modify</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a widget's text is modified.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-CCombo</strong>, <strong>Combo</strong>, <strong>Text</strong>, <strong> StyledText</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Mouse</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when the user presses, releases, or double clicks the mouse over the
-control.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-MouseMove</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated as the user moves the mouse across the control.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-MouseTrack</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when the mouse enters, exits, or hovers over the control.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Paint</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when the control needs to be repainted.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Selection</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when the user selects an item in the control.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>Button</strong>, <strong>CCombo</strong>, <strong>Combo</strong>, <strong>CoolItem</strong>, <strong>CTabFolder</strong>, <strong>List</strong>,
-<strong> MenuItem</strong>, <strong>Sash</strong>, <strong>Scale</strong>, <strong> ScrollBar</strong>, <strong>Slider</strong>, <strong> StyledText</strong>,
-<strong> TabFolder</strong>, <strong>Table</strong>, <strong>Table Cursor</strong>,&nbsp; <strong>TableColumn</strong>, <strong> TableTree</strong>,
-<strong>Text</strong>, <strong>ToolItem</strong>, <strong> Tree</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Shell</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a shell is minimized, maximized, activated, deactivated, or
-closed.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Shell</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Traverse</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a control is traversed by the user using keystrokes.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>
-Control</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Tree</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when the user expands or collapses items in the tree.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>Tree</strong>, <strong> TableTree</strong></P>
-</TD>
-</TR>
-<TR>
-<TD width="101">
-<P CLASS="CellBody">
-<strong>
-Verify</strong></P>
-</TD>
-<TD width="224">
-<P CLASS="CellBody">
-Generated when a widget's text is about to be modified. Gives the application a chance to alter the text or prevent the modification.</P>
-</TD>
-<TD width="250">
-<P CLASS="CellBody">
-<strong>Text</strong>, <strong> StyledText</strong></P>
-</TD>
-</TR>
-</TABLE>
-
-<H4>
-Untyped events</H4>
-<P >
-The typed event system described above is implemented with a low level, untyped widget event mechanism. This mechanism is not intended to be used by applications, but you will see it used inside of the SWT implementation. It is also used in many of the workbench wizard page implementations.</P>
-<P >
-The untyped mechanism relies on a constant to identify the event type and defines a generic listener that is supplied with this constant. This allows the listener to implement a &quot;case style&quot; listener. In the following snippet, we define a generic event handler and add several listeners to a shell.</P>
-<font color='#4444CC'><pre>
-   Shell shell = new Shell ();
-   Listener listener = new Listener () {
-      public void handleEvent (Event e) {
-         switch (e.type) {
-            case SWT.Resize:
-               System.out.println (&quot;Resize received&quot;);
-               break;
-            case SWT.Paint:
-               System.out.println (&quot;Paint received&quot;);
-               break;
-            default:
-               System.out.println (&quot;Unknown event received&quot;);
-         }
-      }
-   };
-   shell.addListener (SWT.Resize, listener);
-   shell.addListener (SWT.Paint, listener);
-</pre></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team.htm b/bundles/org.eclipse.platform.doc.isv/guide/team.htm
deleted file mode 100644
index 1fbfbb8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team.htm
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Team support</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Team support</H1>
-<p>
-The Eclipse platform is based on the concept of letting users create and edit
-resources in the file system.&nbsp; The <b>team</b> plug-in defines additional
-API that allow plug-ins to integrate the function of a versioning and
-configuration management repository and deployment.&nbsp; The function provided by a repository
-fundamentally affects the user workflow, since there are additional steps for
-retrieving files, comparing their content with local content, versioning them,
-and returning updated files to the repository.&nbsp; The goal of the team
-plug-in API is to be passive enough to allow repository plug-in providers to
-define their own workflow so that users familiar with their product can use the
-platform in a similar fashion and provide support for worflows that we have found
-are useful for team plug-ins.
-</p>
-<p>
-This goal is accomplished by supplying several building blocks:
-<ul>
-
-<li>Repository Providers<blockquote>
-A repository provider allows synchronization of workspace resources with a remote location. 
-At a minimum it allows pushing resources in the workspace to a remote location and pulling 
-resources from a remote location into the workspace.
-A repository provider is associated with a project and controls the resources
-in the project by optionally providing a IFileModificationValidator and IMoveDeleteHook. 
-There is only one repository provider associated with each project. A repository
-provider is associated to a project by providing a
-<a href="../reference/api/org/eclipse/team/ui/IConfigurationWizard.html">IConfigurationWizard</a>.
-</blockquote>
-
-<li>Deployment Providers [<b>new in 3.0</b>]
-<blockquote>
-A deployment provider allows synchronization of workspace resources with a remote location. 
-At a minimum it allows pushing resources in the workspace to a remote location and pulling 
-resources from a remote location into the workspace.The difference between a deployment 
-provider and repository provider is the following:
-<ul>
-<li>a deployment provider doesn't have full control of workspace resources whereas the repository
-provider can hook into the IMoveDeleteHook and IFileModificationValidator.
-<li>multiple deployment providers can be mapped to the same folder whereas there is only one
-repository provider per project.
-<li>a deployment provider can be mapped to any folder
-whereas the repository provider must be mapped at the project.
-</ul>
-</blockquote>
-
-<li>Resource Management
-<blockquote>
-Allows other plug-ins to indicate special handling of resources with respect to team operations.
-</blockquote>
-
-<li>Synchronization Support [<b>new in 3.0</b>]
-<blockquote>
-Synchronize support provides classes and interfaces for managing dynamic collections of 
-synchronization information. This support helps you manage information about variants
-of the resources in the workspace. For example, with FTP you could store timestamps for
-the latest remote file and the base for the currently loaded resource. Synchronization support
-provides APIs to help manage and persist resource variants.
-</blockquote>
-</ul>
-</p>
-
-<p>The UI support is also structured passively.&nbsp; Placeholders for team
-provider actions, preferences, and properties are defined by the team UI
-plug-in, but it's up to the team plug-in provider to define these UI
-elements.&nbsp; The team UI plug-in also includes a simple, extendable
-configuration wizard that lets users associate projects with repositories.&nbsp;
-Plug-ins can supply content for this wizard that let the user specify repository
-specific information.&nbsp;
-</p>
-<p>Multiple repository providers can coexist peacefully within the
-platform.&nbsp; In fact, it's even possible to have different client
-implementations for the same repository installed.&nbsp; For example, one could
-install a CVS client designed for experts and a different one for novice users.
-</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_howto.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_howto.htm
deleted file mode 100644
index c9020b0..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_howto.htm
+++ /dev/null
@@ -1,235 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Rich Team Integration</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-  <h2>Rich Team Integration</h2>
-<P >
-Integrating your repository's support with the platform starts with good solid
-design.&nbsp; The goal is to integrate the workflow that your repository users
-know with the concepts defined in the workbench.&nbsp; Because there are many
-ways to extend workbench UI and functionality, you have a lot of flexibility in
-how you achieve integration.&nbsp; So where to start?</P>
-  <P >Building a team provider is not just a matter of learning Team API.&nbsp;
-  (Subsequent sections will focus on the specific support introduced by the team
-  plug-in.)&nbsp; It's a matter of understanding <a href="workbench.htm">workbench
-  integration</a>.&nbsp; So let's start with the big picture.&nbsp; We'll be
-  using the CVS client as a case study for integrating a team provider with the
-  platform. Let's look at some of the function the CVS provider supplies and
-  what workbench and team facilities you can use to achieve similar levels of
-  integration.</P>
-<P >
-<img src="images/teamintegration.gif" alt="Workbench with CVS menu items, views, tasks, and decorators" border="0" width="625" height="667"></P>
-  <P >The CVS client integrates seamlessly with the existing workbench resource
-  perspective.&nbsp; It allows users to configure a project for CVS, adds
-  functionality to a resource's menu, decorates resources with team-specific
-  information, provides customized views that show team-specific information,
-  adds team-oriented tasks to the task list...&nbsp; The list goes on and
-  on.&nbsp; How can your provider achieve similar integration?&nbsp; Here are
-  some basic steps to start with and links for information (both team-specific
-  and workbench-oriented) on these topics.</P>
-  <h3 >Getting started</h3>
-  <table border="1" cellpadding="0" cellspacing="0" width="73%">
-    <tr>
-      <td width="32%">Define a
-<font color='#4444CC'> <b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a>
-</b></font>that represents your implementation.</td>
-      <td width="68%">
-        <ul>
-          <li><a href="team_provider_define.htm">Define your provider using <b>org.eclipse.team.core.repository</b>.</a></li>
-          <li>Subclass <b><font color='#4444CC'><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a>
-            </font></b>and <a href="team_provider_implement.htm">implement the
-            necessary methods.</a></li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Provide a configuration wizard so that users can associate
-        your provider with their projects.</td>
-      <td width="68%">
-        <ul>
-          <li><a href="team_ui_configure.htm">Contribute a wizard using <b>org.eclipse.team.ui.configurationWizards</b>.</a></li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Add your actions to the Team menu.</td>
-      <td width="68%">
-        <ul>
-          <li><a href="team_ui_actions.htm">Add your actions to the Team menu.</a></li>
-          <li>Use the <a href="workbench_basicext_popupMenus.htm"><b>popupMenus</b></a>
-            extension to define the menu items.</li>
-        </ul>
-      </td>
-    </tr>
-  </table>
-  <h3>Enhancing resource views</h3>
-  <table border="1" cellpadding="0" cellspacing="0" width="73%">
-    <tr>
-      <td width="32%">Add provider-specific properties to the properties page
-        for a resource.</td>
-      <td width="68%">
-        <ul>
-          <li>Use the <a href="preferences_prop.htm"><b>propertyPages</b></a> extension
-            to show team-specific properties for your resource.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Implement specialized decorators to show team-related
-        attributes</td>
-      <td width="68%">
-        <ul>
-          <li><a href="team_ui_decorators.htm">Contribute decorators</a> to
-            resource views.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Reduce clutter by filtering out any resources that are
-        used in implementing team support.&nbsp;</td>
-      <td width="68%">
-        <ul>
-          <li>Use <a href="team_resources_private.htm">team-private resources</a>
-            to hide implementation files and folders.</li>
-        </ul>
-      </td>
-    </tr>
-  </table>
-  <h3>Handling user editing and changes to resources</h3>
-  <table border="1" cellpadding="0" cellspacing="0" width="73%">
-    <tr>
-      <td width="32%">Intervene in the saving of resources so you can check
-        permissions before a user changes a file.</td>
-      <td width="68%">
-        <ul>
-          <li>Implement the <a href="team_provider_hooks.htm">fileModificationValidator</a>
-            hook.</li>
-          <li>Use <a href="../reference/api/org/eclipse/core/resources/IFileModificationValidator.html#validateSave(org.eclipse.core.resources.IFile)"><b>validateSave</b></a>
-            to prevent or intervene in saving of files.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Intervene before a user edits a file to see if it's
-        allowed.</td>
-      <td width="68%">
-        <ul>
-          <li>Implement the <a href="team_provider_hooks.htm">fileModificationValidator</a>
-            hook.</li>
-          <li>Use <a href="../reference/api/org/eclipse/core/resources/IFileModificationValidator.html#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)"><b>validateEdit</b></a>
-            to prevent or intervene in saving of files.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Track changes to resources in the workspace so you can
-        allow associated changes in the repository.</td>
-      <td width="68%">
-        <ul>
-          <li>Use the <a href="team_provider_hooks.htm">move/Delete hooks</a> to
-            prevent or enhance moving and deleting of resources.</li>
-          <li>See <a href="../reference/api/org/eclipse/core/resources/team/IMoveDeleteHook.html"><b>IMoveDeleteHook</b></a>
-            <b> </b>for more detail about what you can do.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr> 
-      <td width="32%">Enable the use of linked resources</td>
-      <td width="68%"><ul>
-          <li>See <a href="team_resources_linked.htm"><b>Team 
-            and linked resources</b></a></li>
-        </ul></td>
-    </tr>
-  </table>
-  <h3>Streamlining repository-related tasks</h3>
-  <table border="1" cellpadding="0" cellspacing="0" width="73%">
-    <tr>
-      <td width="32%">Provide an easy way to export a description of your
-        projects.</td>
-      <td width="68%">
-        <ul>
-          <li>Use <a href="team_resources_projects.htm">project sets</a> to
-            export your projects without exporting the content so that users can
-            rebuild projects from the repository.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Reduce clutter in the repository by ignoring files that
-        can be regenerated.</td>
-      <td width="68%">
-        <ul>
-          <li>Honor the <a href="team_resources_filetypes.htm"><b>ignore</b></a>
-            extension when handling files and use ignore for your plug-in's
-            derived files.</li>
-        </ul>
-      </td>
-    </tr>
-  </table>
-  <h3>
-  Enhancing platform integration</h3>
-  <table border="1" cellpadding="0" cellspacing="0" width="73%">
-    <tr>
-      <td width="32%">Add provider-specific preferences to the preferences page.</td>
-      <td width="68%">
-        <ul>
-          <li><a href="team_ui_prefs.htm">Add your preferences to the Team
-            category.</a></li>
-          <li><a href="preferences_prefs_implement.htm">Build your preference
-            page</a> using workbench support.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Implement custom views to show detailed information about
-        repositories or their resources.</td>
-      <td width="68%">
-        <ul>
-          <li>Use the <a href="workbench_basicext_views.htm"><b>views</b></a> extension
-            to contribute a view.</li>
-          <li>See the CVS provider's repository view for an example.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Add your views or actions to existing workbench
-        perspectives if appropriate.</td>
-      <td width="68%">
-        <ul>
-          <li>Use the <a href="workbench_advext_perspectiveExtension.htm"><b>perspectiveExtension</b></a>
-            extension to add your plug-in's shortcuts or views to existing
-            perspectives.</li>
-        </ul>
-      </td>
-    </tr>
-    <tr>
-      <td width="32%">Implement a repository-specific perspective to streamline
-        repository administration or browsing.</td>
-      <td width="68%">
-        <ul>
-          <li>Use the <a href="workbench_advext_perspectives.htm"><b>perspectives</b></a>
-            extension to define your own perspective, views, short cuts, and
-            page layout.</li>
-        </ul>
-      </td>
-    </tr>
-  </table>
-  <p>&nbsp;</p>
-
-<p>
-   &nbsp;
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_provider.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_provider.htm
deleted file mode 100644
index 88f1276..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_provider.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Repository providers</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-  <H2>
-Repository providers</H2>
-<P >
-A repository provider (<b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b>) is the central class in the implementation of your
-repository.&nbsp; This class is responsible for configuring a project for
-repository management and providing the necessary hooks for resource
-modification.&nbsp; Providers are mapped to a project using <a href="resInt_properties.htm">project
-persistent properties</a>.&nbsp; The mechanism for mapping providers to a
-project is not central to the team API, but you'll need to be aware of it when
-filtering out resources in your UI.&nbsp; For the most part, you'll be using
-team API to work with projects and associate them to your provider.&nbsp;&nbsp;</P>
-<P >
-To implement a provider, you must define a repository using <a href="../reference/extension-points/org_eclipse_team_core_repository.html"><b>org.eclipse.team.core.repository</b></a>
-and supply a class
-derived from&nbsp; <b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b>.&nbsp; We'll use the CVS client as an example to see how this
-works.</P>
-
-<p>
-   &nbsp;
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_deployment.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_provider_deployment.htm
deleted file mode 100644
index 55d1429..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_deployment.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Implementing a deployment provider</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<H3>Implementing a deployment provider</H3>
-<p>
-Deployment providers provide a light weight mechanism for associating a provider with a folder and persisting the mapping state. By implementing a deployment
-provider there are no explicit workflows implied that you must adhere to. Deployment providers can be associated within a project that is already associated
-with a repository provider, but the deployment provider doesn't have control over the project's resources. You can image a deployment provider
-co-existing with the repository to provide say an easy mechanism for deploying part of a project to a test server.
-</p>
-<p>
-The following sections will explain how to implement a deployment provider.
-
-<h4>Extend DeploymentProvider and provide methods to serialization methods</h4>
-<p>Create a concrete instance of Deployment provider and decide what information must be persisted between sessions.
-
-<h4>Add an extension point </h4>
-<p></p>
-
-<h4>Add an extension point</h4>
-
-<h4>Add an extension point</h4>
-
-<h4>Site explorer???</h4>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_deployment_wizard.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_provider_deployment_wizard.htm
deleted file mode 100644
index 6775e4a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_deployment_wizard.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Configuring a project</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-   Configuring a project
-</h3><p>Typically, the first step in building a team UI is implementing a wizard
-page that allows users to configure a project for your plug-in's team
-support.&nbsp; This is where your team provider's id will be added to the
-project's properties.&nbsp; You participate in project configuration by
-contributing to the <a href="../reference/extension-points/org_eclipse_team_ui_configurationWizards.html"><b>org.eclipse.team.ui.configurationWizards</b></a>
-extension point.&nbsp; This wizard is shown when the user chooses <b>Team-&gt;Share
-Project...</b>
-</p>
-<p>We'll look at this in the context of the CVS client implementation.&nbsp;
-Here is the CVS UI markup for its configuration wizard:
-</p>
-<pre><font color="#4444CC">&lt;extension
-      point=&quot;org.eclipse.team.ui.configurationWizards&quot;&gt;
-   &lt;wizard
-        name=&quot;%SharingWizard.name&quot;
-        icon=&quot;icons/full/wizards/newconnect_wiz.gif&quot;
-        class=&quot;org.eclipse.team.internal.ccvs.ui.wizards.SharingWizard&quot;
-        id=&quot;org.eclipse.team.ccvs.ui.SharingWizard&quot;&gt;
-   &lt;/wizard&gt;
-&lt;/extension&gt;</font></pre>
-<p>As usual, plug-ins supply a <b>class</b> that implements the extension and a
-unique <b>id</b> to identify their extension.&nbsp; The <b>name</b> and <b>icon</b>
-are shown in the first page of the project configuration wizard if there are
-multiple providers to choose from.
-</p>
-<p>Once the user has selected a provider, the next page shows the specific
-configuration information for your provider.&nbsp; (If your provider is the only
-team provider plug-in installed, then the wizard skips directly to your
-page.)&nbsp; Your wizard must implement <a href="../reference/api/org/eclipse/team/ui/IConfigurationWizard.html"><b>IConfigurationWizard</b></a>,
-which initializes the wizard for a specified workbench and project.&nbsp; The
-rest of the implementation depends on the design of your wizard.&nbsp; You must
-gather up any information needed to associate the project with your team
-support.&nbsp;&nbsp;
-</p>
-
-
-
-
-<p> When the wizard is completed, you must map your team provider to the project
-using <b><font color='#4444CC'><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html#map(org.eclipse.core.resources.IProject, java.lang.String)">RepositoryProvider.map(IProject,
-String)</a></font></b>.&nbsp; Mapping handles the assignment of the correct
-project persistent property to your project.
-</p>
-
-
-
-
-<p> The CVS client does this work in its provider's <b>setSharing</b>
-method, which is called when its wizard is finished:
-</p>
-
-
-
-
-<pre><font color="#4444CC">public void setSharing(IProject project, FolderSyncInfo info, IProgressMonitor monitor) throws TeamException {
-	
-	// Ensure provided info matches that of the project
-	...		
-	// Ensure that the provided location is managed
-	...		
-	// Register the project with Team
-<b>	RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-</b>}</font></pre>
-<p>&nbsp;
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_find.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_provider_find.htm
deleted file mode 100644
index 6f0780d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_find.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Finding a provider</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-   Finding a provider
-</h3><p>Static methods in <font color="#4444CC"><b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b></font>
-make it easy for clients to map projects to providers and to find the providers associated with a given project.
-</p>
-<ul>
-  <li><b>map(IProject, String)</b> - instantiates a provider of the specified
-    provider id and maps the specified project to it.&nbsp; This call sets the
-    proper project persistent property on the project. </li>
-  <li><b>unmap(IProject, String)</b> - removes the association of the specified
-    provider id from the specified project.&nbsp; Leaves the project
-    unassociated with any team provider. </li>
-  <li><b>getProvider(IProject)</b> - answers the provider for a given
-    project.&nbsp; Can be used to find any team provider for a project.&nbsp; </li>
-  <li><b>getProvider(IProject, String) </b>- answers the provider for a given
-    project with the specified provider id.&nbsp; Can be used to check whether a
-    particular team provider type is associated with a given project.&nbsp; It
-    is commonly used by providers to quickly check whether a given project is
-    under their care.&nbsp; This call is safer for clients since it does not
-    return a provider that does not match the client's id.</li>
-</ul>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_hooks.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_provider_hooks.htm
deleted file mode 100644
index 520f5d4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_hooks.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Resource modification hooks</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h3>Resource modification hooks</h3>
-<P >Most of the interesting function associated with a repository provider
-occurs as the user works with resources in the project that is configured for
-the provider.&nbsp; In order to be aware of changes the user makes to a
-resource, the provider can implement <a href="resAdv_hooks.htm">resource
-modification hooks</a>.&nbsp; The resources plug-in provides these hooks as
-extension points.&nbsp; The documentation for <a href="../reference/api/org/eclipse/core/resources/team/IMoveDeleteHook.html"><b>IMoveDeleteHook</b></a>
-and <a href="../reference/api/org/eclipse/core/resources/IFileModificationValidator.html"><b>IFileModificationValidator</b></a>
-describe the details for implementing these hooks.</P>
-<P >The team plug-in optimizes and simplifies the association of the hook with
-appropriate resources by registering generic hooks with the resources
-plug-in.&nbsp; These generic hooks simply look up the repository provider for a
-given resource and obtain its hook.&nbsp; This has the advantage of calling only
-one provider hook rather than having each provider implementation register a
-hook that must first check whether the resource is managed by the provider.</P>
-<P >What this means to your plug-in is that you provide any necessary hooks by
-overriding methods in <font color="#4444CC"><b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b>.&nbsp;
-</font>The default implementation of these methods answers null, indicating that
-no hook is necessary.</P>
-<ul>
-  <li><b>getMoveDeleteHook</b> - answers an <a href="../reference/api/org/eclipse/core/resources/team/IMoveDeleteHook.html"><b>IMoveDeleteHook</b></a>
-    appropriate for the provider.&nbsp; This hook allows providers to control
-    how moves and deletes occur and includes the ability to prevent them from
-    happening.&nbsp; Implementors can provide alternate implementations for
-    moving or deleting files, folders, and projects.&nbsp; The CVS client uses
-    this hook to monitor folder deletions and ensure that any files contained in
-    deleted folders are remembered so that they can later be deleted from the
-    repository if desired.</li>
-  <li><b>getFileModificationValidator</b> - answers an <a href="../reference/api/org/eclipse/core/resources/IFileModificationValidator.html"><b>IFileModificationValidator</b></a>
-    appropriate for the provider.&nbsp; This hook allows providers to pre-check
-    any modifications or saves to files.&nbsp; This hook is typically needed
-    when a repository provider wants to implement <b>pessimistic versioning</b>.&nbsp;
-    In pessimistic versioning, a file must be checked out before modifying it,
-    and only one client can check out a file at any given time.&nbsp;
-    Pessimistic versioning could be implemented by checking out a file (if not
-    already checked out) whenever a file is edited, and checking the file back
-    in when it is saved. Since CVS uses an optimistic versioning scheme, it does
-    not implement this hook.</li>
-</ul>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_repository.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_provider_repository.htm
deleted file mode 100644
index 7d6eef4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_repository.htm
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Implementing a repository provider</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<H3>Implementing a repository provider</H3>
-<P>
-The <a href="../reference/extension-points/org_eclipse_team_core_repository.html"> <b> org.eclipse.team.core.repository</b></a> extension point is used to add a
-repository definition.&nbsp;
-Here is the markup for the CVS client.</P>
-<font color='#4444CC'>
-<pre>&lt;extension
-    point=&quot;org.eclipse.team.core.repository&quot;&gt;
-      &lt;repository
-            class=&quot;org.eclipse.team.internal.ccvs.core.CVSTeamProvider&quot;
-            id=&quot;org.eclipse.team.cvs.core.cvsprovider&quot;&gt;
-      &lt;/repository&gt;
-&lt;/extension&gt;
-</pre></font>
-<p>This registers your team provider with the team support plug-in and assigns
-an id that should be used when your provider is associated with a project.&nbsp;
-The specified <b>class</b> for the repository must extend <b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b>.
-</p>
-
-
-<H3>Implementing a provider</H3>
-<P>
-The class identified in the extension must be a subclass of <b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b>.
-Its primary responsibilities are to configure and deconfigure a project for
-repository support, and supply any necessary resource modification hooks.&nbsp;
-The CVS client serves as a good example.&nbsp; Its repository provider is <b>CVSTeamProvider</b>.</P>
-<font color='#4444CC'><pre>
-   public class CVSTeamProvider extends RepositoryProvider {
-
-	...
-	</pre></font>
-		
-<p> <b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a> </b>defines two abstract methods, <b>configureProject</b> and <b>deconfigure</b>.&nbsp;
-All providers must implement these methods.&nbsp; </p><p>A project is configured
-when it is first associated with a particular repository provider.&nbsp; This
-typically happens when the user selects a project and uses the team wizards to
-associate a project with your repository.&nbsp; Regardless of how the operation
-is triggered, this is
-the appropriate time to compute or cache any data about the project that you'll
-need to provide your repository function.&nbsp; (Assume that mapping the project
-to your provider has already happened.&nbsp; You'll be taking care of this in
-your configuration wizard.)</p><p>The
-CVS provider simply broadcasts the fact that a project has been configured:</p><pre>public void configureProject() throws CoreException {
-	CVSProviderPlugin.broadcastProjectConfigured(getProject());
-}</pre><p>We won't follow the implementation of the plug-in broadcast
-mechanism.&nbsp; Suffice to say that any parties that need to compute or
-initialize project specific data can do so at this time.</p><p>A project is
-deconfigured when the user no longer wants to associate a team provider with a
-project.&nbsp;&nbsp; It is up to your plug-in to implement the user action that
-causes this to happen (and unmapping the project from your team provider will
-happen there).&nbsp; The <b>deconfigure</b> method&nbsp; is the
-appropriate time to delete any project related caches or remove any references
-to the project in the UI.&nbsp; The CVS provider flushes project related caches
-kept in its views and broadcasts the fact that the project is deconfigured.</p>
-
-<font color='#4444CC'>
-<pre>public void deconfigure() throws CoreException {
-	...
-	try {
-		EclipseSynchronizer.getInstance().flush(getProject(), true, true /*flush deep*/, null);
-	} catch(CVSException e) {
-		throw new CoreException(e.getStatus());
-	} finally {
-		CVSProviderPlugin.broadcastProjectDeconfigured(getProject());
-	}
-}</pre>
-</font>
-
-<h3>Resource modification hooks</h3>
-<P >Most of the interesting function associated with a repository provider
-occurs as the user works with resources in the project that is configured for
-the provider.&nbsp; In order to be aware of changes the user makes to a
-resource, the provider can implement <a href="resAdv_hooks.htm">resource
-modification hooks</a>.&nbsp; The resources plug-in provides these hooks as
-extension points.&nbsp; The documentation for <a href="../reference/api/org/eclipse/core/resources/team/IMoveDeleteHook.html"><b>IMoveDeleteHook</b></a>
-and <a href="../reference/api/org/eclipse/core/resources/IFileModificationValidator.html"><b>IFileModificationValidator</b></a>
-describe the details for implementing these hooks.</P>
-<P >The team plug-in optimizes and simplifies the association of the hook with
-appropriate resources by registering generic hooks with the resources
-plug-in.&nbsp; These generic hooks simply look up the repository provider for a
-given resource and obtain its hook.&nbsp; This has the advantage of calling only
-one provider hook rather than having each provider implementation register a
-hook that must first check whether the resource is managed by the provider.</P>
-<P >What this means to your plug-in is that you provide any necessary hooks by
-overriding methods in <font color="#4444CC"><b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b>.&nbsp;
-</font>The default implementation of these methods answers null, indicating that
-no hook is necessary.</P>
-<ul>
-  <li><b>getMoveDeleteHook</b> - answers an <a href="../reference/api/org/eclipse/core/resources/team/IMoveDeleteHook.html"><b>IMoveDeleteHook</b></a>
-    appropriate for the provider.&nbsp; This hook allows providers to control
-    how moves and deletes occur and includes the ability to prevent them from
-    happening.&nbsp; Implementors can provide alternate implementations for
-    moving or deleting files, folders, and projects.&nbsp; The CVS client uses
-    this hook to monitor folder deletions and ensure that any files contained in
-    deleted folders are remembered so that they can later be deleted from the
-    repository if desired.</li>
-  <li><b>getFileModificationValidator</b> - answers an <a href="../reference/api/org/eclipse/core/resources/IFileModificationValidator.html"><b>IFileModificationValidator</b></a>
-    appropriate for the provider.&nbsp; This hook allows providers to pre-check
-    any modifications or saves to files.&nbsp; This hook is typically needed
-    when a repository provider wants to implement <b>pessimistic versioning</b>.&nbsp;
-    In pessimistic versioning, a file must be checked out before modifying it,
-    and only one client can check out a file at any given time.&nbsp;
-    Pessimistic versioning could be implemented by checking out a file (if not
-    already checked out) whenever a file is edited, and checking the file back
-    in when it is saved. Since CVS uses an optimistic versioning scheme, it does
-    not implement this hook.</li>
-</ul>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a>
-</p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_repository_wizard.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_provider_repository_wizard.htm
deleted file mode 100644
index 6775e4a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_provider_repository_wizard.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Configuring a project</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-   Configuring a project
-</h3><p>Typically, the first step in building a team UI is implementing a wizard
-page that allows users to configure a project for your plug-in's team
-support.&nbsp; This is where your team provider's id will be added to the
-project's properties.&nbsp; You participate in project configuration by
-contributing to the <a href="../reference/extension-points/org_eclipse_team_ui_configurationWizards.html"><b>org.eclipse.team.ui.configurationWizards</b></a>
-extension point.&nbsp; This wizard is shown when the user chooses <b>Team-&gt;Share
-Project...</b>
-</p>
-<p>We'll look at this in the context of the CVS client implementation.&nbsp;
-Here is the CVS UI markup for its configuration wizard:
-</p>
-<pre><font color="#4444CC">&lt;extension
-      point=&quot;org.eclipse.team.ui.configurationWizards&quot;&gt;
-   &lt;wizard
-        name=&quot;%SharingWizard.name&quot;
-        icon=&quot;icons/full/wizards/newconnect_wiz.gif&quot;
-        class=&quot;org.eclipse.team.internal.ccvs.ui.wizards.SharingWizard&quot;
-        id=&quot;org.eclipse.team.ccvs.ui.SharingWizard&quot;&gt;
-   &lt;/wizard&gt;
-&lt;/extension&gt;</font></pre>
-<p>As usual, plug-ins supply a <b>class</b> that implements the extension and a
-unique <b>id</b> to identify their extension.&nbsp; The <b>name</b> and <b>icon</b>
-are shown in the first page of the project configuration wizard if there are
-multiple providers to choose from.
-</p>
-<p>Once the user has selected a provider, the next page shows the specific
-configuration information for your provider.&nbsp; (If your provider is the only
-team provider plug-in installed, then the wizard skips directly to your
-page.)&nbsp; Your wizard must implement <a href="../reference/api/org/eclipse/team/ui/IConfigurationWizard.html"><b>IConfigurationWizard</b></a>,
-which initializes the wizard for a specified workbench and project.&nbsp; The
-rest of the implementation depends on the design of your wizard.&nbsp; You must
-gather up any information needed to associate the project with your team
-support.&nbsp;&nbsp;
-</p>
-
-
-
-
-<p> When the wizard is completed, you must map your team provider to the project
-using <b><font color='#4444CC'><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html#map(org.eclipse.core.resources.IProject, java.lang.String)">RepositoryProvider.map(IProject,
-String)</a></font></b>.&nbsp; Mapping handles the assignment of the correct
-project persistent property to your project.
-</p>
-
-
-
-
-<p> The CVS client does this work in its provider's <b>setSharing</b>
-method, which is called when its wizard is finished:
-</p>
-
-
-
-
-<pre><font color="#4444CC">public void setSharing(IProject project, FolderSyncInfo info, IProgressMonitor monitor) throws TeamException {
-	
-	// Ensure provided info matches that of the project
-	...		
-	// Ensure that the provided location is managed
-	...		
-	// Register the project with Team
-<b>	RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-</b>}</font></pre>
-<p>&nbsp;
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_resources.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_resources.htm
deleted file mode 100644
index 3959d34..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_resources.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Repository resource management</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-  <H2>
-Repository resource management</H2>
-  <p>Once a project is under the management of a <font color="#4444CC"><b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b>,</font>
-  other plug-ins may want to indicate special handling for their projects and
-  files.&nbsp; The team plug-in defines extension points that other providers
-  and other plug-ins can use to register file types and to declare files that
-  should not be subject to repository management.</p>
-
-
-
-
-  <p>Team providers can also register a class that can be used to persist a set
-  a projects so that references to the project can be shared across a team, with
-  the actual contents coming from the repository.</p>
-
-
-
-
-  <p>Finally, team providers can mark resources as being &quot;team
-  private.&quot;&nbsp; </p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_filetypes.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_resources_filetypes.htm
deleted file mode 100644
index f48f447..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_filetypes.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>File types</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>File types</h3>
-<p>The presence of a repository management system may dictate special handling
-needs for files.&nbsp; For example, some files should be omitted from version
-control.&nbsp; Some providers have special handling for text vs. binary
-files.&nbsp; The team plug-in defines extension points that allow other plug-ins
-to provide information about their file types.&nbsp; In all cases, special
-handling is ultimately left up to the user via the team Preferences page.&nbsp;
-These extensions allow plug-ins to seed the preferences with values appropriate
-for the plug-in.</p>
-<h4>Ignored files</h4>
-<p>In several cases, it may be unnecessary to keep certain files under
-repository control.&nbsp; For example, resources that are derived from existing
-resources can often be omitted from the repository.&nbsp; For example, compiled
-source files, (such as Java &quot;.class&quot; files), can be omitted since
-their corresponding source (&quot;.java&quot;) file is in the repository.&nbsp;
-It also may be inappropriate to version control metadata files that are
-generated by repository providers.&nbsp; The <a href="../reference/extension-points/org_eclipse_team_core_ignore.html"><b>org.eclipse.team.core.ignore</b></a>
-extension point allows providers to declare file types that should be ignored
-for repository provider operations.&nbsp; For example, the CVS client declares
-the following:</p>
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.team.core.ignore&quot;&gt;
-	&lt;ignore pattern = &quot;.#*&quot; selected = &quot;true&quot;/&gt;
-&lt;/extension&gt;</font></pre>
-<p>The markup simply declares a file name <b>pattern</b> that should be ignored
-and a <b>selected</b> attribute which declares the default selection value of
-the file type in the preferences dialog.&nbsp; It is ultimately up to the user
-to decide which files should be ignored.&nbsp; The user may select, deselect,
-add or delete file types from the default list of ignored files.</p>
-<p><img src="images/ignore.gif" alt="" border="0" width="499" height="541"></p>
-<h4>Text vs. binary files</h4>
-<p>Some repositories implement different handling for text vs. binary
-files.&nbsp; The <a href="../reference/extension-points/org_eclipse_team_core_fileTypes.html"><b>org.eclipse.team.core.fileTypes</b></a>
-extension allows plug-ins to declare file types as text or binary files.&nbsp;
-For example, the Java tooling declares the following:
-</p>
-
-
-
-
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.team.core.fileTypes&quot;&gt;
-  &lt;fileTypes extension=&quot;java&quot; type=&quot;text&quot;/&gt;
-  &lt;fileTypes extension=&quot;classpath&quot; type=&quot;text&quot;/&gt;
-  &lt;fileTypes extension=&quot;properties&quot; type=&quot;text&quot;/&gt;
-  &lt;fileTypes extension=&quot;class&quot; type=&quot;binary&quot;/&gt;
-  &lt;fileTypes extension=&quot;jar&quot; type=&quot;binary&quot;/&gt;
-  &lt;fileTypes extension=&quot;zip&quot; type=&quot;binary&quot;/&gt;
-&lt;/extension&gt; </font></pre>
-
-
-
-
-<p>The markup lets plug-ins define a file type by <b>extension</b> and assign a <b>type</b>
-of text or binary.&nbsp; As with ignored files, it is ultimately up to the user
-to manage the list of text and binary file types.
-</p>
-
-
-
-
-<p><img src="images/filetypes.gif" alt="" border="0" width="543" height="541">
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_linked.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_resources_linked.htm
deleted file mode 100644
index b0abba3..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_linked.htm
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Team and linked resources</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Team and linked resources</h3>
-<p>A project may contain resources that are not located within the project's directory 
-  in the local file system. These resources are referred to as <a href="resInt_linked.htm">linked 
-  resources</a>. </p>
-<h4>Consequences for Repository Providers</h4>
-<p>Linked resources can pose particular challenges for repository providers which 
-  operate directly against the file system. This is a consequence of the fact 
-  that linked resources by design do not exist in the immediate project directory 
-  tree in the file system. </p>
-<p>Providers which exhibit the following characteristics may be affected by linked 
-  resources:</p>
-<ol>
-  <li>Those which call out to an external program that then operates directly 
-    against the file system.</li>
-  <li>Those which are implemented in terms of IResource but assume that all the 
-    files/folders in a project exist as direct descendents of that single rooted 
-    directory tree.</li>
-</ol>
-<p>In the first case, lets assume the user picks a linked resource and tries to perform
-  a provider operation on it.  Since the provider calls a command line client, we can assume that
-  the provider does something equivalent to first calling
-   <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>.getLocation().toOSString(),
-  feeding the resulting file system location as an argument to the command line program.  If the resource in question is
-  a linked resource, this will yield a file/folder outside of the project directory tree.  Not all
-  command line clients may expect and be able to handle this case.
-  In short, if your provider ever gets the file system location of a resource, it will likely require
-  extra work to handle linked resources.  
-</p>
-<p>The second case is quite similar in that there is an implicit assumption that the structure of
-  the project resources is 1:1 with that of the file system files/folders.  In general,
-  a provider could be in trouble if they mix IResource and java.io.File operations. 
-  For example, for links, the parent of 
-  <a href="../reference/api/org/eclipse/core/resources/IFile.html"><b>IFile</b></a>
-  is not the same
-  as the java.io.File's parent and code which assumes these to be the same will fail.
-</p>
-<h4>Backwards Compatibility</h4>
-<p>It was important that the introduction of linked resources did not 
-  inadvertantly break existing providers. Specifically, the concern was for
-  providers that reasonably assumed that the local file system structure mirrored the project 
-  structure.  Consequently, by default linked resources can not 
-  be added to projects that are mapped to such a provider. Additionally, projects 
-  that contain linked resources can not by default be shared with that provider.</p>
-<h4>Strategies for Handling Linked Resources</h4>
-<p>In order to be &quot;link friendly&quot;, a provider should allow projects 
-  with linked resources to be version controlled, but can disallow the version 
-  controlling of linked resources themselves. </p>
-<p>A considerably more complex solution would be to allow the versioning of the 
-  actual linked resources, but this should be discouraged since it brings with 
-  it complex scenarios (e.g. the file may already be version controlled under 
-  a different project tree by another provider). Our recommendation therefore 
-  is to support version controlled projects which contain non-version controlled 
-  linked resources.</p>
-<h4>Technical Details for Being &quot;Link Friendly&quot;</h4>
-<p>Repository provider implementations can be upgraded to support linked resources 
-  by overriding the <b><font color="#4444CC"><b><a href="../reference/api/org/eclipse/team/core/RepositoryProvider.html">RepositoryProvider</a></b></font>.canHandleLinkedResources()</b> 
-  method to return <strong>true</strong>. Once this is done, linked resources 
-  will be allowed to exist in projects shared with that repository provider. However, 
-  the repository provider must take steps to ensure that linked resources are 
-  handled properly. As mentioned above, it is strongly suggested that repository 
-  providers ignore all linked resources. This means that linked resources (and 
-  their children) should be excluded from the actions supported by the repository 
-  provider. Furthermore, the repository provider should use the default move and 
-  delete behavior for linked resources if the repository provider implementation 
-  overrides the default <a href="../reference/api/org/eclipse/core/resources/team/IMoveDeleteHook.html"><b>IMoveDeleteHook</b></a>.</p>
-<p>Team providers can use <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>.<b>isLinked() 
-  </b>to determine if a resource is a link. However, this method only returns 
-  true for the root of a link. The following code segment can be used to determine 
-  if a resource is the child of a link.</p>
-<pre><font color="#4444CC">String linkedParentName = resource.getProjectRelativePath().segment(0);
-IFolder linkedParent = resource.getProject().getFolder(linkedParentName);
-boolean isLinked = linkedParent.isLinked();</font></pre>
-<p>Repository providers should ignore any resource for which the above code evaluates 
-  to <strong>true</strong>.</p>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_private.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_resources_private.htm
deleted file mode 100644
index 33fade9..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_private.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Team private resources</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Team private resources</h3>
-<p>It is common for repository implementations to use extra files and folders to
-store information specific about the repository implementation.&nbsp; Although
-these files may be needed in the workspace, they are of no interest to other
-plug-ins or to the end user.</p>
-<p>Team providers may use <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>.<b>setTeamPrivateMember(boolean)
-</b>to indicate that a resource is private to the implementation of a team
-provider. Newly created resources are not private members by default, so this
-method must be used to explicitly mark the resource as team private.&nbsp; A
-common use is to mark a subfolder of the project as team private when the
-project is configured for team and the subfolder is created.</p>
-<p>Other resource API that enumerates resources (such as resource delta trees)
-will exclude team private members unless explicitly requested to include
-them.&nbsp; This means that most clients will not &quot;see&quot; the team
-private resources and they will not be shown to the user.&nbsp; The resource
-navigator does not show team private members by default, but users can indicate
-via Preferences that they would like to see team private resources.</p>
-<p>Attempts to mark projects or the workspace root as team private will be
-ignored.</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_projects.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_resources_projects.htm
deleted file mode 100644
index ed657b4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_resources_projects.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Project sets</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Project sets</h3>
-<p>Since the resources inside a project under version control are kept in the
-repository, it is possible to share projects with team members by sharing a
-reference to the repository specific information needed to reconstruct a project
-in the workspace.&nbsp; This is done using a special type of file export for <b>team
-project sets</b>.&nbsp;&nbsp;</p>
-<p><img src="images/projectset.gif" alt="" border="0" width="470" height="594"></p>
-<p>The <a href="../reference/extension-points/org_eclipse_team_core_projectSets.html"><b>org.eclipse.team.core.projectSets</b></a>
-extension point allows repository providers to declare a class that implements
-project saving for projects under their control.&nbsp; When the user chooses to
-export project sets, only the projects configured with repositories that define
-project sets are shown as candidates for export.</p>
-<p>For example, the CVS client declares the following:</p>
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.team.core.projectSets&quot;&gt;
-	&lt;projectSet id=&quot;org.eclipse.team.cvs.core.cvsnature&quot; class=&quot;org.eclipse.team.internal.ccvs.ui.CVSProjectSetSerializer&quot;/&gt;
-&lt;/extension&gt;</font></pre>
-<p>The specified class must implement <a href="../reference/api/org/eclipse/team/core/IProjectSetSerializer.html"><b>IProjectSetSerializer</b></a>.</p>
-<p>
-   &nbsp;
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize.htm
deleted file mode 100644
index 45fdf73..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Synchronization Support</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Synchronization Support</H2>
-<P> Synchronization can be defined as the workflows relating to keeping local 
-  resources in sync with variants of those resources found somewhere else. The 
-  task of synchronizing a local workspace with another location can be divided 
-  into two subtasks:</p>
-<ul>
-  <li>Providing and maintaining the list of resources that are out-of-sync.</li>
-  <li>Displaying this list to the user in different ways depending on their current 
-    task or workflow.</li>
-</ul>
-<P>The first subtask is addressed by the Team Core Subscriber API while the second 
-  is addressed by various UI components built on top of this API.</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_example.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_example.htm
deleted file mode 100644
index f26cc74..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_example.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Example</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Example</H2>
-<P>
-how to put all the pieces together
-</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_intro.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_intro.htm
deleted file mode 100644
index 75aced6..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_intro.htm
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Introduction to workpsace synchronization</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Introduction to workpsace synchronization</h2>
-<p>The synchronization API focuses on synchronizing resources in the local workspace 
-  with counterparts at another location. In most cases, the mapping of the local 
-  resources to another location will be associated with a repository provider. 
-  However, the API is general and can be used for other types of mapping, such 
-  as deployment using FTP or WebDAV. </p>
-<h3>Terminology </h3>
-<P>Before the synchronization API is described, it is helpful to present some 
-  of the terminology and concepts that apply when discussing workspace synchronization.</p>
-<blockquote> 
-  <p><em>Provider</em>: A provider manages a mapping from a set of local resources 
-    to a remote location. In many cases, the provider may correspond to an implementaion 
-    of RepositoryProvider but this is not a requirement.</p>
-  <p><em>Resource Variant</em>: A local resource that is mapped to a resource 
-    that exists at another location can be referred to as a variant of that resource. 
-    That is, the resources are usually very similar but may differ slightly (either 
-    due to modificatons to the local resource or changes made the remote copy 
-    made by other users). We take a local workspace centric view of this, referring 
-    to the local copy as the resource and any remote copy as resource variants.</p>
-  <p><em>Resource Variant Tree</em>: A resource variant tree is a tree of resource 
-    variants that correspond to a resource tree in the workspace. A resource variant 
-    tree may represent the latest resource variants on a trunk or branch of a 
-    code repository or a version of project or folder.</p>
-  <p><em>Two-way vs. Three-way Synchronization</em>: There are two basic types 
-    of synchronization state determination: two-way and three-way. A two-way comparison 
-    only considers the local resource and a single resource variant, referred 
-    to as the remote resource variant. This type of comparison can only show the 
-    differences between the two resources but cannot offer hints as to how the 
-    changes interelate. Most code repository systems support a three-way comparison 
-    for synchronization state determination. This type of comparision involves 
-    the local resource, a remote resource variant and a base resource variant. 
-    The base resource variant represents a common ancestor for the local and remote 
-    resources. This allows for more sophisticated synchronization states that 
-    indicate the direction of the change.</p>
-</blockquote>
-<h3>Three-way Synchronization</h3>
-<p>Implemetors of the RepositoryProvider API are typically code repositories that 
-  support three-way synchronization. Underneath the hood, these implementations 
-  provide an infrastructure for managing the synchronization state of resources. 
-  Although the specifics of each implementation differ, there is commonality in 
-  their general operation. The following list descibes that basic states of a 
-  resouce that must be maintained by the provider.</p>
-<ul>
-  <li><em>local resource is synced with the remote</em>: when a resource is loaded 
-    from or written to a remote location, it is consider in-sync with the remote 
-    variant. At this point, the local timestamp and remote timestamp are recorded 
-    to support future synchronization state checks.</li>
-  <li><em>local resource is modified</em>: If the recorded in-sync local modification 
-    timestamp differs from the actual timestamp, the resource is locally modified.</li>
-  <li><em>remote resource is modified</em>: If the timestamp of the remote resource 
-    variant differs from the recorded remote timestamp, then the resource has 
-    been remotely modified (most likely by a 3rd party).</li>
-</ul>
-<p>For each resource, the provider must persist the timestamps obtained when a 
-  resource is synced so that it can later determine if their are local and remote 
-  changes. The synchronization state is actually a bit more complex than this 
-  but these three states cover the basics. For instance, it is possible fro a 
-  resource to be modified both locally and remotely. Also, additon states exist 
-  for cases where resources have been added or removed either locally or remotely.</p>
-<h3>Querying Synchronization State</h3>
-<p>The purpose of the synchronization API is to ease the task of implementing 
-  different ways of presenting the synchronization state of resources. As such, 
-  the API requires a means to query the synchronization state of resources but 
-  does not require a means to affect the state. The means of affecting the state 
-  is left to the provider implementor (although the UI does provide hooks for 
-  adding provider specific menu items to menus). The core API piece for accessing 
-  the synchronization state of resources is the Subscriber API.</p>
-<p>A subscriber provides access to the synchronization state between the resources 
-  in the local workspace and a set of resource variants for these resources using 
-  either a two-way or three-way comparison, depending on the nature of the subscriber. 
-  A subscriber provides the following capabilities:</p>
-<blockquote> 
-  <p><strong>local workspace traversal</strong>: a subscriber supports the traversal 
-    of the local workspace resources that are supervised by the subscriber. As 
-    such, the subscriber has a set of root resources that define the workspace 
-    subtrees under the subscriber's control, as well as a <em>members</em> method 
-    that returns the supervised members of a workspace resource. This traversal 
-    differs from the usual workspace resource traversal in that the resources 
-    being traversed may include resources that do not exist locally, either because 
-    they have been deleted by the user locally or created by a 3rd party.</p>
-  <p><strong>resource synchronization state determination</strong>: For supervised 
-    resources, the subscriber provides access to the synchronization state of 
-    the resource, including access to the variants of the resource. For each supervised 
-    resource, the subscriber provides a <em>SyncInfo</em> object that contains 
-    the synchronization state and the variants used to determine the state. The 
-    subscriber also provides an <em>IResourceVariantComparator</em> which determines 
-    whether two-way or three-way comparison is to be used and provides the logic 
-    used by the <em>SyncInfo</em> to comparing resource variants when determining 
-    the synchronization state.</p>
-  <p><strong>refresh of synchronization state and change notification</strong>: 
-    Clients can react to changes that happen to local resources by listening to 
-    the Core resource deltas. When a local resource is changed, the synchronization 
-    state of the resource can then be re-obtained from the subscriber. However, 
-    clients must explicilty query the server to know if there are changes to the 
-    resource variants. For subscribers, this process is broken up into two parts. 
-    A client can explicitly <em>refresh</em> a subscriber. In response the subscriber 
-    will obtain the latest state of the resource variants from the remote location 
-    and fire synchronization state change events for any resource variants that 
-    have changed. The change notification is separate from the refresh since there 
-    may be other operations that contact the remote location and obtain the latest 
-    remote state.</p>
-</blockquote>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_subscriber.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_subscriber.htm
deleted file mode 100644
index c6e76b9..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_subscriber.htm
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Adding synchronization support to your provider</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Adding synchronization support to your provider</H2>
-<P> This section presents a two perspectives on implementing a subscriber on top 
-  of a provider. The first assumes that there is no exisiting synchronization 
-  infrastructure and illustrates how to use some API that is provided to maintain 
-  the synchronization state. The second assumes that there is an existing synchronization 
-  infrastructure, perhaps associated with a repository provider.</p>
-<h3>Implementing a Subscriber From Scratch</h3>
-<p>This first example assumes that there is no existing infrastructure for maintaining 
-  the synchronization state of the local workspace. When implementing a subscriber 
-  from scratch, you can make use of some additional API provided in the <em>org.eclipse.team.core</em> 
-  plugin. The <em>org.eclipse.team.core.variants</em> package contains two subclasses 
-  of <em>Subscriber</em> which can be used to simplify implementation. The first 
-  is <em>ResourceVariantTreeSubscriber</em> which will be discussed in the second 
-  example below. The second is a subclass of the first: <em>ThreeWaySubscriber</em>. 
-  This subscriber implementation provides several helpful classes for managing 
-  the synchronization state of a local workspace. If you do not have any existing 
-  infrastructure, this is a good place to start. </p>
-<p>Implementing a subscriber from scratch will be illustrated using the file system 
-  example available in the <em>org.eclipse.team.examples.filesystem</em> plugin. 
-  The code in the following description is kept to a minimum since it is available 
-  from the dev.eclipse.org repository. Although not technicaly a three-way subscriber, 
-  the file system example can still make good use of this infrastructure. The 
-  FTP and WebDav plugins also are built using this infrastructure.</p>
-<h4>ThreeWaySubscriber</h4>
-<p>For the file system example, we already had an implementation of a <em>RepositoryProvider</em> 
-  that associated a local project with a file system location where the local 
-  contents were mirrored. <em>FileSystemSubscriber</em> was created as a subclass 
-  of <em>ThreeWaySubscriber</em> in order to make use of a <em>ThreeWaySynchronizer</em> 
-  to manage workpace synchronization state. Subsclasses of this class must do 
-  the following:</p>
-<ul>
-  <li>create a <em>ThreeWaySynchronizer</em> instance to manage the local workspace 
-    synchronization state.</li>
-  <li>create an instance of a <em>ThreeWayRemoteTree</em> subclass to provide 
-    remote tree refresh. </li>
-  <ul>
-    <li>The class <em>FileSystemRemoteTree</em> was defined for this purpose</li>
-  </ul>
-  <li>implement a method to create the resource variant handles used to calculate 
-    the synchronization state. 
-    <ul>
-      <li>The class <em>FileSystemResourceVariant</em> (a subclass of <em>CachedResourceVariant</em>) 
-        was defined for this</li>
-    </ul>
-  </li>
-  <li>implement the <em>roots</em> method. 
-    <ul>
-      <li>The roots for the subscriber are all the projects mapped to the <em>FileSystemProvider</em>. 
-        Callbacks were added to <em>FileSystemProvider</em> in order to allow 
-        the <em>FileSystemSubscriber</em> to generate change events when projects 
-        are mapped and unmapped.</li>
-    </ul>
-  </li>
-</ul>
-<p>In addition to the subscriber implementation, the get and put operations for 
-  the file system provider were modified to update the synchronization state in 
-  the <em>ThreeWaySynchronizer</em>. The operations are implemented in the class 
-  <em>org.eclipse.team.examples.filesystem.FileSystemOperations</em>.</p>
-<h4>ThreeWaySynchronizer</h4>
-<p>ThreeWaySynchronizer manages the synchronization state between the local workspace 
-  and a remote location. It caches and persists the local, base and remote timestamps 
-  in order to support the efficient calculation of the synchronization state of 
-  a resource. It also fires change notifications to any registered listeners. 
-  The <em>ThreeWaySubscriber</em> translates these change events into the proper 
-  format to be sent to listeners registered with the subscriber.</p>
-<p>The <em>ThreeWaySynchronizer</em> makes use of Core scheduling rules and locks 
-  to ensure thread safety and provide change notification batching.</p>
-<h4>ThreeWayRemoteTree</h4>
-<p>A <em>ThreeWayRemoteTree</em> is a subclass of <em>ResourceVariantTree</em> 
-  that is tailored to the <em>ThreeWaySubscriber</em>. It must be overridden by 
-  clients to provide the mechanism for fetching the remote state from the server. 
-  <em>ResourceVariantTree</em> is discussed in more detail in the next example.</p>
-<h4>CachedResourceVariant</h4>
-<p>A <em>CachedResourceVariant</em> is a partial implementation of <em>IResourceVariant</em> 
-  that caches any fetched contents for a period of time (currently 1 hour). This 
-  is helpful since the contents may be accessed several times in a short period 
-  of time (for example, to determine the synchronization state and display the 
-  contents in a compare editor). Subclasses must still provide the unique content 
-  identifier along with the byte array that can be persisted in order to recreate 
-  the resource variant handle.</p>
-<h3>Building on Top of Existing Workspace Synchronization</h3>
-<p>Many repository providers may already have a mechanism for managing their synchronization 
-  state (e.g. if they have exisitng plugins). The <em>ResourceVariantTreeSubscriber</em> 
-  and its related classes provide the ability to build on top of an existing synchronization 
-  infrastrucuter. For example, this is the superclass of all of the CVS subscribers.</p>
-<h4>ResourceVariantTreeSubscriber</h4>
-<p>As was mentioned in the previous example, the <em>ThreeWaySubscriber</em> is 
-  a subclass of <em>ResourceVariantTreeSubscriber</em> that provides local workspace 
-  synchronization using a <em>ThreeWaySynchronizer</em>. Subclasses of <em>ResourceVariantTreeSubscriber</em> 
-  must provide:</p>
-<ul>
-  <li>
-    <p>Subclasses of <em>ResourceVariantTree</em> (or <em>AbstractResourceVariantTree</em>) 
-      that provide the behavior for traversing and refreshing the remote resource 
-      variants and, for subscribers that support three-way comparisons, the base 
-      resource variants.</p>
-  </li>
-  <li>An implementation of <em>IResourceVariantComparator</em> that performs the 
-    two-way or three-way comparison for a local resource and its base and remote 
-    resource variants.It is common to also provide a subclass of <em>SyncInfo</em> 
-    in order to customize the synchronization state determination algorithm. </li>
-  <li>An implementation of the <em>roots</em> method for providing the roots of 
-    the subscriber and an implementation of the <em>isSupervised</em> method for 
-    detemining what resources are supervised by the subscriber.</li>
-</ul>
-<p>The other capabilities of the subscriber are implemented using these facilities.</p>
-<h4>ResourceVariantTree</h4>
-<p><em>ResourceVariantTree</em> is a concrete implementation of <em>IResourceVariantTree</em> 
-  that provides the following:</p>
-<ul>
-  <li>traversal of the resource variant tree</li>
-  <li>logic to merge the previous resource variant tree state with the current 
-    fetched state.</li>
-  <li>caching of the resource variant tree using a <em>ResourceVariantByteStore</em>.</li>
-</ul>
-<p>The following must be implemented by subclasses:</p>
-<ul>
-  <li>creation of resource variant handles from the cached bytes that represent 
-    a resource variant</li>
-  <li>fetching of the current remote state from the server</li>
-  <li>creation of the byte store instance used to cache the bytes that uniquely 
-    identify a resource variant</li>
-</ul>
-<p>Concreate implementations of <em>ResourceVariantByteStore</em> are provided 
-  that persist bytes accross workbench invocations (<em>PersistantResourceVariantByteStore</em>) 
-  or cached the bytes only for the current session (<em>SessionResourceVariantByteStore</em>). 
-  However, building a subscriber on top of an exisiting workspace synchronization 
-  infrastructure will typically requie the implementation of <em>ResourceVariantByteStore</em> 
-  subclasses that interface with the underlying synchronizer. For example the 
-  <em>ThreeWayRemoteTree</em> makes use of a byte store implementation that stores 
-  the remote bytes in the <em>ThreeWaySynchronizer</em>.</p>
-<p>The creation of resource variant handles for this exampel does not differ from 
-  the previous exampel except that the handles are requested from a resource variant 
-  tree instance instead of the subscriber.</p>
-<h4>IResourceVariantComparator</h4>
-<p>Each subscriber has a <em>IResourceVariantComparator</em> which is used by 
-  the <em>SyncInfo</em> class when determining the synchronization state of a 
-  resource. The resource comparator determines whether the comparison is two-way 
-  or three-way and provides a method to compare a local resource with a resource 
-  variant and another method to compare two resource variants (if the comparison 
-  is three-way). The resource comparator needs to access the workspace synchronization 
-  state when comparing a lcoal resource to a resource variant. A <em>ThreeWayResourceComparator 
-  </em>is provided for use with the ThreeWaySynchronizer. Providers that have 
-  their own workspace synchronization infrastructure need to provide an IResourceVariantComparator 
-  implementation that accesses the local resource state.</p>
-<h4>SyncInfo</h4>
-<p>The <em>SyncInfo</em> class is used to communicate the synchronization state 
-  of a resource. In addition the class contains the algorithm used to determine 
-  the synchronization state given the local, base and remote resources as well 
-  as the resource comparator. Although it is possible to use the <em>SyncInfo</em> 
-  class without modification, in practice, it is often necessary for a subscriber 
-  to subclass it in order to tailor the synchronization state determination.</p>
-<h3>How Does IRemoteResource/IRemoteSyncElement Relate to the Subsciber API</h3>
-<p><em>IResourceVariant</em> is similar to <em>IRemoteResource</em>. However, 
-  there is no API on <em>IResourceVariant</em> for obtaining the memebrs of the 
-  variant if it is a container. This has been moved to the <em>IResourceVariantTree</em>. 
-  This was done to allow the traversal and refresh to be expressed more cleanly. 
-  Also, the contents of an <em>IResourceVariant</em> are fetched indirectly by 
-  obtaining an <em>IStorage</em> from the handle and then obtaining the contents 
-  from the <em>IStorage</em>. This was done to support the local caching of remote 
-  contents. The <em>CachedResourceVariant</em> implementation of <em>IResourceVariant</em> 
-  provides API that supports content caching.</p>
-<p>The behavior of <em>IRemoteSyncElement</em>/<em>RemoteSyncElement</em> has 
-  been separated into several classes to get a better separation of concerns. 
-  The <em>SyncInfo</em> class provides the synchronization state determination 
-  while the <em>ResourceVariantTree</em> capture the logic to refresh the remote 
-  state. Traversal is provides by the <em>Subscriber</em> class itself.</p>
-<h3>Implementing a Two-way Compare Subscriber</h3>
-<P>To be added</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_uicomponents.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_uicomponents.htm
deleted file mode 100644
index 4728a0c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_uicomponents.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Additional support for displaying synchronization states</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Additional support for displaying synchronization states</H2>
-<P>
-what are the generic ui pieces...
-</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_view_integration.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_view_integration.htm
deleted file mode 100644
index 2d937e2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_synchronize_view_integration.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Synchronize View Integration</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>Synchronize View Integration</H2>
-<P>
-Explain how to get into the sync view... participants..
-</p>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_ui.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_ui.htm
deleted file mode 100644
index 4123e1d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_ui.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Building a team UI</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-   Building a team UI
-</h2><p>
-   The team UI plug-in is based on the philosophy that the team subsystem should
-   provide simple hooks and slots for providers to add their UI
-   implementation.&nbsp; Rather than define standard team operations, the team
-   plug-in leaves the workflow up to the provider implementation.&nbsp; The team
-   UI implements a few standard wizards and dialog pages that providers can
-   enhance, such as the project configuration wizard, the project set export
-   dialog, and the preferences for file types and ignored files.&nbsp; More
-   importantly, it also defines a
-   &quot;Team&quot; slot for actions and preferences that serve as a single
-   point of integration for UI contributed by provider's.&nbsp; In this way, the
-   user learns where to find all team related function.
-</p>
-<p>To build a team UI, you must start with basic design work.&nbsp; Identify the actions that your
-repository supports and in what views and editors these actions should be accessible.&nbsp; The implementation for your UI is done with the <a href="workbench_basicext.htm">standard
-workbench extension points</a>.&nbsp; In addition, you can define your own
-preferences which plug in to the standard framework.&nbsp; You may even need to
-build your own views to present repository specific information and operations.
-(The CVS client implements its own views for synchronizing with the repository
-and navigating the repository.)
-</p>
-<p>In short, building a team UI involves knowledge of a few team-specific UI
-classes, but is mostly accomplished using workbench UI design and development
-principles.
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_ui_actions.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_ui_actions.htm
deleted file mode 100644
index 5badd62..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_ui_actions.htm
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Adding team actions</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-   Adding team actions
-</h3>
-<p>The team UI plug-in defines a popup menu extension in order to consolidate
-all team-related actions in one place.&nbsp; The team menu includes many
-subgroup slots so that team provider plug-ins can contribute actions and have
-some amount of control over the order of items in the menu.&nbsp; The following
-markup is from the team UI's plug-in manifest:</p>
-<pre><font color="#4444CC">&lt;extension
-     point=&quot;org.eclipse.ui.popupMenus&quot;&gt;
-	&lt;objectContribution
-       	   id=&quot;org.eclipse.team.ui.ResourceContributions&quot;
-           objectClass=&quot;org.eclipse.core.resources.IResource&quot; adaptable=&quot;true&quot;&gt;
-		&lt;menu
-			id=&quot;<b>team.main</b>&quot;
-			path=&quot;additions&quot;
-			label=&quot;%TeamGroupMenu.label&quot;&gt;
-			<b>&lt;separator name=&quot;group1&quot;/&gt;
-			&lt;separator name=&quot;group2&quot;/&gt;
-			&lt;separator name=&quot;group3&quot;/&gt;
-			&lt;separator name=&quot;group4&quot;/&gt;
-			&lt;separator name=&quot;group5&quot;/&gt;
-			&lt;separator name=&quot;group6&quot;/&gt;
-			&lt;separator name=&quot;group7&quot;/&gt;
-			&lt;separator name=&quot;group8&quot;/&gt;
-			&lt;separator name=&quot;group9&quot;/&gt;
-			&lt;separator name=&quot;group10&quot;/&gt;</b>
-			&lt;separator name=&quot;targetGroup&quot;/&gt;
-			&lt;separator name=&quot;projectGroup&quot;/&gt;
-		&lt;/menu&gt;
-	... 
-&lt;/extension&gt;</font></pre>
-<p>A team menu is added to the popup menu of all views that show resources (or
-objects that adapt to resources.)&nbsp; Your plug-in can use the id of this menu
-and the separator groups in order to add your own menu items.&nbsp; There is
-nothing to keep you from defining your own popup menus, action sets, or view and
-editor actions.&nbsp; However, adding your actions to the predefined team menu
-makes it easier for the end user to find your actions.</p>
-<p>Let's look at a CVS action that demonstrates some interesting points:</p>
-<pre><font color="#4444CC">&lt;extension
-    point=&quot;org.eclipse.ui.popupMenus&quot;&gt;
-     &lt;objectContribution
-           objectClass=&quot;org.eclipse.core.resources.IFile&quot;
-           adaptable=&quot;true&quot;
-           id=&quot;org.eclipse.team.ccvs.ui.IFileContributions&quot;&gt;
-        &lt;filter
-              <b>name=&quot;projectPersistentProperty&quot;</b>
-              <b>value=&quot;org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature&quot;&gt;</b>
-        &lt;/filter&gt;
-        &lt;action
-              label=&quot;%IgnoreAction.label&quot;
-              tooltip=&quot;%IgnoreAction.tooltip&quot;
-              class=&quot;org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction&quot;
-              menubarPath=&quot;<b>team.main/group3</b>&quot;
-              helpContextId=&quot;org.eclipse.team.cvs.ui.team_ignore_action_context&quot;
-              id=&quot;org.eclipse.team.ccvs.ui.ignore&quot;&gt;
-        &lt;/action&gt;
-	...</font></pre>
-<p>Note that the action is contributed using the <a href="../reference/extension-points/org_eclipse_ui_popupMenus.html"><b>org.eclipse.ui.popupMenus
-</b>
-</a>workbench extension point.&nbsp; Here are some team-specific things
-happening in the markup:</p>
-<ul>
-  <li>the action is filtered by a project persistent property which identifies
-    team providers.&nbsp; The value of the property must be of the format <b>&quot;org.eclipse.team.core.repository=&lt;your
-    repository id&gt;&quot;</b> where <b>&lt;your repository id&gt;</b> is the <b>id</b>
-    provided in the <a href="../reference/extension-points/org_eclipse_team_core_repository.html"> <b> org.eclipse.team.core.repository</b></a> 
-    markup.&nbsp; This filter ensures that the CVS popup menu items only appear for
-    files that appear in projects that have been mapped to the CVS repository
-    id.</li>
-  <li>the action is added to a group in the menu that was specified above in the
-    team UI plug-in</li>
-</ul>
-<p>The implementation of an action is largely dependent on your specific
-provider.</p>
-<p>&nbsp;</p>
-<p>
-   &nbsp;
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_ui_decorators.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_ui_decorators.htm
deleted file mode 100644
index 2300f20..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_ui_decorators.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Team decorators</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Team decorators </h3>
-<p>Since any view that shows resources can contain projects that are configured
-with different team providers, it is helpful for team providers to contribute <a href="workbench_advext_decorators.htm">decorators</a>
-that distinguish resources configured for their repository.&nbsp; The CVS client
-uses decorators to show information such as a dirty flag, tags, keywords, and
-revisions.
-</p>
-
-
-
-
-<p><img src="images/teamdecorators.gif" alt="Resource navigator with team decorators turned on" border="0" width="304" height="279">
-</p>
-
-
-
-
-<p>Some decorators may be expensive to compute, so it's a good idea to allow the
-users some control over the use, or even content, of decorators.&nbsp; The CVS
-client provides a preference page that allows users to control the presentation
-and content of decorators.
-</p>
-
-
-
-
-<p>See <a href="../reference/extension-points/org_eclipse_ui_decorators.html"><b>org.eclipse.ui.decorators</b></a>
-for a complete description of the decorator extension point.&nbsp; The CVS
-decorator markup is as follows:
-</p>
-
-
-
-
-<pre><font color="#4444CC">&lt;extension
-     point=&quot;org.eclipse.ui.decorators&quot;&gt;
-  &lt;decorator
-        objectClass=&quot;org.eclipse.core.resources.IResource&quot;
-        adaptable=&quot;true&quot;
-        label=&quot;%DecoratorStandard.name&quot;
-        state=&quot;false&quot;
-        class=&quot;org.eclipse.team.internal.ccvs.ui.CVSDecorator&quot;
-        id=&quot;org.eclipse.team.cvs.ui.decorator&quot;&gt;
-     &lt;description&gt;
-        %DecoratorStandard.description
-     &lt;/description&gt;
-  &lt;/decorator&gt;
-&lt;/extension&gt;</font></pre>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/team_ui_prefs.htm b/bundles/org.eclipse.platform.doc.isv/guide/team_ui_prefs.htm
deleted file mode 100644
index 27e947e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/team_ui_prefs.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>Adding preferences and properties</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Adding preferences and properties</h3>
-<p><a href="preferences_prefs.htm">Preferences</a> and <a href="preferences_prop.htm">properties</a>
-can be contributed by team UI plug-ins using the standard techniques.&nbsp; The
-only difference for a team plug-in is that preferences should be contributed
-using the team category, so that all team related preferences are grouped
-together.&nbsp; The CVS markup for the main preferences page looks like this:</p>
-<pre><font color="#4444CC">&lt;extension
-      point=&quot;org.eclipse.ui.preferencePages&quot;&gt;
-   &lt;page
-         name=&quot;%PreferencePage.name&quot;
-         <b>category=&quot;org.eclipse.team.ui.TeamPreferences&quot;</b>
-         class=&quot;org.eclipse.team.internal.ccvs.ui.CVSPreferencesPage&quot;
-         id=&quot;org.eclipse.team.cvs.ui.CVSPreferences&quot;&gt;
-   &lt;/page&gt;
-&lt;/extension&gt;</font></pre>
-<p>The preferences dialog shows the CVS preferences underneath the team
-category.</p>
-<p><img src="images/teamprefs.gif" alt="" border="0" width="649" height="541"></p>
-<p>&nbsp;</p>
-<p>Properties are added as described by <a href="../reference/extension-points/org_eclipse_ui_propertyPages.html"><b>org.eclipse.ui.propertyPages</b></a>.&nbsp;
-There is no special team category for properties, since a resource can only be
-configured for one repository provider at a time.&nbsp; However, you must set up
-your property page to filter on the team project persistent property (similar to
-the way we filtered resources for popup menu actions.)</p>
-<pre><font color="#4444CC">
-  &lt;extension
-    point=&quot;org.eclipse.ui.propertyPages&quot;&gt;
-     &lt;page
-           objectClass=&quot;org.eclipse.core.resources.IFile&quot;
-           adaptable=&quot;true&quot;
-           name=&quot;%CVS&quot;
-           class=&quot;org.eclipse.team.internal.ccvs.ui.CVSFilePropertiesPage&quot;
-           id=&quot;org.eclipse.team.ccvs.ui.propertyPages.CVSFilePropertiesPage&quot;&gt;
-        &lt;filter
-<b>              name=&quot;projectPersistentProperty&quot;
-              value=&quot;org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature&quot;&gt;
-</b>        &lt;/filter&gt;
-     &lt;/page&gt;
-     ...</font></pre>
-<p>
-   &nbsp;
-</p>
-
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench.htm
deleted file mode 100644
index 7acbf2c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Plugging into the workbench
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Plugging into the workbench</H1>
-<P >
-By now, you should be quite familiar with the operation of the workbench and how it uses views and editors to display information.
-If not, read the quick tour of the workbench below.</P>
-<P >
-The sections following the quick tour will look at the workbench user interface from an API
-perspective.&nbsp; We will show how a plug-in can contribute to the workbench
-UI.</P>
-<h2>
-Quick tour of the workbench</h2>
-<P >
-The workbench is the cockpit for navigating all of the function provided by plug-ins.
-By using the workbench, we can navigate resources and we can view and edit
-the content and properties of these resources. </P>
-<P >
-When you open your workbench on a set of projects, it looks something like this.</P>
-
-<p align="left"><img src="images/workbench.gif" alt="Workbench with navigator view, editor, outliner, and task list" border="0" width="642" height="470">
-<P >
-The workbench is just a frame that can present various visual parts. These parts fall into two major categories:
-<b> views</b> and <b>editors</b>.</P>
-<ul>
-  <li>
-<b>
-Editors</b> allow the user to edit something in the workbench. Editors are &quot;document-centric,&quot; much like a file system editor.
-Like file system editors, they follow an open-save-close lifecycle.&nbsp; Unlike
-file system editors, they are tightly integrated into the workbench.</li>
-  <li>
-<b>
-Views</b> provide information about some object that the user is working with in the workbench. Views often change their content as the user selects different objects in the workbench.&nbsp;
-Views often support editors by providing information about the content in the
-active editor.</li>
-</ul>
-
-
-<h3>
-Views</h3>
-<P >
-The workbench provides several standard views that allow the user to navigate or view something of interest. For example, the resource navigator lets the user navigate the workspace and select resources.</P>
-
-<img src="images/navigator.gif" alt="" border="0" width="160" height="164">
-
-
-
-<h3>
-Editors</h3>
-<P >
-Editors allow the user to open, edit, and save objects. The workbench provides a standard editor for text resources.</P>
-
-<img src="images/texteditor.gif" alt="" border="0" width="375" height="186">
-<P >
-Additional editors, such as Java code editors or HTML editors, can be supplied by
-plug-ins</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_actionfilters.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_actionfilters.htm
deleted file mode 100644
index fa28032..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_actionfilters.htm
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Boolean expressions and action filters
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Boolean expressions and action filters</H2>
-<p>
-When a plug-in contributes an action to the workbench UI using one of the menu
-extension points, it can specify the conditions under which the menu item is
-visible and/or enabled in the menu.&nbsp; In addition to supplying simple enabling
-conditions, such as selection counts and selection classes, plug-ins can use <b>boolean
-expressions</b>  to make an action visible or enabled.</p>
-
-
-<h3>
-Boolean expressions</h3>
-
-
-<P CLASS="CellBody">
-The boolean expressions can contain simple boolean operators (NOT, AND, OR) and predefined expressions that
-can evaluate the following conditions:</P>
-<ul>
-  <li>
-    <p CLASS="CellBody"><b>objectClass</b> - true if each object in the
-    selection subclasses or implements the class.</p>
-  </li>
-  <li>
-    <p CLASS="CellBody"><b>objectState</b> - true if the named attribute equals the specified value.&nbsp; <b><a href="../reference/api/org/eclipse/ui/IActionFilter.html">IActionFilter</a>
-    </b>assists in evaluating the expression.&nbsp; An action filter dynamically computes the enablement
-criteria for an action based on the target selection and the value of named
-attributes.</p>
-  </li>
-  <li>
-    <p CLASS="CellBody"><b>systemProperty</b> - true if the named system
-    property equals the specified value.</p>
-  </li>
-  <li>
-    <p CLASS="CellBody"><b>pluginState</b> - specifies whether the specified
-    plugin (by <b>id</b>) should be <b>installed</b> or <b>activated</b> </p>
-  </li>
-</ul>
-    <p CLASS="CellBody">For example, the following snippets represent enablement
-    expressions that could be used on a hypothetical action in an action set: </p>
-    <pre><font color="#4444CC">&lt;action id=&quot;org.eclipse.examples.actionEnablement.class&quot; 
-       label=&quot;Red Element&quot; 
-       menubarPath=&quot;additions&quot; 
-       class=&quot;org.eclipse.examples.actionEnablement.ObjectTestAction&quot;&gt; 
-       &lt;enablement&gt; 
-<b>	 &lt;and&gt;
-	   &lt;objectClass name=&quot;org.eclipse.examples.actionEnablement.TestElement&quot;/&gt; 
-           &lt;objectState name=&quot;name&quot; value=&quot;red&quot;/&gt; 
-	 &lt;/and&gt;
-</b>       &lt;/enablement&gt; 
-&lt;/action&gt; </font></pre>
-    <pre><font color="#4444CC">&lt;action id=&quot;org.eclipse.examples.actionEnablement.property&quot; 
-       label=&quot;Property&quot; 
-       menubarPath=&quot;additions&quot; 
-       class=&quot;org.eclipse.examples.actionEnablement.PropertyTestAction&quot;&gt; 
-       &lt;enablement&gt; 
-<b>           &lt;systemProperty name=&quot;MyTestProperty&quot; value=&quot;puppy&quot;/&gt; 
-</b>       &lt;/enablement&gt; 
-&lt;/action&gt; </font></pre>
-    <pre><font color="#4444CC">&lt;action id=&quot;org.eclipse.examples.actionEnablement.pluginState&quot; 
-       label=&quot;Installed&quot; 
-       menubarPath=&quot;additions&quot; 
-       class=&quot;org.eclipse.examples.actionEnablement.PluginTestAction&quot;&gt; 
-       &lt;enablement&gt; 
-           <b>&lt;pluginState id=&quot;x.y.z.anotherPlugin&quot; value=&quot;installed&quot;/&gt; </b>
-       &lt;/enablement&gt; 
-&lt;/action&gt; </font></pre>
-<p CLASS="CellBody">See the reference documentation of the extension points
-below for more elaborate samples of these expressions and a complete description of
-the XML.</p>
-
-
-<p>
-The following table lists extension points that contribute actions and
-summarizes how XML markup attributes and boolean expressions can be used to
-affect enablement.</p>
-
-
-<TABLE BORDER="1" width="671">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="118">
-<P CLASS="CellHeading">
-Extension point name</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="359">
-<P CLASS="CellHeading">
-Attributes affecting enablement</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="335">
-<P CLASS="CellHeading">
-Boolean expressions</P>
-</TH>
-</TR>
-<TR>
-<TD width="118">
-<P CLASS="CellBody">
-<b>
-<a href="../reference/extension-points/org_eclipse_ui_viewActions.html">
-viewActions</a></b>,</P>
-<P CLASS="CellBody"><b><a href="../reference/extension-points/org_eclipse_ui_editorActions.html">editorActions</a></b>,</P>
-<P CLASS="CellBody"><b><a href="../reference/extension-points/org_eclipse_ui_actionSets.html">actionSets</a></b></P>
-</TD>
-<TD width="359">
-<P CLASS="CellBody">
-<b>enablesFor</b> - specifies the selection count that must be met for the
-action to be enabled</P>
-<P CLASS="CellBody">
-<b>selection</b> <b>class</b> - the class that the selected objects must
-subclass or implement in order for the action to be enabled</P>
-<P CLASS="CellBody">
-<b>selection</b> <b>name</b> - a wild card filter that can be applied to the
-objects in the selection.</P>
-</TD>
-<TD width="335">
-<P CLASS="CellBody">
-<b>visibility</b> - a boolean expression.&nbsp; Controls whether the menu item
-is visible in the menu.</P>
-<P CLASS="CellBody">
-<b>enablement</b> - a boolean expression.&nbsp; Controls whether the menu item
-is enabled in the menu.&nbsp; The <b>enablesFor</b>  attribute and the <b>selection</b> <b>class</b>
-and <b>name</b>, and must be
-satisfied before applying the enablement expression.</P>
-</TD>
-</TR>
-<TR>
-<TD width="118">
-<P CLASS="CellBody">
-<b>
-<a href="../reference/extension-points/org_eclipse_ui_popupMenus.html">
-popupMenus</a></b></P>
-</TD>
-<TD width="359">
-<P CLASS="CellBody">
-(For object contributions only.)</P>
-<P CLASS="CellBody">
-<b>objectClass</b> - specifies the class that objects in the selection must
-subclass or implement</P>
-<P CLASS="CellBody">
-(For both object and viewer contributions)</P>
-<P CLASS="CellBody">
-<b>enablesFor</b> - specifies the selection count that must be met for the
-action to be enabled</P>
-<P CLASS="CellBody">
-<b>selection</b> <b>class</b> - the class that the selected objects must
-subclass or implement to enable the action</P>
-<P CLASS="CellBody">
-<b>selection</b> <b>name</b> - a wild card filter that can be applied to the
-objects in the selection.</P>
-<P CLASS="CellBody">
-&nbsp;</P>
-</TD>
-<TD width="335">
-<P CLASS="CellBody">
-(For both object and viewer contributions)</P>
-<P CLASS="CellBody">
-<b>visibility</b> - a boolean expression.&nbsp; Controls whether the menu item
-is visible in the menu.</P>
-<p CLASS="CellBody"><b>enablement</b> - a boolean expression.&nbsp; Controls
-whether the menu item is enabled in the menu.&nbsp;
-The <b>enablesFor</b>  attribute and the <b>selection</b> <b>class</b> and <b>name</b>, and must be
-satisfied before applying the enablement expression.
-</TD>
-</TR>
-</TABLE>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext.htm
deleted file mode 100644
index 066de25..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-More workbench extensions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-More workbench extensions</H2>
-<P >
-We'll see the readme tool extensions associated with wizards, preferences, properties, and dialogs in
-<a HREF="dialogs.htm" CLASS="XRef">Dialogs and wizards</a> and <a HREF="preferences.htm" CLASS="XRef"> Preferences and properties</a>.
-</P>
-
-<P >
-Next, we will look at some more advanced workbench extensions points that you may
-want to use.&nbsp; Since the readme tool does not contribute to all of these extension
-points, we will also look at example extensions that are implemented by the platform
-workbench, the platform help system, and Java tooling (JDT).</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_decorators.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_decorators.htm
deleted file mode 100644
index b544b97..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_decorators.htm
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.decorators</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-
-<H3>
-org.eclipse.ui.decorators</H3>
-
-
-
-<p>Your plug-in can use <b>decorators</b> to annotate the images for resources
-and other objects that appear in the workbench views.&nbsp; Decorators are
-useful when your plug-in adds functionality for existing resource types.&nbsp;
-Many of the standard workbench views participate in showing decorations.&nbsp;&nbsp;</p>
-
-
-<p>For example, PDE contributes decorators that allow you to distinguish between
-binary and source projects.</p>
-
-
-<p><img src="images/workbenchdecorators.gif" alt="Package explorer view with PDE decorators" border="0" width="221" height="178"></p>
-
-
-<p>The <b>com.example.sourceProject&nbsp; </b>project is the only source project
-shown in the navigator.&nbsp; Note how all of the other binary projects show the
-binary decorator at the top left of the Java project icon.&nbsp; This decorator
-is contributed by PDE using the <a href="../reference/extension-points/org_eclipse_ui_decorators.html"><b>org.eclipse.ui.decorators</b></a>
-extension point.</p>
-
-
-<pre><font color="#4444CC">&lt;extension
-         point=&quot;org.eclipse.ui.decorators&quot;&gt;
-      &lt;decorator
-            <b>lightweight=&quot;true&quot;
-</b>            <b>quadrant=&quot;TOP_LEFT&quot;</b>
-            adaptable=&quot;true&quot;
-            label=&quot;%decorator.label&quot;
-            <b>icon=&quot;icons/full/ovr16/binary_co.gif&quot;</b>
-            state=&quot;false&quot;
-            id=&quot;org.eclipse.pde.ui.binaryProjectDecorator&quot;&gt;
-         &lt;description&gt;
-            %decorator.desc
-         &lt;/description&gt;
-         &lt;enablement&gt;
-            ...
-         &lt;/enablement&gt;
-      &lt;/decorator&gt;
- &lt;/extension&gt;</font></pre>
-
-
-<p>There are several different ways to supply a decorator implementation.&nbsp;
-This markup uses the simplest way, known as a <b>declarative</b> <b>lightweight</b>
-decorator.&nbsp; When a declarative lightweight decorator is defined, the markup
-contains a complete description of the decorator's icon, placement, and enabling
-conditions.&nbsp; Declarative decorators are useful when only an icon is used to
-decorate the label.&nbsp; The plug-in need only specify the <b>quadrant</b> where the decorator should be
-overlayed on the regular icon and the <b>icon</b> for the overlay.&nbsp; As
-shown in the picture, the PDE binary icon is overlayed in the top left quadrant of the
-package icon.</p>
-
-
-<p>If your plug-in needs to manipulate the label text in addition to the icon,
-or if the type of icon is determined dynamically, you can use a non-declarative <b>lightweight</b>
- decorator.&nbsp; In this case, an implementation <b>class</b> that implements <a href="../reference/api/org/eclipse/jface/viewers/ILightweightLabelDecorator.html"><b>ILightweightLabelDecorator</b></a>
-must be defined.&nbsp; The designated class is responsible for supplying a prefix,
-suffix, and overlay image at runtime which are applied to the label.&nbsp; The mechanics of
-concatenating the prefix and suffix with the label text and performing the overlay
-are handled by the workbench code in a background thread.&nbsp; Thus, any work
-performed by your plug-in in its <a href="../reference/api/org/eclipse/jface/viewers/ILightweightLabelDecorator.html"><b>ILightweightLabelDecorator</b></a>
-implementation must be UI-thread safe.&nbsp; (See <a href="swt_threading.htm#syncExec">Executing
-code from a non-UI thread</a> for more details.)</p>
-
-
-<p>&nbsp; The following markup shows how the CVS
-client defines its decorator using this technique:</p>
-
-
-<pre><font color="#4444CC">&lt;extension
-         point=&quot;org.eclipse.ui.decorators&quot;&gt;
-    &lt;decorator
-            objectClass=&quot;org.eclipse.core.resources.IResource&quot;
-            adaptable=&quot;true&quot;
-            label=&quot;%DecoratorStandard.name&quot;
-            state=&quot;false&quot;
-            <b>lightweight= &quot;true&quot;</b>
-            <b>quadrant = &quot;BOTTOM_RIGHT&quot;</b>
-            <b>class=&quot;org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator&quot;</b>
-            id=&quot;org.eclipse.team.cvs.ui.decorator&quot;&gt;
-         &lt;description&gt;
-            %DecoratorStandard.desc
-         &lt;/description&gt;
-    &lt;/decorator&gt;
-&lt;/extension&gt;</pre></font>
-
-
-<p>Decorators are ultimately controlled by the user via the workbench <b>Label
-Decorations</b> preferences page.&nbsp;
-Individual decorators can be turned on and off.&nbsp; Even so, it is a good idea
-to design your decorators so that they do not overlap or conflict with existing
-platform SDK decorators.&nbsp;If multiple plug-ins contribute lightweight
-decorators to the same quadrant, the conflicts are resolved
-non-deterministically.&nbsp;&nbsp;</p>
-
-
-<p>Your plug-in may also do all of the image and label management
-itself.&nbsp; In this case, the <b>lightweight</b> attribute should be set to
-false and the <b>class </b>attribute should name a class that implements <a href="../reference/api/org/eclipse/jface/viewers/ILabelDecorator.html"><b>ILabelDecorator</b></a>.&nbsp;
-This class allows you to decorate the original label's image and text with your
-own annotations.&nbsp;&nbsp;It gives you increased flexibility since you aren't
-limited to prefixes, suffixes, and simple quadrant overlays.</p>
-
-
-<p>Other attributes of a decorator are independent of the particular
-implementation style.&nbsp; The <b>label</b> and <b>description</b> attributes
-designate the text that is used to name and describe the decorator in the
-preferences dialog.&nbsp; The <b>objectClass</b> names the class of objects to
-which the decorator should be applied.&nbsp; The <b>enablement</b> attribute
-allows you to describe the conditions under which the object should be
-decorated.&nbsp;&nbsp; The <b>adaptable</b> flag indicates
-whether objects that adapt to <b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a></b>
-should also be decorated.&nbsp; The <b>
-state</b> flag controls whether the decorator is visible by default.</p>
-
-
-<p> If your decorators include information that is
-expensive to compute or potentially distracting, you may want to contribute your
-own preferences that allow the user to further fine-tune the decorator once it
-is on.&nbsp; This technique is used by the CVS client.</p>
-
-
-<p><img src="images/cvsdecorators.gif" alt="CVS decorators preference page" border="0" width="709" height="541"></p>
-
-
-<p>&nbsp;</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_elementFactories.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_elementFactories.htm
deleted file mode 100644
index 9d08eac..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_elementFactories.htm
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.elementFactories</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-<H3>org.eclipse.ui.elementFactories</H3>
-<P >
-Element factories are used to recreate workbench model objects from data that was saved during workbench shutdown.</P>
-<P >
-Before we look closely at the element factory extension, we need to review a general technique
-that is used throughout the platform to add plug-in specific behavior to common platform model objects.</P>
-
-<H4>
-<a name="workbench_advext_adaptables">
-IAdaptables and workbench adapters</a></H4>
-<P >
-When browsing the various workbench classes, you will notice that many of the workbench interfaces extend the
-<b><a href="../reference/api/org/eclipse/core/runtime/IAdaptable.html"> IAdaptable</a></b> interface.</P>
-<P >
-Plug-ins use adapters to add specific behavior to pre-existing types in the system. For example, the workbench may want
-resources to answer a label and an image for display purposes. We know that it's not good design to add UI specific behavior to low-level objects, so how can we add this behavior to the resource types?</P>
-<P >
- Plug-ins can register adapters that add behavior to pre-existing types.
-Application code can then query an object for a particular adapter. If there is one registered for it,
-the application can obtain the adapter and use the new behaviors defined in the adapter.</P>
-<P >
-By providing a facility to dynamically query an adapter for an object, we can improve the flexibility of the system as it evolves. New adapters can be registered for platform types by new plug-ins without having to change the definitions of the original types. The pattern to ask an object for a particular
-adapter is as follows: </P>
-<font color='#4444CC'><pre>
-   //given an object o, we want to do &quot;workbench&quot; things with it.
-   if (!(o instanceof IAdaptable)) {
-      return null;
-   }
-   IWorkbenchAdapter adapter = (IWorkbenchAdapter)o.getAdapter(IWorkbenchAdapter.class);
-   if (adapter == null)
-      return null;
-   // now I can treat o as an IWorkbenchAdapter
-   ...
-</pre></font>
-<P >
-If there is no adapter registered for the object in hand, null will be returned as the adapter. Clients must be prepared to handle this case.
-There may be times when an expected adapter has not been registered.</P>
-<P >
-The workbench uses adapters to obtain UI information from the base platform types, such as
-<b><a href="../reference/api/org/eclipse/core/resources/IResource.html">IResource</a></b>.
-Adapters shield the base types from UI-specific knowledge and allow the workbench to evolve its interfaces without changing the definitions of the base. </P>
-<P >
-Without adapters, any class that might be passed around in the workbench API would have to implement the UI
-interfaces, which would increase the number of class definitions, introduces tight
-coupling, and create circular dependencies between the core and UI classes. With adapters, each class implements
-<b><a href="../reference/api/org/eclipse/core/runtime/IAdaptable.html"> IAdaptable</a></b>
-and uses the adapter registry to allow plug-ins to extend the behavior of the base types.</P>
-<P >
-Throughout the workbench code, you'll see cases where a platform core type is queried for an adapter.
-The query is used to obtain an object that knows how to answer UI oriented information about
-the type.</P>
-
-
-<H4>
-Element factories</H4>
-<P >
-When the workbench is shut down by the user, it must save the current state of the
-<b><a href="../reference/api/org/eclipse/core/runtime/IAdaptable.html"> IAdaptable</a></b>
-objects that are shown in the workbench. An object's state is stored by saving
-the primitive data parameters of the object in a special format, an
-<a href="../reference/api/org/eclipse/ui/IMemento.html"><b>IMemento</b></a>. The id of a factory that can recreate the object from an
-<a href="../reference/api/org/eclipse/ui/IMemento.html"><b>IMemento</b></a>
-is also stored and the data is saved in the file system.</P>
-<P >
-When the platform is restarted, the workbench finds the element factory associated with the
-<a href="../reference/api/org/eclipse/ui/IMemento.html"><b>IMemento</b></a>'s
-factory id. It finds the factory by checking the plug-in registry for contributions to the
-<a href="../reference/extension-points/org_eclipse_ui_elementFactories.html"><b> org.eclipse.ui.elementFactories</b></a> extension.</P>
-<P >
-The markup is pretty simple. We just have to specify the id of the factory and the corresponding class that implements the factory.</P>
-<P >
-The following code snippet is from the workbench <b>plugin.xml</b>.</P>
-<font color='#4444CC'><pre>
-&lt;extension
-         point=&quot;org.eclipse.ui.elementFactories&quot;&gt;
-      &lt;factory
-            class=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot;
-            id=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot;&gt;
-      &lt;/factory&gt;
-      &lt;factory
-            class=&quot;org.eclipse.ui.internal.model.WorkspaceFactory&quot;
-            id=&quot;org.eclipse.ui.internal.model.WorkspaceFactory&quot;&gt;
-      &lt;/factory&gt;
-      &lt;factory
-            class=&quot;org.eclipse.ui.part.FileEditorInputFactory&quot;
-            id=&quot;org.eclipse.ui.part.FileEditorInputFactory&quot;&gt;
-      &lt;/factory&gt;
-      &lt;factory
-            class=&quot;org.eclipse.ui.internal.dialogs.WelcomeEditorInputFactory&quot;
-            id=&quot;org.eclipse.ui.internal.dialogs.WelcomeEditorInputFactory&quot;&gt;
-      &lt;/factory&gt;
-      &lt;factory
-            class=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot;
-            id=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot;&gt;
-      &lt;/factory&gt;
-&lt;/extension&gt;
-
-</pre></font>
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_fonts.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_fonts.htm
deleted file mode 100644
index 84b3399..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_fonts.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.fontDefinitions</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-
-<H3>
-org.eclipse.ui.fontDefinitions</H3>
-
-
-
-<p>Your plug-in may need to define specialized fonts in its editors or
-views.&nbsp;&nbsp; The <a href="../reference/extension-points/org_eclipse_ui_fontDefinitions.html"><b>org.eclipse.ui.fontDefinitions</b></a>
-extension point allows you to define fonts that should be made available in the
-workbench fonts preference page.</p>
-
-
-<p>Using this extension allows you to consolidate the font settings for your
-plug-in with all of the other font preferences installed in the workbench.&nbsp;
-For example, the debugger contributes a font setting for console text:</p>
-
-
-<p><img src="images/fontdefinitions.gif" alt="Font definitions preference page showing list of fonts" border="0" width="787" height="647"></p>
-
-
-<p> This font definition is contributed by the debugger using the <a href="../reference/extension-points/org_eclipse_ui_fontDefinitions.html"><b>org.eclipse.ui.fontDefinitions</b></a>
-extension point.</p>
-
-
-<pre><font color="#4444CC">&lt;extension
-         point=&quot;org.eclipse.ui.fontDefinitions&quot;&gt;
-      &lt;fontDefinition
-            label=&quot;%ConsoleFontDefinition.label&quot;
-            defaultsTo=&quot;org.eclipse.jface.textfont&quot;
-            id=&quot;org.eclipse.debug.ui.ConsoleFont&quot;&gt;
-         &lt;description&gt;
-            %ConsoleFontDefinition.description
-         &lt;/description&gt;
-      &lt;/fontDefinition&gt;
-      ...
-   &lt;/extension&gt;</font></pre>
-
-
-<p>The <b>label</b> and <b>description</b> attributes are shown in the
-preferences dialog to describe the font.&nbsp; The <b>defaultsTo</b> attribute
-designates the id of another font definition that should be used as the default
-value for this font definition if none other is specified.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_perspectiveExtension.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_perspectiveExtension.htm
deleted file mode 100644
index c684468..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_perspectiveExtension.htm
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.perspectiveExtension</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-
-<H3>
-org.eclipse.ui.perspectiveExtensions</H3>
-<P >
- Plug-ins can add their own action sets, views, and various shortcuts to existing
- perspectives by contributing to the <b><a href="../reference/extension-points/org_eclipse_ui_perspectiveExtensions.html">org.eclipse.ui.perspectiveExtensions</a></b>
- extension point.</P>
-
-
-<P >The contributions that can be defined for new perspectives (action sets, wizard entries, view layout,
-view shortcuts, and perspective shortcuts) can also be supplied for
-an existing perspective.&nbsp; One important difference is that these
-contributions are
-specified in the <b>plugin.xml</b> markup instead of
-configuring them into an
- <b><a href="../reference/api/org/eclipse/ui/IPageLayout.html"> IPageLayout</a>.</b>
-</P>
-
-
-<P >The following markup shows how the JDT extends the platform's debug
-perspective.</P>
-
-
-<font color='#4444CC'><pre>
-&lt;extension point=&quot;org.eclipse.ui.perspectiveExtensions&quot;&gt;
-  &lt;perspectiveExtension 
-	<b>targetID</b>=&quot;org.eclipse.debug.ui.DebugPerspective&quot;&gt;
-	&lt;actionSet id=&quot;org.eclipse.jdt.debug.ui.JDTDebugActionSet&quot;/&gt;
-    	&lt;view id=&quot;org.eclipse.jdt.debug.ui.DisplayView&quot; 
-        	relative=&quot;org.eclipse.debug.ui.ExpressionView&quot; 
-    		relationship=&quot;stack&quot;/&gt;	
-        &lt;view id=&quot;org.eclipse.jdt.ui.PackageExplorer&quot; 
-                relative=&quot;org.eclipse.debug.ui.DebugView&quot; 
-                relationship=&quot;stack&quot;
-                visible=&quot;false&quot;/&gt;
-        &lt;view id=&quot;org.eclipse.jdt.ui.TypeHierarchy&quot; 
-                relative=&quot;org.eclipse.debug.ui.DebugView&quot; 
-                relationship=&quot;stack&quot;
-                visible=&quot;false&quot;/&gt;
-        &lt;view id=&quot;org.eclipse.search.SearchResultView&quot; 
-                relative=&quot;org.eclipse.debug.ui.ConsoleView&quot; 
-                relationship=&quot;stack&quot;
-                visible=&quot;false&quot;/&gt; 
-    	&lt;viewShortcut id=&quot;org.eclipse.jdt.debug.ui.DisplayView&quot;/&gt;
-  &lt;/perspectiveExtension&gt; 
-&lt;/extension&gt;</pre></font>
-
-
-<P >The <b>targetID</b> is the id of the perspective to which the plug-in is
-contributing new behavior.&nbsp; The <b>actionSet</b> parameter identifies the <b>id</b>
-of a previously declared action set that should be added to the target
-perspective.&nbsp; This markup is analogous to using<b>
-IPageLayout.addActionSet</b> in the&nbsp;<b><a href="../reference/api/org/eclipse/ui/IPerspectiveFactory.html">IPerspectiveFactory</a></b>.</P>
-
-
-<P >Contributing a view to a perspective is a little more involved, since the
-perspective page layout information must be declared.&nbsp; The <b>visible</b>
-attribute controls whether the contributed view is initially visible when the perspective is
-opened.&nbsp; In addition to
-supplying the <b>id</b> of the contributed view, the id
-of a view that already exists in the perspective ( a <b>relative</b>
-view) must be specified as a reference point for placing the new view.&nbsp; The
-<b>relationship</b> parameter specifies the layout
-relationship between the new view and the <b>relative</b>
-view.&nbsp;&nbsp;</P>
-
-
-<ul>
-  <li> <b>stack</b> indicates that the
-view will be stacked with the relative view in a folder</li>
-  <li><b>fast</b> indicates that the view will be shown as a fast
-    view&nbsp;&nbsp;</li>
-  <li> <b>left</b>, <b>right</b>,
-<b>top</b>, or <b>bottom</b> indicate that the new view will be placed beside the <b>relative</b>
-view.&nbsp; In this case, a <b> ratio</b> between 0.0 and 1.0 must be defined, which
-indicates the percentage of area in the <b>relative</b>
-view that will be allocated to the new view.&nbsp;&nbsp;</li>
-</ul>
-
-
-<P >Specifying a <b>perspectiveShortcut</b>
-indicates that another perspective (specified by <b>id</b>)
-should be added to the <b>Window-&gt;Open Perspective... </b>menu of the target
-perspective.&nbsp; This markup is analogous to calling <b>IPageLayout.addPerspectiveShortcut</b>
-in the original perspective definition in the <b><a href="../reference/api/org/eclipse/ui/IPerspectiveFactory.html">IPerspectiveFactory</a></b>.&nbsp;
-Plug-ins can also add view shortcuts and new wizard shortcuts in a similar
-manner.&nbsp;&nbsp;</P>
-
-
-<P >You can also specify one or more views as a valid <b>showInPart</b>.&nbsp; The
-views should be specified by the id used in their <b><a href="../reference/extension-points/org_eclipse_ui_views.html">org.eclipse.ui.views</a></b>
-extension contribution.&nbsp;&nbsp; This controls which views are available as
-targets in the <b>Navigate &gt; Show In </b>menu.&nbsp; The ability to specify a
-&quot;show in&quot; view in the extension markup allows you to add your
-newly contributed views as targets in another perspective's &quot;show in&quot;
-menus.&nbsp; See <a href="workbench_perspectives.htm#showin">Linking views and
-editors</a> for more information on &quot;show in.&quot;</P>
-
-
-<P > See <b><a href="../reference/extension-points/org_eclipse_ui_perspectiveExtensions.html">org.eclipse.ui.perspectiveExtensions</a></b>
-for a complete definition of the extension point.</P>
-
-
-<P >&nbsp;</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_perspectives.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_perspectives.htm
deleted file mode 100644
index 1edccaf..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_perspectives.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.perspectives</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<H3>
-org.eclipse.ui.perspectives</H3>
-<P >
-The platform itself defines one perspective, the <b> Resource</b> perspective. Other platform plug-ins, such as
-the help system and the Java tooling, define additional perspectives. Your plug-in can define its own
-perspective by contributing to the <b><a href="../reference/extension-points/org_eclipse_ui_perspectives.html">org.eclipse.ui.perspectives</a></b>
-extension point.</P>
-<P >
-The specification of the perspective in the <b> plugin.xml</b> is straightforward. The following markup is used by the workbench in defining its own resource perspective.</P>
-<font color='#4444CC'><pre>
-&lt;extension
-         point=&quot;org.eclipse.ui.perspectives&quot;&gt;
-      &lt;perspective
-            name=&quot;%Perspective.resourcePerspective&quot;
-            icon=&quot;icons/full/cview16/resource_persp.gif&quot;
-            class=&quot;org.eclipse.ui.internal.ResourcePerspective&quot;
-            id=&quot;org.eclipse.ui.resourcePerspective&quot;&gt;
-      &lt;/perspective&gt;
-   &lt;/extension&gt;</pre></font>
-<P >
-A plug-in must supply an <b> id</b> and <b> name</b> for the perspective, along with the name of the
-<b> class</b> that implements the perspective. An <b> icon</b> can also be specified. The perspective class should implement
-<b><a href="../reference/api/org/eclipse/ui/IPerspectiveFactory.html">IPerspectiveFactory</a></b>.</P>
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_resourceFilters.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_resourceFilters.htm
deleted file mode 100644
index 2ee8023..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_advext_resourceFilters.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.ide.resourceFilters</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-
-
-<H3>
-org.eclipse.ui.ide.resourceFilters</H3>
-<P >
-The resource filters extension allows plug-ins to define filters that are useful for filtering out file types in the resource navigator view. This
-extension is useful when special file types are used to represent internal plug-in information
-but you do not want the files to be shown in the workbench or manipulated by the user.</P>
-<P >
-The workbench filters out the pattern &quot;<b>.*</b>&quot; to exclude internal files such as .metadata from the resource navigator. Likewise, the JDT plug-in filters out &quot;<b>*.class</b>&quot; files to hide compiled classes.</P>
-<P >
-The markup for the resource filters extension is simple.&nbsp; The following is
-from the workbench <b>plugin.xml</b>.</P>
-<font color='#4444CC'><pre>
-&lt;extension
-         point=&quot;org.eclipse.ui.ide.resourceFilters&quot;&gt;
-      &lt;filter
-            selected=&quot;false&quot;
-            pattern=&quot;.*&quot;&gt;
-      &lt;/filter&gt;
-   &lt;/extension&gt;
-</pre></font>
-<P >The filters can be enabled by the user using the resource navigator's local
-pull-down menu.</P>
-
-
-<P ><img src="images/filtersmenu.gif" alt="" border="0" width="326" height="181"></P>
-
-
-<P >In addition to declaring the <b>filter pattern</b>,
-the plug-in can use the <b>selected</b> attribute to
-specify whether the filter should be enabled in the resource navigator.&nbsp;
-This attribute only determines the initial state of the filter pattern.&nbsp; The user can
-control which filter patterns are active.</P>
-
-
-<P ><img src="images/filtersselection.gif" alt="" border="0" width="347" height="432"></P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext.htm
deleted file mode 100644
index 625769a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Basic workbench extensions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Basic workbench extension points</H2>
-<P >
-The workbench defines extension points that allow plug-ins to contribute
-behaviors to existing views and editors or to provide implementations for
-new&nbsp; views and editors. We are going to take a look at the
-contributions to these extension points from one of the workbench sample applications, the readme tool. </P>
-<P >
-The readme tool is a plug-in that provides custom editing and navigation for a specific resource
-, a
-<b> .readme</b> file. The example shows many typical (but simplified) ways that extensions can be used to provide specialized tools.</P>
-<P >
-The readme tool contributes to the menus of the navigator view, adds editor related actions to the workbench menus and
-tool bar, defines a custom view and content outliner, and defines markers
-and marker resolutions. The figure below shows some of the
-customized features added to the workbench by the readme tool.</P>
-<P >
-<img src="images/readmeoverview.gif" alt="Workbench with readme tool contributing action sets, view and editor actions, custom editors and views, and outliner" border="0" width="590" height="604"></P>
-<P >
-The readme tool also contributes properties, preferences, and wizards to the workbench. We will look at these in
-<a HREF="dialogs.htm" CLASS="XRef"> Dialogs and wizards</a> and <a HREF="preferences.htm" CLASS="XRef"> Preferences and properties</a>.&nbsp;</P>
-<P >
-The readme tool is located in the <b>org.eclipse.ui.examples.readmetool</b> package. The
-<b> readmetool.jar</b> and <b> plugin.xml</b> can be found in the
-<b> org.eclipse.ui.examples.readmetool</b> directory underneath the
-<b> plugins</b> directory. To follow along, you will need to make sure that
-you have installed the platform examples.&nbsp; (See the <a href="../samples/samples.html">Examples
-Guide </a> for more information.)&nbsp; </P>
-<P >
-The <a href="../samples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html">readme
-tool</a> implements many different workbench extensions.&nbsp; We will start
-with one of the simplest workbench extension points, a view.&nbsp; We'll
-continue by looking at the readme tool extension points in the order in which
-you are likely to encounter them. </P>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_actionSetPartAssociations.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_actionSetPartAssociations.htm
deleted file mode 100644
index affbdc7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_actionSetPartAssociations.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.actionSets</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-org.eclipse.ui.actionSetPartAssociations</H3>
-
-<P >
-Once your plug-in defines an <a href="workbench_basicext_actionSets.htm">action
-set</a>, it can use the
-<a href="../reference/extension-points/org_eclipse_ui_actionSets.html"><b> org.eclipse.ui.actionSetPartAssociations</b></a> 
-extension point to specify that an action set should be made visible when a
-particular view or editor is active.&nbsp;&nbsp; </P>
-
-<P >
- Ultimately, the user controls the
-appearance of action sets using <b>Window-&gt;Customize Perspectives...</b> in
-the workbench menu.&nbsp;If the user marks an action set visible, it will always be visible when the
-perspective is active, regardless of
-the active view or editor.&nbsp; Likewise, if the user marks the action set as hidden, it will always be hidden when the perspective is active.&nbsp; If the user does not change the state of
-an action set in this dialog, then the action set part associations are used to
-determine the visibility of the action set.</P>
-
-
-<P >
-The markup for an action set part association is straightforward.&nbsp; The
-following example comes from the Java development tools (JDT) UI plug-in.</P>
-<font color='#4444CC'><pre>
-   &lt;extension point=&quot;org.eclipse.ui.actionSetPartAssociations&quot;&gt;
-	&lt;actionSetPartAssociation 
-		<b>targetID</b>=&quot;org.eclipse.jdt.ui.CodingActionSet&quot;&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.PackageExplorer&quot;/&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.TypeHierarchy&quot; /&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.CompilationUnitEditor&quot;/&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.ClassFileEditor&quot;/&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.ProjectsView&quot;/&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.PackagesView&quot;/&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.TypesView&quot;/&gt;
-		&lt;part id=&quot;org.eclipse.jdt.ui.MembersView&quot;/&gt;
-	&lt;/actionSetPartAssociation&gt;
-&lt;/extension&gt;
-</pre></font>
-<P >The <b>targetID</b> specifies the action set.&nbsp; (The <b> CodingActionSet</b> was
-previously defined in the JDT plug-in manifest.)&nbsp; One or more <b>part</b>
-attributes can be specified to indicate which views and editors will cause the
-action set to become visible in the menus and toolbar.&nbsp; The effect of this extension
-contribution is that the actions associated with writing Java code will only be
-visible when one of the specified views is active.</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_actionSets.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_actionSets.htm
deleted file mode 100644
index a32c767..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_actionSets.htm
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.actionSets</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-org.eclipse.ui.actionSets</H3>
-
-<P >
-Your plug-in can contribute menus, menu items, and tool bar items to the workbench menus and toolbar
-by using the
-<a href="../reference/extension-points/org_eclipse_ui_actionSets.html"><b> org.eclipse.ui.actionSets</b></a> 
-extension point. In order to reduce the clutter that would be caused by having every plug-in's menu contributions shown at once, the contributions are grouped into action sets which can be made visible by user preference.</P>
-<P >
-You can see which action sets have been contributed to your workbench by choosing
-<b>Window-&gt;Customize Perspective...</b> from the workbench menu. This option will show you a dialog that lists
-the shortcuts and action sets that are available for the current
-perspective.&nbsp; Action sets are listed under <b>Other</b>.&nbsp; A checkmark by the action set means that the menu and tool bar actions are visible in the workbench. You can select the name of the action set to see the list of available actions on the right. The figure below shows the
-list of action sets available in our workbench.&nbsp; (Your workbench may look different depending on which plug-ins you have
-installed and which perspective is active.)</P>
-
-<img src="images/actionsets.gif" alt="Customize Perspective dialog with action set list" border="0" width="584" height="460">
-
-
-<P >
-The readme tool uses an action set to contribute several different &quot;Open Readme
-Browser&quot; actions to the workbench menu.&nbsp; (We contributed a similar
-action to the popup menu of the resource navigator.)&nbsp; The markup follows:</P>
-<font color='#4444CC'><pre>
-&lt;extension point = &quot;org.eclipse.ui.actionSets&quot;&gt;
-	   &lt;actionSet id=&quot;org_eclipse_ui_examples_readmetool_actionSet&quot;
-		   label=&quot;%ActionSet.name&quot;
-		   visible=&quot;true&quot;&gt;
-		   &lt;menu id=&quot;org_eclipse_ui_examples_readmetool&quot;
-			   label=&quot;%ActionSet.menu&quot;
-			   path=&quot;window/additions&quot;&gt; 
-			   &lt;separator name=&quot;slot1&quot;/&gt;
-			   &lt;separator name=&quot;slot2&quot;/&gt;
-			   &lt;separator name=&quot;slot3&quot;/&gt;
-		   &lt;/menu&gt;
-		   &lt;action id=&quot;org_eclipse_ui_examples_readmetool_readmeAction&quot;
-			   menubarPath=&quot;window/org_eclipse_ui_examples_readmetool/slot1&quot;
-			   toolbarPath=&quot;readme&quot;
-			   label=&quot;%ReadmeAction.label&quot;
-			   tooltip=&quot;%ReadmeAction.tooltip&quot;
-			   helpContextId=&quot;org.eclipse.ui.examples.readmetool.open_browser_action_context&quot;
-			   icon=&quot;icons/ctool16/openbrwsr.gif&quot;
-			   class=&quot;org.eclipse.ui.examples.readmetool.<b>WindowActionDelegate</b>&quot;
-			   enablesFor=&quot;1&quot;&gt;
-			   &lt;selection class=&quot;org.eclipse.core.resources.IFile&quot;
-					name=&quot;*.readme&quot;&gt;
-			   &lt;/selection&gt;
-		   &lt;/action&gt;
-		   ...
-	   &lt;/actionSet&gt;
-   &lt;/extension&gt;</pre></font>
-<P >
-Wow, there's a lot going on here!&nbsp; Let's take it a step at a time, looking
-only at the first action for now.&nbsp;&nbsp;</P>
-<P >
-First, the action set is declared and given a <b>label</b>.&nbsp;
-The label &quot;ReadMe Actions&quot; (defined for <b> %ActionSet.name</b>  key in the plug-in's
-properties file) is used to display the action set in the
-dialog shown above.&nbsp; Since we set <b> visible</b> to true, the workbench will initially have the action set
-checked in the action set list and the actions will be visible.</P>
-<P >
-The rest of the action set declaration is concerned with defining the menu in
-which the actions appears and the actions themselves.</P>
-<P >
-We define a menu whose <b>label</b> appears in the workbench menus.&nbsp; The menu's <b>path</b>
-tells the workbench to place the new menu in the <b>additions</b>
-slot of the <b>window</b> menu.&nbsp; (For a discussion
-of menu paths and slots, see <a HREF="workbench_menupaths.htm" CLASS="XRef"> Menu and toolbar paths</a>.)&nbsp;
-We also define some slots in our new menu so that actions can be inserted at specific locations in our menu.</P>
-<P >
-This markup alone is enough to cause the menu to appear in the workbench <b>Window</b>
-menu.</P>
-<P >
-<img src="images/readmeactionset.gif" alt="Workbench Window menu with Readme File Editor entry" border="0" width="233" height="316"></P>
-<P >
-Next, we define the actions themselves.&nbsp;&nbsp;</P>
-<P >
-The action definition (<b>id</b>,
-<b>label</b>, <b>icon</b>, <b>class</b>) is
-similar to the other actions we've seen in views, editors, and popups.&nbsp;
-We'll focus here on what's different:&nbsp; where does the action go?&nbsp; We
-use&nbsp; <b>menubarPath</b> and <b>toolbarPath</b>
-to indicate its location.&nbsp; First, we define the <b>menubarPath</b> to add the
-action to a slot in the menu
-that we just defined (&nbsp;<b>&quot;window/org_eclipse_ui_examples_readmetool/slot1&quot;</b>).</P>
-<P >
-<img src="images/readmeactionsetmenu.gif" alt="Readme File Editor menu with menu items" border="0" width="534" height="73"></P>
-<P >
-Then, we define a new <b> toolbarPath</b> to insert our actions in the workbench tool
-bar.&nbsp; Since we've defined a new tool path, <b>&quot;readme&quot;</b>, the workbench will decide where it goes
-relative to other plug-in's toolbar contributions.</P>
-<P >
-<img src="images/readmeactionsettoolbar.gif" alt="Workbench tool bar with readme action" border="0" width="222" height="51"></P>
-<P >
-What happens when the action is selected by the user?&nbsp; The action is
-implemented by the class specified in the <b>class</b>
-attribute.&nbsp; The action <b> class</b> must implement
-<b><a href="../reference/api/org/eclipse/ui/IWorkbenchWindowActionDelegate.html"> IWorkbenchWindowActionDelegate</a></b>,
-or
-<b><a href="../reference/api/org/eclipse/ui/IWorkbenchWindowPulldownDelegate.html"> IWorkbenchWindowPulldownDelegate</a></b> 
-if the action will be shown as a pull-down tool item in the tool bar.&nbsp; Since we are not
-creating a pull-down tool item, we provide <b>WindowActionDelegate</b>.&nbsp;
-This class is similar to <b>ObjectActionDelegate</b>.&nbsp;
-It launches the readme sections dialog when the user chooses the action.&nbsp; (We'll
-discuss the sections dialog in <a href="dialogs_applications.htm">Application
-dialogs</a>.)</P>
-
-
-<P >
-The action also supplies enabling conditions for its menu item and tool bar
-item.&nbsp; The menu and tool bar items will only be enabled when a single (<b>enablesFor=&quot;1&quot;</b>)
-readme file (<b>selectionClass =&quot;org.eclipse.core.resources.IFile&quot;
-name=&quot;*.readme&quot;</b>) is selected.&nbsp; This action's menu and toolbar
-item appear and are enabled by virtue of the markup
-in the <b>plugin.xml</b> file.&nbsp; None of the
-plug-in code will execute until the user chooses the action and the workbench
-runs the action <b>class</b>.</P>
-
-
-<P >
-We'll look at the other two actions later in the context of <a href="wrkAdv_retarget_contribute.htm">retargetable
-actions</a>.</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_editorActions.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_editorActions.htm
deleted file mode 100644
index 5857cb8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_editorActions.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.editorActions</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-org.eclipse.ui.editorActions</H3>
-
-<P >
-We've just seen how editors
-can contribute their own actions to the workbench menus and tool bar when they
-become active.&nbsp; The <b><a href="../reference/extension-points/org_eclipse_ui_editorActions.html">org.eclipse.ui.editorActions</a></b> extension
-point allows a plug-in to add
-to the workbench menus and tool bar when another plug-in's editor becomes active.</P>
-<P >
-In the readme example, the plug-in uses the <b>editorActions</b>
-extension point to contribute additional actions to the menu contributed by the
-readme editor. The definition in our
-<b> plugin.xml</b> should look pretty familiar by now.</P>
-<font color='#4444CC'><pre>
-&lt;extension
-    point = &quot;org.eclipse.ui.editorActions&quot;&gt;
-      &lt;editorContribution 
-         id=&quot;org.eclipse.ui.examples.readmetool.ec1&quot; 
-         targetID=&quot;org.eclipse.ui.examples.readmetool.ReadmeEditor&quot;&gt;        
-	   &lt;action id=&quot;org.eclipse.ui.examples.readmetool.ea1&quot; 
-              label=&quot;%Editors.Action.label&quot; 
-	      toolbarPath=&quot;ReadmeEditor&quot; 
-              icon=&quot;icons/obj16/editor.gif&quot; 
-              tooltip=&quot;%Editors.Action.tooltip&quot; 
-              class=&quot;org.eclipse.ui.examples.readmetool.EditorActionDelegate&quot; 
-              /&gt; 
-      &lt;/editorContribution&gt;
- &lt;/extension&gt;</pre></font>
-<P >Similar to a view action, the extension must specify the <b> targetID</b> of the
-editor to which it is contributing actions.&nbsp; The action itself is very
-similar to a view action (<b>id</b>, <b>label</b>, <b>icon</b>, <b>toolbarPath</b>,
-...), except that the specified class
-must implement <b><a href="../reference/api/org/eclipse/ui/IEditorActionDelegate.html">IEditorActionDelegate</a></b>.&nbsp;&nbsp;</P>
-<P >Note that a menu bar path is not specified in this markup.&nbsp; Therefore,
-the action will appear in the workbench tool bar when the editor is active,
-but not in the workbench menu bar.&nbsp; (See <a HREF="workbench_menupaths.htm" CLASS="XRef"> Menu and toolbar paths</a> for a discussion of toolbar and menu paths.)</P>
-<P >Sure enough, when the editor is active, we see our editor action on the tool
-bar next to the actions that were contributed by the editor itself.</P>
-<P ><img src="images/editorAction.gif" alt="Editor action appears next to original editor contributions in workbench toolbar" border="0" width="527" height="149"></P>
-<P >
-The readme tool supplies <b> EditorActionDelegate</b>
-to implement the action.&nbsp; This class is very similar to the view action delegate
-we saw earlier.</P>
-
-<font color='#4444CC'><pre>
-public void run(IAction action) {
-	MessageDialog.openInformation(editor.getSite().getShell(),
-		MessageUtil.getString(&quot;Readme_Editor&quot;),  
-		MessageUtil.getString(&quot;Editor_Action_executed&quot;)); 
-}</pre></font>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_editors.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_editors.htm
deleted file mode 100644
index 5c43248..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_editors.htm
+++ /dev/null
@@ -1,165 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.editors</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-org.eclipse.ui.editors</H3>
-
-<P >
-An editor is a workbench part that allows a user to edit an object (often a
-file). Editors operate in a manner similar to file system editing tools, except that they are tightly integrated into the platform workbench UI. An editor is always associated with an input object
-(<a href="../reference/api/org/eclipse/ui/IEditorInput.html"><b>IEditorInput</b></a>). You can think of the input object as
-the document or file that is being edited. Changes made in an editor are not
-committed until the user saves them. </P>
-<P >
-Only one editor can be open for any particular editor input in a workbench page. For example, if the user is editing
-<b> readme.txt</b> in the workbench, opening it again
-in the same perspective will activate the same editor. (You can open another
-editor on the same file from a different workbench window or perspective).&nbsp;
-Unlike views, however, the same editor type, such as a text editor, may be open
-many times
-within one workbench page for different inputs.</P>
-<P >
-The workbench extension point <b><a href="../reference/extension-points/org_eclipse_ui_editors.html">org.eclipse.ui.editors</a></b>
-is used by plug-ins to add editors to the workbench. Plug-ins that contribute an editor must register the editor
-extension in their <b>plugin.xml </b> file, along with configuration information
-for the editor. Some
-of the editor information, such as the implementation <b> class</b> and the
-<b> name</b> and the <b>icon</b>  to be used in the workbench menus and
-labels, is similar to the view information. In addition, editor extensions specify the file extensions or file name patterns of the file types that the editor understands. Editors can also define a
-<b> contributorClass</b>, which is a class that adds actions to workbench menus and tool bars when the editor is active.</P>
-<P >
-The interface for editors is defined in <b><a href="../reference/api/org/eclipse/ui/IEditorPart.html">IEditorPart</a></b>, but plug-ins
-can choose to extend the
-<b><a href="../reference/api/org/eclipse/ui/part/EditorPart.html"> EditorPart</a></b> class rather than implement an
-<b><a href="../reference/api/org/eclipse/ui/IEditorPart.html">IEditorPart</a></b>
-from scratch.</P>
-<i><blockquote>
-Note:&nbsp; An editor extension can also be configured to launch an external program
-or to call pre-existing java code. In this discussion, we are focusing on those editors that are actually tightly integrated with the workbench and
-are implemented using
-<b><a href="../reference/api/org/eclipse/ui/IEditorPart.html">IEditorPart</a></b>.</blockquote></i>
-<P >
-The readme tool provides a custom editor primarily for the purpose of contributing its own content outliner page to the
-workbench outline view.&nbsp;&nbsp;</P>
-<P >
- The configuration for the editor extension is defined as follows.</P>
-<font color='#4444CC'><pre>
-&lt;extension
-    point = &quot;org.eclipse.ui.editors&quot;&gt;
-	&lt;editor
-  	   id = &quot;org.eclipse.ui.examples.readmetool.ReadmeEditor&quot;
-  	   name=&quot;%Editors.ReadmeEditor&quot;
-      	   icon=&quot;icons/obj16/editor.gif&quot;
-      	   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeEditor&quot;
-	   extensions=&quot;readme&quot;
-           contributorClass=&quot;org.eclipse.ui.examples.readmetool.ReadmeEditorActionBarContributor&quot;&gt;
-	&lt;/editor&gt;
-&lt;/extension&gt;</pre></font>
-<P >
-We see the familiar configuration markup for <b>id</b>,
-<b>name</b>,
-<b>icon</b>, and <b>class</b>.&nbsp;&nbsp; The <b>extensions</b> attribute
-describes the file types that the editor understands.&nbsp; (You could also
-specify <b>filenames</b> if you need to be more specific.)&nbsp; The <b>class</b>
-implements the editor, and the <b>contributorClass</b> is responsible for
-providing editor-related actions.&nbsp; Let's look at the contributor in more
-detail.</P>
-
-<H4>
-Editor action contributors</H4>
-<P >
-The contributor class adds editor-related actions to the workbench menu and toolbar. It must implement the
-<b><a href="../reference/api/org/eclipse/ui/IEditorActionBarContributor.html"> IEditorActionBarContributor</a></b> interface. The contributor is
-separate from the editor itself since any given workbench page can have multiple editors of the same type.
-A single contributor is shared by all the editors of a specific type, rather than
-having each instance of an editor create actions and images.&nbsp;</P>
-<P >
-In <b>ReadmeEditorActionBarContributor</b>, we contribute three actions,
-&quot;Editor Action1,&quot; &quot;Editor Action2,&quot; and &quot;Editor Action3.&quot;&nbsp;&nbsp;
-These are set up in the constructor.</P>
-<font color='#4444CC'><pre>
-   public ReadmeEditorActionBarContributor() {
-      	...
-	action1 = new EditorAction(MessageUtil.getString(&quot;Editor_Action1&quot;)); 
-	action1.setToolTipText(MessageUtil.getString(&quot;Readme_Editor_Action1&quot;)); 
-	action1.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_DISABLE);
-	action1.setImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_ENABLE);
-	...	
-	action2 = new RetargetAction(IReadmeConstants.RETARGET2, MessageUtil.getString(&quot;Editor_Action2&quot;)); 
-	action2.setToolTipText(MessageUtil.getString(&quot;Readme_Editor_Action2&quot;)); 
-	action2.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_DISABLE);
-	action2.setImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_ENABLE);
-	...
-	action3 = new LabelRetargetAction(IReadmeConstants.LABELRETARGET3, MessageUtil.getString(&quot;Editor_Action3&quot;));
-	action3.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_DISABLE);
-	action3.setImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_ENABLE);
-	...   
-   }
-</pre></font>
-<P >
-The names and icons for the actions are set up in the code rather than in the <b>plugin.xml</b>.&nbsp;
-(We'll ignore the differences in the action classes for now until we look at <a href="wrkAdv_retarget_contribute.htm">retargetable
-actions</a>.)&nbsp;&nbsp;</P>
-<P >Note how similar the action information is to the
-<b> viewActions</b> information we saw in the markup
-for the view action.&nbsp; The actions are set up in code since we have to
-manage the sharing of the actions among different instances of the same editor.&nbsp;
-When the actions are created in the constructor, they are independent of any
-particular instance of the editor.</P>
-<P >
- When an editor becomes active and it has actions that need to be installed in the workbench menus and tool bar, the <b>setActiveEditor
-</b>message is sent to the contributor.&nbsp; The contributor connects the editor actions to a specific editor.&nbsp;&nbsp;</P>
-<font color='#4444CC'><pre>
-   public void setActiveEditor(IEditorPart editor) {
-      ...
-      action1.setActiveEditor(editor);
-      ...
-   }
-</pre></font>
-<P >
-As you can see, the actions show up in the workbench menu and tool bar when a readme editor is active. </P>
-
-<img src="images/editormenu.gif" alt="Readme entry in workbench menu bar with three editor actions" border="0" width="140" height="91">
-
-
-
-<p><img src="images/editortoolbar.gif" alt="Workbench toolbar with three readme actions" border="0" width="541" height="104">
-<P >
-These menu and tool bar items are only shown when the editor is active. The location for the menu and tool bar items can be specified as described in
-<a HREF="workbench_menupaths.htm" CLASS="XRef">Menu and toolbar paths</a>.</P>
-
-
-
-<H4>
-Editors and content outliners
-</h4>
-<P >
-The readme editor itself, <b>ReadmeEditor</b>, is not very complicated. It extends the
-<b><a href="../reference/api/org/eclipse/ui/editors/text/TextEditor.html"> TextEditor</a></b> class so that it can contribute a customized content outliner page
-to the outline view when a readme file is being edited. It does not change any behavior inside the text editor.</P>
-<p><img src="images/readmeoutliner.gif" alt="" border="0" width="187" height="210"></p>
-<P >
-Editors often have corresponding content outliners that provide a structured
-view of the editor's contents and assist the user in navigating through the
-contents of the editor.&nbsp; See <a href="editors_workbench_outliner.htm">Content
-outliners</a> for more detail. </P>
-
-
-<P >
-We'll look at the implementation of text editors in <a href="editors_jface.htm">Text
-editors and platform text</a>. </P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_popupMenus.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_popupMenus.htm
deleted file mode 100644
index a4ebb09..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_popupMenus.htm
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.popupMenus</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-org.eclipse.ui.popupMenus</H3>
-
-<P >
-The <b><a href="../reference/extension-points/org_eclipse_ui_popupMenus.html"> org.eclipse.ui.popupMenus</a></b> extension
-point allows a plug-in to contribute to the popup menus of other
-views and editors.</P>
-<P >
-You can contribute an action to a specific popup menu by its id (<b>viewerContribution</b>), or
-by associating it with a particular object type (<b>objectContribution</b>).&nbsp;</P>
-<ul>
-  <li>An <b>objectContribution</b> will cause the menu
-    item to appear in popup menus for views or editors where objects of
-    the specified type are selected.</li>
-  <li>A <b>viewerContribution</b> will cause the menu
-    item to appear in the popup menu of a view or editor specified by id in the
-    markup.&nbsp;&nbsp;</li>
-</ul>
-<P >
-The readme tool defines both. Let's look at the object contribution
-first.&nbsp;&nbsp;</P>
-<font color='#4444CC'><pre>
-&lt;extension point = &quot;org.eclipse.ui.popupMenus&quot;&gt;
-     &lt;objectContribution
-        id=&quot;org.eclipse.ui.examples.readmetool&quot;
-        objectClass=&quot;org.eclipse.core.resources.IFile&quot;
-	    nameFilter=&quot;*.readme&quot;&gt;
-	    &lt;action id=&quot;org.eclipse.ui.examples.readmetool.action1&quot;
-	       label=&quot;%PopupMenus.action&quot;
-	       icon=&quot;icons/ctool16/openbrwsr.gif&quot;
-	       menubarPath=&quot;additions&quot;
-	       helpContextId=&quot;org.eclipse.ui.examples.readmetool.open_browser_action_context&quot;
-	       class=&quot;org.eclipse.ui.examples.readmetool.PopupMenuActionDelegate&quot;	
-	       enablesFor=&quot;1&quot;&gt;
-	    &lt;/action&gt;
-	 &lt;/objectContribution&gt;
- 	 ...
-</pre><h4>
-   Object contribution
-</h4></font>
-<P >
-The action &quot;Show Readme Action&quot; is contributed for the object class <a href="../reference/api/org/eclipse/core/resources/IFile.html"><b>IFile</b></a>. This means that any view containing
-<a href="../reference/api/org/eclipse/core/resources/IFile.html"><b>IFile</b></a>
-objects will show the contribution if <a href="../reference/api/org/eclipse/core/resources/IFile.html"><b>IFile</b></a>
-objects are selected. We see that the selection criteria is restricted further with a name filter
-(<b>nameFilter=&quot;*.readme&quot;</b>) and for single selections (<b>enablesFor=&quot;1&quot;</b>). As we've discussed before, the registration of this menu does not run any code from our plug-in until the menu item is actually selected. </P>
-<P >
-When the menu item is selected, the workbench will run the specified class.&nbsp;
-Since the popup is declared as an <b>objectContribution</b>,
-the supplied class must implement <b><a href="../reference/api/org/eclipse/ui/IObjectActionDelegate.html">IObjectActionDelegate</a></b>.&nbsp;</P>
-<P >
-The action is implemented in <b>PopupMenuActionDelegate</b>.&nbsp;&nbsp;</P>
-<font color='#4444CC'><pre>
-   public void run(IAction action) {
-      MessageDialog.openInformation(
-         this.part.getSite().getShell(),
-         &quot;Readme Example&quot;,
-         &quot;Popup Menu Action executed&quot;);
-   }
-</pre></font>
-<P >
-We can see the popup menu contribution when we select a readme file from the resource navigator.</P>
-
-<img src="images/readmepopupmenu.gif" alt="" border="0" width="309" height="596">
-<h4>Viewer contribution</h4>
-<p>
-A viewer contribution is used to contribute to a specific view or editor's popup menu
-by using its id.
-Here is the readme tool's viewer contribution:</p>
-<pre><font color='#4444CC'>      ...
-      &lt;viewerContribution
-        id=&quot;org.eclipse.ui.examples.readmetool2&quot;
-        targetID=&quot;org.eclipse.ui.examples.readmetool.outline&quot;&gt;
-	    &lt;action id=&quot;org.eclipse.ui.examples.readmetool.action1&quot;
-	       label=&quot;%PopupMenus.action&quot;
-	       icon=&quot;icons/ctool16/openbrwsr.gif&quot;
-	       menubarPath=&quot;additions&quot;
-	       helpContextId=&quot;org.eclipse.ui.examples.readmetool.open_browser_action_context&quot;
-	       class=&quot;org.eclipse.ui.examples.readmetool.ViewActionDelegate&quot;&gt;	
-	    &lt;/action&gt;
-       &lt;/viewerContribution&gt;
-&lt;/extension&gt;</font></pre>
-<i><blockquote>
-Note:&nbsp; The name <b> viewerContribution</b> is somewhat misleading, as it does not relate to JFace viewers. A better name would
-be <b>popupMenuContribution</b>  .</blockquote></i>
-<P >
-When the extension is a <b>viewerContribution</b>, the
-supplied class must implement the
-<b><a href="../reference/api/org/eclipse/ui/IEditorActionDelegate.html"> IEditorActionDelegate</a></b> or
-<b><a href="../reference/api/org/eclipse/ui/IViewActionDelegate.html"> IViewActionDelegate</a></b> interface, depending on whether the
-action is contributed to an editor's or view's popup menu.&nbsp;</P>
-
-
-<P >
-The <b>targetID</b> specifies the view whose popup menu will be altered.&nbsp; In this
-case, we are adding an action to one of the readme tool views, the
-outliner.&nbsp; The action itself is similar to others that we've seen.&nbsp; We specify the <b> id</b>,
-<b>label</b>, and <b>icon</b> of the action, and
-the <b>path</b> within the popup for our contribution.&nbsp; The action will be
-shown only in the readme outline view's popup menu.</P>
-
-
-<P >
-<img src="images/readmeoutlinerpopup.gif" alt="" border="0" width="171" height="162"></P>
-
-
- The interfaces required to contribute a <b>viewerContribution</b>
-to the <b> popupMenus</b> extension
-point are the same as those required by the <b> viewActions</b> and <b> editorActions</b> extension points. If you want to contribute the same action to the popup menu and the local menu of a view or editor, you can use the same class for both extensions.
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_viewActions.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_viewActions.htm
deleted file mode 100644
index c49a5cf..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_viewActions.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.viewActions</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-org.eclipse.ui.viewActions</H3>
-
-<P >
-It is common for plug-ins to contribute behavior to views that already exist in the workbench. This is done through the
-<b><a href="../reference/extension-points/org_eclipse_ui_viewActions.html"> org.eclipse.ui.viewActions</a></b> 
-extension point. This extension point allows plug-ins to contribute menu items, submenus and tool bar entries to an
-existing view's local
-pull-down menu and local tool bar. </P>
-<P >
-You may have noticed an item in the navigator's local tool bar that becomes
-enabled whenever a readme file is selected. This item also appears in the
-navigator's local
-pull-down menu. These actions appear because the readme tool plug-in contributes
-them using the
-<b> viewActions</b> extension.</P>
-
-<img src="images/readmeviewaction.gif" alt="" border="0" width="162" height="165">
-<P >
-The relevant <b> plugin.xml</b> contribution is below.</P>
-<font color='#4444CC'><pre>
-&lt;extension
-    point = &quot;org.eclipse.ui.viewActions&quot;&gt;
-      &lt;viewContribution 
-         id=&quot;org.eclipse.ui.examples.readmetool.vc1&quot; 
-         targetID=&quot;org.eclipse.ui.views.ResourceNavigator&quot;&gt;        
-	   &lt;action id=&quot;org.eclipse.ui.examples.readmetool.va1&quot; 
-              label=&quot;%PopupMenu.ResourceNav.label&quot; 
-	      menubarPath=&quot;additions&quot;
-              toolbarPath=&quot;additions&quot; 
-              icon=&quot;icons/obj16/editor.gif&quot; 
-              tooltip=&quot;%PopupMenu.ResourceNav.tooltip&quot; 
-   	      helpContextId=&quot;org.eclipse.ui.examples.readmetool.view_action_context&quot;
-              class=&quot;org.eclipse.ui.examples.readmetool.ViewActionDelegate&quot; 
-              enablesFor=&quot;1&quot;&gt; 
-		&lt;selection class=&quot;org.eclipse.core.resources.IFile&quot; name=&quot;*.readme&quot;/&gt; 
-	   &lt;/action&gt;
-      &lt;/viewContribution&gt;
- &lt;/extension&gt;
-</pre></font>
-<P >
-A view contribution with a unique id is specified. The view to which we are adding
-the action is specified in the
-<b> targetID</b>. We are contributing to the resource
-navigator's menu.&nbsp; We specify the label and the menu bar and
-tool bar locations for the new action.&nbsp; (For a complete discussion of menu and toolbar locations, see
-<a HREF="workbench_menupaths.htm" CLASS="XRef"> Menu and toolbar paths</a>). </P>
-<P >
-We also specify the conditions under which the action should be enabled. You can see that this action will be enabled when there is one selection
-(<b>enablesFor=&quot;1&quot;</b>) of type
-<b><a href="../reference/api/org/eclipse/core/resources/IFile.html">IFile</a>
-(class=&quot;org.eclipse.core.resources.IFile&quot;)</b>, whose name has
-&quot;<b>.readme</b>&quot; in the file extension (<b>name=&quot;*.readme&quot;</b>). Sure enough, that's exactly what happens when you click around in the resource navigator.&nbsp;&nbsp;</P>
-<P >
-The information in the <b> plugin.xml</b> is all that's needed to add items to menus and tool
-bars since plug-in code will only run when the action is actually selected from the menu or toolbar.
-To provide the action behavior, the implementation class specified in the
-<b> plugin.xml</b> must implement the <b><a href="../reference/api/org/eclipse/ui/IViewActionDelegate.html"> IViewActionDelegate</a></b> interface. </P>
-<P >
-In this example, the readme plug-in supplies <b> ViewActionDelegate</b> to implement the action. If you browse this class you will see that it includes methods for
-remembering its view, handling selection changes, and invoking its action.&nbsp;
-When invoked the action itself simply launches a dialog that announces it was executed.</P>
-<font color='#4444CC'><pre>
-public void run(org.eclipse.jface.action.IAction action) {
-	MessageDialog.openInformation(view.getSite().getShell(),
-		MessageUtil.getString(&quot;Readme_Editor&quot;),  
-		MessageUtil.getString(&quot;View_Action_executed&quot;)); 
-}</pre></font>
-<P >
-Although this action is simple, we can imagine how using selections and more
-functional dialogs could make this action do something more interesting.</P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_views.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_views.htm
deleted file mode 100644
index 1edb066..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_basicext_views.htm
+++ /dev/null
@@ -1,147 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.views</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H3>
-org.eclipse.ui.views</H3>
-
-<P >A view is a workbench part that can navigate a hierarchy of information or display properties for an
-object.&nbsp; Only one instance of any given view
-is open in a workbench page.&nbsp; When the user makes selections or other changes in a view,
-those changes are immediately reflected in the workbench. Views are often provided to support a corresponding editor.&nbsp;
-For example, an <b>outline</b> view shows a structured view of the information
-in an editor.&nbsp; A <b>properties</b> view shows the properties of an object
-that is currently being edited.</P>
-
-<P >
-The extension point <b><a href="../reference/extension-points/org_eclipse_ui_views.html">org.eclipse.ui.views</a></b>
-allows plug-ins to add views to the workbench. Plug-ins that contribute a view must register the view in their
-<b> plugin.xml </b> file and provide&nbsp; configuration information about the view, such as its implementation class, the category (or group) of views to which it belongs, and the name and icon that should be used to describe the view in menus and labels.</P>
-<P >
-The interface for views is defined in <b><a href="../reference/api/org/eclipse/ui/IViewPart.html">IViewPart</a></b>, but plug-ins
-can choose to extend the
-<b><a href="../reference/api/org/eclipse/ui/part/ViewPart.html"> ViewPart</a></b> class rather than implement an
-<b><a href="../reference/api/org/eclipse/ui/IViewPart.html"> IViewPart</a></b> from scratch.</P>
-<P >
-We implemented a minimal view extension in the hello world example. Now we'll look at one that is aware of other workbench views and responds to user navigation and selection
-changes in the workbench. First,
-let's take a look at the declaration of the extension in the <b>plugin.xml</b>.</P>
-<font color='#4444CC'><pre>&lt;extension 
-   point=&quot;org.eclipse.ui.views&quot;&gt;
-	&lt;category 
-	   id=&quot;org.eclipse.ui.examples.readmetool&quot;
-	   name=&quot;%Views.category&quot;&gt;
-	&lt;/category&gt;
-	&lt;view
- 	   id=&quot;org.eclipse.ui.examples.readmetool.views.SectionsView&quot;
-	   name=&quot;%Views.ReadmeSections&quot;
-	   icon=&quot;icons/view16/sections.gif&quot;
-	   category=&quot;org.eclipse.ui.examples.readmetool&quot;
-	   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeSectionsView&quot;&gt;
-	&lt;/view&gt;
-&lt;/extension&gt;
-</pre></font>
-<P >
-This should look pretty familiar. We see that a new view, <b>ReadmeSectionsView</b>, is contributed to the workbench. The
-<b>view id</b>, <b>name</b>,
-and
-<b> category</b> are specified as we've seen before. An <b> icon</b> is also provided
-for the view, using a path relative to the plug-in's installation directory. </P>
-<P >
-Let's look at the <b>ReadmeSectionsView</b>. You can show any view in the
-workbench by choosing <b>Window-&gt;Show View-&gt;Other... </b> and selecting the view from the <b> Show View</b> list.</P>
-<P >
-When we show the <b>ReadmeSectionsView</b>, a view with a list in it pops up.
-The list is empty unless we click on a file with an extension of <b>.readme</b>, in which case
-the list is populated with sections from the readme file.</P>
-
-<img src="images/readmeview.gif" alt="" border="0" width="372" height="138">
-<P >
-How does the plug-in recognize the readme file and how did it know about selection changes? If we can track down
-the answers to these questions, we are well on our way to understanding how to build integrated workbench plug-ins.</P>
-<P >
-We'll start with the familiar <b>createPartControl</b>
-method.&nbsp; As we saw in the Hello World example, this is where the widgets
-that represent a view are created.&nbsp; We'll ignore some of the code to get
-started.</P>
-<font color='#4444CC'><pre>
-   public void createPartControl(Composite parent) {
-      viewer = new ListViewer(parent);
-      ...
-      // add myself as a global selection listener
-      getSite().getPage().addSelectionListener(this);
-
-      // prime the selection
-      selectionChanged(null, getSite().getPage().getSelection());
-   }
-</pre></font>
-<P >
-The view creates and stores a ListViewer and registers itself as a selection listener
-on its page. It obtains the page from an
-<b><a href="../reference/api/org/eclipse/ui/IViewSite.html">IViewSite</a></b>, which contains information about the view's context, such as its workbench window,
-its containing page, and its plug-in. When we are notified of a selection change, what happens?&nbsp;
-The following code is executed:</P>
-<font color='#4444CC'><pre>
-   public void selectionChanged(IWorkbenchPart part, ISelection sel) {
-      //if the selection is a readme file, get its sections.
-      AdaptableList input = ReadmeModelFactory.getInstance().getSections(sel);
-      viewer.setInput(input);
-   }
-</pre></font>
-<P >
-It looks like the <b> ReadmeModelFactory</b> class is responsible for turning the selection into readme
-sections and these sections are input for
-the viewer that we created in the <b>createPartControl</b>
-method.</P>
-<P >
-But how did the viewer populate its list widgets?&nbsp; For now, let's assume that once the viewer was told its input element, it knew how to populate
-its list widget with the information - it is a ListViewer, after all.&nbsp; If you must know right now what this viewer is all about, go to <a HREF="jface_viewers.htm" CLASS="XRef">Viewers</a>.&nbsp;</P>
-<P >
-We still do not know how readme files are detected or where the file's section
-information comes from.&nbsp; A quick look at the
-<b> ReadmeModelFactory</b> sheds some light.</P>
-<font color='#4444CC'><pre>
-   public AdaptableList getSections(ISelection sel) {
-      // If sel is not a structured selection just return.
-      if (!(sel instanceof IStructuredSelection))
-         return null;
-      IStructuredSelection structured = (IStructuredSelection)sel;
-
-      //if the selection is a readme file, get its sections.
-      Object object = structured.getFirstElement();
-      if (object instanceof IFile) {
-         IFile file = (IFile) object;
-         String extension = file.getFileExtension();
-         if (extension != null &amp;&amp; extension.equals(IReadmeConstants.EXTENSION)) {
-            return getSections(file);
-         }
-      }
-
-      //the selected object is not a readme file
-      return null;
-   }
-</pre></font>
-<P >We check the selection to see if it is a structured (multiple)
-selection.&nbsp; (The concept of a structured selection comes from JFace <a href="jface_viewers.htm">viewers</a>.)&nbsp;
-For the first object in the selection, we check to see whether it is a file (<b><a href="../reference/api/org/eclipse/core/resources/IFile.html">IFile</a></b>)
-resource.&nbsp; If it is, we check its extension to see if it matches the &quot;<b>.readme</b>&quot;
-extension.&nbsp; Once we know we have a readme file, we can use other methods to
-parse the sections.&nbsp;&nbsp; You can browse the rest of <b>ReadmeModelFactory</b>,&nbsp;
-<b>MarkElement</b>, and <b> DefaultSectionsParser</b> for the
-details about the file parsing. </P>
-<P >
-We've covered a lot of common workbench concepts by studying this extension. Now we'll move on to some other workbench extensions and examine how your plug-in can further contribute to the workbench UI. </P>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_btb.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_btb.htm
deleted file mode 100644
index d85c26e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_btb.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Beyond the basics
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Beyond the basics</H2>
-<P >
-You should know enough by now to browse the workbench code and the rest of this documentation as you see fit. The next few chapters take a look at
-some additional extensions and the underlying UI architecture that supports the platform workbench. </P>
-<ul>
-  <li><a HREF="dialogs.htm" CLASS="XRef">Dialogs and wizards</a> introduces more workbench extensions for contributing preferences, properties, and wizards to the workbench. It also introduces the JFace UI framework and its support for dialogs and wizards.</li>
-  <li><a href="preferences.htm">Preferences and properties</a> introduces
-    extensions for adding pages to preferences and properties dialogs.</li>
-  <li>
-<a HREF="jface.htm" CLASS="XRef">JFace: UI framework for plug-ins</a> will cover many of the basic concepts in the JFace UI framework, such as viewers and actions.</li>
-  <li>
-<a HREF="swt.htm" CLASS="XRef">Standard Widget Toolkit</a> introduces the lowest level of the UI architecture, SWT.</li>
-</ul>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_menupaths.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_menupaths.htm
deleted file mode 100644
index ebb3838..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_menupaths.htm
+++ /dev/null
@@ -1,328 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Menu and toolbar paths
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h2>
-Menu and toolbar paths</h2>
-<P >
-We've seen many action contributions that specify the path for the location of their action. Let's take a close look at what these paths mean.&nbsp;&nbsp;</P>
-
-<h3 >
-Menu paths</h3>
-
-<P >
-We'll look at menu paths first by looking at the workbench <b>Help</b> menu.</P>
-
-<H4>
-Named groups in the workbench</H4>
-<P >
-The locations for inserting new menus and menu items are defined using named groups. You can think of
-a named group as a slot or placeholder that allows you to insert your menu items
-at certain points in a menu bar or pulldown menu.</P>
-<P >
-The workbench defines all of its group slot names in the class <b><a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html">IWorkbenchActionConstants</a></b>. For each workbench menu, named groups are placed in the menu at locations where it is expected that
-plug-ins will insert new actions.</P>
-<P >
-The following description of the help menu is adapted from the <a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html"><b> IWorkbenchActionConstants</b></a>
-class definition.</P>
-<font color='#4444CC'><pre>
-   Standard Help menu actions
-   Start group - HELP_START - &quot;start&quot;
-   End group - HELP_END - &quot;end&quot;
-   About action - ABOUT - &quot;About&quot;
-</pre></font>
-<P >
-The standard workbench help menu consists of a named group called &quot;<b>start</b>,&quot; followed by a named group called &quot;<b>end</b>,&quot; followed by the &quot;<b>About</b>&quot; action.
-Defining two groups gives plug-ins more control over where their contributed
-items will be positioned within the help menu.&nbsp; When you define a menu, you can define as many slots as you like. Adding more slots gives other plug-ins more control over where their contributions appear relative to existing contributions. </P>
-<P >
-But wait!&nbsp; We know that there are other menu items on the Help menu.&nbsp;
-These are added by plug-ins.&nbsp; For example, the help plug-in adds an action
-set containing the &quot;Help Contents&quot; menu to the workbench.&nbsp; Here's
-the markup from the <b>org.eclipse.help.ui</b> plug-in's
-<b>plugin.xml</b>. </P>
-<font color='#4444CC'><pre>
-&lt;extension point=&quot;org.eclipse.ui.actionSets&quot;&gt;
-	&lt;actionSet
-		id=&quot;org.eclipse.help.internal.ui.HelpActionSet&quot;
-		label=&quot;%help&quot;
-		visible=&quot;true&quot;&gt;
-			
-	&lt;action id=&quot;org.eclipse.help.internal.ui.HelpAction&quot;
-		<b>menubarPath=&quot;help/helpEnd&quot;</b>
-		label=&quot;%helpcontents&quot;
-		class=&quot;org.eclipse.help.ui.internal.HelpContentsAction&quot;
-		icon=&quot;icons/view.gif&quot;
-		helpContextId=&quot;org.eclipse.help.ui.helpContentsMenu&quot;
-		tooltip=&quot;%openhelpcontents&quot;/&gt;
-	...
-</pre></font>
-<P >
-The new help action will be placed in the help menu, inside the <b> helpEnd</b> group. If no other plug-in has contributed to the help menu, this means the &quot;Help Contents&quot; menu item will appear as the first item in the menu above the &quot;About&quot; item. If another plug-in wanted to contribute an item that always appeared above the &quot;Help Contents&quot; item, then it could specify the
-<b> helpStart</b> group on its path.&nbsp;&nbsp;</P>
-
-
-<H4>
-Fully qualified menu paths</H4>
-<P >
- A complete menu path is simply &quot;menu name/group
- name.&quot;&nbsp; Menu names for the workbench are defined in
-<b><a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html">IWorkbenchActionConstants</a></b>. This
- class is used to find that the fully qualified path name for our help action is
- &quot;<b>help/helpEnd</b>.&quot; </P>
-<P >
-Some menus have nested submenus. This is where longer paths come into play. If the help menu had defined a submenu called &quot;<b>submenu</b>&quot; with a named group called &quot;<b>submenuStart</b>,&quot; then the fully qualified menu path for an action in the new submenu would be &quot;<b>help/submenu/submenuStart</b>.&quot;</P>
-
-
-<H4>
-<a name="workbench_menus_nls">
-Externalizing UI labels</a></H4>
-<p>The example above demonstrates a technique for externalizing strings
-that appear in the UI.&nbsp; Externalized strings are used to make translating the plug-in's UI to
-other languages simpler.&nbsp; We can externalize the strings in our <b>plugin.xml
-</b>files by replacing the string with a key (e.g. <b>%help,
-%helpcontents</b>) and creating entries in the <b>plugin.properties</b>
-file of the form:</p>
-<font color='#4444CC'><pre>
-   help = &quot;Help&quot;
-   helpContents = &quot;Help Contents&quot;
-</pre></font>
-<P >
-The <b>plugin.properties</b> file can be
-translated for different languages and the <b>plugin.xml</b>
-will not need to be modified.</P>
-
-
-<H4>
-Adding new menus and groups</H4>
-<P >
-In many of the examples we've seen so far, the actions contributed by the sample plug-ins have been added to existing named groups within menus.</P>
-<P >
-The <b><a href="../reference/extension-points/org_eclipse_ui_actionSets.html">actionSets</a></b>,
-<b><a href="../reference/extension-points/org_eclipse_ui_viewActions.html">viewActions</a></b>,
-<b><a href="../reference/extension-points/org_eclipse_ui_editorActions.html">editorActions</a></b>, and
-<b><a href="../reference/extension-points/org_eclipse_ui_popupMenus.html"> popupMenus</a></b> extension points also allow you to define new menus and groups within your contribution. This means that you can define new submenus or new
-pull-down menus and contribute your actions to these new menus. In this case, the path for your new action will contain the name of your newly defined menu. </P>
-<P>
-We saw this technique when the readme tool defined a new menu for its action
-set.&nbsp; Let's look at the markup one more time now that we've looked at menu
-paths in more detail. </P>
-<font color='#4444CC'><pre>
-   &lt;extension point = &quot;org.eclipse.ui.actionSets&quot;&gt;
-   &lt;actionSet id=&quot;org_eclipse_ui_examples_readmetool_actionSet&quot;
-	   label=&quot;%ActionSet.name&quot;
-	   visible=&quot;true&quot;&gt;
-	   &lt;<b>menu id=&quot;org_eclipse_ui_examples_readmetool&quot;</b>
-		   label=&quot;%ActionSet.menu&quot;
-		   <b>path=&quot;window/additions&quot;</b>&gt; 
-		   &lt;separator name=&quot;slot1&quot;/&gt;
-		   &lt;separator name=&quot;slot2&quot;/&gt;
-		   &lt;separator name=&quot;slot3&quot;/&gt;
-	   &lt;/menu&gt;
-	   &lt;action id=&quot;org_eclipse_ui_examples_readmetool_readmeAction&quot;
-		   <b>menubarPath=&quot;window/org_eclipse_ui_examples_readmetool/slot1&quot;</b>
-		   toolbarPath=&quot;readme&quot;
-		   label=&quot;%ReadmeAction.label&quot;
-		   tooltip=&quot;%ReadmeAction.tooltip&quot;
-		   helpContextId=&quot;org.eclipse.ui.examples.readmetool.open_browser_action_context&quot;
-		   icon=&quot;icons/ctool16/openbrwsr.gif&quot;
-		   class=&quot;org.eclipse.ui.examples.readmetool.WindowActionDelegate&quot;
-		   enablesFor=&quot;1&quot;&gt;
-		   &lt;selection class=&quot;org.eclipse.core.resources.IFile&quot;
-				name=&quot;*.readme&quot;&gt;
-		   &lt;/selection&gt;
-	   &lt;/action&gt;
-	   ...
-</pre></font>
-<P >We added a new menu called&nbsp; &quot;<b>org_eclipse_ui_examples_readmetool</b>&quot;
-whose label is defined in by the key &quot;<b>%ActionSet.name</b>&quot; in the
-properties file. Within this menu, we define three named
-groups:&nbsp; &quot;<b>slot1</b>,&quot; &quot;<b>slot2</b>,&quot;
-and &quot;<b>slot3</b>.&quot;&nbsp; We add this new
-menu to the path &quot;<b>window/additions</b>.&quot;</P>
-<P >If we go back to <b><a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html">IWorkbenchActionConstants</a></b>,
-we see this definition of the window menu in the javadoc:</P>
-<font color='#4444CC'><pre>
-    * &lt;h3&gt;Standard Window menu actions&lt;/h3&gt;
-    * &lt;ul&gt;
-    * &lt;li&gt;Extra Window-like action group (&lt;code&gt;WINDOW_EXT&lt;/code&gt;)&lt;/li&gt; 
-</pre></font>
-<P >
-If we look further at the class definition, we will see these related
-definitions: </P>
-
-
-<font color='#4444CC'><pre>
-   public static final String MENU_PREFIX = &quot;&quot;;
-   ...
-   public static final String M_WINDOW = MENU_PREFIX+&quot;window&quot;;
-   ...
-   public static final String MB_ADDITIONS = &quot;additions&quot;;  // Group.
-   ...
-   public static final String WINDOW_EXT = MB_ADDITIONS;   // Group.
-</pre></font>
-
-
-<P >
-From this information, we can piece together the path for adding something to
-the workbench &quot;Window&quot; menu.&nbsp; The menu itself is called &quot;<b>window</b>&quot;
-and it defines one slot called &quot;<b>additions</b>.&quot;&nbsp;
-We use the path &quot;<b>window/additions</b>&quot; to
-add our new menu. </P>
-
-
-<P >
-In the action set declaration, we add an action to our newly defined menu, using
-the path &quot;<b>window/org_eclipse_ui_examples_readmetool/slot1</b>.&quot; </P>
-
-
-<P >
-<img src="images/readmeactionsetmenu.gif" alt="" border="0" width="534" height="73"> </P>
-
-
-<P >Other plug-ins could add to our menu by using this same path (or perhaps one
-of the other slots) to add one of their own menus.&nbsp;&nbsp; </P>
-
-
-<P >In the readme tool example, we use the <b>separator</b> attribute to
-identify the group names.&nbsp; This will cause a separator line to appear
-between these groups when they contain items.&nbsp; We could instead use the <b>groupMarker</b>
-attribute if we want to define a named group without showing any separators in
-the menu to distinguish between the groups. </P>
-
-
-<h3 >Tool bar paths </h3>
-
-
-<p>Tool bar paths work similarly to menu paths.&nbsp;&nbsp;</p>
-
-
-<h4>Named tool bars in the workbench</h4>
-
-
-<p>The workbench tool bar is composed of
-tool bars contributed by different plug-ins, including the workbench
-itself.&nbsp; Within any particular tool bar, there are named groups or slots that can be used for inserting new tool bar items.
-&nbsp;&nbsp;&nbsp;</p>
-<P >
-The following description of the workbench tool bars is adapted from the <a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html"><b> IWorkbenchActionConstants</b></a>
-class definition.</P>
-<font color='#4444CC'><pre>// Workbench toolbar ids
-public static final String TOOLBAR_FILE = &quot;org.eclipse.ui.workbench.file&quot;
-public static final String TOOLBAR_NAVIGATE = &quot;org.eclipse.ui.workbench.navigate&quot;; 
-
-// Workbench toolbar group ids.  To add an item at the beginning of the group, 
-// use the GROUP id.  To add an item at the end of the group, use the EXT id.
-public static final String PIN_GROUP = &quot;pin.group&quot;; 
-public static final String HISTORY_GROUP = &quot;history.group&quot;; 
-public static final String NEW_GROUP = &quot;new.group&quot;; 
-public static final String SAVE_GROUP = &quot;save.group&quot;; 
-public static final String BUILD_GROUP = &quot;build.group&quot;; </pre></font>
-<p>In the simplest case, a plug-in can contribute a tool bar item in its own
-tool bar.&nbsp; For example, the readme tool actions contributed to the menu are
-also given a tool bar path:  </p>
-<pre><font color='#4444CC'>...
-&lt;action id=&quot;org_eclipse_ui_examples_readmetool_readmeAction&quot;&nbsp;&nbsp;
-   menubarPath=&quot;window/org_eclipse_ui_examples_readmetool/slot1&quot;
-&nbsp;&nbsp; <b>toolbarPath=&quot;readme&quot;
-</b></font>...</pre>
-<p>Since there is no reference to the workbench tool bar paths or groups, the
-readme actions appear in their own group on the tool bar.&nbsp; Specifying the
-following path would instead place the item in the file tool bar in the save
-group:</p>
-<pre><font color='#4444CC'>...
-&lt;action id=&quot;org_eclipse_ui_examples_readmetool_readmeAction&quot;&nbsp;&nbsp;
-   menubarPath=&quot;window/org_eclipse_ui_examples_readmetool/slot1&quot;
-&nbsp;&nbsp; <b>toolbarPath=&quot;org.eclipse.ui.workbench.file/save.group&quot;
-</b></font>...</pre>
-<p>The paths defined in <a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html"><b> IWorkbenchActionConstants</b></a>
- may be referenced in the tool bar paths of other plug-ins.</p>
-<h4>Adding to action sets of another plug-in</h4>
-<p>Suppose a plug-in wants its tool bar items better integrated with actions
-from a different plug-in?&nbsp; Let's look at how the external
-tools plug-in (<b>org.eclipse.ui.externaltools</b>) integrates its action with the debugger tool bar.&nbsp; The
-debugger (<b>org.eclipse.debug.ui</b>) defines its tool bar actions like this:</p>
-<pre><font color='#4444CC'>&lt;extension
-      point=&quot;org.eclipse.ui.actionSets&quot;&gt;
-   &lt;actionSet
-         label=&quot;%LaunchActionSet.label&quot;
-         visible=&quot;false&quot;
-         id=&quot;org.eclipse.debug.ui.launchActionSet&quot;&gt;
-   ...
-   &lt;action
-         <b>toolbarPath=&quot;debug&quot;</b>
-         id=&quot;org.eclipse.debug.internal.ui.actions.RunDropDownAction&quot;
-         hoverIcon=&quot;icons/full/ctool16/run_exc.gif&quot;
-         class=&quot;org.eclipse.debug.internal.ui.actions.RunToolbarAction&quot;
-         disabledIcon=&quot;icons/full/dtool16/run_exc.gif&quot;
-         icon=&quot;icons/full/etool16/run_exc.gif&quot;
-         helpContextId=&quot;run_action_context&quot;
-         label=&quot;%RunDropDownAction.label&quot;
-         pulldown=&quot;true&quot;&gt;
-   &lt;/action&gt;
-   ...</pre></font>
-<p>Just like the readme tool, the debugger plug-in defines its own tool bar
-path, which means its tool bar items will be inside their own tool bar on the
-workbench.&nbsp; What does the external tools plug-in do?</p>
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.ui.actionSets&quot;&gt;
-	&lt;actionSet
-		id=&quot;org.eclipse.ui.externaltools.ExternalToolsSet&quot;
-		label=&quot;%ActionSet.externalTools&quot;
-		visible=&quot;true&quot;&gt;
-		...
-		&lt;action
-			id=&quot;org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar&quot;
-			definitionId= &quot;org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar&quot;
-			label=&quot;%Action.externalTools&quot;
-			<b>toolbarPath=&quot;org.eclipse.debug.ui.launchActionSet/debug&quot;</b>
-			disabledIcon=&quot;icons/full/dtool16/external_tools.gif&quot;
-			icon=&quot;icons/full/etool16/external_tools.gif&quot;
-			hoverIcon=&quot;icons/full/ctool16/external_tools.gif&quot;
-			tooltip=&quot;%Action.externalToolsTip&quot;
-			pulldown=&quot;true&quot;
-			class=&quot;org.eclipse.ui.externaltools.internal.menu.ExternalToolMenuDelegate&quot;&gt;
-		&lt;/action&gt;
-	&lt;/actionSet&gt;
-&lt;/extension&gt;</font></pre><p>Note the use of the action set ID of the
-debugger in the tool bar path.&nbsp; Using an action set ID in the path denotes
-that the tool bar item should be placed in the tool bar used by the referenced
-action set.&nbsp;  Within a toolbar group, items are ordered by action set id, so
-for our example, the external tools action will appear after the debugger actions.&nbsp;</p>
-<p>When adding to an action set's tool bar, new groups can also be defined.&nbsp;
-If the external tools plug-in defined its <b> toolbarpath</b> as 
-<b>&quot;org.eclipse.debug.ui.launchActionSet/external&quot;</b> a new group would be created 
-for the action on the tool bar.&nbsp;  As with menus, tool bar groups are delineated by separators.&nbsp;</p>
-<h3 >Using paths from another plug-in </h3>
-
-
-<P >In general, it's not good practice to contribute to another plug-in's menu
-or tool bar by deriving the path name from the <b>plugin.xml</b> unless it has
-been marked specifically as being available for clients.&nbsp; It's possible that a future version of the plug-in could change the names of the
-paths.&nbsp; Two common ways to mark your plug-in's action set ids and paths as
-fair game are: </P>
-
-
-<ul>
-  <li>annotate the XML with comments that explicitly mark the menu path or
-    action set as usable by clients</li>
-  <li>define a public interface (much like <b><a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html">IWorkbenchActionConstants</a></b>)
-which specifies exactly which menus, tool bar groups, and slots are considered
-fair game for use by other plug-ins</li>
-</ul>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_menus.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_menus.htm
deleted file mode 100644
index 2d4f512..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_menus.htm
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Workbench menu contributions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Workbench menu contributions</H2>
-<P >
-We've seen several different extension points that contribute to various menus and toolbars in the workbench. How do you know which one to use? The following table summarizes the various menu contributions and their use.</P>
-<TABLE BORDER="1" width="671">
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="118">
-<P CLASS="CellHeading">
-Extension point name</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="359">
-<P CLASS="CellHeading">
-Location of Actions</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="335">
-<P CLASS="CellHeading">
-Details</P>
-</TH>
-</TR>
-<TR>
-<TD width="118">
-<P CLASS="CellBody">
-<b>
-viewActions</b></P>
-</TD>
-<TD width="359">
-<P CLASS="CellBody">
-Actions appear in a specific view's local toolbar and local pulldown menu.</P>
-</TD>
-<TD width="335">
-<P CLASS="CellBody">
-Contribute an action class that implements <b><a href="../reference/api/org/eclipse/ui/IViewActionDelegate.html">IViewActionDelegate</a></b>. Specify the id of the contribution and the id of the target view that should show the action. The label and image
-dictate the appearance of the action in the UI. The path specifies the location relative to the view's menu and toolbar items.</P>
-</TD>
-</TR>
-<TR>
-<TD width="118">
-<P CLASS="CellBody"><b>editorActions</b></P>
-</TD>
-<TD width="359">
-<P CLASS="CellBody">
-Actions are associated with an editor and appear in the workbench menu and/or tool bar.</P>
-</TD>
-<TD width="335">
-<P CLASS="CellBody">
-Contribute an action class that implements <b><a href="../reference/api/org/eclipse/ui/IEditorActionDelegate.html">IEditorActionDelegate</a></b>. Specify the id of the contribution and the id of the target editor that causes the action to be shown. The label and image specify the appearance of the action in the UI. Separate menu and toolbar paths specify the existence and location of the contribution in the workbench menu and toolbar.</P>
-</TD>
-</TR>
-<TR>
-<TD width="118">
-<P CLASS="CellBody">
-<b>
-popupMenus</b></P>
-</TD>
-<TD width="359">
-<P CLASS="CellBody">
-Actions appear in the popup menu of an editor or view. Actions associated with an object type show up in all popups of views
-and editors that show the object type. Actions associated with a specific popup menu appear only in that popup menu.</P>
-</TD>
-<TD width="335">
-<P CLASS="CellBody">
-<b>
-Object contributions</b> specify the type of object for which the action should appear in a popup menu. The action will be shown in all view
-and editor popups
-that contain the object type.&nbsp; Provide an action class that implements <b><a href="../reference/api/org/eclipse/ui/IObjectActionDelegate.html">IObjectActionDelegate</a></b>.&nbsp;<BR>
-<b>
-Viewer contributions</b> specify the id of the target popup menu in which the menu item should appear.&nbsp;
-Provide an action class that implements <b><a href="../reference/api/org/eclipse/ui/IEditorActionDelegate.html">IEditorActionDelegate</a></b>
-or <b><a href="../reference/api/org/eclipse/ui/IViewActionDelegate.html">IViewActionDelegate</a></b>.&nbsp;</P>
-</TD>
-</TR>
-<TR>
-<TD width="118">
-<P CLASS="CellBody">
-<b>
-actionSets</b></P>
-</TD>
-<TD width="359">
-<P CLASS="CellBody">
-Actions appear in the workbench main menus and toolbar. Actions are grouped into action sets. All actions in an action set will show up in the workbench menus and toolbars according to the user's selection of action sets
-and the current perspective shown in the workbench.&nbsp; May be influenced by
-actionSetPartAssociations (below).</P>
-</TD>
-<TD width="335">
-<P CLASS="CellBody">
-Contribute an action class that implements <b><a href="../reference/api/org/eclipse/ui/IWorkbenchWindowActionDelegate.html"> IWorkbenchWindowActionDelegate</a></b> or
-<b><a href="../reference/api/org/eclipse/ui/IWorkbenchWindowPulldownDelegate.html">IWorkbenchWindowPulldownDelegate</a></b>. Specify the
-<b> name</b> and <b> id</b> of the action set. Enumerate all of the actions that are defined for that action set. For each action, separate menu and toolbar paths specify the existence and location of the contribution in the workbench menu and toolbar.</P>
-</TD>
-</TR>
-<tr>
-<TD width="118">
-<P CLASS="CellBody">
-<b>
-actionSetPartAssociations</b></P>
-</TD>
-<TD width="359">
-<P CLASS="CellBody"> Actions sets are shown only when the specified views or
-editors are active.&nbsp; This is ignored if the user has customized the current
-perspective.</P>
-</TD>
-<TD width="335">
-<P CLASS="CellBody">
-Specify an action set by <b>id</b> and followed by one or more parts (by <b>id</b>)
-that must be active in the current perspective in order to show the action set.</P>
-</TD>
-</tr>
-</TABLE>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_perspectives.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_perspectives.htm
deleted file mode 100644
index 6dd9265..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_perspectives.htm
+++ /dev/null
@@ -1,173 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>org.eclipse.ui.perspectives</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h2>
-Perspectives</h2>
-<P >
-We've already seen some ways the workbench allows the user to control the appearance of plug-in functionality. Views can be hidden or shown using the
-<b>Window &gt;Show View</b> menu. Action sets can be hidden or shown using the <b>Window
-&gt;Customize
-Perspective...</b> menu. These features help the user organize the workbench. </P>
-
-<P >
-<b>
-Perspectives</b> provide an additional layer of organization inside a workbench
-window. Users can switch between perspectives as they move across tasks. A perspective defines
-a collection of views, a layout for the views, and the visible action sets that
-should be used when the user first opens the perspective.</P>
-<P >
-Perspectives are implemented using&nbsp; <b><a href="../reference/api/org/eclipse/ui/IPerspectiveFactory.html">IPerspectiveFactory</a>.&nbsp;
-</b>Implementors of
-<b><a href="../reference/api/org/eclipse/ui/IPerspectiveFactory.html">IPerspectiveFactory</a></b>
-are expected to configure an <b><a href="../reference/api/org/eclipse/ui/IPageLayout.html"> IPageLayout</a></b> with information that describes the
-perspective and its perspective page layout.</P>
-
-
-<h3>
-Workbench part layout</h3>
-<P >
-One of the main jobs of an <b><a href="../reference/api/org/eclipse/ui/IPageLayout.html"> IPageLayout</a></b>
-is to describe the placement of the editor and the views in the workbench window. Note that these layouts are different than the
-<a href="../reference/api/org/eclipse/swt/widgets/Layout.html"><b> Layout</b></a> class in SWT. Although
-<b><a href="../reference/api/org/eclipse/ui/IPageLayout.html"> IPageLayout</a></b>
-and <a href="../reference/api/org/eclipse/swt/widgets/Layout.html"><b> Layout</b></a>
-solve a similar problem (sizing and positioning widgets within a larger area), you do not have to understand SWT layouts in order to supply a
-perspective page layout.</P>
-<P >
-A perspective page layout is initialized with one area for displaying an editor. The perspective factory is responsible for adding additional views relative to the
-editor. Views are added to the layout relative to (top, bottom, left, right) another part. Placeholders (empty space) can also be added for
-items that are not initially shown.</P>
-<P >
-To organize related views and reduce clutter, you can use <a href="../reference/api/org/eclipse/ui/IFolderLayout.html"><b>IFolderLayout</b></a> to group views into tabbed folders. For example, the Resource perspective
-places the resource navigator inside a folder at the top left corner of the
-workbench.&nbsp; Placeholders are commonly used with folder layouts.
-The Resource perspective defines a placeholder for the bookmarks view in the
-same folder as the resource navigator. If the user shows the bookmarks view, it will appear in the same folder with the
-navigator, with a tab for each view.</P>
-<P >
- <b><a href="../reference/api/org/eclipse/ui/IPageLayout.html"> IPageLayout</a></b>
-also allows you to define the available actions and shortcuts inside a
-perspective.&nbsp;&nbsp; </P>
-
-
-
-<ul>
-  <li><b>addActionSet</b> is used to add action sets to a perspective.&nbsp;&nbsp;</li>
-  <li><b>addNewWizardShortcut</b> adds a new entry to the <b>File &gt;New</b> menu for a perspective.</li>
-  <li><b>addShowViewShortcut</b> adds the names of
- views that should appear in the <b>Window &gt;Show View</b>  menu when the
- perspective is active.&nbsp;&nbsp;</li>
-  <li><b>addPerspectiveShortcut</b> adds the names of
- perspectives that should appear in the <b>Window &gt;Open Perspective</b> menu when
- the perspective is active.</li>
-</ul>
-
-
-
-<h3>
-<a name="showin">
-Linking views and editors</a> with &quot;show-in&quot;</h3>
-
-
-
-<p>
-Another valuable service provided by perspectives and the <b><a href="../reference/api/org/eclipse/ui/IPageLayout.html"> IPageLayout</a>
-</b>
-is to aid in navigation between an editor and its related views.&nbsp; We
-typically think of views as helping the user find the objects to work with in
-editors.&nbsp; However, the converse operation is also useful:&nbsp; a user
-working with an object in an editor may need to navigate to that object inside a
-view.&nbsp; This can be accomplished using the workbench <b>Navigate &gt; Show
-In</b> menu.&nbsp; This command allows the user to jump to one of any number of
-related views in the context of the currently edited (or selected) object.&nbsp;
-For example, a user editing a file may want to jump over to that file in the
-resource navigator. </p>
-
-
-
-<p>
-The plug-in architecture of the workbench allows developers to contribute views
-and editors in different plug-ins that are not even aware of each other.&nbsp;
-By implementing support for &quot;show in,&quot; your view or editor can support
-convenient navigation to or from the views and editors contributed by other
-plug-ins.&nbsp; </p>
-
-
-
-<p>
-This navigation allows users to move quickly between views and to easily open a
-view that is not usually shown in a particular perspective.&nbsp; For example, a
-user working in the Java perspective can use <b>Navigate &gt; Show
-In</b>  to view the currently edited Java file in the Navigator view. </p>
-
-
-
-<h4>
-Show-in source</h4>
-<p>If you want to allow users to use <b>Navigate &gt; Show In</b> from your
-editor or view to jump to another view, you must implement <a href="../reference/api/org/eclipse/ui/IShowInSource.html"><b>IShowInSource</b></a>.&nbsp;
-Your part can supply its <a href="../reference/api/org/eclipse/ui/IShowInSource.html"><b>IShowInSource</b></a><b>
-</b>directly using protocol (<b>getShowInSource()</b>) or as an adapter.&nbsp; <a href="../reference/api/org/eclipse/ui/IShowInSource.html"><b>IShowInSource</b></a><b>
-</b>allows your part to supply a context (<a href="../reference/api/org/eclipse/ui/IShowInContext.html"><b>IShowInContext</b></a>)
-which is used by the target to decide how to show the source.&nbsp; The show in
-context for an editor is typically its input element.&nbsp; For a view, the
-context is typically its selection.&nbsp; Both a selection and an input element
-are provided in a <a href="../reference/api/org/eclipse/ui/IShowInContext.html"><b>IShowInContext</b></a><b>
-</b>to give the target flexibility in determining how to show the source.&nbsp;</p>
-
-
-
-<p>A default context for editors is provided, so that your editor can
-participate in &quot;show-in&quot; without any special coding.&nbsp; For
-editors, the input element and selection are used to create an appropriate
-context.&nbsp;</p>
-
-
-
-<p>For views, <a href="../reference/api/org/eclipse/ui/IShowInSource.html"><b>IShowInSource</b></a>
-must be implemented by the view in order to offer <b>Navigate &gt; Show In</b>
-functionality.</p>
-
-
-
-<h4>
-Show-in target</h4>
-
-
-
-<p>You must implement <a href="../reference/api/org/eclipse/ui/IShowInTarget.html"><b>IShowInTarget</b></a>
-if you want your view to be a valid target for a &quot;show in&quot;
-operation.&nbsp; The target is responsible for showing a given context in a
-manner appropriate for its presentation.&nbsp; For example, the Navigator view
-expands its tree to select and reveal a resource specified in the
-context.&nbsp;&nbsp;</p>
-<p>A target should check the selection in the <a href="../reference/api/org/eclipse/ui/IShowInContext.html"><b>IShowInContext</b></a>
-first in deciding what to show, since this is the more specific
-information.&nbsp; It should show the input element only if no selection is
-indicated.</p>
-<h4>Presenting appropriate targets</h4>
-
-
-
-<p>How is the list of available targets determined?&nbsp; You can specify the
-available targets for your perspective in its <b><a href="../reference/api/org/eclipse/ui/IPageLayout.html"> IPageLayout</a></b>.&nbsp;
-Recall that a &quot;show in&quot; navigation may open a view that is not already
-present in the perspective.&nbsp; Using <b><a href="../reference/api/org/eclipse/ui/IPageLayout.html">IPageLayout</a>.addShowInPart</b>,
-you can specify a valid &quot;show in&quot; target by id.&nbsp; In this way, the
-valid targets can be established without unnecessarily creating any views. </p>
-
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_plugin.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_plugin.htm
deleted file mode 100644
index 5094c3b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_plugin.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-The plug-in class
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-The plug-in class</H2>
-<P >
-So far, we've been looking at the different extensions that are provided by the readme tool. Let's look at the general definition of the readme tool plug-in.</P>
-
-<H3>
-Plug-in definition</H3>
-<P >
-The readme tool plug-in is defined at the top of the <b> plugin.xml</b> file.</P>
-<font color='#4444CC'><pre>
-   
-&lt;plugin
-   name = &quot;%Plugin.name&quot;
-   id = &quot;org.eclipse.ui.examples.readmetool&quot;
-   version = &quot;2.0.0&quot;
-   provider-name = &quot;%Plugin.providerName&quot;
-   class=&quot;org.eclipse.ui.examples.readmetool.ReadmePlugin&quot;&gt;
-
-   &lt;requires&gt;
-      &lt;import plugin=&quot;org.eclipse.ui&quot;/&gt;
-      &lt;import plugin=&quot;org.eclipse.core.resources&quot;/&gt;
-   &lt;/requires&gt;
-
-   &lt;runtime&gt;
-     &lt;library name=&quot;readmetool.jar&quot;/&gt; 
-   &lt;/runtime&gt;
-   ...</pre></font>
-<P >
-The plug-in definition includes the <b>name</b>, <b>id,</b> <b>version</b>, and <b>provider</b>
-<b>name</b> of the plug-in. We saw most of these parameters before in our hello world plug-in. The readme tool also defines a specialized plug-in class,
-<b>ReadmePlugin</b>. </P>
-<P >
-The workbench UI and resources plug-ins are listed as required plug-ins, which
-informs the platform of the readme tool's dependencies. </P>
-<P >
-Finally, the name of the jar file is provided. File names specified in a <b> plugin.xml</b> file are relative to the
-plug-in's directory.</P>
-
-
-<H3>
-AbstractUIPlugin</H3>
-<P >
-The<b> ReadmePlugin</b> class represents the readme
-tool plug-in and manages the life cycle of the plug-in.&nbsp; As we saw in the
-Hello World example, you don't have to specify a plug-in class.&nbsp; The
-platform will provide one for you.&nbsp; In this case, our plug-in needs to
-initialize UI related data when it starts up.&nbsp; The platform class <a href="../reference/api/org/eclipse/ui/plugin/AbstractUIPlugin.html"><b>AbstractUIPlugin</b></a>
-provides a structure for managing UI resources and is extended by <b>
-ReadmePlugin</b>.</P>
-<P >
-<a href="../reference/api/org/eclipse/ui/plugin/AbstractUIPlugin.html"><b>AbstractUIPlugin</b></a>
- uses the generic startup and shutdown methods to manage images, dialog settings, and a preference store during the lifetime of the plug-in.&nbsp;
-We'll look at the specifics of the <b> ReadmePlugin</b> class when we work with dialogs and preferences.</P>
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/workbench_structure.htm b/bundles/org.eclipse.platform.doc.isv/guide/workbench_structure.htm
deleted file mode 100644
index e47e33d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/workbench_structure.htm
+++ /dev/null
@@ -1,135 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Workbench under the covers
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H2>
-Workbench under the covers</H2>
-<P >
-The workbench provides an extensive set of classes and interfaces for building complex user interfaces. Fortunately you don't need to understand
-all of them to do something simple. We'll start by looking at some concepts that are exposed in the workbench user interface
-and their corresponding structure under the covers.</P>
-
-<H3>
-Workbench</H3>
-<P >
-We've been using the term <b> workbench</b> loosely to refer to &quot;that window that opens when you start the platform.&quot; Let's drill down a little and look at some of the visual components that make up
-the workbench.</P>
-
-<img src="images/workbench_decomposed.gif" alt="Workbench with three views and one editor on a page" border="0" width="650" height="570">
-<P >
-For the rest of this discussion, when we use the term workbench, we will be referring to the workbench window
-(<b><a href="../reference/api/org/eclipse/ui/IWorkbenchWindow.html">IWorkbenchWindow</a></b>). The workbench window is the top-level window in a workbench. It is the frame that holds the menu bar,
-tool bar, status line, short cut bar, and pages. In general, you don't need to program to the workbench window. You just want to know that it's there.</P>
-<i><blockquote>
-Note:&nbsp; You can open multiple workbench windows; however each workbench window is a self-contained world of editors and views,
-so we'll just focus on a single workbench
-window.</blockquote></i>
-<P >
-From the user's point of view, a workbench contains views and editors. There are a few other classes used to implement the workbench window.&nbsp; </P>
-
-
-
-<H3>
-Page</H3>
-<P >
-Inside the workbench window, you'll find one page (<b><a href="../reference/api/org/eclipse/ui/IWorkbenchPage.html">IWorkbenchPage</a></b>) that in turn contains parts. Pages are an implementation mechanism for grouping parts. You typically don't need to program to the page, but you'll see it in the context of programming and debugging. </P>
-
-
-<h3 >
-Perspectives</h3>
-
-<P >
-Perspectives provide an additional layer of organization inside the workbench
-page.&nbsp; A perspective defines an appropriate collection of views, their
-layout, and applicable actions for a given user task.&nbsp; Users can switch
-between perspectives as they move across tasks.&nbsp;&nbsp; From an
-implementation point of view, the user's active perspective controls which views
-are shown on the workbench page and their positions and sizes.&nbsp; Editors are
-not affected by a change in perspective.</P>
-
-
-<H3>
-<a name="views_and_editors">
-Views and editors</a></H3>
-<P >
-Views and editors are where we move beyond implementation details into some common plug-in programming. When you add a visual component to the workbench, you must decide whether you want to implement a view or
-an editor. How do you decide this?</P>
-<ul>
-  <li>A <b>view</b> is typically used to navigate a hierarchy of information,
-    open an editor, or display properties for the active editor.&nbsp; For
-    example, the <b>navigator</b> view allows you to navigate the workspace
-    hierarchy.&nbsp; The <b>properties</b> and <b>outline</b> views show
-    information about an object in the active editor.&nbsp; Any modifications
-    that can be made in a view (such as changing a property value) are saved
-    immediately.</li>
-  <li>An <b>editor</b> is typically used to edit or browse a document or input
-    object.&nbsp; Modifications made in an editor follow an open-save-close
-    model, much like an external file system editor.&nbsp; The platform text
-    editor and Java editor are examples of workbench editors.</li>
-</ul>
-<P >
-In either case, you will be building your view or editor according to a common lifecycle. </P>
-<ul>
-  <li>
-    
-You implement a <b> createPartControl</b> method to create the SWT widgets that represent your visual component. You must determine which widgets to use and allocate any related UI resources needed to display your view or editor.</li>
-  <li>
-    
-When your view or editor is given focus, you'll receive a <b> setFocus</b> notification so that you can set the focus to the correct widget.</li>
-  <li>
-    
-When the view or editor is closed, you will receive a <b> dispose</b>
- message to signify that the view or editor is being closed.&nbsp; At this point
-the controls allocated in <b>createPartControl</b>
- have already been disposed for you, but you must dispose of any graphics resources (such
-as cursors, icons, or fonts) that you allocated for the view or editor.</li>
-</ul>
-<P >
-Throughout this lifecycle, events will fire from the containing workbench page to notify interested parties about the opening, activation, deactivation, and closing of the
-views and editors.</P>
-<P >
-Seem simple?&nbsp; It can be. That's the beauty of workbench views and editors. They're just widget holders, and can be as simple or complex as you need them to be. We saw the simplest of views earlier when we built a hello world view.
-Let's look at it again now that we've explained more about what's going on.</P>
-<font color='#4444CC'><pre>
-   package org.eclipse.examples.helloworld;
-
-   import org.eclipse.swt.widgets.Composite;
-   import org.eclipse.swt.widgets.Label;
-   import org.eclipse.swt.SWT;
-   import org.eclipse.ui.part.ViewPart;
-
-   public class HelloWorldView extends ViewPart {
-      Label label;
-      public HelloWorldView() {
-      }
-      public void createPartControl(Composite parent) {
-         label = new Label(parent, SWT.WRAP);
-         label.setText(&quot;Hello World&quot;);
-      }
-      public void setFocus() {
-         // set focus to my widget.  For a label, this doesn't
-         // make much sense, but for more complex sets of widgets
-         // you would decide which one gets the focus.
-      }
-   }
-</pre></font>
-<P >
-Notice that we didn't have to implement a <b> dispose()</b> method since we didn't do anything but create a label in the
-<b> createPartControl(parent)</b> method. If we had allocated any UI resources, such as images or fonts, we would have disposed of them here. Since we extended the
-<b><a href="../reference/api/org/eclipse/ui/part/ViewPart.html"> ViewPart</a></b> class, we inherit the &quot;do nothing&quot; implementation of
-<b>dispose()</b>.</P>
-
-<P >
-<a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv.htm
deleted file mode 100644
index f76f3c8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Advanced workbench concepts
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Advanced workbench concepts</H1>
-<p>The next topics cover additional workbench extensions and concepts that
-you will likely encounter once you've implemented your plug-in and have begun to
-refine its function.&nbsp; </p>
-
-
-<p>In order to understand the next few topics, you should already be familiar
-with</p>
-
-
-<ul>
-  <li><a href="workbench.htm">Plugging into the Workbench</a></li>
-  <li><a href="preferences.htm">Preferences and properties</a></li>
-  <li><a href="jface.htm">JFace UI framework</a></li>
-  <li><a href="swt.htm">SWT</a></li>
-  <li><a href="resAdv.htm">Resources and workspace API</a></li>
-</ul>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_accessibility.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_accessibility.htm
deleted file mode 100644
index 05884c4..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_accessibility.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Accessible user interfaces
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Accessible user interfaces</h2>
-<p>The term accessible is used to refer to software that has been designed so
-that people who have disabilities have a successful interaction with it.&nbsp;
-Accessible software takes many different kinds of disabilities into account:</p>
-
-
-<ul>
-  <li>visual - people with color blindness, low vision, or who are completely
-    blind</li>
-  <li>audio - people who are hard of hearing or are completely deaf</li>
-  <li>mobility - people who have physical impairments that limit their movement
-    and fine motor controls</li>
-  <li>cognitive - people who have learning disabilities and may need more
-    consistency or simplicity in their interfaces</li>
-</ul>
-<h3>Assistive technology</h3>
-<p><b>Assistive technology</b> is equipment or software that is used to increase
-the accessibility of existing operating systems and applications.&nbsp; While it
-is beyond the scope of this programmer's guide to cover the broad scope of
-assistive technologies, it is important for you to know that they exist.&nbsp;
-Why?&nbsp; Because simple things you can do when programming your software or
-documentation, such as providing alternate text descriptions for images in your HTML, or
-keyboard equivalents for all of your software actions, can greatly improve the
-effectiveness of assistive technologies that make use of these techniques.</p>
-<h3>Accessibility resources</h3>
-<p>There are some basic coding tips you can use when building plug-in user
-interfaces that will increase the accessibility of your software.&nbsp; See <a href="../reference/misc/ui_accessibility_tips.html">Tips
-for Making User Interfaces More Accessible</a> for more information.</p>
-<p><a href="http://www-3.ibm.com/able/index.html">IBM's Accessibility Center
-Website</a> has many useful resources for accessibility, including <a href="http://www-3.ibm.com/able/guidelines.html">guidelines
-and checklists</a> for developing software and web interfaces.</p>
-<h3>SWT and accessibility</h3>
-<p>Because SWT uses the operating system's native widgets, user interfaces built
-with SWT will inherit any assistive technologies that have been installed on the
-host operating system.&nbsp; SWT implements an interface, <a href="../reference/api/org/eclipse/swt/accessibility/AccessibleListener.html"><b>AccessibleListener</b></a>,
-which provides basic accessibility information, such as descriptions of
-controls, help text, and keyboard shortcuts, to clients.&nbsp; If you are
-developing assistive technologies that need more information or want to improve
-upon the basic accessibiliity of the workbench, you can add your own listeners
-and override the default accessibility behavior in the platform.&nbsp; See the
-package <a href="../reference/api/org/eclipse/swt/accessibility/package-summary.html"><b>org.eclipse.swt.accessibility</b></a>
-for more detail.</p>
-<p>&nbsp;</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_encoding.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_encoding.htm
deleted file mode 100644
index 9e0fabd..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_encoding.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Text file encoding
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Text file encoding</h2>
-<p>If your plug-in reads text files, it should honor the <b>text file encoding</b>
-preference in the workbench.&nbsp; </p>
-
-
-<p><img src="images/textencoding.gif" alt="" border="0" width="411" height="143"></p>
-
-
-<p>Text files are encoded differently depending on the platform and the
-locale.&nbsp; Most of the time, using the default text file encoding for the
-locale of the host operating system is good enough.&nbsp; However, a user may
-want to work with text files that originate from another source.&nbsp; Given the
-ability to use the platform in a networked team environment, it's certainly possible
-that users will want to work with text files that use a different encoding
-scheme than their native encoding scheme so that they can easily interchange
-files with another team.</p>
-
-
-<p>For this reason, the workbench defines its own encoding profile that is
-specified by the user in the <b>Preferences</b> dialog.&nbsp; Users may choose
-from the available encoding choices in the <b>Workbench &gt; Editors</b>
-preference page or type in their own encoding.&nbsp; Plug-ins that
-interpret text files, such as editors and builders, should consult the workbench
-encoding preference rather than assume that the installed operating system
-encoding is in use.</p>
-
-
-<p>You can obtain the encoding preference using <b><a href="../reference/api/org/eclipse/core/resources/ResourcesPlugin.html">ResourcesPlugin</a>.getEncoding().&nbsp;
-</b>This encoding should be passed to <b>java.io </b>readers instead of using
-the default system encoding.&nbsp; If you need to track changes to this preference, you can hook a listener on
-the <b><a href="../reference/api/org/eclipse/core/resources/ResourcesPlugin.html">ResourcesPlugin</a>
-</b>preferences and react to changes in <b>ResourcesPlugin.PREF_ENCODING.&nbsp; </b>The
-following example comes from the default text editor: </p>
-
-
-<pre><font color="#4444CC">public void initialize(StatusTextEditor textEditor) {
-	
-	fTextEditor= textEditor;
-	
-	fPropertyChangeListener= new Preferences.IPropertyChangeListener() {
-		public void propertyChange(Preferences.PropertyChangeEvent e) {
-			if (ResourcesPlugin.PREF_ENCODING.equals(e.getProperty()))
-				setEncoding(null, false);
-		}
-	};
-		
-	Preferences p= ResourcesPlugin.getPlugin().getPluginPreferences();
-	p.addPropertyChangeListener(fPropertyChangeListener);
-	
-	fEncodingActionGroup= new EncodingActionGroup(fTextEditor);
-	fEncodingActionGroup.update();
-}</font></pre>
-<p>Users may also change the encoding for a particular file in the <b>Edit &gt;
-Encoding</b> menu of an editor.&nbsp; If you are manipulating text inside an
-open editor, you should use <b><a href="../reference/api/org/eclipse/ui/editors/text/IEncodingSupport.html">IEncodingSupport</a>.getEncoding()</b>
-instead in order to get the encoding for the particular editor.&nbsp; The
-following example shows how to obtain this information from an editor:
-<pre><font color="#4444CC">IEncodingSupport encodingSupport = (IEncodingSupport) editor.getAdapter(IEncodingSupport.class);
-String encoding = encodingSupport.getEncoding();
-
-</font></pre>
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings.htm
deleted file mode 100644
index 2da8068..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Workbench key bindings
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Workbench key bindings</h2>
-<p>The workbench defines many keyboard accelerators for invoking common actions
-with the keyboard.&nbsp; In early versions of the platform, plug-ins could
-define the accelerator key to be used for their action when the action was
-defined.&nbsp; However, this strategy can cause several problems:</p>
-
-
-<ul>
-  <li>Different plug-ins may define the same accelerator key for actions that are
-    not related.</li>
-  <li>Plug-ins may define different accelerator keys for actions that are
-    semantically the same.</li>
-  <li>Plug-ins may define accelerator keys that later conflict with the workbench
-    (as the workbench is upgraded).</li>
-</ul>
-
-
-<p>In order to alleviate these problems, the platform defines a configurable key
-binding strategy that is extendable by plug-ins.&nbsp; It solves the problems
-listed above and introduces new capabilities:</p>
-
-
-<ul>
-  <li>The user can control which key bindings should be used.</li>
-  <li>Plug-ins can define key bindings that emulate other tools that may be
-    familiar to users of the plug-in.</li>
-  <li>Plug-ins can define scopes for key bindings so that they are only active
-    in certain situations.</li>
-</ul>
-<p>The basic strategy is that plug-ins use <b>commands</b> to define
-semantic actions.&nbsp; Commands are simply declarations of an action and its
-associated category, key binding, and scope.&nbsp; Commands do not define an implementation for the action.&nbsp; When a
-plug-in defines an action for an editor, action set, or view, the action can
-specify that it is an implementation of one of these commands.&nbsp;
-This allows semantically similar actions to be associated with the same command.</p>
-<p>Once a command is defined, a <b>key binding</b> may be defined that
-references the command.&nbsp; The key binding defines the key sequence that
-should be used to invoke the command.&nbsp; A key binding may reference a <b>key
-configuration</b> which is used to group key bindings into different named
-configurations that the user may activate via the
-Preferences dialog.&nbsp; The key binding can also assign a <b>scope</b> which determines the
-lookup order for key binding resolution.</p>
-<p>This is all best understood by walking through the workbench and looking at
-how commands and key bindings are declared.&nbsp; We'll look at all of this from
-the point of view of defining key bindings for existing actions.&nbsp; </p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelConfig.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelConfig.htm
deleted file mode 100644
index 1924d3a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelConfig.htm
+++ /dev/null
@@ -1,114 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Accelerator configurations
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Key configurations</h3>
-
-
-<p><b>Key configurations</b> are used to represent a general style or theme of
-key bindings. For example, the
-Workbench provides a &quot;Standard&quot; key configuration and an &quot;Emacs&quot;
-key configuration.&nbsp;
-Only one key configuration is active at any given time.&nbsp; End users
-control which one is active using the workbench <b>Preferences</b> dialog.</p>
-
-
-<p><img src="images/keybindings.gif" alt="" border="0" width="742" height="645"></p>
-
-
-<p>From an implementation point of view, key configurations are simply
-named groupings of key bindings.&nbsp; A key configuration won't
-accomplish anything on its own unless there are key bindings associated with
-it.&nbsp;&nbsp;</p>
-
-
-<p>Let's look again at the workbench markup for <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a>
-</b>to find the key binding definitions and how a key configuration gets
-associated with a key binding.</p>
-
-
-<pre><font color="#4444CC">...
-&lt;keyBinding
-       string=&quot;Ctrl+S&quot;
-       scope=&quot;org.eclipse.ui.globalScope&quot;
-       <b>command=&quot;org.eclipse.ui.file.save&quot;</b>
-       <b>configuration=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;&gt;</b>
-&lt;/keyBinding&gt;
-...
-&lt;keyBinding
-       string=&quot;Ctrl+X Ctrl+S&quot;
-       scope=&quot;org.eclipse.ui.globalScope&quot;
-       <b>command=&quot;org.eclipse.ui.file.save&quot;</b>
-       <b>configuration=&quot;org.eclipse.ui.emacsAcceleratorConfiguration&quot;&gt;</b>
-&lt;/keyBinding&gt;
-...
-</font></pre>
-
-
-<p>There are two different key bindings defined for the &quot;org.eclipse.ui.file.save&quot;
-command.&nbsp; Note that each one has a different <b>configuration</b>
-defined.&nbsp; When the standard configuration is active, the &quot;Ctrl+S&quot;
-key binding will invoke the command.&nbsp; When the emacs configuration is
-active, the sequence &quot;Ctrl+X Ctrl+S&quot; will invoke the command. </p>
-
-
-<h4>Defining new key configurations </h4>
-
-
-<p>When your plug-in defines a key binding, it will most likely assign it to an existing
-key configuration.&nbsp; However, your plug-in may want to define a
-completely new style of key configurations.&nbsp; If this is the case, you can define
-a new type of key configuration inside the <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a></b>
-definition.&nbsp; The workbench markup that defines the standard and emacs key
-configurations are shown below:</p>
-
-
-<pre><font color="#4444CC">...
-&lt;keyConfiguration
-       name=&quot;%keyConfiguration.standard.name&quot;
-       description=&quot;%keyConfiguration.standard.description&quot;
-       <b>id=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;&gt;</b>
-&lt;/keyConfiguration&gt;
-&lt;keyConfiguration
-       name=&quot;%keyConfiguration.emacs.name&quot;
-       parent=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;
-       description=&quot;%keyConfiguration.emacs.description&quot;
-       <b>id=&quot;org.eclipse.ui.emacsAcceleratorConfiguration&quot;&gt;</b>
-&lt;/keyConfiguration&gt;
-...</font></pre>
-
-
-<p>Note that the <b>name</b>  defined here is the one used in the preferences page in the list of
-configurations.</p>
-
-
-<h4>Activating a key configuration </h4>
-
-
-<p>The user controls the active configuration via the preferences page.&nbsp;
-However, you can define the default active configuration as part of the <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a></b>
-definition.&nbsp; The workbench establishes the standard key configuration as
-the default when it defines the extension:</p>
-
-
-<pre><font color="#4444CC">
-&lt;extension
-         point=&quot;org.eclipse.ui.commands&quot;&gt;
-      <b>&lt;activeKeyConfiguration
-            value=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;&gt;
-      &lt;/activeKeyConfiguration&gt;</b>
-      ...</pre></font>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelScope.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelScope.htm
deleted file mode 100644
index c37c122..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelScope.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Scopes
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Scopes</h3>
-
-
-<p>A <b> scope</b> is used to define the appropriate context for a key binding.&nbsp; The workbench defines two
-key binding scopes:</p>
-
-
-<ul>
-  <li><b>Global scope</b> means a key binding is appropriate throughout the
-    workbench UI.</li>
-  <li><b>Text editor </b>scope means the key binding is only appropriate while a
-    text editor is active.</li>
-</ul>
-<p>The scope dictates when a key binding (in the active key configuration) is considered active.&nbsp; The scope is declared in the
-key binding markup:</p>
-
-
-<pre><font color="#4444CC">...
-&lt;keyBinding
-       string=&quot;Ctrl+S&quot;
-       <b>scope=&quot;org.eclipse.ui.globalScope&quot;
-</b>       command=&quot;org.eclipse.ui.file.save&quot;
-       configuration=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;&gt;
-&lt;/keyBinding&gt;
-...
-&lt;keyBinding
-       string=&quot;Ctrl+X Ctrl+S&quot;
-       <b>scope=&quot;org.eclipse.ui.globalScope&quot;
-</b>       command=&quot;org.eclipse.ui.file.save&quot;
-       configuration=&quot;org.eclipse.ui.emacsAcceleratorConfiguration&quot;&gt;
-&lt;/keyBinding&gt;
-</font></pre>
-
-
-<p>How is the current scope determined?&nbsp; By default, the workbench operates
-in a global scope.&nbsp; When a text editor becomes active, it is responsible
-for resetting the scope to the text editor scope.&nbsp; This is all handled by
-the workbench and text editor code.&nbsp; Most plug-ins need only determine the
-appropriate scope for their key bindings when defining them.&nbsp;&nbsp;</p>
-
-
-<h4>Defining new scopes </h4>
-
-
-<p>When a plug-in defines a key binding, it usually assigns it to an
-existing scope.&nbsp;&nbsp; However, if your plug-in defines a new
-style of editor, it's possible that you'll also want to introduce a new scope
-for key bindings.&nbsp; For example, a multi-page editor may have different
-scopes for each page in the editor.&nbsp;&nbsp;</p>
-
-
-<p>When you define your own scope, it is up to your plug-in to ensure that the
-proper scopes are set into the <a href="../reference/api/org/eclipse/ui/IKeyBindingService.html"><b>IKeyBindingService</b></a>
-as appropriate for your editor.&nbsp; A complete discussion of how this works is
-beyond the scope (pun intended!) of this documentation.&nbsp; Refer to <a href="../reference/api/org/eclipse/ui/IKeyBindingService.html"><b>IKeyBindingService</b></a>
-and its implementors for more detail.&nbsp;&nbsp;</p>
-
-
-<p>Plug-ins define their scopes inside (where else?) the <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a></b>
-extension point.&nbsp; The workbench markup for the global and text editor
-scopes is located at the bottom of the extension definition:</p>
-
-
-<pre><font color="#4444CC">&lt;extension
-         point=&quot;org.eclipse.ui.commands&quot;&gt;
-      ...
-      &lt;scope
-            name=&quot;%scope.global.name&quot;
-            description=&quot;%scope.global.description&quot;
-            <b>id=&quot;org.eclipse.ui.globalScope&quot;</b>&gt;
-      &lt;/scope&gt;
-      &lt;scope
-            name=&quot;%scope.text.name&quot;
-            parent=&quot;org.eclipse.ui.globalScope&quot;
-            description=&quot;%scope.text.description&quot;
-            <b>id=&quot;org.eclipse.ui.textEditorScope&quot;</b>&gt;
-      &lt;/scope&gt;
-   &lt;/extension&gt;</font></pre>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelSet.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelSet.htm
deleted file mode 100644
index 96fa96b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_accelSet.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Key bindings
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Key bindings</h3>
-
-
-<p>The association between a command and the key combinations that should
-invoke the command is called a <b>key binding</b>.&nbsp; Plug-ins can define key
-bindings along with commands in the <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a></b>
-extension point.&nbsp; The workbench defines key bindings after it defines the
-commands in the markup:</p>
-
-
-<pre><font color="#4444CC">...
-&lt;keyBinding
-      <b>string=&quot;Ctrl+S&quot;</b>
-      scope=&quot;org.eclipse.ui.globalScope&quot;
-      <b>command=&quot;org.eclipse.ui.file.save&quot;</b>
-      configuration=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;&gt;
-&lt;/keyBinding&gt;
-...</font></pre>
-
-
-<p>There is our friend <b>org.eclipse.ui.file.save</b>.&nbsp; Recall our
-hypothetical action definition:</p>
-
-
-<font color="#4444CC">
-<pre>&lt;extension point = &quot;org.eclipse.ui.actionSets&quot;&gt;
-	   &lt;actionSet id=&quot;com.example.actions.actionSet&quot;
-		   label=&quot;Example Actions&quot;
-		   visible=&quot;true&quot;&gt;
-		   &lt;action id=&quot;com.example.actions.action1&quot;
-			   menubarPath=&quot;additions&quot;
-			   label=&quot;Example Save Action&quot;
-			   class=&quot;org.example.actions.ExampleActionDelegate&quot;
-			   <b>definitionID=&quot;org.eclipse.ui.file.save&quot;</b>&gt;
-		   &lt;/action&gt;
-		   ...
-	   &lt;/actionSet&gt;
-&lt;/extension&gt;</pre>
-</font><p>The <b>string</b> attribute for a key binding defines the key
-combination that is used to invoke a command.&nbsp; So, it follows that when our example action set is active, our save action will be invoked
-when the user chooses <b>Ctrl+S</b>.</p>
-
-
-<p> Likewise, when the
-workbench <b>SaveAction</b> is active, the same key combination will invoke it
-instead, since the workbench uses the same command id for its <b>SaveAction</b>.</p>
-
-
-<p>To complete the example, we need to understand what the <b>scope</b> and <b>configuration</b>
-are all about.&nbsp; Let's tackle configurations first.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_actionDef.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_actionDef.htm
deleted file mode 100644
index 625280a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_keyBindings_actionDef.htm
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Commands
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Commands</h3>
-
-
-<p>A <b>command</b> is the declaration of a user action by <b>id</b>.&nbsp;
-Commands are used to declare semantic actions so that action implementations defined
-in action sets and editors can associate themselves with a particular semantic
-command.&nbsp; The separation of the command from the action
-implementation allows multiple plug-ins to define actions that implement the
-same semantic command.&nbsp; The command is what gets associated with a
-particular key binding.</p>
-
-
-<p>The workbench defines many common commands in its <b>plugin.xml</b>
-file, and plug-ins are encouraged to associate their own actions with these
-commands where it makes sense.&nbsp; In this way, semantically similar
-actions implemented in different plug-ins may share the same key binding.</p>
-
-
-<h4>Defining a command</h4>
-
-
-<p>Commands are defined using the <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a></b>
-extension point.&nbsp; The following comes from the workbench markup:</p>
-
-
-<pre><font color="#4444CC">&lt;extension
-         point=&quot;org.eclipse.ui.commands&quot;&gt;
-      ...
-      &lt;command
-	    category=&quot;org.eclipse.ui.category.file&quot;
-            name=&quot;%command.close.name&quot;
-            description=&quot;%command.close.description&quot;
-            id=&quot;org.eclipse.ui.file.close&quot;&gt;
-      &lt;/command&gt;
-      &lt;command
-	    category=&quot;org.eclipse.ui.category.file&quot;
-            name=&quot;%command.closeAll.name&quot;
-            description=&quot;%command.closeAll.description&quot;
-            id=&quot;org.eclipse.ui.file.closeAll&quot;&gt;
-      &lt;/command&gt;
-      &lt;command
-	    category=&quot;org.eclipse.ui.category.file&quot;
-            name=&quot;%command.save.name&quot;
-            icon=&quot;icons/full/ctool16/save_edit.gif&quot;
-            description=&quot;%command.save.description&quot;
-            id=&quot;org.eclipse.ui.file.save&quot;&gt;
-      &lt;/command&gt;
-</font>      ...     </pre>
-
-
-<p>The command definition specifies a <b>name</b>, <b>description</b>, and <b>id</b> for
-the action.&nbsp;&nbsp; It also specifies a category for the command, which is
-used to group commands in the preferences dialog.&nbsp; The categories are also
-defined in the <b><a href="../reference/extension-points/org_eclipse_ui_commands.html">org.eclipse.ui.commands</a>
-</b>
-extension point:</p>
-<pre><font color="#4444CC">
-      ...
-      <font size="1">&lt;category
-            name=&quot;%category.file.name&quot;
-            description=&quot;%category.file.description&quot;
-            id=&quot;org.eclipse.ui.category.file&quot;&gt;
-      &lt;/category&gt;
-      ...
-</font></pre></font><p>Note that there is no implementation specified for a
-command.&nbsp; A command only becomes concrete when a plug-in
-associates its action with the command id.</p>
-
-
-<h4>Associating an action with a command</h4>
-
-
-<p>Actions can be associated with a command in code or in the <b>plugin.xml
-</b>for action sets.&nbsp;
-Your choice depends on where the action is defined.</p>
-
-
-<p>Actions that are instantiated in code can also be associated with an action
-definition using <a href="../reference/api/org/eclipse/jface/action/IAction.html"><b>IAction</b></a>
-protocol.&nbsp; This is typically done when the action is created.&nbsp; The <b>WorkbenchActionBuilder</b>
-uses this technique to initialize its actions.&nbsp;&nbsp; </p>
-
-
-<pre><font color="#4444CC">private void makeActions() {
-	...
-	saveAction = new SaveAction(window);
-	saveAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT));
-	saveAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT_HOVER));
-	saveAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT_DISABLED));
-	partService.addPartListener(saveAction);
-	<b>saveAction.setActionDefinitionId(saveActionDefId);</b>
-	...</font></pre>
-
-
-<p>(Note:&nbsp; The method name <b>setActionDefinitionID </b>could more
-appropriately be named <b>setCommandID</b>.&nbsp; The method name reflects the
-original implementation of key bindings and uses outdated terminology.)</p>
-
-
-<p>By invoking <b>setActionDefinitionID</b>, the implementation action (<b>SaveAction</b>) is associated with
-the command id <b>saveActionDefId</b>.&nbsp; What is <b>saveActionDefId</b>?&nbsp;
-A quick look at the static field definitions in <b>WorkbenchActionBuilder</b>
-shows the following:</p>
-
-
-<pre><font color="#4444CC">private static final String saveActionDefId = &quot;org.eclipse.ui.file.save&quot;;</font></pre>
-
-
-<p>This constant defines the string ID that was used in the command definition
-markup.&nbsp; It is good practice to define constants for your action definitions so that
-they are easily referenced in code.&nbsp; </p>
-
-
-<p> If you define an
-action in an action set, then you typically do not need to
-instantiate an action yourself.&nbsp; The workbench will do it for you when the user
-invokes your action from a menu or the keyboard.&nbsp; In this case, you can
-associate your action with a command ID in your&nbsp; XML markup.&nbsp; The
-following shows a hypothetical markup for an action set:</p>
-
-
-<font color="#4444CC">
-<pre>
-&lt;extension point = &quot;org.eclipse.ui.actionSets&quot;&gt;
-	   &lt;actionSet id=&quot;com.example.actions.actionSet&quot;
-		   label=&quot;Example Actions&quot;
-		   visible=&quot;true&quot;&gt;
-		   &lt;action id=&quot;com.example.actions.action1&quot;
-			   menubarPath=&quot;additions&quot;
-			   label=&quot;Example Save Action&quot;
-			   class=&quot;org.example.actions.ExampleActionDelegate&quot;
-			   <b>definitionID=&quot;org.eclipse.ui.file.save&quot;</b>&gt;
-		   &lt;/action&gt;
-		   ...
-	   &lt;/actionSet&gt;
-   &lt;/extension&gt;</pre>
-</font><p>The <b>definitionID</b> attribute is used to declare a command ID for the action.</p>
-
-
-<p>Using either technique, associating your action with a command ID causes any key bindings that get defined for the
-command <b>org.eclipse.ui.file.save
-</b>to invoke your action when appropriate.&nbsp; </p>
-
-
-<p>Now let's look at how these key bindings get defined. </p>
-
-
-<p>&nbsp;</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markerhelp.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markerhelp.htm
deleted file mode 100644
index 8e8a6ef..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markerhelp.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Contributing marker help
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Contributing marker help</h3>
-<p>Now we are ready to look at how to add help to the readme tool's
-markers.&nbsp; Adding marker help is done using the <b><a href="../reference/extension-points/org_eclipse_ui_ide_markerHelp.html">org.eclipse.ui.ide.markerHelp</a></b>
-extension point.&nbsp; This extension point allows plug-ins to associate a help
-context id with a particular type of marker.&nbsp; The marker can be qualified
-by marker type only, or it can be further qualified by the value of one or more of its
-attributes.&nbsp; The readme tool declares several different help contexts:</p>
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.ui.ide.markerHelp&quot;&gt; 
-   &lt;markerHelp 
-      <b>markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot; </b>
-      helpContextId=&quot;org.eclipse.ui.examples.readmetool.marker_example1_context&quot;&gt; 
-     <b> &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.id&quot; value= &quot;1234&quot;/&gt; </b>
-   &lt;/markerHelp&gt; 
-   &lt;markerHelp 
-      markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot; 
-      helpContextId=&quot;org.eclipse.ui.examples.readmetool.marker_example2_context&quot;&gt; 
-      &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.level&quot; value= &quot;7&quot;/&gt; 
-   &lt;/markerHelp&gt; 
-   &lt;markerHelp 
-      markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot; 
-      helpContextId=&quot;org.eclipse.ui.examples.readmetool.marker_example3_context&quot;&gt; 
-      &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.level&quot; value= &quot;7&quot;/&gt; 
-      &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.department&quot; value= &quot;infra&quot;/&gt; 
-   &lt;/markerHelp&gt; 
-</font>   ...</pre>
-<p>Each marker help context is defined for the readme marker type.&nbsp;
-However, each help context is associated with a different combination of
-attribute values.&nbsp; The first marker help context will be used for markers
-whose <b>id</b> attribute is set to <b>&quot;1234&quot;</b>.&nbsp; The help
-contexts are defined in the plug-in's <b>HelpContexts.xml </b>file:</p>
-<font SIZE="2">
-<pre><font color="#4444CC">&lt;context id=&quot;marker_example1_context&quot; &gt;
-</font></font>	<font SIZE="2"><font color="#4444CC">&lt;description&gt;Readme marker example 1 &lt;b&gt;Help&lt;/b&gt; id = 1234 &lt;/description&gt;
-&lt;/context&gt;</font></pre>
-</font>
-<p>Sure enough, when we select a readme marker with id=&quot;1234&quot; and
-select help using F1, we see our help description. </p>
-<p><img src="images/readmemarkerhelp.gif" alt="Tasks list with marker help" border="0" width="524" height="110"></p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markerresolution.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markerresolution.htm
deleted file mode 100644
index 5480a66..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markerresolution.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Contributing marker resolution
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Contributing marker resolution</h3>
-<p>Plug-ins can also define marker resolutions, so that their markers can
-participate in the workbench <b>Quick Fix...</b> feature.&nbsp; Users can select
-a marker and choose <b>Quick Fix...</b> from the popup menu if there is a
-resolution contributed for the marker.</p>
-
-
-<p><img src="images/markerquickfixmenu.gif" alt="" border="0" width="382" height="276"></p>
-
-
-<p>Marker resolutions are contributed using the <b><a href="../reference/extension-points/org_eclipse_ui_ide_markerResolution.html">org.eclipse.ui.ide.markerResolution</a></b>
-extension point.&nbsp; This extension point allows plug-ins to associate a <b>class</b>
-that implements <b><a href="../reference/api/org/eclipse/ui/IMarkerResolutionGenerator.html">IMarkerResolutionGenerator</a></b>
-with a particular type of marker.&nbsp; The marker can be qualified
-by marker type only, or it can be further qualified by the value of one or more of its
-attributes.&nbsp; The readme tool declares several different marker resolutions:</p>
-
-
-<pre><font color="#4444CC">&lt;extension point=&quot;org.eclipse.ui.ide.markerResolution&quot;&gt; 
-   &lt;markerResolutionGenerator 
-      class=&quot;org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator&quot; 
-      markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot;&gt; 
-      &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.id&quot; value= &quot;1234&quot;/&gt; 
-   &lt;/markerResolutionGenerator&gt; 
-   &lt;markerResolutionGenerator 
-      class=&quot;org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator&quot; 
-      markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot;&gt; 
-      &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.level&quot; value= &quot;7&quot;/&gt; 
-   &lt;/markerResolutionGenerator&gt; 
-   &lt;markerResolutionGenerator
-      class=&quot;org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator&quot; 
-      markerType=&quot;org.eclipse.ui.examples.readmetool.readmemarker&quot;&gt; 
-      &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.code&quot; value= &quot;red&quot;/&gt; 
-      &lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.language&quot; value= &quot;english&quot;/&gt; 
-   &lt;/markerResolutionGenerator&gt; 
-&lt;/extension&gt; </font></pre>
-
-
-<p>Each marker resolution generator is defined for the readme marker type, but associated with a different combination of
-attribute values.&nbsp; The first marker resolution generator will be used for markers
-whose <b>id</b> attribute is set to <b>&quot;1234&quot;</b>.&nbsp; In this
-particular example, the readme tool uses the same marker resolution generator
-for all cases.&nbsp; This is not typical, but makes sense in a case where there
-is only one resolution available for specific combinations of attribute
-values.</p>
-
-
-<p>The marker resolution generator is responsible for returning an array of
-marker resolutions (<a href="../reference/api/org/eclipse/ui/IMarkerResolution.html"><b>IMarkerResolution</b></a>)
-that will be shown in the <b>Quick Fix...</b> dialog.&nbsp; The resolution will
-be <b>run()</b> if the user selects it in the dialog.&nbsp; Here is the
-implementation from <b>ReadmeMarkerResolutionGenerator</b>:</p>
-
-
-<pre><font color="#4444CC">public class ReadmeMarkerResolutionGenerator implements IMarkerResolutionGenerator {
-	public IMarkerResolution[] getResolutions(IMarker marker) {
-		return new IMarkerResolution[] {new AddSentenceResolution()};
-	}
-}
-</font></pre>
-
-
-<p><img src="images/readmemarkerresolution.gif" alt="" border="0" width="350" height="272"></p>
-
-
-<p>The <b>AddSentenceResolution</b> defines the resolution's dialog label and
-implements the resolution itself.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markers.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markers.htm
deleted file mode 100644
index 5733d20..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_markers.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Marker help and resolution
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Marker help and resolution</h2>
-<p>In <a href="resAdv_markers.htm">Resource markers</a>, we saw how plug-ins can
-define specialized marker types in order to annotate resources with
-information.&nbsp; The <a href="../samples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html">readme
-tool</a> example defines its own markers in order to demonstrate two
-marker-related workbench extensions:&nbsp; <b>marker help</b> and <b>marker
-resolutions</b>.&nbsp; The marker definition is in the readme plug-in's manifest
-markup:</p>
-
-
-<pre><font color="#4444CC">&lt;extension id=&quot;readmemarker&quot; point=&quot;org.eclipse.core.resources.markers&quot; name=&quot;%ReadmeMarker.name&quot;&gt;
-	&lt;super type=&quot;org.eclipse.core.resources.taskmarker&quot;/&gt;
-	&lt;super type=&quot;org.eclipse.core.resources.textmarker&quot;/&gt;
-	&lt;persistent value=&quot;true&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.id&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.level&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.department&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.code&quot;/&gt;
-	&lt;attribute name=&quot;org.eclipse.ui.examples.readmetool.language&quot;/&gt;
-&lt;/extension&gt;   </font></pre>
-
-
-<p>The tool defines a marker that inherits from the platform's text marker and
-task marker.&nbsp; It also defines named attributes for the marker.&nbsp;&nbsp;
-Marker attributes can be set and queried.</p>
-
-
-<p>Since the new readme marker is a kind of text marker, it
-inherits the text marker attributes.&nbsp; The text marker attributes include
-the character location of the marker.</p>
-
-
-<p>Markers can be added to a <b>.readme</b> file using the readme editor's popup
-menu.&nbsp; (The popup menu actions are added dynamically in <b>ReadmeTextEditor.<font SIZE="2" COLOR="#000000">editorContextMenuAboutToShow(IMenuManager</font><font SIZE="2">
-</font></b><font SIZE="2" COLOR="#000000"><b>parentMenu)</b>).&nbsp; Once added,
-the markers appear on the left side of the editor and in the tasks view.</font></p>
-
-
-<p><img src="images/readmemarkermenu.gif" alt="Readme editor with readme markers on left side ruler" border="0" width="573" height="536"></p>
-
-
-<p>&nbsp;</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget.htm
deleted file mode 100644
index 133c5bf..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget.htm
+++ /dev/null
@@ -1,130 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Retargetable actions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Retargetable actions</h2>
-<p>It is common for a plug-in's views and editors to implement actions that are
-semantically similar to existing workbench actions, such as clipboard
-cut/copy/paste, view refresh, or properties.&nbsp; The popup menu for views and
-editors can become quite cluttered if every view or editor has to define unique
-actions for these operations and include them in their menus.&nbsp; </p>
-
-
-<p>To solve this problem, the workbench defines <b>retargetable</b> (also called
-<b>global</b>) actions that can be handled by any view or editor.&nbsp; When a
-view or editor is active, its handler will be run when the user chooses the
-action from the workbench menu or toolbar.&nbsp; This allows views and editors
-to share workbench menu space for semantically similar actions. </p>
-
-
-<p><a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html"><b>IWorkbenchActionConstants</b></a>
-documents all of the workbench actions and denotes retargetable actions as
-global.&nbsp; For example, here is the definition of the <b>Properties</b> action.</p>
-
-
-<pre><font color="#4444CC">public static final String PROPERTIES = &quot;properties&quot;; // Global action. </font></pre>
-
-
-<p>The following table summarizes some of the more common retargetable actions
-that are implemented by views and editors:</p>
-
-
-<table border="1" cellpadding="0" cellspacing="0" width="64%">
-  <tr>
-    <td width="20%">&nbsp;</td>
-    <td width="20%"><b>File menu</b></td>
-    <td width="20%"><b>Edit menu</b></td>
-    <td width="20%"><b>Navigate menu</b></td>
-    <td width="20%"><b>Project menu</b></td>
-  </tr>
-  <tr>
-    <td width="20%"><b>views</b></td>
-    <td width="20%">move<br>
-      rename<br>
-      refresh<br>
-      properties</td>
-    <td width="20%">&nbsp;</td>
-    <td width="20%">go into<br>
-      go to resource<br>
-      sync with editor<br>
-      back<br>
-      forward<br>
-      up<br>
-      next<br>
-      previous</td>
-    <td width="20%">open<br>
-      close<br>
-      build<br>
-      rebuild</td>
-  </tr>
-  <tr>
-    <td width="20%"><b>editors</b></td>
-    <td width="20%">revert<br>
-      print</td>
-    <td width="20%">find</td>
-    <td width="20%">&nbsp;</td>
-    <td width="20%">&nbsp;</td>
-  </tr>
-  <tr>
-    <td width="20%"><b>views and editors</b></td>
-    <td width="20%">&nbsp;</td>
-    <td width="20%">cut<br>
-      copy<br>
-      paste<br>
-      delete<br>
-      select all<br>
-      undo<br>
-      redo</td>
-    <td width="20%">&nbsp;</td>
-    <td width="20%">&nbsp;</td>
-  </tr>
-</table>
-<p>Retargetable actions are created using <b><a href="../reference/api/org/eclipse/ui/actions/RetargetAction.html">RetargetAction</a></b>.&nbsp;
-The following snippet is from <b>WorkbenchActionBuilder</b>.</p>
-
-
-<pre><font color="#4444CC"> propertiesAction = createGlobalAction(IWorkbenchActionConstants.PROPERTIES, &quot;file&quot;, false); </font></pre>
-
-
-<p>The <b> createGlobalAction</b> method shows us exactly how to make a <b><a href="../reference/api/org/eclipse/ui/actions/RetargetAction.html">RetargetAction</a></b>.</p>
-
-
-<pre><font color="#4444CC">private RetargetAction createGlobalAction(String id, String actionDefPrefix, boolean labelRetarget) {
-	RetargetAction action;
-	if (labelRetarget) {
-		action = new LabelRetargetAction(id, WorkbenchMessages.getString(&quot;Workbench.&quot; + id)); 
-	}
-	else {
-		action = new RetargetAction(id, WorkbenchMessages.getString(&quot;Workbench.&quot; + id)); 
-	}
-	...
-	return action;
-}</font></pre>
-
-
-<p>When creating a retargetable action, the workbench assigns the id for the
-action and the default label.&nbsp; Note that there are two styles of retarget actions.&nbsp; <b><a href="../reference/api/org/eclipse/ui/actions/RetargetAction.html">RetargetAction</a>
-</b>simply allows a view or editor to reimplement an action.&nbsp; <b><a href="../reference/api/org/eclipse/ui/actions/LabelRetargetAction.html">LabelRetargetAction</a>
-</b>also allows views and editors to reset the label of the action.&nbsp;&nbsp;
-This is useful for making the menu label more specific, such as relabeling an <b>Undo</b>
-action as <b>Undo Typing</b>.&nbsp;&nbsp;</p>
-
-
-<p>Now we know how the retarget actions are defined by the workbench.&nbsp; Let's look
-next at how your view or editor can provide an implementation for a retargetable action.&nbsp;
-This is done by <a href="wrkAdv_retarget_setting.htm">setting a global action
-handler</a>.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute.htm
deleted file mode 100644
index fa069df..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Contributing new retargetable actions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Contributing new retargetable actions</h3>
-<p>The workbench is not the only plug-in that can create retargetable
-actions.&nbsp; Your plug-in can define its own retargetable action, so that
-views and editors within your plug-in can share the same menu actions.&nbsp;
-There are two ways to contribute retargetable actions from your plug-in:</p>
-<ul>
-  <li>An <b>editor</b> can define a retargetable action for which the editor and
-    related views can hook handlers.&nbsp; The action is only available in the
-    menu bar when the editor is open.&nbsp;&nbsp;</li>
-  <li>An <b>action set</b> can define a retargetable action for which editors
-    and views can hook handlers.&nbsp; The action will be visible as long as the
-    action set is visible, but it will only be enabled if the active part has
-    hooked a handler for the action.</li>
-</ul>
-<p>This mechanism is useful for providing tight integration between editors and
-related views.&nbsp; For example, a content outline view can implement a handler
-for an action defined by its associated editor.&nbsp;&nbsp;</p>
-<p>The <a href="../samples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html">readme
-tool</a> example demonstrates both of these techniques.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute_actionsets.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute_actionsets.htm
deleted file mode 100644
index 39c3c42..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute_actionsets.htm
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Retargetable action set actions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>Retargetable action set actions</h4>
-<p>The <a href="../samples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html">readme
-tool</a> action set also defines retargetable actions.&nbsp; The action remains
-visible as long as the readme action set is visible, but it is only enabled when
-a view or editor that implements the action is active.&nbsp; When using action
-sets to define retargetable actions, the actions are created in the action set
-markup rather than in code.&nbsp; The following is from the readme tool's action
-set definition:</p>
-<pre><font color='#4444CC'>&lt;extension point = &quot;org.eclipse.ui.actionSets&quot;&gt;
-	   &lt;actionSet id=&quot;org_eclipse_ui_examples_readmetool_actionSet&quot;
-		   label=&quot;%ActionSet.name&quot;
-		   visible=&quot;true&quot;&gt;
-...
-&lt;action id=&quot;org_eclipse_ui_examples_readmetool_readmeRetargetAction&quot;
-   menubarPath=&quot;window/org_eclipse_ui_examples_readmetool/slot1&quot;
-   toolbarPath=&quot;readme&quot;
-   label=&quot;%ReadmeRetargetAction.label&quot;
-   tooltip=&quot;%ReadmeRetargetAction.tooltip&quot;
-   helpContextId=&quot;org.eclipse.ui.examples.readmetool.open_browser_action_context&quot;
-   icon=&quot;icons/ctool16/openbrwsr.gif&quot;
-   <b>retarget=&quot;true&quot;</b>&gt;
-&lt;/action&gt;
-&lt;action id=&quot;org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction&quot;
-   menubarPath=&quot;window/org_eclipse_ui_examples_readmetool/slot1&quot;
-   toolbarPath=&quot;readme&quot;
-   label=&quot;%ReadmeRelabelRetargetAction.label&quot;
-   tooltip=&quot;%ReadmeRelabelRetargetAction.tooltip&quot;
-   helpContextId=&quot;org.eclipse.ui.examples.readmetool.open_browser_action_context&quot;
-   icon=&quot;icons/ctool16/openbrwsr.gif&quot;
-   <b>retarget=&quot;true&quot;	</b>
-   <b>allowLabelUpdate=&quot;true&quot;</b>&gt;
-&lt;/action&gt;
-...</font></pre>
-<p>Retargeted actions are specified by using the <b>retarget=&quot;true&quot;</b>
-attribute.&nbsp; This will cause a <b><a href="../reference/api/org/eclipse/ui/actions/RetargetAction.html">RetargetAction</a></b>
-to be created in the action set.&nbsp; Note that the retargetable actions do not specify an implementing
-<b>class</b> since it is up to each view or editor in the plug-in to set up a
-handler that implements each action.&nbsp; If the <b>allowLabelUpdate</b>  is
-true, then a <b><a href="../reference/api/org/eclipse/ui/actions/LabelRetargetAction.html">LabelRetargetAction</a>
-</b>will be created instead.</p>
-<p>The retargeted actions will be visible in the window menu when the readme
-action set is visible.&nbsp; However, they will not be enabled if the readme
-tool's editor or outline view are not active.</p>
-<p><img src="images/readmeactionsetmenu.gif" alt="Readme File Editor menu with two grayed items and one enabled item" border="0" width="534" height="73"></p>
-<p>&nbsp;</p>
-<p>What do the editor and view have to do?&nbsp; Again, the client side is
-similar to registering a handler for the workbench or an editor's retargetable
-action.&nbsp; The action id specified in the markup must be used when
-registering a global action handler.</p>
-<p>The <b>ReadmeEditorActionBarContributor </b>takes care of this for the
-editor.&nbsp; First, it defines the handlers for the actions.</p>
-<pre><font color="#4444CC">public ReadmeEditorActionBarContributor() {
-	...
-	handler4 = new EditorAction(MessageUtil.getString(&quot;Editor_Action4&quot;)); 
-	handler5 = new EditorAction(MessageUtil.getString(&quot;Editor_Action5&quot;)); 
-	handler5.setToolTipText(MessageUtil.getString(&quot;Readme_Editor_Action5&quot;));
-	...
-}</font></pre>
-<p>The handlers are registered at the same time that the handlers for the editor
-retargetable actions were registered.</p>
-<pre><font color="#4444CC">public void init(IActionBars bars, IWorkbenchPage page) {
-	...
-	bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_RETARGET4, handler4);
-	bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_LABELRETARGET5, handler5);
-	...
-}</font></pre>
-<p>Recall that action bar contributors are shared among different instances of
-the same editor.&nbsp; This means the handlers must be notified if the active
-editor for the <b>ReadmeEditorActionBarContributor </b>changes.</p>
-<pre><font color="#4444CC">public void setActiveEditor(IEditorPart editor) {
-	...
-	handler4.setActiveEditor(editor);
-	handler5.setActiveEditor(editor);
-	...
-}</font></pre>
-<p>That's it for the editor.&nbsp; We should see these actions enable when the
-editor is activated.</p>
-<p><img src="images/actionseteditorretargets.gif" alt="Readme File Editor menu with actions enabled" border="0" width="462" height="73">&nbsp;</p>
-<p>Note that the label for the first retargetable action (&quot;Editor Action
-4&quot;) was not used since the action set XML markup did not set <b>allowLabelUpdate</b>.</p>
-<p>The <b>ReadmeContentOutlinePage</b>
- defines its handlers in the same place it defined handlers for the editor's
-retargetable actions:</p>
-<pre><font color="#4444CC">public void createControl(Composite parent) {
-	...
-	action = new OutlineAction(MessageUtil.getString(&quot;Outline_Action4&quot;)); 
-	getSite().getActionBars().setGlobalActionHandler(
-		IReadmeConstants.ACTION_SET_RETARGET4, 
-		action);  
-	action = new OutlineAction(MessageUtil.getString(&quot;Outline_Action5&quot;)); 
-	action.setToolTipText(MessageUtil.getString(&quot;Readme_Outline_Action5&quot;)); 
-	getSite().getActionBars().setGlobalActionHandler(
-		IReadmeConstants.ACTION_SET_LABELRETARGET5, 
-		action);  
-}</font></pre>
-<p>We should see its relabeled action when the content outliner is active.</p>
-<p><img src="images/actionsetoutlineretargets.gif" alt="Readme File Editor menu with renamed action" border="0" width="462" height="73"></p>
-<h4>&nbsp;</h4>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute_editors.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute_editors.htm
deleted file mode 100644
index 3e26cca..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_contribute_editors.htm
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Retargetable editor actions
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>Retargetable editor actions</h4>
-<p>Recall that the <a href="../samples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html">readme
-tool</a> defines its own editor which contributes actions
-to the workbench menu bar using its <b>ReadmeEditorActionBarContributor</b>.&nbsp;&nbsp;</p>
-<font color='#4444CC'><pre>&lt;extension
-    point = &quot;org.eclipse.ui.editors&quot;&gt;
-	&lt;editor
-  	   id = &quot;org.eclipse.ui.examples.readmetool.ReadmeEditor&quot;
-  	   name=&quot;%Editors.ReadmeEditor&quot;
-      	   icon=&quot;icons/obj16/editor.gif&quot;
-      	   class=&quot;org.eclipse.ui.examples.readmetool.ReadmeEditor&quot;
-	   extensions=&quot;readme&quot;
-           <b>contributorClass=&quot;org.eclipse.ui.examples.readmetool.ReadmeEditorActionBarContributor</b>&quot;&gt;
-	&lt;/editor&gt;
-&lt;/extension&gt;</pre></font>
-<p>Let's look closer at what happens in the contributor class.</p>
-<pre><font color="#4444CC">public ReadmeEditorActionBarContributor() {
-	...
-	action2 = new <b>RetargetAction</b>(<b>IReadmeConstants.RETARGET2</b>, MessageUtil.getString(&quot;Editor_Action2&quot;));
-	action2.setToolTipText(MessageUtil.getString(&quot;Readme_Editor_Action2&quot;));
-	action2.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_DISABLE);
-	action2.setImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_ENABLE);
-	...
-	action3 = new <b>LabelRetargetAction</b>(<b>IReadmeConstants.LABELRETARGET3</b>, MessageUtil.getString(&quot;Editor_Action3&quot;));
-	action3.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_DISABLE);
-	action3.setImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_ENABLE);
-	...&nbsp;&nbsp;
-	<b>handler2</b> = new EditorAction(MessageUtil.getString(&quot;Editor_Action2&quot;)); 
-	...
-	<b>handler3</b> = new EditorAction(MessageUtil.getString(&quot;Editor_Action3&quot;)); 
-	...</font></pre>
-<p>When the contributor is created, it creates two retargetable actions (one
-that allows label update and one that does not).&nbsp; Creation of the actions
-uses the same technique that the workbench uses.&nbsp; It also creates two
-handlers that will be used for the actions when the editor is the active
-part.&nbsp;&nbsp;</p>
-<p>But where are the handlers for the actions registered?&nbsp; Setting the
-global handlers is done a little differently when your editor defines the
-retargeted actions.&nbsp; Why?&nbsp; Because your contributor is in charge of
-tracking the active view and hooking different handlers as different views or
-the editor itself becomes active.&nbsp; (The workbench does this for you when
-you set a handler for one of its global actions).&nbsp; Here's how the <b>ReadmeEditorActionBarContributor</b>
-sets things up:</p>
-<pre><font color="#4444CC">public void init(IActionBars bars, IWorkbenchPage page) {
-	super.init(bars, page);
-	bars.setGlobalActionHandler(IReadmeConstants.RETARGET2, handler2);
-	bars.setGlobalActionHandler(IReadmeConstants.LABELRETARGET3, handler3);
-	...</font></pre>
-<p>First, the contributor registers its handlers for the retargeted
-actions.&nbsp; This ensures that the contributor's actions will be run when the
-editor itself is active.&nbsp; The next step is to register each <b><a href="../reference/api/org/eclipse/ui/actions/RetargetAction.html">RetargetAction</a>
-</b>as a part listener on the page.</p>
-<pre><font color="#4444CC">	...
-	// Hook retarget actions as page listeners
-	page.addPartListener(action2);
-	page.addPartListener(action3);
-	IWorkbenchPart activePart = page.getActivePart();
-	if (activePart != null) {
-		action2.partActivated(activePart);
-		action3.partActivated(activePart);
-	}
-}</font></pre>
-<p>Adding each <b><a href="../reference/api/org/eclipse/ui/actions/RetargetAction.html">RetargetAction</a>
-</b>as a part listener means that it will be notified when the active part
-changes.&nbsp; The action can get the correct global handler from the newly
-activated part.&nbsp; (See the implementation of <b><a href="../reference/api/org/eclipse/ui/actions/RetargetAction.html">RetargetAction</a>
-</b>for all the details.)&nbsp;&nbsp; Note that to start, the action is seeded
-with the currently active part. </p>
-<p>When the editor contributor is disposed, it should unhook the retargetable
-actions as page listeners.</p>
-<pre><font color="#4444CC">public void dispose() {
-	// Remove retarget actions as page listeners
-	getPage().removePartListener(action2);
-	getPage().removePartListener(action3);
-}</font></pre>
-<p>Finally, recall that action bar contributors are shared among instances of
-the same editor class.&nbsp; For this reason, the handlers must be notified when
-the active editor changes so that they can connect to the proper editor
-instance.</p>
-<pre><font color="#4444CC">public void setActiveEditor(IEditorPart editor) {
-	...
-	handler2.setActiveEditor(editor);
-	handler3.setActiveEditor(editor);
-	...
-}</font></pre>
-<p>That completes the setup on the editor side.&nbsp; When the editor is open
-and active, the handlers (and their labels) as defined by the <b>ReadmeEditorActionBarContributor
-</b>will appear in the workbench menu bar.</p>
-<p><img src="images/editorretargets.gif" alt="Readme menu with three editor actions in workbench menu bar" border="0" width="139" height="90"></p>
-<p>Now that the editor's contributions are in place, what does a view do to register a handler?&nbsp; The code on the client side
-is similar to registering a handler for a workbench action, except that the
-action id is the one defined by the plug-in's editor.&nbsp; The <b>ReadmeContentOutlinePage</b>
-registers a handler for these actions.</p>
-<pre><font color="#4444CC">public void createControl(Composite parent) {
-	super.createControl(parent);
-	...
-	getSite().getActionBars().<b>setGlobalActionHandler(
-		IReadmeConstants.RETARGET2, </b>
-		new OutlineAction(MessageUtil.getString(&quot;Outline_Action2&quot;)));  
-
-	OutlineAction action = new OutlineAction(MessageUtil.getString(&quot;Outline_Action3&quot;)); 
-	<b>action.setToolTipText(MessageUtil.getString(&quot;Readme_Outline_Action3&quot;)); </b>
-	getSite().getActionBars().<b>setGlobalActionHandler(
-		IReadmeConstants.LABELRETARGET3, </b>
-		action);  
-	...</font></pre>
-<p>Note that the outliner sets tool tip text and a label on the second action,
-since it allows relabeling.&nbsp; When the readme outliner view is made active,
-its handlers (and their labels) will now appear in the workbench menu bar.</p>
-<p><img src="images/editoroutlineretargets.gif" alt="Readme menu with one renamed editor action" border="0" width="144" height="90"></p>
-<p>Note that the relabeled action shows the new label.</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_setting.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_setting.htm
deleted file mode 100644
index 2070d7e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget_setting.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Setting a global action handler
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Setting a global action handler</h3>
-<p>A plug-in contributes a <a href="wrkAdv_retarget.htm">retargetable action</a>
-for a view or editor part by implementing an <a href="../reference/api/org/eclipse/jface/action/IAction.html"><b>IAction</b></a>
-and registering it as a global action handler with the part's action bars.&nbsp;
-This is usually done at the time that the part creates its actions and
-controls.&nbsp; The name of the retargeted action (as defined in <a href="../reference/api/org/eclipse/ui/IWorkbenchActionConstants.html"><b>IWorkbenchActionConstants</b></a>)
-is used to specify which action the handler is intended for.&nbsp; The following
-shows how the workbench task list registers its handler for the <b>PROPERTIES</b>
-action.</p>
-<pre><font color="#4444CC">public void createPartControl(Composite parent) {
-	...
-	<b>makeActions();</b>
-	...
-
-	// Add global action handlers.
-	...	
-	getViewSite().getActionBars().<b>setGlobalActionHandler(
-		IWorkbenchActionConstants.PROPERTIES,
-		propertiesAction);</b>
-	...</font></pre>
-<p>The properties action is created in the local method <b>makeActions</b>:</p>
-<pre><font color="#4444CC">void makeActions() {
-	...
-	// properties
-	propertiesAction = new TaskPropertiesAction(this, &quot;properties&quot;); 
-	propertiesAction.setText(TaskListMessages.getString(&quot;Properties.text&quot;)); 
-	propertiesAction.setToolTipText(TaskListMessages.getString(&quot;Properties.tooltip&quot;)); 
-	propertiesAction.setEnabled(false);
-}</font></pre>
-<p>That's all that is needed.&nbsp; Your action will be run when the user
-chooses the action from the workbench menu bar or tool bar and your view or
-editor is active.&nbsp; The workbench handles the details of ensuring that the
-retargeted action is always associated with the currently active view or editor.
-</p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_singleclick.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_singleclick.htm
deleted file mode 100644
index 44283aa..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_singleclick.htm
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Honoring single click support
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Honoring single click support</h2>
-<p>The workbench <b>Preferences</b> allow users to specify whether views should
-open their objects on single or double click. </p>
-
-
-<p><img src="images/singleclick.gif" alt="Workbench &quot;Open mode&quot; preferences with disclaimer that the preference may not take effect in all views" border="0" width="414" height="145"></p>
-
-
-<p>Why the disclaimer about this preference not working for all views?&nbsp;
-Because views contributed by plug-ins must explicitly support this preference in
-their implementation.</p>
-
-
-<p>Recall that a view can be implemented by creating SWT controls and writing
-standard SWT code, or by using <a href="jface_viewers.htm"> JFace viewers</a> 
-to handle the low level details.&nbsp; Honoring
-the single click preference can be done at either level.&nbsp; Most views that
-open other objects present them in a structured, list-like view.&nbsp; We'll
-focus on that kind of view for now.&nbsp; If your view displays objects in a
-different manner, you'll likely use the SWT-level concepts to support single
-click.</p>
-
-
-<h3>Single click in JFace viewers</h3>
-
-
-<p>If you are using a <a href="jface_viewers.htm#listviewer">JFace list-oriented
-viewer</a> to present your objects, supporting single click is
-straightforward.&nbsp; Instead of using <b>addDoubleClickListener</b> to trigger
-opening the items in your view, use <b>addOpenListener</b>.&nbsp; The open
-listener honors the current workbench preference, firing the open event when the
-specified mouse event occurs.</p>
-
-
-<p>You may still wish to use <b>addDoubleClickListener</b> for non-open actions,
-such as expanding the items in a tree on double-click.</p>
-
-
-<h3>Single click in SWT controls</h3>
-
-
-<p>JFace provides a utility class, <a href="../reference/api/org/eclipse/jface/util/OpenStrategy.html"><b>OpenStrategy</b></a>,
-to handle the logistics of single and double click at the SWT control
-level.&nbsp; The <a href="../reference/api/org/eclipse/jface/util/OpenStrategy.html"><b>OpenStrategy</b></a>
-is configured by the workbench <b>Preferences</b> dialog so that it honors the
-current workbench open preference. In fact, the JFace viewers use this class to
-implement the open listener.&nbsp; </p>
-
-
-<p>You must create an <a href="../reference/api/org/eclipse/jface/util/OpenStrategy.html"><b>OpenStrategy</b></a>
-and associate it with your SWT control.&nbsp; The <a href="../reference/api/org/eclipse/jface/util/OpenStrategy.html"><b>OpenStrategy</b></a>
-will hook the appropriate events and interpret them based on the user
-preferences.&nbsp; Your job is to add an open listener to the strategy that
-implements the code for open.&nbsp; In this way, you are shielded from knowledge
-about which widget event triggered the open event.</p>
-
-
-<pre><font color="#3F5FBF"><font SIZE="2">OpenStrategy</font><font SIZE="2"> openHandler = new OpenStrategy(control);
-openHandler.addOpenListener(new IOpenEventListener() {
-	public void handleOpen(SelectionEvent e) {
-	// code to handle the open event.
-	...
-	}
-}</font></font></pre>
-<p><font size="2">The other workbench preferences for open (select on hover,
-open using arrow keys) are also handled by </font><a href="../reference/api/org/eclipse/jface/util/OpenStrategy.html"><b>OpenStrategy</b></a>.&nbsp;
-This means that the &quot;right thing&quot; will happen if you use JFace viewers
-or the <a href="../reference/api/org/eclipse/jface/util/OpenStrategy.html"><b>OpenStrategy</b></a>
-class to implement open behavior.</p>
-<h3>Activating editors on open</h3>
-<p>When handling an open event, you should use <b>OpenStrategy.activateOnOpen() </b>to
-determine whether an opened editor should be activated by default.&nbsp;
-Activating an editor switches the focus from the view to the editor, which can
-be particularly confusing and undesirable in single click mode. </p>
-
-
-<p><a href="../hglegal.htm"><img border="0" src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_workingsets.htm b/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_workingsets.htm
deleted file mode 100644
index eafd082..0000000
--- a/bundles/org.eclipse.platform.doc.isv/guide/wrkAdv_workingsets.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE>
-Working sets
-</TITLE>
-
-<link rel="stylesheet" type="text/css" HREF="../book.css">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Working sets</h2>
-<p>Users often find it necessary to filter views such as the navigator view in
-order to reduce clutter.&nbsp; Plug-ins can assist in filtering using different
-techniques.</p>
-
-
-<ul>
-  <li><a href="workbench_advext_resourceFilters.htm">Resource filters</a>
-    can be used to filter by file name.&nbsp; Plug-ins contribute resource
-    filters that the user can enable using a view's filter selection dialog.</li>
-  <li><b>Working sets</b> can be used to filter resources by only including
-    specified resources.&nbsp; Working sets are selected using the view's
-    working set dialog.</li>
-</ul>
-<p><img src="images/workingset.gif" alt="" border="0" width="284" height="382"></p>
-<p>If your plug-in implements a view that shows resources (or objects that are
-adaptable to <a href="../reference/api/org/eclipse/core/resources/IResource.html"><b>IResource</b></a>),
-you should support working sets.&nbsp; <b><a href="../reference/api/org/eclipse/ui/IWorkingSetManager.html">IWorkingSetManager</a>
-</b>provides API for manipulating working sets.&nbsp; You can obtain an <b><a href="../reference/api/org/eclipse/ui/IWorkingSetManager.html">IWorkingSetManager</a>
-</b>using <b><a href="../reference/api/org/eclipse/ui/IWorkbench.html">IWorkbench</a></b>
-API.</p>
-<pre><font color="#4444CC">IWorkingSetManager manager = workbench.getWorkingSetManager();</font></pre>
-<p><b><a href="../reference/api/org/eclipse/ui/IWorkingSetManager.html">IWorkingSetManager</a>
-</b>allows you to<b> </b>manipulate and create working sets:</p>
-<ul>
-  <li><b>createWorkingSetSelectionDialog</b> - returns a working set dialog that shows the user the current working
-  sets. You can get the selected working sets from the dialog once it is
-  closed.</li>
-  <li><b>createWorkingSetEditWizard</b> - returns a working set edit wizard for editing the specified working
-  set</li>
-  <li><b>getWorkingSets()</b> - returns a list of all defined working sets</li>
-  <li><b>getWorkingSet(String name) </b>- returns a working set specified by
-    name</li>
-</ul>
-<p><b><a href="../reference/api/org/eclipse/ui/IWorkingSetManager.html">IWorkingSetManager</a>
-</b>also provides property change notification as working sets are added,
-removed, or as they change.&nbsp; If your view or editor needs to respond to
-changes in the selected working set, it can add a listener for <b>CHANGE_WORKING_SET_CONTENT_CHANGE.</b></p>
-<h3>Adding new working set types</h3>
-
-
-<p>For many plug-ins, using <b><a href="../reference/api/org/eclipse/ui/IWorkingSetManager.html">IWorkingSetManager</a>
-</b>to provide resource filtering is sufficient.&nbsp; If your plug-in needs to
-define working sets differently, it can register a new type of working set using
-<b><a href="../reference/extension-points/org_eclipse_ui_workingSets.html">org.eclipse.ui.workingSets</a></b>.&nbsp;
-The Java tooling uses this feature to define a Java working set type.&nbsp;
-Working set types are shown when the user decides to add a working set.</p>
-
-
-<p><img src="images/workingSetTypes.gif" alt="Working set dialog showing list of available types" border="0" width="438" height="448"></p>
-
-
-<p>&nbsp;</p>
-
-
-<p>When you define your own type of working set, you can use <b><a href="../reference/api/org/eclipse/ui/IWorkingSet.html">IWorkingSet</a>.getId</b> protocol to ensure that the working set matches the type that you have
-defined.&nbsp; Any working sets that you create programmatically must have
-their id set to the id of a working set page that can display the working
-set elements.&nbsp; This id is used to ensure that the proper working set
-edit page is launched when the user edits the working set.&nbsp; A null
-id indicates that the working set should use the default resource working
-set type.</p>
-
-
-<p>See the
-<b><a href="../reference/extension-points/org_eclipse_ui_workingSets.html">org.eclipse.ui.workingSets</a>
-</b>extension point documentation and <b><a href="../reference/api/org/eclipse/ui/IWorkingSet.html">IWorkingSet</a></b>
-protocol for more detail.</p>
-
-
-<p><a href="../hglegal.htm"><img src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a></p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.isv/hglegal.htm b/bundles/org.eclipse.platform.doc.isv/hglegal.htm
deleted file mode 100644
index 1f0cb8a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2004 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/ngibmcpy.gif b/bundles/org.eclipse.platform.doc.isv/ngibmcpy.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.platform.doc.isv/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/platformOptions b/bundles/org.eclipse.platform.doc.isv/platformOptions
deleted file mode 100644
index 9c96de2..0000000
--- a/bundles/org.eclipse.platform.doc.isv/platformOptions
+++ /dev/null
@@ -1,117 +0,0 @@
--charset "iso-8859-1"
--sourcepath "../org.eclipse.platform/src:../org.eclipse.ant.core/src:../org.eclipse.core.boot/src:../org.eclipse.compare/compare:../org.eclipse.debug.core/core:../org.eclipse.debug.ui/ui:../org.eclipse.help/src:../org.eclipse.help.base/src:../org.eclipse.help.ui/src:../org.eclipse.core.runtime/src:../org.eclipse.core.resources/src:../org.eclipse.pde/src:../org.eclipse.jface/src:../org.eclipse.jface.text/src:../org.eclipse.jface.text/projection:../org.eclipse.text/src:../org.eclipse.text/projection:../org.eclipse.ui/src:../org.eclipse.ui.editors/src:../org.eclipse.ui.editors/extensions:../org.eclipse.ui.ide/src:../org.eclipse.ui.ide/extensions:../org.eclipse.ui.../org.eclipse.ui.views/src:../org.eclipse.ui.views/extensions:../org.eclipse.ui.workbench/Eclipse UI:../org.eclipse.ui.workbench/Eclipse UI Editor Support:../org.eclipse.ui.workbench.texteditor/src:../org.eclipse.swt/Eclipse SWT/win32/:../org.eclipse.swt/Eclipse SWT/common/:../org.eclipse.swt/Eclipse SWT/common_j2se/:../org.eclipse.swt/Eclipse SWT AWT/win32/:../org.eclipse.swt/Eclipse SWT Custom Widgets/common/:../org.eclipse.swt/Eclipse SWT Drag and Drop/win32/:../org.eclipse.swt/Eclipse SWT Drag and Drop/common/:../org.eclipse.swt/Eclipse SWT OLE Win32/win32/:../org.eclipse.swt/Eclipse SWT Printing/win32/:../org.eclipse.swt/Eclipse SWT Printing/common/:../org.eclipse.swt/Eclipse SWT Program/win32/:../org.eclipse.swt/Eclipse SWT Program/common/:../org.eclipse.swt/Eclipse SWT PI/win32/:../org.eclipse.swt/Eclipse SWT PI/common_j2se/:../org.eclipse.swt/Eclipse SWT Accessibility/win32/:../org.eclipse.swt/Eclipse SWT Accessibility/common/:../org.eclipse.swt/Eclipse SWT Browser/win32/:../org.eclipse.swt/Eclipse SWT Browser/common/:../org.eclipse.team.core/src:../org.eclipse.team.ui/src:../org.eclipse.update.core/src:../org.eclipse.search/search:../org.eclipse.core.filebuffers/src:../org.eclipse.core.variables/src:../org.eclipse.core.expressions/src"
--d reference/api
--classpath @rt@:../org.apache.ant/ant.jar:../org.eclipse.ui.console/console.jar:../org.eclipse.osgi/osgi.jar:../org.eclipse.osgi/core.jar:../org.eclipse.core.runtime.compatibility/compatibility.jar:../org.eclipse.ui.ide/ide.jar:../org.eclipse.ui.views/views.jar:../org.eclipse.osgi/eclipseAdaptor.jar
--use
--splitIndex
--windowtitle "Eclipse Platform API Specification"
--doctitle "Eclipse Platform API Specification"
--header "<b>Eclipse Platform</b><br>Pre-release 3.0"
--bottom '<font size="-1"><p><a href="{@docRoot}/../misc/api-usage-rules.html">Guidelines for using Eclipse APIs</a>.</p><p>Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.</font></p>'
--group "Platform Runtime Packages" "org.eclipse.core.runtime"
--group "Workspace Packages" "org.eclipse.core.resources"
--group "Workbench Packages" "org.eclipse.jface.*:org.eclipse.ui:org.eclipse.ui.*:org.eclipse.swt:org.eclipse.swt.*:org.eclipse.text.*"
--link http://java.sun.com/j2se/1.4.2/docs/api
-
-
-org.eclipse.ant.core
-org.eclipse.compare
-org.eclipse.compare.contentmergeviewer
-org.eclipse.compare.rangedifferencer
-org.eclipse.compare.structuremergeviewer
-org.eclipse.core.boot
-org.eclipse.core.expressions
-org.eclipse.core.filebuffers
-org.eclipse.core.launcher
-org.eclipse.core.resources
-org.eclipse.core.resources.team
-org.eclipse.core.runtime
-org.eclipse.core.runtime.model
-org.eclipse.core.runtime.jobs
-org.eclipse.core.variables
-org.eclipse.debug.core
-org.eclipse.debug.core.model
-org.eclipse.debug.ui
-org.eclipse.debug.ui.actions
-org.eclipse.debug.ui.console
-org.eclipse.help
-org.eclipse.help.browser
-org.eclipse.help.ui.browser
-org.eclipse.jface.action
-org.eclipse.jface.dialogs
-org.eclipse.jface.operation
-org.eclipse.jface.preference
-org.eclipse.jface.progress
-org.eclipse.jface.resource
-org.eclipse.jface.text
-org.eclipse.jface.text.contentassist
-org.eclipse.jface.text.formatter
-org.eclipse.jface.text.information
-org.eclipse.jface.text.presentation
-org.eclipse.jface.text.reconciler
-org.eclipse.jface.text.rules
-org.eclipse.jface.text.source
-org.eclipse.jface.util
-org.eclipse.jface.viewers
-org.eclipse.jface.window
-org.eclipse.jface.wizard
-
-org.eclipse.search.ui
-
-org.eclipse.swt
-org.eclipse.swt.accessibility
-org.eclipse.swt.browser
-org.eclipse.swt.custom
-org.eclipse.swt.dnd
-org.eclipse.swt.events
-org.eclipse.swt.graphics
-org.eclipse.swt.layout
-org.eclipse.swt.ole.win32
-org.eclipse.swt.printing
-org.eclipse.swt.program
-org.eclipse.swt.widgets
-
-org.eclipse.team.core
-org.eclipse.team.core.subscribers
-org.eclipse.team.core.variants
-org.eclipse.team.core.synchronize
-org.eclipse.team.ui
-org.eclipse.team.ui.synchronize
-org.eclipse.team.ui.synchronize.subscribers
-
-org.eclipse.text.edits
-
-org.eclipse.ui
-org.eclipse.ui.actions
-org.eclipse.ui.activities
-org.eclipse.ui.application
-org.eclipse.ui.commands
-org.eclipse.ui.console
-org.eclipse.ui.console.actions
-org.eclipse.ui.contexts
-org.eclipse.ui.dialogs
-org.eclipse.ui.editors.text
-org.eclipse.ui.help
-org.eclipse.ui.ide
-org.eclipse.ui.keys
-org.eclipse.ui.model
-org.eclipse.ui.part
-org.eclipse.ui.plugin
-org.eclipse.ui.progress
-org.eclipse.ui.testing
-org.eclipse.ui.texteditor
-org.eclipse.ui.texteditor.quickdiff
-org.eclipse.ui.views.bookmarkexplorer
-org.eclipse.ui.views.contentoutline
-org.eclipse.ui.views.framelist
-org.eclipse.ui.views.markers
-org.eclipse.ui.views.navigator
-org.eclipse.ui.views.properties
-org.eclipse.ui.views.tasklist
-org.eclipse.ui.wizards.datatransfer
-org.eclipse.ui.wizards.newresource
-
-org.eclipse.update.core
-org.eclipse.update.core.model
-
-
diff --git a/bundles/org.eclipse.platform.doc.isv/platformOptions.txt b/bundles/org.eclipse.platform.doc.isv/platformOptions.txt
deleted file mode 100644
index 04826c8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/platformOptions.txt
+++ /dev/null
@@ -1,115 +0,0 @@
--charset "iso-8859-1"
--sourcepath "../org.eclipse.platform/src;../org.eclipse.ant.core/src;../org.eclipse.core.boot/src;../org.eclipse.compare/compare;../org.eclipse.debug.core/core;../org.eclipse.debug.ui/ui;../org.eclipse.help/src;../org.eclipse.help.base/src;../org.eclipse.help.ui/src;../org.eclipse.core.runtime/src;../org.eclipse.core.resources/src;../org.eclipse.pde/src;../org.eclipse.jface/src;../org.eclipse.jface.text/src;../org.eclipse.jface.text/projection;../org.eclipse.text/src;../org.eclipse.text/projection;../org.eclipse.ui/src;../org.eclipse.ui.editors/src;../org.eclipse.ui.editors/extensions;../org.eclipse.ui.ide/src;../org.eclipse.ui.ide/extensions;../org.eclipse.ui.views/src;../org.eclipse.ui.views/extensions;../org.eclipse.ui.workbench/Eclipse UI;../org.eclipse.ui.workbench/Eclipse UI Editor Support;../org.eclipse.ui.workbench.texteditor/src;../org.eclipse.swt/Eclipse SWT/win32/;../org.eclipse.swt/Eclipse SWT/common/;../org.eclipse.swt/Eclipse SWT/common_j2se/;../org.eclipse.swt/Eclipse SWT AWT/win32/;../org.eclipse.swt/Eclipse SWT Custom Widgets/common/;../org.eclipse.swt/Eclipse SWT Drag and Drop/win32/;../org.eclipse.swt/Eclipse SWT Drag and Drop/common/;../org.eclipse.swt/Eclipse SWT OLE Win32/win32/;../org.eclipse.swt/Eclipse SWT Printing/win32/;../org.eclipse.swt/Eclipse SWT Printing/common/;../org.eclipse.swt/Eclipse SWT Program/win32/;../org.eclipse.swt/Eclipse SWT Program/common/;../org.eclipse.swt/Eclipse SWT PI/win32/;../org.eclipse.swt/Eclipse SWT PI/common_j2se/;../org.eclipse.swt/Eclipse SWT Accessibility/win32/;../org.eclipse.swt/Eclipse SWT Accessibility/common/;../org.eclipse.swt/Eclipse SWT Browser/win32/;../org.eclipse.swt/Eclipse SWT Browser/common/;../org.eclipse.team.core/src;../org.eclipse.team.ui/src;../org.eclipse.update.core/src;../org.eclipse.search/search;../org.eclipse.core.filebuffers/src;../org.eclipse.core.variables/src:../org.eclipse.core.expressions/src"
--d reference/api
--classpath ${bootclasspath};../org.apache.ant/ant.jar;../org.eclipse.ui.console/console.jar;../org.eclipse.osgi/osgi.jar;../org.eclipse.osgi/core.jar;../org.eclipse.core.runtime.compatibility/compatibility.jar;../org.eclipse.ui.ide/ide.jar;../org.eclipse.ui.views/views.jar;../org.eclipse.osgi/eclipseAdaptor.jar
--use
--splitIndex
--windowtitle "Eclipse Platform API Specification"
--doctitle "Eclipse Platform API Specification"
--header "<b>Eclipse Platform</b><br>Pre-release 3.0"
--bottom '<font size="-1"><p><a href="{@docRoot}/../misc/api-usage-rules.html">Guidelines for using Eclipse APIs</a>.</p><p>Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.</font></p>'
--group "Platform Runtime Packages" "org.eclipse.core.runtime"
--group "Workspace Packages" "org.eclipse.core.resources"
--group "Workbench Packages" "org.eclipse.jface.*;org.eclipse.ui;org.eclipse.ui.*;org.eclipse.swt;org.eclipse.swt.*;org.eclipse.text.*"
--link http://java.sun.com/j2se/1.4.2/docs/api
-
-org.eclipse.ant.core
-org.eclipse.compare
-org.eclipse.compare.contentmergeviewer
-org.eclipse.compare.rangedifferencer
-org.eclipse.compare.structuremergeviewer
-org.eclipse.core.boot
-org.eclipse.core.expressions
-org.eclipse.core.filebuffers
-org.eclipse.core.launcher
-org.eclipse.core.resources
-org.eclipse.core.resources.team
-org.eclipse.core.runtime
-org.eclipse.core.runtime.jobs
-org.eclipse.core.runtime.model
-org.eclipse.core.variables
-org.eclipse.debug.core
-org.eclipse.debug.core.model
-org.eclipse.debug.ui
-org.eclipse.debug.ui.actions
-org.eclipse.debug.ui.console
-org.eclipse.help
-org.eclipse.help.browser
-org.eclipse.help.ui.browser
-org.eclipse.jface.action
-org.eclipse.jface.dialogs
-org.eclipse.jface.operation
-org.eclipse.jface.preference
-org.eclipse.jface.progress
-org.eclipse.jface.resource
-org.eclipse.jface.text
-org.eclipse.jface.text.contentassist
-org.eclipse.jface.text.formatter
-org.eclipse.jface.text.information
-org.eclipse.jface.text.presentation
-org.eclipse.jface.text.reconciler
-org.eclipse.jface.text.rules
-org.eclipse.jface.text.source
-org.eclipse.jface.util
-org.eclipse.jface.viewers
-org.eclipse.jface.window
-org.eclipse.jface.wizard
-
-org.eclipse.search.ui
-
-org.eclipse.swt
-org.eclipse.swt.accessibility
-org.eclipse.swt.browser
-org.eclipse.swt.custom
-org.eclipse.swt.dnd
-org.eclipse.swt.events
-org.eclipse.swt.graphics
-org.eclipse.swt.layout
-org.eclipse.swt.ole.win32
-org.eclipse.swt.printing
-org.eclipse.swt.program
-org.eclipse.swt.widgets
-
-org.eclipse.team.core
-org.eclipse.team.core.subscribers
-org.eclipse.team.core.variants
-org.eclipse.team.core.synchronize
-org.eclipse.team.ui
-org.eclipse.team.ui.synchronize
-org.eclipse.team.ui.synchronize.subscribers
-
-org.eclipse.text.edits
-
-org.eclipse.ui
-org.eclipse.ui.actions
-org.eclipse.ui.activities
-org.eclipse.ui.application
-org.eclipse.ui.commands
-org.eclipse.ui.console
-org.eclipse.ui.console.actions
-org.eclipse.ui.contexts
-org.eclipse.ui.dialogs
-org.eclipse.ui.editors.text
-org.eclipse.ui.help
-org.eclipse.ui.ide
-org.eclipse.ui.keys
-org.eclipse.ui.model
-org.eclipse.ui.part
-org.eclipse.ui.plugin
-org.eclipse.ui.progress
-org.eclipse.ui.testing
-org.eclipse.ui.texteditor
-org.eclipse.ui.texteditor.quickdiff
-org.eclipse.ui.views.bookmarkexplorer
-org.eclipse.ui.views.contentoutline
-org.eclipse.ui.views.framelist
-org.eclipse.ui.views.markers
-org.eclipse.ui.views.navigator
-org.eclipse.ui.views.properties
-org.eclipse.ui.views.tasklist
-org.eclipse.ui.wizards.datatransfer
-org.eclipse.ui.wizards.newresource
-
-org.eclipse.update.core
-org.eclipse.update.core.model
-
diff --git a/bundles/org.eclipse.platform.doc.isv/plugin.properties b/bundles/org.eclipse.platform.doc.isv/plugin.properties
deleted file mode 100644
index 4e5737a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Eclipse Platform Plug-in Developer Guide
-providerName=Eclipse.org
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/plugin.xml b/bundles/org.eclipse.platform.doc.isv/plugin.xml
deleted file mode 100644
index e42637c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/plugin.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.platform.doc.isv"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName">
-
-<!-- ============================================================================= -->
-<!-- Small library containing a live help action used in doc                             -->
-<!-- ============================================================================= -->
-   <runtime>
-      <library name="activeHelpSample.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.help"/>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-
-<!-- ============================================================================= -->
-<!-- Define primary TOC                                                            -->
-<!-- ============================================================================= -->
-   <extension
-         point="org.eclipse.help.toc">
-      <toc
-            file="toc.xml"
-            primary="true">
-      </toc>
-   </extension>
-<!-- ============================================================================= -->
-<!-- Define TOCs                                                                   -->
-<!-- ============================================================================= -->
-   <extension
-         point="org.eclipse.help.toc">
-      <toc
-            file="topics_Guide.xml">
-      </toc>
-      <toc
-            file="topics_Reference.xml">
-      </toc>
-      <toc
-            file="topics_Porting.xml">
-      </toc>
-      <toc
-            file="topics_Questions.xml">
-      </toc>
-      <toc
-            file="topics_Samples.xml">
-      </toc>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.platform.doc.isv/porting/eclipse_3_0_porting_guide.html b/bundles/org.eclipse.platform.doc.isv/porting/eclipse_3_0_porting_guide.html
deleted file mode 100644
index 5c63918..0000000
--- a/bundles/org.eclipse.platform.doc.isv/porting/eclipse_3_0_porting_guide.html
+++ /dev/null
@@ -1,1886 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Eclipse 3.0 Porting Guide</title>
-</head>
-
-<body>
-
-<h1>Eclipse 3.0 Porting Guide</h1>
-<p>Draft for 3.0 M8<br>
-  Last revised February 26, 2004</p>
-<p><i>Note: This is a work in progress. An up-to-date draft of the Eclipse 3.0
-Porting Guide is being included with each milestone build to facilitate climbing
-aboard the 3.0 release wagon at an early stage, or to estimate the amount of
-effort that will be involved in eventually porting existing plug-ins to 3.0.
-While we will continue to improve and refine this porting guide and to document
-any further areas requiring attention, the significant breaking changes to the
-Eclipse APIs are now behind us.</i></p>
-<p>This porting guide describes how to port existing 2.1 plug-ins to 3.0. It is
-organized as follows:</p>
-<ul>
-  <li><a href="#Required Changes for 3.0">Required Changes</a></li>
-  <li><a href="#Recommended Changes for 3.0">Recommended Changes</a></li>
-  <li><a href="#Proposed Changes for 3.0">Proposed Changes</a></li>
-  <li><a href="#PDE Plug-in Migration Tool">PDE Plug-in Migration Tool</a></li>
-  <li><a href="#General Information on Compatibility">General Information on
-    Compatibility</a></li>
-</ul>
-<h2><a name="Required Changes for 3.0">Required Changes for 3.0</a></h2>
-<p>This section describes changes that impact existing plug-ins. If your plug-in
-is affected, you will have to change your plug-in in order to get it to work
-properly with Eclipse 3.0.</p>
-<h3>Plug-in manifest version</h3>
-<p>The header of the manifest files for plug-ins (and plug-in fragments) has
-changed to include a new line which identifies the appropriate plug-in manifest
-version. Prior to 3.0, plug-ins did not carry one of these &lt;?eclipse ...?&gt;
-lines; after 3.0, they must always have one. This change is to allow the Eclipse
-runtime to reliably recognize pre-3.0 plug-ins that have not been ported to 3.0,
-so that it can automatically provide greater binary compatibility for such
-plug-ins. This is the general form of the plugin.xml file (fragment.xml is
-similar):</p>
-<p><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br>
-<u>&lt;?eclipse version=&quot;3.0&quot;?&gt;<br>
-</u>&lt;plugin ...&gt;<br>
-&nbsp;&nbsp;&nbsp; ...<br>
-&lt;/plugin&gt;</code>
-<p>When porting to 3.0, add the indicated line to the manifest of existing plug-ins 
-  and plug-in fragments. (The PDE plug-in migration tool adds this line.)</p>
-<p>If you do add this directive to a plugin.xml (manually or using PDE), the file 
-  must also be updated to explicitly list the plug-ins on which it depends. For 
-  example, prior to Eclipse 3.0 dependencies on org.eclipse.core.runtime and org.eclipse.core.boot 
-  were implicit. With 3.0, org.eclipse.core.boot is no longer needed and developers 
-  must choose org.eclipse.core.runtime or org.eclipse.core.runtime.compatibility 
-  (or neither) as appropriate.</p>
-<p></p>
-<h3>Restructuring of org.eclipse.ui plug-in</h3>
-<p>The org.eclipse.ui plug-in, which used to be the main Platform UI plug-in,
-now provides just the API and extension points for the generic (i.e.,
-non-IDE-specific) workbench. Optional and IDE-specific API and extension points
-have moved to other plug-ins.</p>
-<p>The impact of this change is two-fold: (1) the moved org.eclipse.ui extension
-points have new extension point ids; and (2) the list of required plug-ins has
-changed.</p>
-<p>N.B. The Eclipse 3.0 runtime automatically detects pre-3.0 plug-ins (by the
-absence of the aforementioned &lt;?eclipse...?&gt; line in the plug-in manifest)
-and automatically compensates for these extension point and plug-in dependency
-changes. This should be viewed as a stopgap measure that increases the
-likelihood that an existing plug-in that depends on org.eclipse.ui will work in
-3.0. However, when porting the existing plug-in to 3.0, the plug-in's manifest
-needs to be updated to reflect the new structure of the Eclipse UI plug-ins.</p>
-<p>The org.eclipse.ui extension points in the following table have moved to
-different plug-ins, causing their extension point ids to change. If an existing
-plug-in contributes an extension to the moved extension points, then the
-reference in the &quot;point&quot; attribute of the &lt;extension&gt; element in
-the plug-in manifest file must be changed to refer to the corresponding new ones
-extension point id. (The PDE plug-in migration tool makes these fix-ups.)</p>
-<table border="1" width="80%">
-  <tr>
-    <td width="50%">
-      <p align="center"><b>Old extension point id</b></td>
-    <td width="50%">
-      <p align="center"><b>New extension point id</b></td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.markerHelp</td>
-    <td width="50%">org.eclipse.ui.<i>ide</i>.markerHelp</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.markerImageProviders</td>
-    <td width="50%">org.eclipse.ui.<i>ide</i>.markerImageProviders</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.markerResolution</td>
-    <td width="50%">org.eclipse.ui.<i>ide</i>.markerResolution</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.projectNatureImages</td>
-    <td width="50%">org.eclipse.ui.<i>ide</i>.projectNatureImages</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.resourceFilters</td>
-    <td width="50%">org.eclipse.ui.<i>ide</i>.resourceFilters</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.markerUpdaters</td>
-    <td width="50%">org.eclipse.ui.<i>editors</i>.markerUpdaters</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.documentProviders</td>
-    <td width="50%">org.eclipse.ui.<i>editors</i>.documentProviders</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.workbench.texteditor.<br>
-      markerAnnotationSpecification</td>
-    <td width="50%">org.eclipse.ui.<i>editors</i>.markerAnnotationSpecification</td>
-  </tr>
-</table>
-<p>The following table lists the API packages formerly provided by the
-org.eclipse.ui plug-in that have been moved to different plug-ins. (The names of
-the API packages, classes, fields, and methods did not change.) In some cases,
-the API packages are now split across more than one plug-in. Since the API
-classes visible to any given plug-in are determined by that plug-in's list of
-required plug-ins, these changes may require adjusting
-&quot;&lt;requires&gt;&quot; elements in an existing plug-in's manifest to
-regain access to API class.</p>
-<p>This change only affects plug-ins that depend on the org.eclipse.ui plug-in
-(that is, includes &lt;import plugin=&quot;org.eclipse.ui&quot;/&gt; in the
-&lt;requires&gt; section of the plug-in manifest); all other plug-ins are
-unaffected. If it is affected, you <i>may</i> need to change the &lt;import&gt;
-element, or add additional &lt;import&gt; elements, so that all the API classes
-your plug-in needs are in scope. We strongly recommend that plug-ins only state
-dependencies on the plug-ins that they actually use. Including unnecessary
-dependencies reduces runtime performance because the Java class loader must
-search for classes in all dependents. (The PDE plug-in migration tool will fix
-up the dependencies, and help to determine a minimal set.)</p>
-<table border="1" width="80%">
-  <tr>
-    <td width="33%">
-      <p align="center"><b>API package</b></td>
-    <td width="33%">
-      <p align="center"><b>2.1 plug-in</b></td>
-    <td width="34%">
-      <p align="center"><b>Corresponding 3.0 plug-in(s)</b></td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.jface.text.*</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.jface.text</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.text.*</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.jface.text</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui, org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.actions</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui, org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.dialogs</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui, org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.editors.*</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.editor</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.model</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui, org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.part</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui, org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.texteditor</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.workbench.texteditor, org.eclipse.ui.editors</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.texteditor.*</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.workbench.texteditor</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.views.bookmarkexplorer</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.views.contentoutline</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.views</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.views.markers</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.views.navigator</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.views.properties</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.views</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.views.tasklist</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.wizards.datatransfer</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.ide</td>
-  </tr>
-  <tr>
-    <td width="33%">org.eclipse.ui.wizards.newresource</td>
-    <td width="33%">org.eclipse.ui</td>
-    <td width="34%">org.eclipse.ui.ide</td>
-  </tr>
-</table>
-<h3>Changes to API classes and interfaces (by package)</h3>
-<h4>IWorkbench (package org.eclipse.ui)</h4>
-<ul>
-  <li>The following method was removed from this interface because it was
-    IDE-specific:
-    <ul>
-      <li>public IMarkerHelpRegistry getMarkerHelpRegistry()</li>
-    </ul>
-  </li>
-  <li>Clients of getMarkerHelpRegistry() should instead call the public static
-    method IDE.getMarkerHelpRegistry() declared in the org.eclipse.ui.ide
-    package (org.eclipse.ui.ide plug-in).</li>
-</ul>
-<h4>IWorkbenchPage (package org.eclipse.ui)</h4>
-<ul>
-  <li>The following methods were removed from this interface because they were
-    IDE-specific:
-    <ul>
-      <li>public IEditorPart openEditor(IFile input)</li>
-      <li>public IEditorPart openEditor(IFile input, String editorID)</li>
-      <li>public IEditorPart openEditor(IFile input, String editorID, boolean
-        activate)</li>
-      <li>public IEditorPart openEditor(IMarker marker)</li>
-      <li>public IEditorPart openEditor(IMarker marker, boolean activate)</li>
-      <li>public void openSystemEditor(IFile input)</li>
-    </ul>
-  </li>
-  <li>Clients of openEditor(IFile,*) methods should convert the IFile to an
-    IEditorInput using new FileEditorInput(IFile) and then call one of the
-    openEditor(IEditorInput,*) methods. Thus
-    <ul>
-      <li>rewrite page.openEditor(file,editorID) as openEditor(new
-        FileEditorInput(file), editorID)</li>
-      <li>rewrite page.openEditor(file,editorID, activate) as openEditor(new
-        FileEditorInput(file), editorID, activate)</li>
-    </ul>
-  </li>
-  <li>Clients of openEditor(IFile) method should call
-    org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage, IFile, boolean)
-    <ul>
-      <li>rewrite openEditor(file) as IDE.openEditor(page, file, true)</li>
-    </ul>
-  </li>
-  <li>Clients of openEditor(IMarker, ...) methods should call
-    org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage, IMarker, boolean)
-    <ul>
-      <li>rewrite page.openEditor(marker) as IDE.openEditor(page, marker, true)</li>
-      <li>rewrite page.openEditor(IMarker, activate) as IDE.openEditor(page,
-        marker, activate)</li>
-      <li>editors that can position themselves based on IMarker information
-        should implement or adapt to org.eclipse.ui.ide.IMarkerEditorPositioner</li>
-    </ul>
-  </li>
-  <li>Clients of openSystemEditor(IFile) method should convert the IFile to an
-    IEditorInput using new FileEditorInput(IFile) and then call the
-    openEditor(IEditorInput,String) method. Thus
-    <ul>
-      <li>rewrite page.openSystemEditor(file) as page.openEditor(new
-        FileEditorInput(file), IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID)</li>
-      <li>Note: clients using editor id
-        IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID must pass an editor input
-        which implements org.eclipse.ui.IPathEditorInput (which FileEditorInput
-        does).</li>
-    </ul>
-  </li>
-  <li>N.B. Eclipse 3.0 includes a binary runtime compatibility mechanism that
-    ensures existing 2.1 plug-in binaries using any of the deleted openEditor
-    and openSystemEditor methods continue to work as in 2.1 in spite of this
-    breaking API change. (These deleted methods are &quot;added back&quot; by
-    the org.eclipse.ui.workbench.compatibility fragment.)</li>
-</ul>
-<h4>IEditorPart (package org.eclipse.ui)</h4>
-<ul>
-  <li>The following method was removed from this interface because it was
-    resource-specific:
-    <ul>
-      <li>public void gotoMarker(IMarker marker)</li>
-    </ul>
-  </li>
-  <li>Clients that called this method should instead test if the editor part
-    implements or adapts to org.eclipse.ui.ide.IGotoMarker and if so, call
-    gotoMarker(IMarker). The IDE class has a convenience method for doing so:<br>
-    <code>IDE.gotoMarker(editor, marker);</code></li>
-  <li>Clients that implement an editor that can position itself based on IMarker
-    information should implement or adapt to org.eclipse.ui.ide.IGotoMarker.</li>
-  <li>Since IGotoMarker's only method is gotoMarker(IMarker), existing editor
-    implementations can adapt to this change simply by adding <code>extends
-    IGotoMarker</code> to the class definition.</li>
-</ul>
-<h4>EditorPart (package org.eclipse.ui.part)</h4>
-<ul>
-  <li>The following former IEditorPart method was removed from this class
-    because it was resource-specific:
-    <ul>
-      <li>public void gotoMarker(IMarker marker)</li>
-    </ul>
-  </li>
-  <li>See above instructions for IEditorPart.gotoMarker.</li>
-</ul>
-<h4>MultiEditor (package org.eclipse.ui.part)</h4>
-<ul>
-  <li>The following former IEditorPart method was removed from this class
-    because it was resource-specific:
-    <ul>
-      <li>public void gotoMarker(IMarker marker)</li>
-    </ul>
-  </li>
-  <li>See above instructions for IEditorPart.gotoMarker.</li>
-</ul>
-<h4>MultiPageEditor (package org.eclipse.ui.part)</h4>
-<ul>
-  <li>N.B. This class was previously deprecated</li>
-  <li>The following former IEditorPart method was removed from this class
-    because it was resource-specific:
-    <ul>
-      <li>public void gotoMarker(IMarker marker)</li>
-    </ul>
-  </li>
-  <li>See above instructions for IEditorPart.gotoMarker.</li>
-</ul>
-<h4>MultiPageEditorPart (package org.eclipse.ui.part)</h4>
-<ul>
-  <li>The following former IEditorPart method was removed from this class
-    because it was resource-specific:
-    <ul>
-      <li>public void gotoMarker(IMarker marker)</li>
-    </ul>
-  </li>
-  <li>See above instructions for IEditorPart.gotoMarker.</li>
-</ul>
-<h4>IEditorLauncher (package org.eclipse.ui)</h4>
-<ul>
-  <li>The editor launcher interface is implemented by plug-ins that contribute
-    external editors.</li>
-  <li>The following method was removed from this interface because it was
-    resource-specific:
-    <ul>
-      <li>public void open(IFile file)</li>
-    </ul>
-  </li>
-  <li>It was replaced by
-    <ul>
-      <li>public void open(IPath file)</li>
-    </ul>
-  </li>
-  <li>Clients that call IEditorLauncher.open(file) should instead call
-    IEditorLauncher.open(file.getLocation()).</li>
-  <li>Clients that implement this interface should replace their implementation
-    of open(IFile) by one for open(IPath).</li>
-</ul>
-<h4>IEditorRegistry (package org.eclipse.ui)</h4>
-<ul>
-  <li>The following methods were removed from this interface because they were
-    resource-specific:
-    <ul>
-      <li>public IEditorDescriptor getDefaultEditor(IFile file)</li>
-      <li>public void setDefaultEditor(IFile file, String editorId)</li>
-      <li>public IEditorDescriptor[] getEditors(IFile file)</li>
-      <li>public ImageDescriptor getImageDescriptor(IFile file)</li>
-    </ul>
-  </li>
-  <li>Clients that call getImageDescriptor(file) should call the
-    &quot;String&quot; equivalent method. Thus rewrite getImageDescriptor(file)
-    to be getImageDescriptor(file.getName())</li>
-  <li>Clients that call setDefaultEditor(IFile file, String editorId) and
-    getDefaultEditor(IFile file) should call the IDE equivalent methods. Thus
-    <ul>
-      <li>rewrite getDefaultEditor(file) to be IDE.getDefaultEditor(file)</li>
-      <li>rewrite setDefaultEditor(file, id) to be IDE.setDefaultEditor(file,
-        id)</li>
-    </ul>
-  </li>
-  <li>Clients that call getEditors(file) should call the &quot;String&quot;
-    equivalent method. Thus rewrite getEditors(file) to be
-    getEditors(file.getName())</li>
-  <li>The API contract for the following method was changed:
-    <ul>
-      <li>public IEditorDescriptor getDefaultEditor() is now deprecated. It will
-        always return the System External Editor editor descriptor</li>
-      <li>This change impacts clients that assumed the default editor returned
-        would be a text editor.</li>
-    </ul>
-  </li>
-  <li>New constants that represent the system external editor and system
-    in-place editor identifiers (SYSTEM_EXTERNAL_EDITOR_ID and
-    SYSTEM_INPLACE_EDITOR_ID). These two editors require an editor input that
-    implements or adapts to org.eclipse.ui.IPathEditorInput. Note, the in-place
-    editor descriptor will not exist on platforms that do not support in-place
-    editing.</li>
-</ul>
-<h4>AbstractDocumentProvider (package org.eclipse.ui.texteditor)</h4>
-<ul>
-  <li>In order to free AbstractTextEditor from dependencies on
-    org.eclipse.core.resources, AbstractDocumentProvider introduces the concept
-    of document provider operations (DocumentProviderOperation) and document
-    provider operation runner (IRunnableContext). When requested to perform
-    reset, save, or synchronize, the AbstractDocumentProvider creates document
-    provider operations and uses the operation runner to execute them. The
-    runnable context can be provided by subclasses in the getOperationRunner
-    method.</li>
-  <li>Added protected abstract IRunnableContext getOperationRunner();
-    non-abstract subclasses must implement this method in order to provide their
-    own operation runner.</li>
-  <li>The method resetDocument has been changed to final in order to allow the
-    document provider to wrap the function with a document provider operation.
-    The document provider operation calls the newly introduced doResetDocument
-    method. AbstractDocumentProvider.doResetDocument contains the code that
-    originally resided inside AbstractDocumentProvider.resetDocument. Subclasses
-    must change their implementation of resetDocument to doResetDocument and any
-    contained call of super.resetDocument to super.doResetDocument.</li>
-  <li>The method saveDocument has been changed to final in order to allow the
-    document provider to wrap the function with a document provider operation.
-    The document provider operation calls the newly introduced doSaveDocument
-    method. AbstractDocumentProvider.doSaveDocument contains the code that
-    originally resided inside AbstractDocumentProvider.saveDocument. Subclasses
-    must change their implementation of saveDocument to doSaveDocument and any
-    contained call of super.saveDocument to super.doSaveDocument.</li>
-  <li>The method synchronize has been changed to final in order to allow the
-    document provider to wrap the function with a document provider operation.
-    The document provider operation calls the newly introduced doSynchronize
-    method. AbstractDocumentProvider.doSynchronize contains the code that
-    originally resided inside AbstractDocumentProvider.synchronize. Subclasses
-    must change their implementation of synchronize to doSynchronize and any
-    contained call of super.synchronized to super.doSynchronize.</li>
-</ul>
-<h4>AbstractTextEditor (package org.eclipse.ui.texteditor)</h4>
-<ul>
-  <li>The method IEditorPart.gotoMarker(IMarker marker) was removed from the
-    IEditorPart interface because it was resource-specific. The default
-    implementation provided by AbstractTextEditor has been removed from
-    AbstractTextEditor and has been moved to ExtendedTextEditor. Direct
-    subclasses of AbstractTextEditor or StatusTextEditor that want to provide
-    that functionality should follow the migration instructions given for
-    IEditorPart in this document.</li>
-  <li>AbstractTextEditor no longer differentiates between between implicit and
-    explicit document providers as the concrete implementation was resource
-    specific. This functionality has been moved to ExtendedTextEditor. Direct
-    subclasses of AbstractTextEditor or StatusTextEditor must perform the
-    following steps:
-    <ul>
-      <li>Override getDocumentProvider.</li>
-      <li>Override the newly introduced hook method for disposing the document
-        provider (disposeDocumentProvider)</li>
-      <li>Override the newly introduced hook method
-        setDocumentProvider(IEditorInput) that is called while updating the
-        document provider for the new editor input. I.e. that is the method in
-        which you can configure the appropriate implicit document provider for
-        the given editor input.</li>
-    </ul>
-  </li>
-  <li>All occurrences of WorkbenchModifyingOperation have been removed. The
-    editor now calls the document provider methods directly (see described
-    changes for AbstractDocumentProvider);
-    <ul>
-      <li>Removed createSaveOperation, changed performSaveOperation to
-        performSave. Subclasses of AbstractTextEditor overriding
-        createSaveOperation or performSaveOperation must now override
-        performSave.</li>
-      <li>Removed createdRevertOperation, changed peformRevertOperation to
-        performRevert. Sunclasses overriding createRevertOperation or
-        performRevertOperation must now override performRevert.</li>
-      <li>The implementation of the method handleEditorInputChanged has been
-        changed to not use WorkbenchModifyingOperation. Subclasses overriding
-        handleEditorInputChange must adapt accordingly. Please use the changes
-        applied to AbstractTextEditor.handleEditorInputChange as the blueprint.</li>
-    </ul>
-  </li>
-  <li>AbstractTextEditor.createActions no longer registers any actions under
-    ITextEditorActionConstants.ADD_TASK and ITextEditorActionConstant.BOOKMARK
-    as those actions are IDE specific. The registration of these actions has
-    been moved to ExtendedTextEditor. Direct subclasses of AbstractTextEditor or
-    StatusTextEditor should override the createActions method and add the
-    following lines (accordingly adapted to their circumstances):</li>
-  <li>
-    <pre> ResourceAction action= new AddMarkerAction(TextEditorMessages.getResourceBundle(), &quot;Editor.AddBookmark.&quot;, this, IMarker.BOOKMARK, true); //$NON-NLS-1$
-  action.setHelpContextId(ITextEditorHelpContextIds.BOOKMARK_ACTION);
-  action.setActionDefinitionId(ITextEditorActionDefinitionIds.ADD_BOOKMARK);
-  setAction(IDEActionFactory.BOOKMARK.getId(), action);     </pre>
-    <pre>  action= new AddTaskAction(TextEditorMessages.getResourceBundle(), &quot;Editor.AddTask.&quot;, this); //$NON-NLS-1$
-  action.setHelpContextId(ITextEditorHelpContextIds.ADD_TASK_ACTION);
-  action.setActionDefinitionId(ITextEditorActionDefinitionIds.ADD_TASK);
-  setAction(IDEActionFactory.ADD_TASK.getId(), action);</pre>
-  </li>
-</ul>
-<h4>StatusTextEditor (package org.eclipse.ui.texteditor)</h4>
-<ul>
-  <li>See migration notes for AbstractTextEditor.</li>
-  <li>StatusTextEditor provides the predicate method isErrorStatus(IStatus).
-    Subclasses may override in order to decide whether a given status must
-    considered an error or not.</li>
-</ul>
-<h4>ExtendedTextEditor (package org.eclipse.ui.editors.text)</h4>
-<ul>
-  <li>The IEditorPart method gotoMarker(IMarker marker) has been deprecated to
-    allow a future change of its visibility. Clients of this method must follow
-    the migration instructions in the deprecation message.
-  <li>ExtendedTextEditor returns an adapter for IGotoMarker.
-  <li>ExtendedTextEditor implements the concept of implicit/explicit document
-    providers previously provided by AbstractTextEditor. See migration notes for
-    AbstractTextEditor.
-</ul>
-<h4>StorageDocumentProvider (package eclipse.ui.editors.text)</h4>
-<ul>
-  <li>See migration notes for AbstractDocumentProvider.</li>
-  <li>Implements the getOperationRunner method defined by
-    AbstractDocumentProvider. Always returns null. When subclassing you should
-    not be affected by this change.</li>
-</ul>
-<h4>FileDocumentProvider (packge org.eclipse.ui.editors.text)</h4>
-<ul>
-  <li>See migration notes for AbstractDocumentProvider.</li>
-  <li>The method resetDocument has been changed to doResetDocument.</li>
-  <li>The method synchronize has been changed to doSynchronize.</li>
-  <li>Implements the getOperationRunner method returning
-    WorkspaceOperationRunner which executes given DocumentProviderOperations
-    inside a WorkspaceModifyingOperation.</li>
-</ul>
-<h3>Generic Console</h3>
-<p>With the work for the generic console support, the view id for the console
-has changed from org.eclipse.debug.ui.ConsoleView. This results in problems at
-startup such as &quot;Could not restore workbench layout&quot; with details that
-&quot;Could not create view: org.eclipse.debug.ui.ConsoleView&quot; for the
-particular perspective that contained reference to the old view id. The
-equivalent view id is now: &quot;org.eclipse.ui.console.ConsoleView&quot;.<br>
-The generic console is available via the Window&gt;Show View&gt;Basic&gt;Console
-and is used by the Eclipse debug and Ant integration.</p>
-<h3>[JDT only] IJavaBreakpointListener (package org.eclipse.jdt.debug.core)</h3>
-<p>In 3.0, the return types for the methods
-IJavaBreakpointListener.breakpointHit(IJavaBreakpoint, IJavaThread) and
-installingBreakpoing(IJavaTarget, IJavaBreakpoint, IJavaType) changed from
-boolean to int to allow listeners to vote &quot;don't care&quot;. In releases
-prior to 3.0, listeners could only vote &quot;suspend&quot; or &quot;don't
-suspend&quot; when a breakpoint was hit, and &quot;install&quot; or &quot;don't
-install&quot; when a breakpoint was about to be installed. In 3.0, listeners can
-also vote &quot;don't care&quot; for either of these notifications. This allows
-clients to only make a decisive vote in situations that they care about. For
-&quot;breakpoint hit&quot; notifications, the breakpoint will suspend if any
-listeners vote &quot;suspend&quot;, or all listeners vote &quot;don't
-care&quot;; and it will not suspend if at least one listener votes &quot;don't
-suspend&quot; and no listeners vote &quot;suspend&quot;. Similarly, for
-&quot;breakpoint installing&quot; notifications, the breakpoint will be
-installed if any listeners vote to install, or all listeners vote &quot;don't
-care&quot;; and it will not be installed if at least one listener votes
-&quot;don't install&quot; and no listeners vote &quot;install&quot;. In general,
-implementors should return DONT_CARE unless they have a strong opinion one way
-or the other. It is important to keep in mind, for example, that voting
-&quot;suspend&quot; will override any other listener's vote of &quot;don't
-suspend&quot;.</p>
-<p>The IJavaBreakpointListener interface is implemented by clients that create
-or react to breakpoints in Java code. There are likely few clients beyond JDT
-itself, save the one that reported the problem (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37760">bug
-37760</a>) that this change remedies. This is a breaking change for existing
-code that implements the IJavaBreakpointListener interface. This code needs to
-be modified to return an appropriate int value before it will compile or run in
-3.0.</p>
-<h3>Clipboard access in UI thread (package org.eclipse.swt.dnd)</h3>
-<p>Prior to 3.0, the methods on the SWT Clipboard class were tacitly permitted
-to run in threads other than the UI thread. This oversight resulted in failures
-on GTK where the operating system requires that clipboard interactions be
-performed in the UI thread. The oversight was not revealed earlier because many
-applications are single-threaded and receive most of their testing on Windows.
-In order for the Clipboard API to be sustainable and cross-platform, in 3.0 the
-specification and implementation of all Clipboard API methods have been changed
-to throw an SWT Exception (ERROR_THREAD_INVALID_ACCESS) if invoked from a non-UI
-thread. Clipboard services are commonly provided automatically by Eclipse
-components such as the text editor, which insulate many clients from this
-breaking change. Existing code that does make direct use of Clipboard should
-ensure that the API methods are called on the correct thread, using
-Display.asyncExec or syncExec as required to shift accesses into the UI thread.</p>
-<h3>SWT.KeyDown events</h3>
-<p>In 3.0 key down events are reported before the work is done in the OS. This
-is much earlier than it was prior to 3.0. This change was made to support key
-bindings in Eclipse which necessitates intercepting key events before any widget
-had a chance to process the character. Consequences of this change are visible
-to code that handles low-level SWT.KeyDown events directly. For example, it
-means that when a listener on a Text widget receives a key down event, the
-widget's content (getText()) will not yet include the key just typed (it would
-have prior to 3.0). The recommended way to get the full text from the widget
-including the current key is to handle the higher-level SWT.Modify or SWT.Verify
-events rather than the low-level SWT.KeyDown event; code that does it this way
-is unaffected by this change.</p>
-<h3>Tab traversal of SWT Canvas (package org.eclipse.swt.widgets)</h3>
-<p>Prior to 3.0, when the focus was in an SWT Canvas or one of its subclasses
-(including custom widgets), typing Ctrl+Tab, Shift+Tab, Ctrl+PgUp, or Ctrl+PgDn
-would automatically trigger traversal to the next/previous widget without
-reporting a key event. This behavior was unspecified, and runs counter to the
-rule that Canvases see every key typed in them. The proper way to handle
-traversal is by registering a traverse listener. In order to properly support
-Eclipse key bindings in 3.0, the default behavior was changed so that Canvas now
-sees Ctrl+Tab, Shift+Tab, Ctrl+PgUp, and Ctrl+PgDn key events instead of
-traversing. If you use a raw Canvas or define a subclass of Canvas, ensure that
-that you register a traverse listener.</p>
-<h3>Selection event order in Table and Tree widgets</h3>
-<p>Mouse selections of items in SWT Table and Tree widgets generate the event
-sequence MouseDown-Selection-MouseUp uniformly in all operating environments.
-Similarly, keyboard selections generate the event sequence
-KeyDown-Selection-KeyUp uniformly in all operating environments. Prior to 3.0,
-the event order was not uniform, with Motif and Photon at variance with the rest
-by always reporting the Selection event first; i.e., Selection-MouseDown-MouseUp
-or Selection-KeyDown-KeyUp. For 3.0, the event order on Motif and Photon has
-been changed to match the others. Existing code that was functioning correctly
-on {Windows, GTK} and on {Motif, Photon} is unlikely to be affected. But it is
-wise to check your code to ensure that it does not rely on an invalid event
-order.</p>
-<h3>IResourceChangeEvent (org.eclipse.core.resources)</h3>
-<p>In Eclipse 3.0, workspace auto-build now occurs in a background thread. This
-required an API contract change to <tt>IResourceChangeEvent</tt>. The contract
-of <tt>IResourceChangeEvent</tt> previously guaranteed the following ordering of
-events for all workspace changes:
-<ol>
-  <li><tt>PRE_DELETE</tt> or <tt>PRE_CLOSE</tt> event notification if applicable</li>
-  <li>Perform the operation</li>
-  <li><tt>PRE_AUTO_BUILD</tt> event notification</li>
-  <li>If auto-build is on, perform incremental workspace build</li>
-  <li><tt>POST_AUTO_BUILD</tt> event notification</li>
-  <li><tt>POST_CHANGE</tt> event notification</li>
-</ol>
-<p>With auto-build now running in the background, there is no longer any
-guarantee about the temporal relationship between the <tt>AUTO_BUILD</tt> events
-and the <tt>POST_CHANGE</tt> event. In Eclipse 3.0, steps 3-5 in the above
-structure are removed from the operation. The resulting picture looks like this:
-<ol>
-  <li><tt>PRE_DELETE</tt> or <tt>PRE_CLOSE</tt> event notification if applicable</li>
-  <li>Perform the operation</li>
-  <li><tt>POST_CHANGE</tt> event notification</li>
-</ol>
-<p>Periodically, the platform will perform a background workspace build
-operation. Note that this happens regardless of the whether auto-build is on or
-off. The exact timing of when this build occurs will not be specified. The
-structure of the build operation will look like this:
-<ol>
-  <li><tt>PRE_AUTO_BUILD</tt> event notification</li>
-  <li>If auto-build is on, perform incremental workspace build</li>
-  <li><tt>POST_AUTO_BUILD</tt> event notification</li>
-  <li><tt>POST_CHANGE</tt> event notification</li>
-</ol>
-The reference point for the deltas received by auto-build listeners will be
-different from post-change listeners. Build listeners will receive notification
-of all changes since the end of the last build operation. Post-change listeners
-will receive a delta describing all changes since the last post-change
-notification. This new structure retains three characteristics of resource
-change listeners that have been true since Eclipse 1.0:
-<ul>
-  <li><tt>POST_CHANGE</tt> listeners receive notification of absolutely all
-    resource changes that occur during the time they are registered. This
-    includes changes made by builders, and changes made by other listeners.</li>
-  <li><tt>PRE_AUTO_BUILD</tt> listeners receive notification of all resource
-    changes <b>except</b> changes made by builders and resource change
-    listeners.
-  <li><tt>POST_AUTO_BUILD</tt> listeners receive notification of all resource
-    changes <b>except</b> changes made by other <tt>POST_AUTO_BUILD</tt>
-    listeners.
-</ul>
-However, there are some important differences with this approach. Prior to
-Eclipse 3.0, auto-build listeners were always called before <tt>POST_CHANGE</tt>
-listeners. For this reason, the delta received by auto-build listeners was
-always a subset of the delta received by the <tt>POST_CHANGE</tt> listeners.
-This relationship is now essentially reversed. Auto-build listeners will receive
-a delta that is a super-set of all deltas supplied to <tt>POST_CHANGE</tt>
-listeners since the end of the last background build. As before, auto-build
-listeners will be allowed to modify the workspace, and post-change listeners
-will not.
-<p>It will no longer be true that upon completion of a workspace changing
-operation, that <tt>AUTO_BUILD</tt> event listeners will have been notified.
-Client code that registers resource change listeners with <code>IWorkspace.addResourceChangeListener(IResourceChangeListener)</code>
-is&nbsp; unlikely to be affected by this change because <tt>AUTO_BUILD</tt>
-events were never reported to these listeners. However, clients that use <code>IWorkspace.addResourceChangeListener(IResourceChangeListener,int)</code>
-and specify an event mask that includes <tt>AUTO_BUILD</tt> events are likely to
-be broken by this change if they make assumptions about when auto-build
-listeners run or what thread they run in. For example, if an auto-build listener
-is updating a domain model to reflect changes to the workspace, then this update
-might not have happened when the workspace changing operation returns. It is
-worth noting that only UI-level code can be affected in this way. Core-level
-code that is called via API may be called within the scope of an <tt>IWorkspaceRunnable</tt>,
-so it can never be sure about when resource change listeners will be called. The
-suggested fix for this breakage is to use <tt>POST_CHANGE</tt> instead of build
-listeners if it is necessary to have notification occur before the operation
-completes.</p>
-<h3>IWorkspaceRunnable and IWorkspace.run</h3>
-<p>It will no longer be guaranteed that all resource changes that occur during
-the dynamic scope of an <code>IWorkspaceRunnable</code> will be batched in a
-single notification. This mechanism can still be used for batching changes to
-avoid unnecessary builds and notifications, but the platform may now decide to
-perform notifications during the operation. This API contract change is not
-likely to be a breaking change for existing clients. It is equivalent to the
-platform deciding to call <code>IWorkspace.checkpoint</code> periodically during
-a long running operations. The reason for this change is that it is now possible
-for multiple threads to be modifying the workspace concurrently. When one thread
-finishes modifying the workspace, a notification is required to prevent
-responsiveness problems, even if the other operation has not yet completed. This
-change also allows users to begin working on a set of resources before the
-operation completes. For example, a user can now begin browsing files in a
-project that is still in the process of being checked out. The new method <tt>IWorkspace.run(IWorkspaceRunnable,
-ISchedulingRule, int, IProgressMonitor)</tt> has an optional flag, <tt>AVOID_UPDATE</tt>,
-that operations can use as a hint to the platform to specify whether periodic
-updates are desired.</p>
-<h3>Eclipse 3.0 is more concurrent</h3>
-<p>Prior to Eclipse 3.0, Eclipse operated mostly in a single thread. Most API
-methods and extension points operated either in the UI thread, or in a thread
-spawned from a progress dialog that blocked the UI thread. Most plug-in writers
-did not have to worry much about thread safety, apart from ensuring that all UI
-activity occurred in the UI thread. In Eclipse 3.0, there is generally much more
-concurrency. Many operations now occur in a background thread, where they may
-run concurrently with other threads, including the UI thread. All plug-ins whose
-code runs in a background thread must now be aware of the thread safety of their
-code.</p>
-<p>In addition to plug-ins that are explicitly running operations in the
-background using the <tt>org.eclipse.core.runtime.jobs</tt> API, there are
-several platform API facilities and extension points that make use of background
-threads. Plug-ins that hook into these facilities need to ensure that their code
-is thread safe. The following table summarizes the API and extension points that
-run some or all of their code in a background thread in Eclipse 3.0:</p>
-<p>&nbsp;
-<table border="1" width="80%">
-  <tr>
-    <td width="50%">
-      <p align="center"><b>Extension point or API class</b></td>
-    <td width="50%">
-      <p align="center"><b>Notes</b></td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.core.runtime.IRegistryChangeListener</td>
-    <td width="50%">New in Eclipse 3.0, runs in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.core.resources.IResourceChangeListener</td>
-    <td width="50%"><tt>AUTO_BUILD</tt> events now in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.core.resources.builders</td>
-    <td width="50%">Autobuild now in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.core.resources.ISaveParticipant</td>
-    <td width="50%"><tt>SNAPSHOT</tt> now in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.workbench.texteditor.quickdiffReferenceProvider</td>
-    <td width="50%">New in Eclipse 3.0, runs in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.decorators</td>
-    <td width="50%">Already in background in Eclipse 2.1</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.ui.startup</td>
-    <td width="50%">Already in background in Eclipse 2.1</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.team.core.org.eclipse.team.core.repository</td>
-    <td width="50%">Many operations now in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.team.ui.synchronizeParticipants</td>
-    <td width="50%">New in Eclipse 3.0, runs in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.debug.core.launchConfigurationTypes</td>
-    <td width="50%">Now runs in background</td>
-  </tr>
-  <tr>
-    <td width="50%">org.eclipse.jdt.core.IElementChangedListener</td>
-    <td width="50%"><tt>PRE_AUTO_BUILD</tt> now runs in background, <tt>POST_RECONCILE</tt>
-      already ran in the background</td>
-  </tr>
-</table>
-<p>There are various strategies available for making code thread safe. A naive
-solution is to ensure all work occurs in the UI thread, thus ensuring serialized
-execution. This is a common approach for UI plug-ins that are not doing
-CPU-intensive processing. When doing this, be aware of the deadlock risk
-inherent in <tt>Display.syncExec</tt>. <tt>Display.asyncExec</tt> is generally
-safer as it does not introduce deadlock risk, at the expense of losing precise
-control over when the code is executed.</p>
-<p>Other techniques for making thread safe code included:
-<ul>
-  <li>Wrapping unsafe code in semaphores or java monitors. The new concurrency
-    infrastructure includes one such semaphore object: <tt>org.eclipse.core.runtime.jobs.ILock</tt>.
-    The advantage of <tt>ILock</tt> over generic locks is that they transfer
-    automatically to the UI thread when doing a <tt>syncExec</tt>, and there is
-    deadlock detection support built into their implementation that logs and
-    then resolves deadlocks.</li>
-  <li>Message queues. Code can be serialized by forwarding all processing to a
-    message queue that is processed serially in a single thread. One such
-    example is the SWT deferred event queue (<tt>Display.asyncExec</tt>), which
-    is processed entirely in the UI thread.</li>
-  <li>Immutable objects. Make data structures immutable, and make new copies on
-    modification. This is the approach used to make data structures such as <tt>java.lang.String</tt>
-    and <tt>org.eclipse.core.runtime.IPath</tt> thread safe. The advantage of
-    immutable objects is extremely fast read access, at the cost of extra work
-    on modification.</li>
-</ul>
-<h3>Restructuring of Platform Core Runtime</h3>
-<p>The Eclipse 3.0 Platform Runtime is based on OSGi, necessitating changes to
-the structure of the two Platform Runtime plug-ins, org.eclipse.core.runtime and
-org.eclipse.core.boot.</p>
-<p>A new org.eclipse.core.runtime.compatibility plug-in provides an implementation 
-  bridge between the old and new APIs, and is the new home for some of the obsolete 
-  APIs formerly found in org.eclipse.core.runtime and org.eclipse.core.boot. Obsolete 
-  API will be deprecated in a future release in favor of the OSGi-based API, once 
-  these new APIs have stabilized and matured. The new OSGi-based Eclipse Runtime 
-  API is available in the org.eclipse.core.runtime plug-in for early adopters 
-  wishing to take advantage of its new capabilities. Platform Runtime extension 
-  points were not affected by the restructuring.</p>
-<p>N.B. The Eclipse 3.0 runtime automatically detects pre-3.0 plug-ins (by the 
-  absence of the aforementioned &lt;?eclipse...?&gt; line in the plug-in manifest) 
-  and automatically compensates for these changes to the Platform Runtime. This 
-  should be viewed as a stopgap measure to allow existing plug-in that explicitly 
-  or implicitly depends on org.eclipse.core.runtime or org.eclipse.core.boot to 
-  work in 3.0. However, when porting the existing plug-in to 3.0, the plug-in's 
-  manifest needs to be updated to reflect the new structure of the Eclipse Platform 
-  Runtime plug-ins. The PDE plug-in manifest migration tool will add a dependency 
-  to org.eclipse.core.runtime.compatibility if required.</p>
-<p>Note also that if you mark you plug-in as 3.0 (using &lt;?eclipse...?&gt;) 
-  and your plug-in defines a Plugin class, you must either explicitly &lt;import 
-  plugin=&quot;org.eclipse.core.runtime.compatibility&quot;/&gt; in the plug-in 
-  manifest or ensure that the Plugin class defines the default constructor.</p>
-<h3>URL Stream Handler extensions</h3>
-<p>The contract for the <tt>org.eclipse.core.runtime.urlHandlers</tt> extension
-point was changed to use the URL Stream Handler service provided by OSGi. The
-OSGi support is superior to the one in Eclipse 2.1, and correctly handles
-dynamic handlers. Because of various design issues with the base Java URL
-handler mechanism, URLStreamHandlers registered with the OSGi handler service
-must implement <tt>org.osgi.service.url.URLStreamHandlerService</tt>.</p>
-<p>The change affects plug-ins that contribute extensions to the <tt>org.eclipse.core.runtime.urlHandlers</tt>
-extension point. Formerly, the main class had to implement <tt>java.net.URLStreamHandler</tt>.
-It needs to be updated to implement <tt>org.osgi.service.url.URLStreamHandlerService</tt>
-interface. The OSGi framework provides an abstract base class (<tt>org.osgi.service.url.AbstractURLStreamHandlerService</tt>)
-that can be subclassed.</p>
-<h3>Classload order</h3>
-<p><b>Who is affected:</b> Plug-ins which supply packages provided which are
-also supplied by other plug-ins. A very limited number of plug-ins are affected
-by this change and some of those affected will actually benefit (see below).</p>
-<p><b>Description:</b> In Eclipse 2.x, classloaders search for classes using the
-so-called <i>PSP</i> ordering. That is, a given classloader would first consult
-its <b>p</b>arent classloader (in practice this is the Java boot classloader),
-then its own classpath contents (i.e., <b>s</b>elf) and finally all of its <b>p</b>rerequisites
-in declared order. OSGi offers an optimization over this model, the so-called <i>PP|S</i>
-(read P, P or S) ordering. In this approach a classloader will consult its
-parent (again, effectively the Java boot classloader), then either a single
-prerequisite known to contribute classes in the package being queried then its
-own classpath entries for the desired class.</p>
-<p>The classloader determines whether to consult self or its prerequisites based
-on its imported and required packages. This information is inferred from the
-plug-in content in the case of legacy plug-ins and directly specified in the
-case of new plug-ins. In either case, it is known <i>a priori</i> which
-classloaders will supply the classes for which packages. This offers performance
-improvements as well as a solution to the vexing problem of multiple
-prerequisites contributing the same classes.</p>
-<p>Take for example the case of Xerces and Xalan. Both contain various classes
-from org.xml packages. Under the PSP model, the Xerces plug-in would see its
-copy of these classes while the Xalan plug-in would see their copy. Since these
-plug-ins need to communicate, ClassCastExceptions occur. Under the PP|S model,
-only one of the two plug-ins contributes the duplicate classes and both plug-ins
-see the same copies.</p>
-<p><b>Action required:</b> The action required depends on the particulars of the
-usecase. Affected developers need to review their classpath and resolve any
-conflicts which may be happening.</p>
-<h3>Class loader protection domain not set</h3>
-<p><b>Who is affected:</b> Plug-ins which expect the protection domain of their
-class loader to be set at all times.</p>
-<p><b>Description:</b> In Eclipse 2.1 plug-in class loaders were
-SecureClassloaders. As such, they always had a protection domain set. In Eclipse
-3.0 classloaders do not extend SecureClassloader and only set the protection
-domain if Java security is turned on (not the normal case).</p>
-<p><b>Action required:</b> The action required will depend on the scenario in
-which the plug-in is using the protection domain.</p>
-<h3>Default package content cannot be shared</h3>
-<p><b>Who is affected:</b> Plug-ins which expect to use types or resources in
-the default package of another plug-in. The use of the default package is very
-rare. The only uses we have seen is where test suites use the default package
-and <tt>getResource()</tt> to access test data.</p>
-<p><b>Description:</b> The new Eclipse runtime allows plug-ins to contribute
-more classpath information. This information is used to optimize class loading
-such that searching arbitrarily long prerequisite chains is not required. The
-technique used for specifying this information does not allow for the sharing of
-the default package. As such, a plug-in's class loader is able to see the
-default package in its own classpath but not in that of its prerequisite
-plug-ins.</p>
-<p><b>Action required:</b> Plug-in developers should address this by moving such
-files to non-root directories on their classpath. Note that moving them to say <tt>icons/</tt>
-in the jar does not particularly help because the package &quot;icons&quot;
-would typically be exported and would surely conflict with some other plug-in
-doing the same. Also note that Java package naming rules do not allow for
-package segments which contain whitespace. The best approach is to put the files
-in a real, unique, package (or remove such files from the classpath and access
-them via the new <tt>Bundle.getEntry()</tt> API).</p>
-<h3>PluginModel object casting</h3>
-<p><b>Who is affected:</b> Plug-ins which cast objects of type IPlugin* to
-Plugin*Model. Even though the relationship between these interfaces and the
-model classes is not a specified part of the Eclipse 2.1 API we are explicitly
-calling out this change as we have found that PDE and a few others are currently
-take advantaging of the correlation in the 2.1 implementation.</p>
-<p><b>Description:</b> The Eclipse API provides a series of interfaces (e.g., <tt>IPluginDescriptor</tt>)
-and so-called &quot;model&quot; classes (e.g., <tt>PluginDescriptorModel</tt>)
-related to plug-ins and the plug-in registry. In the Eclipse 2.1 implementation
-it happens that the model classes implement the relevant interfaces. In the new
-runtime the plug-in registry has been significantly reworked to allow for a
-separation between the classloading and prerequisite aspects of plug-ins and the
-extension and extension-point aspects. As such the Eclipse 3.0 runtims is unable
-to maintain the implementation relationship present in 2.1.</p>
-<p><b>Action required:</b> Developers currently relying on this non-API
-relationship will need to rework their code according to their usecase. More
-information on this is given in the recommended changes section of this
-document.</p>
-<h3>ILibrary implementation incomplete</h3>
-<p><b>Who is affected:</b> User of <tt>org.eclipse.core.runtime.ILibrary</tt>.</p>
-<p><b>Description:</b> The new runtime maintains the classpath entries in a
-different and incompatible form from Eclipse. As a result, the compatibility
-layer is unable to correctly model the underlying OSGi structures as ILibrary
-objects.</p>
-<p><b>Action required:</b> Users of ILibrary should consider accessing the
-desired header values (e.g., <tt>Bundle-Classpath</tt>) from the appropriate
-Bundle (see <tt>Bundle.getHeaders()</tt>) and using the <tt>ManifestElement</tt>
-helper class to interpret the entries.</p>
-<h3>Invalid assumptions regarding the form of URLs</h3>
-<p><b>Who is affected:</b> Plug-ins which make assumptions regarding their
-installation structure, location and the local file system layout.</p>
-<p><b>Description:</b> Methods such as <tt>IPluginDescriptor.getInstallURL()</tt>
-return URLs of a particular form. Despite this form not being specified, various
-plug-ins make assumptions based on the current implementation. For example, they
-may expect to get a <tt>file:</tt> URL and use URL.getFile() and use <tt>java.io.File</tt>
-manipulation on the result. To date, this has been a workable but rather unsafe
-approach. For example, if a plug-in is installed on a web server, it is possible
-that an <tt>http:</tt> URL would be returned. The new Eclipse 3.0 runtime is
-even more flexible and opens more possibilities for execution configurations
-(e.g., maintaining whole plug-ins in JARs rather than exploded in directories).
-That is , while new runtime does not actually break 2.1 API, it exposes more
-cases where assumptions made in current plug-ins are invalid.</p>
-<p><b>Action required:</b> Plug-in writers should ensure that the information to
-which they need access is available via <tt>getResource()</tt> (and is on the
-classpath) or use the relevant API for accessing the contents of a plug-in
-(e.g., <tt>Bundle.getEntry(String)</tt>).</p>
-<h3>BootLoader API methods moved/deleted</h3>
-<p><b>Who is affected:</b> Plug-ins which use certain API methods from the class
-<tt>org.eclipse.core.boot.BootLoader</tt>.</p>
-<p><b>Description:</b> Methods such as startup(), shutdown() and 
-  run() were moved from the BootLoader class (now supplied in the compatibility
-  layer) to EclipseStarter which is part of the OSGi framework (i.e., org.eclipse.osgi).
-  This API is the interface between the main() in startup.jar and the OSGi framework/Eclipse
-  runtime. Given the
-  restructuring
-  of the runtime, these methods could not be left on BootLoader.</p>
-<p> The method BootLoader.getRunnable() has been removed as the runtime  can
-  no longer support the acquisition of individual applications. Rather users
-  should indicate the application of interest when they start the platform.</p>
-<p><b>Action required:</b> In general this API is used by very few people. In
-  the rare case that it is, users can adapt by using the new methods on EclipseStarter.</p>
-<h3>Re-exporting runtime API</h3>
-<p><b>Who is affected:</b> Plug-ins which expose API that includes elements from
-changed runtime API.</p>
-<p><b>Description:</b> Various plug-ins expose API that includes elements from
-the runtime API. With the changes to the Eclipse 3.0 runtime outlined here,
-client plug-ins must re-evaluate their use of runtime API in their API.</p>
-<p><b>Action required:</b> This scenario is quite quite rare are very little of
-the Eclipse runtime API is changing. Depending on the scenario, clients may have
-to change their API or continue to rely on the the compatibility layer.</p>
-<h3>Plug-in parsing methods on Platform</h3>
-<p><b>Who is affected:</b> Users of <tt>org.eclipse.core.runtime.Platform.parsePlugins(...,
-Factory).</tt></p>
-<p><b>Description:</b> The method <tt>org.eclipse.core.runtime.Platform.parsePlugins(..., 
-  Factory)</tt> has been moved. The API associated with the Factory argument has 
-  been moved from the org.eclipse.core.runtime plug-in up to the org.eclipse.core.runtime.compatibility 
-  plug-in (which depends on the runtime plug-in). As a result, the parsing method 
-  has been moved as well.</p>
-<p><b>Action required:</b> Users of this method should use the same method on 
-  the class <tt>org.eclipse.core.runtime.model.PluginRegistryModel</tt>.</p>
-<h3>Changes to build scripts</h3>
-<p><b>Who is affected:</b> Developers maintaining scripts (e.g., Ant build.xml
-files) which define classpaths containing runtime related jars and class
-directories.</p>
-<p><b>Description:</b> The new runtime contains a number of new plug-ins and
-jars. Their introduction was mandated by the refactoring of the runtime into
-configurable pieces. For most runtime situations these changes are transparent.
-However, if you have custom build.xml (or similar) scripts which currently
-compile code against <tt>org.eclipse.core.runtime</tt>, you will need to update
-them before they will function correctly. A typical script contains a classpath
-entry in a &lt;javac&gt; task that references the <tt>org.eclipse.core.runtime</tt>
-plug-in as follows:</p>
-<pre>    ../org.eclipse.core.runtime/bin;../org.eclipse.core.runtime/runtime.jar</pre>
-<p>The runtime plug-in continues to contain much of the original runtime code.
-However, various parts of the runtime which are there only for compatibility
-purposes are contained in a compatibility plug-in (<tt>org.eclispe.core.runtime.compatibility</tt>).
-Most of the new runtime code is contained in a collection of plug-ins (<tt>org.eclipse.osgi.*</tt>).</p>
-<p><b>Action required:</b> Developers should add the entries below as needed to
-eliminate compilation errors. While the complete set of jars supplied is listed
-below, typical uses require only a subset on the classpath at compile time. As
-usual, the inclusion of the /bin directories is discretionary. The entries are
-given here in logical groupings by supplying plug-in:</p>
-<ul>
-  <li>../org.eclipse.core.runtime.compatibility/bin;../org.eclipse.core.runtime.compatibility/compatibility.jar;</li>
-  <li>../org.eclipse.osgi/bin;../org.eclipse.osgi/osgi.jar;</li>
-  <li>../org.eclipse.update.configurator/bin;../org.eclipse.update.configurator/configurator.jar;</li>
-  <li>../org.eclipse.osgi.util/util.jar;</li>
-</ul>
-<p>In addition the following jars may be required in special cases:</p>
-<ul>
-  <li>../org.eclipse.osgi/core.jar; ../org.eclipse.osgi/resolver.jar; ../org.eclipse.osgi/defaultAdaptor.jar;
-    ../org.eclipse.osgi/eclipseAdaptor.jar; ../org.eclipse.osgi/console.jar</li>
-</ul>
-<p>While updating such scripts, you should also take the opportunity to clean up
-(i.e., remove) references to <tt>org.eclipse.core.boot</tt>. This plug-in is
-obsolete and longer contains any code. The entries can be left on the classpath
-but they serve no purpose and should be removed. Look to remove:<br>
-</p>
-<pre>    ../org.eclipse.core.boot/bin;../org.eclipse.core.boot/boot.jar</pre>
-<h2><a name="Recommended Changes for 3.0">Recommended Changes for 3.0</a></h2>
-<p>This section describes other changes that we recommend be made when porting
-an existing plug-in to 3.0.</p>
-<h3>Changes to API classes and interfaces (by package)</h3>
-<h4>IWorkspaceRunnable and IWorkspace.run (org.eclipse.core.runtime)</h4>
-<p>Clients of the <tt>IWorkspace.run(IWorkspaceRunnable,IProgressMonitor)</tt>
-method should revisit their uses of this method and consider using the richer
-method <tt>IWorkspace.run(IWorkspaceRunnable,ISchedulingRule,int,IProgressMonitor)</tt>.
-The old <tt>IWorkspace.run</tt> method acquires a lock on the entire workspace
-for the duration of the <tt>IWorkspaceRunnable</tt>. This means that an
-operation done with this method will never be able to run concurrently with
-other operations that are changing the workspace. In Eclipse 3.0, many
-long-running operations have been moved into background threads, so the
-likelihood of conflicts between operations is greatly increased. If a modal
-foreground operation is blocked by a long running background operation, the UI
-becomes blocked until the background operation completes, or until one of the
-operations is canceled.</p>
-<p>The suggested solution is to switch all references to old <tt>IWorkspace.run</tt>
-to use the new method with a scheduling rule parameter. The scheduling rule
-should be the most fine-grained resource that encompasses all changes by that
-operation. If desired, a <tt>MultiRule</tt> can be used to specify multiple
-resource rules. If the operation tries to modify resources outside of the scope
-of the scheduling rule, a runtime exception will occur. The following table
-summarizes what scheduling rule is required for each of the different types of
-resource operations:</p>
-<table cellspacing="2" cellpadding="2" border="1">
-  <tbody>
-    <tr>
-      <th>Type of operation</th>
-      <th>Rule required</th>
-    <tr>
-      <td>Create, modify, or delete file or folder</td>
-      <td>Parent resource</td>
-    </tr>
-    <tr>
-      <td>Create, delete, open or close project</td>
-      <td>Project</td>
-    </tr>
-    <tr>
-      <td>Change project description</td>
-      <td>Workspace root</td>
-    </tr>
-    <tr>
-      <td>Refresh local</td>
-      <td>Resource</td>
-    </tr>
-    <tr>
-      <td>Create, delete, or modify marker</td>
-      <td><tt>null</tt></td>
-    </tr>
-    <tr>
-      <td>Create, delete or modify sync info</td>
-      <td>Resource</td>
-    </tr>
-    <tr>
-      <td>Build workspace or project</td>
-      <td>Workspace root</td>
-    </tr>
-  </tbody>
-</table>
-<h4>IWorkbenchPage (package org.eclipse.ui)</h4>
-<ul>
-  <li>The constant EDITOR_ID_ATTR is now deprecated. This is an IMarker
-    attribute name that specifies the preferred editor id to open the IMarker
-    resource with. This constant in now on org.eclipse.ui.ide.IDE class.</li>
-</ul>
-<h4>IEditorDescriptor (package org.eclipse.ui)</h4>
-<ul>
-  <li>There are new API methods to determine whether the editor will open
-    internally to the workbench page (isInternal), in-place to the workbench
-    window (isOpenInPlace), or externally to the workbench (isExternal). While
-    this is not a breaking change, it is a good opportunity for clients that are
-    illegally down-casting IEditorDescriptor to
-    org.eclipse.ui.internal.model.EditorDescriptor to call isInternal to bring
-    there code back into line.</li>
-</ul>
-<h4>ISharedImages (package org.eclipse.ui)</h4>
-<ul>
-  <li>The following fields were removed (deprecated) from this interface because
-    they were IDE-specific:
-    <ul>
-      <li>String IMG_OBJ_PROJECT</li>
-      <li>String IMG_OBJ_PROJECT_CLOSED</li>
-      <li>String IMG_OPEN_MARKER</li>
-      <li>String IMG_OBJS_TASK_TSK</li>
-      <li>String IMG_OBJS_BKMRK_TSK</li>
-    </ul>
-  </li>
-  <li>Existing clients should instead use the fields of the same names declared
-    on IDE.SharedImages in the org.eclipse.ui.ide package of the
-    org.eclipse.ui.ide plug-in.</li>
-</ul>
-<h4>IWorkbenchActionConstants (package org.eclipse.ui)</h4>
-<ul>
-  <li>The following fields were removed (deprecated) from this interface; they
-    are subsumed by the new ActionFactory class:
-    <ul>
-      <li>String BACK</li>
-      <li>String CLOSE</li>
-      <li>String CLOSE_ALL</li>
-      <li>String COPY</li>
-      <li>String CUT</li>
-      <li>String DELETE</li>
-      <li>String EXPORT</li>
-      <li>String FIND</li>
-      <li>String FORWARD</li>
-      <li>String IMPORT</li>
-      <li>String MOVE</li>
-      <li>String NEW</li>
-      <li>String NEXT</li>
-      <li>String PASTE</li>
-      <li>String PREVIOUS</li>
-      <li>String PRINT</li>
-      <li>String PROPERTIES</li>
-      <li>String QUIT</li>
-      <li>String REDO</li>
-      <li>String REFRESH</li>
-      <li>String RENAME</li>
-      <li>String REVERT</li>
-      <li>String SAVE</li>
-      <li>String SAVE_ALL</li>
-      <li>String SAVE_AS</li>
-      <li>String SELECT_ALL</li>
-      <li>String UNDO</li>
-      <li>String UP</li>
-    </ul>
-  </li>
-  <li>Clients should instead call getID() on the fields of the same names
-    declared on ActionFactory in the org.eclipse.ui.actions package (org.eclipse.ui
-    plug-in). For example, change IWorkbenchActionConstants.CUT to
-    ActionFactory.CUT.getId().</li>
-  <li>The following fields were removed (deprecated) from this interface because
-    they were IDE-specific.
-    <ul>
-      <li>String ABOUT</li>
-      <li>String ADD_TASK</li>
-      <li>String BOOKMARK</li>
-      <li>String BUILD</li>
-      <li>String BUILD_PROJECT</li>
-      <li>String CLOSE_PROJECT</li>
-      <li>String FIND</li>
-      <li>String OPEN_PROJECT</li>
-      <li>String REBUILD_ALL</li>
-      <li>String REBUILD_PROJECT</li>
-    </ul>
-  </li>
-  <li>Clients should instead call getID() on the fields of the same names
-    declared on IDEActionFactory in the org.eclipse.ui.ide package (org.eclipse.ui.ide
-    plug-in). For example, change IWorkbenchActionConstants.BUILD to
-    IDEActionFactory.BUILD.getId().</li>
-</ul>
-<h4>IWorkbenchPreferenceConstants (package org.eclipse.ui)</h4>
-<ul>
-  <li>The following fields were removed (deprecated) from this interface because
-    they were IDE-specific:
-    <ul>
-      <li>String PROJECT_OPEN_NEW_PERSPECTIVE</li>
-    </ul>
-  </li>
-  <li>Clients should instead use the fields of the same names declared on
-    IDE.Preferences in the org.eclipse.ui.ide package.</li>
-</ul>
-<h4>IExportWizard (package org.eclipse.ui)</h4>
-<ul>
-  <li>Prior to 3.0, the selection passed to IWorkbenchWizard.init(IWorkbench,
-    IStructuredSelection) for an export wizard was preprocessed. If any of the
-    selections were IResources, or adaptable to IResource, then the selection
-    consisted only of these resources. In 3.0, the generic export wizard does
-    not do any preprocessing.&nbsp;</li>
-  <li>The selection passed to the wizard is generally used to prime the
-    particular wizard page with contextually appropriate values.</li>
-  <li>Client that implement IExportWizard and requires this resource-specific
-    selection transformation should add the following to their init(IWorkbench,
-    IStructuredSelection selection) method to computer <code>filteredSelection</code>
-    from <code>selection</code>:
-    <ul>
-      <li><code>IStructuredSelection filteredSelection = selection;<br>
-        List selectedResources = IDE.computeSelectedResources(currentSelection);<br>
-        if (!selectedResources.isEmpty()) {<br>
-        &nbsp;&nbsp;&nbsp; filteredSelection = new
-        StructuredSelection(selectedResources);<br>
-        }</code></li>
-    </ul>
-  </li>
-</ul>
-<h4>IImportWizard (package org.eclipse.ui)</h4>
-<ul>
-  <li>Prior to 3.0, the selection passed to IWorkbenchWizard.init(IWorkbench,
-    IStructuredSelection) for an import wizard was preprocessed. If any of the
-    selections were IResources, or adaptable to IResource, then the selection
-    consisted only of these resources. In 3.0, the generic import wizard does
-    not do any preprocessing.&nbsp;</li>
-  <li>The selection passed to the wizard is generally used to prime the
-    particular wizard page with contextually appropriate values.</li>
-  <li>Client that implement IImportWizard and requires this resource-specific
-    selection transformation should add the following to their init(IWorkbench,
-    IStructuredSelection selection) method to compute a filtered selection from
-    the selection passed in:
-    <ul>
-      <li><code>IStructuredSelection filteredSelection = selection;<br>
-        List selectedResources = IDE.computeSelectedResources(currentSelection);<br>
-        if (!selectedResources.isEmpty()) {<br>
-        &nbsp;&nbsp;&nbsp; filteredSelection = new
-        StructuredSelection(selectedResources);<br>
-        }</code></li>
-    </ul>
-  </li>
-</ul>
-<h4>INewWizard (package org.eclipse.ui)</h4>
-<ul>
-  <li>Prior to 3.0, the selection passed to IWorkbenchWizard.init(IWorkbench,
-    IStructuredSelection) for a new wizard was preprocessed. If there was no
-    structured selection at the time the wizard was invoked, but the active
-    workbench window had an active editor open on an IFile, then the selection
-    passed in would consist of that IFile. In 3.0, the generic new wizard does
-    not do any preprocessing, and an empty selection will be passed when there
-    is no structured selection.</li>
-  <li>The selection passed to the wizard is generally used to prime the
-    particular wizard page with contextually appropriate values.</li>
-  <li>Client that implement INewWizard and requires this capability should add
-    the following to their init(IWorkbench, IStructuredSelection selection)
-    method to compute a selection from the active editor's input:
-    <pre>if (selection.isEmpty()) {
-   IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-   if (window != null) {
-      IWorkbenchPart part = window.getPartService().getActivePart();
-      if (part instanceof IEditorPart) {
-         IEditorInput input = ((IEditorPart) part).getEditorInput();
-         if (input instanceof IFileEditorInput) {
-            selection = new StructuredSelection(((IFileEditorInput) input).getFile());
-         }
-      }		
-  }
-}</pre>
-  </li>
-</ul>
-<h4>WorkbenchHelp (package org.eclipse.ui.help)</h4>
-<ul>
-  <li>The following WorkbenchHelp method was removed (deprecated) from this
-    class because its result (IHelp) was removed (deprecated):
-    <ul>
-      <li>public static IHelp getHelpSupport()</li>
-    </ul>
-  </li>
-  <li>Clients that called this method to obtain an IHelp should instead call the
-    static methods on HelpSystem or WorkbenchHelp.</li>
-</ul>
-<h4>IHelp (package org.eclipse.help)</h4>
-<ul>
-  <li>This interface has been removed (deprecated). WorkbenchHelp.getHelpsupport()
-    was the only way to get hold of an IHelp object. This method has also been
-    removed (deprecated).</li>
-  <li>The following IHelp methods now appear as static methods on a new
-    HelpSystem class in the same package:
-    <ul>
-      <li>public IToc[] getTocs()</li>
-      <li>public IContext getContext(String contextId)</li>
-    </ul>
-  </li>
-  <li>The rest of the IHelp methods now appear as static method on WorkbenchHelp.</li>
-  <li>This interface was formerly mentioned in the contract for the
-    org.eclipse.help.support extension point. This extension point has been
-    renamed &quot;org.eclipse.ui.helpSupport&quot;, and the contract simplified
-    so that the implementer only needs supply the display methods. For these
-    purposes, IHelp has been replaced by AbstractHelpUI (in the
-    org.eclipse.ui.help package).</li>
-  <li>There should be no clients implementing this interface beyond the Platform
-    which supplied the sole implementation of this interface.</li>
-</ul>
-<h4>ITextEditorActionConstants (package org.eclipse.ui.texteditor)</h4>
-<ul>
-  <li>This interface additionally includes newly defined constants that redefine
-    deprecated constants inherited from org.eclipse.ui.IWorkbenchActionConstants.
-    This change allows clients to free their code from deprecation warnings. The
-    constants ADD_TASK and BOOKMARK have not been redefined as they are IDE
-    specific. When using these two constants in your code, please follow the
-    instructions given in the deprecation message.</li>
-</ul>
-<h4>IAbstractTextEditorHelpContextIds (package org.eclipse.ui.texteditor)</h4>
-<ul>
-  <li>BOOKMARK_ACTION and ADD_TASK_ACTION have been deprecated because they are
-    IDE specific. Use the constants defined in
-    org.eclipse.ui.editors.text.ITextEditorHelpContextIds instead.</li>
-</ul>
-<h4>BasicTextEditorActionContributor (package org.eclipse.ui.texteditor)</h4>
-<ul>
-  <li>BasicTextEditorActionContributor no longer assigns any editor action as
-    global action for org.eclipse.ui.IWorkbenchActionConstants.ADD_TASK and
-    org.eclipse.ui.IWorkbenchActionConstants.BOOKMARK because these actions are
-    IDE specific. This is now done by the
-    org.eclipse.ui.editors.text.TextEditorActionContributor. If your editors are
-    not configured to used TextEditorActionContributor but uses a contributor
-    that is a subclass of BasicTextEditorActionContributor, this contributor has
-    to be extended to also assign global action handlers for ADD_TASK and
-    BOOKMARK. This can be done by adding the following lines to the
-    setActiveEditor method of the editor action contributor:</li>
-  <li>
-    <pre> IActionBars actionBars= getActionBars();
- if (actionBars != null) {
-   actionBars.setGlobalActionHandler(IDEActionFactory.ADD_TASK.getId(), getAction(textEditor, IDEActionFactory.ADD_TASK.getId()));
-   actionBars.setGlobalActionHandler(IDEActionFactory.BOOKMARK.getId(), getAction(textEditor, IDEActionFactory.BOOKMARK.getId()));
- }</pre>
-  </li>
-</ul>
-<h4>TextEditorActionContributor (package org.eclipse.ui.editors.text)</h4>
-<ul>
-  <li>TextEditorActionContributor assigns global action handlers for
-    IWorkbenchActionConstants.ADD_TASK (now IDEActionFactory.ADD_TASK.getId())
-    and IWorkbenchActionConstants.BOOKMARK (now IDEActionFactory.BOOKMARK.getId()).
-    These action handlers have previously been registered by
-    BasicTextEditorActionContributor. See migration notes for
-    BasicTextEditorActionContributor.</li>
-</ul>
-<h4>ILaunchConfigurationType (package org.eclipse.debug.core)</h4>
-<p>With the introduction of extensible launch modes in 3.0, more than one launch
-delegate can exist for a launch configuration type. Releases prior to 3.0 only
-supported one launch delegate per launch configuration type. The method <code>ILaunchConfigurationType.getDelegate()</code>
-is now deprecated. The method <code>getDelegate(String mode)</code> should be
-used in its place to retrieve the launch delegate for a specific launch mode.
-The deprecated method has been changed to return the launch delegate for the <code>run</code>
-mode.</p>
-<h4>ILaunchConfigurationTab and ILaunchConfigurationTabGroup (package
-org.eclipse.debug.ui)</h4>
-<p>Launch tab groups and launch tabs are no longer notified when a launch
-completes. The method <code>launched(ILaunch)</code> in the interfaces <code>ILaunchConfigurationTab</code>
-and <code>ILaunchConfigurationTabGroup</code> has been deprecated and is no
-longer called. Relying on this method for launch function was always
-problematic, since tabs only exist when launching is performed from the launch
-dialog. Also, with the introduction of background launching, this method can no
-longer be called, as the launch dialog is be closed before the resulting launch
-object exists.</p>
-<h4>ILaunchConfigurationTab and AbstractLaunchConfigurationTab (package
-org.eclipse.debug.ui)</h4>
-<p>Two methods have been added to the <code>ILaunchConfigurationTab</code>
-interface - activated and deactivated. These new life cycle methods are called
-when a tab is entered and exited respectively. Existing implementations of <code>ILaunchConfigurationTab</code>
-that subclass the abstract class provided by the debug plug-in (<code>AbstractLaunchConfigurationTab</code>)
-are binary compatible since the methods are implemented in the abstract class.</p>
-<p>In prior releases, a tab was sent the message <code>initializeFrom</code>
-when it was activated, and <code>performApply</code> when it was deactivated. In
-this way, the launch configuration tab framework provided inter-tab
-communication via a launch configuration (by updating the configuration with
-current attribute values when a tab is exited, and updating the newly entered
-tab). However, since many tabs do not perform inter-tab communication, this can
-be inefficient. As well, there was no way to distinguish between a tab being
-activated, and a tab displaying a selected launch configuration for the first
-time. The newly added methods allow tabs to distinguish between activation and
-initialization, and deactivation and saving current values.</p>
-<p>The default implementation of <code>activated</code>, provided by the
-abstract tab, calls <code>initializeFrom</code>. And, the default implementation
-of <code>deactivated</code> calls <code>performApply</code>. Tabs wishing to
-take advantage of the new API should override these methods as required.
-Generally, for tabs that do not perform inter-tab communication, the recommended
-approach is to re-implement these methods to do nothing.</p>
-<h4>launchConfigurationTabGroup extension point Type (package
-org.eclipse.debug.ui)</h4>
-<p>In prior releases, perspective switching was specified on a launch
-configuration, via the launch configuration attributes <code>ATTR_TARGET_DEBUG_PERSPECTIVE</code>
-and <code>ATTR_TARGET_RUN_PERSPECTIVE</code>. With the addition of extensible
-launch modes in 3.0, this approach no longer scales. Perspective switching is
-now specified on launch configuration type basis, per launch mode that a launch
-configuration type supports. API has been added to <code>DebugUITools</code> to
-set and get the perspective associated with a launch configuration type for a
-specific launch mode.</p>
-<p>An additional, optional, <code>launchMode</code> element has been added to
-the <code>launchConfigurationTabGroup</code> extension point, allowing a
-contributed tab group to specify a default perspective for a launch
-configuration type and mode.</p>
-<p>From the Eclipse user interface, users can edit the perspective associated
-with a launch configuration type by opening the launch configuration dialog, and
-selecting a launch configuration type node in the tree (rather than an
-individual configuration). A tab is displayed allowing the user to set a
-perspective with each supported launch mode.</p>
-<h4>[JDT only] IVMRunner (package org.eclipse.jdt.launching)</h4>
-<p>Two methods have been added to the <code>VMRunnerConfiguration</code> class
-to support the setting and retrieving of environment variables. Implementors of <code>IVMRunner</code>
-should call <code>VMRunnerConfiguration.getEnvironment()</code> and pass that
-environment into the executed JVM. Clients who use <code>DebugPlugin.exec(String[]
-cmdLine, File workingDirectory)</code> can do this by calling <code>DebugPlugin.exec(String[]
-cmdLine, File workingDirectory, String[] envp)</code> instead. Simply passing in
-the result from <code>getEnvironment()</code> is sufficient.</p>
-<h4>[JDT only] VMRunnerConfiguration and Bootstrap Classes (package
-org.eclipse.jdt.launching)</h4>
-<p>In prior releases, the <code>VMRunnerConfiguration</code> had one attribute
-to describe a boot path. The attribute is a collection of <code>Strings</code>
-to be specified in the -<code>Xbootclasspath</code> argument. Three new
-attributes have been added to the VMRunnerConfiguration to support JVMs that
-allow for prepending and appending to the boot path. The new methods/attributes
-added are:</p>
-<ul>
-  <li><code>getPrependBootClassPath()</code> - returns a collection of entries
-    to be prepended to the boot path (the <code>-Xbootclasspath/p</code>
-    argument)
-  <li><code>getMainBootClassPath()</code> - returns a collection of entries to
-    be placed on the boot path (the <code>-Xbootclasspath</code> argument)
-  <li><code>getAppendBootClassPath()</code> - returns a collection of entries to
-    be appended to the boot path (the <code>-Xbootclasspath/a</code> argument)</li>
-</ul>
-<p>The old attribute,<code> getBootClassPath()</code>, still exists and contains
-a complete path equivalent to that of the three new attributes. However, <code>VMRunners</code>
-that support the new boot path options should take advantage of the new
-attributes.</p>
-<h3>[JDT only] Improved support for working copies (package org.eclipse.jdt.core)</h3>
-<p>The Java model working copy facility has been reworked in 3.0 to provide
-greatly increased functionality. Prior to 3.0, the Java model allowed creation
-of individual working copies of compilation units. Changes could be made to the
-working copy and later committed. There was support for limited analysis of a
-working copy in the context of the rest of the Java model. However, there was no
-way these these analyses could ever take into account more than one of the
-working copies at a time.</p>
-<p>The changes in 3.0 make it possible to create and manage sets of working
-copies of compilation units, and to perform analyses in the presence of all
-working copies in a set. For example, it is now possible for a client like JDT
-refactoring to create working copies for one or more compilation units that it
-is considering modifying and then to resolve type references between the working
-copies. Formerly this was only possible after the changes to the compilation
-unit working copies had been committed.</p>
-<p>The Java model API changes in 2 ways to add this improved support:</p>
-<p>(1) The functionality formerly found on <code>IWorkingCopy</code> and
-inherited by <code>ICompilationUnit</code> has been consolidated into <code>ICompilationUnit</code>.
-The <code>IWorkingCopy</code> interface was only used in this one place, and was
-gratuitously more general that in needed to be. This change simplifies the API. <code>IWorkingCopy</code>
-has been deprecated. Other places in the API where <code>IWorkingCopy</code> is
-used as a parameter or result type have been deprecated as well; the replacement
-API methods mention <code>ICompilationUnit</code> instead of <code>IWorkingCopy</code>.</p>
-<p>(2) The interface <code>IBufferFactory</code> has been replaced by <code>WorkingCopyOwner</code>.
-The improved support for working copies requires that there be an object to own
-the working copies. Although <code>IBufferFactory</code> is in the right place,
-the name does not adequately convey how the new working copy mechanism works. <code>WorkingCopyOwner</code>
-is much more suggestive. In addition, <code>WorkingCopyOwner</code> is declared
-as an abstract class, rather than as an interface, to allow the notion of
-working copy owner to evolve in the future. The one method on <code>IBufferFactory</code>
-moves to <code>WorkingCopyOwner</code> unaffected. <code>WorkingCopyOwner</code>
-does not implement <code>IBufferFactory</code> to make it clear that <code>IBufferFactory</code>
-is a thing of the past. <code>IBufferFactory</code> has been deprecated. Other
-places in the API where <code>IBufferFactory</code> appears as a parameter or
-result type have been deprecated as well; the replacement API methods mention <code>WorkingCopyOwner</code>
-instead of <code>IBufferFactory</code>.</p>
-<p>These changes do not break binary compatibility.</p>
-<p>When migrating, all references to the type <code>IWorkingCopy</code> should
-instead reference <code>ICompilationUnit</code>. The sole implementation of <code>IWorkingCopy</code>
-implements <code>ICompilationUnit</code> as well, meaning objects of type <code>IWorkingCopy</code>
-can be safely cast to <code>ICompilationUnit</code>.</p>
-<p>A class that implements <code>IBufferFactory</code> will need to replaced by
-a subclass of <code>WorkingCopyOwner</code>. Although <code>WorkingCopyOwner</code>
-does not implement <code>IBufferFactory</code> itself, it would be possible to
-declare the subclass of <code>WorkingCopyOwner</code> that implements <code>IBufferFactory</code>
-thereby creating a bridge between old and new (<code>IBufferFactory</code>
-declares <code>createBuffer(IOpenable)</code> whereas <code>WorkingCopyOwner</code>
-declares <code>createBuffer(ICompilationUnit)</code>; <code>ICompilationUnit</code>
-extends <code>IOpenable</code>).</p>
-<p>Because the changes involving <code>IWorkingCopy</code> and <code>IBufferFactory</code>
-are interwined, we recommend dealing with both at the same time. The details of
-the deprecations are as follows:</p>
-<ul>
-  <li><code>IWorkingCopy</code> (package <code>org.eclipse.jdt.core</code>)
-    <ul>
-      <li><code>public void commit(boolean, IProgressMonitor)</code> has been
-        deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public void commitWorkingCopy(boolean, IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Rewrite <code>wc.commit(b,monitor)</code> as <code>((ICompilationUnit)
-            wc).commitWorkingCopy(b,monitor)</code></li>
-        </ul>
-      </li>
-      <li><code>public void destroy()</code> has been deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public void discardWorkingCopy(boolean, IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Rewrite <code>wc.destroy()</code> as <code>((ICompilationUnit)
-            wc).discardWorkingCopy()</code></li>
-        </ul>
-      </li>
-      <li><code>public IJavaElement findSharedWorkingCopy(IBufferFactory)</code>
-        has been deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public ICompilationUnit findWorkingCopy(WorkingCopyOwner)</code></li>
-            </ul>
-          </li>
-          <li>Note: <code>WorkingCopyOwner</code> substitutes for <code>IBufferFactory.</code></li>
-        </ul>
-      </li>
-      <li><code>public IJavaElement getOriginal(IJavaElement)</code> has been
-        deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>IJavaElement</code>:
-            <ul>
-              <li><code>public IJavaElement getPrimaryElement()</code></li>
-            </ul>
-          </li>
-        </ul>
-        <ul>
-          <li>Rewrite <code>wc.getOriginal(elt)</code> as <code>elt.getPrimaryElement()</code></li>
-          <li>Note: Unlike <code>IWorkingCopy.getOriginal</code>, <code>IJavaElement.getPrimaryElement</code>
-            does not return <code>null</code> if the receiver is not a working
-            copy.</li>
-        </ul>
-      </li>
-      <li><code>public IJavaElement getOriginalElement()</code> has been
-        deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public ICompilationUnit getPrimary()</code></li>
-            </ul>
-          </li>
-          <li>Rewrite <code>wc.getOriginalElement()</code> as <code>((ICompilationUnit)
-            wc).getPrimary()</code></li>
-          <li>Note: Unlike <code>IWorkingCopy.getOriginalElement</code>, <code>IWorkingCopy.getPrimary</code>
-            does not return <code>null</code> if the receiver is not a working
-            copy.</li>
-        </ul>
-      </li>
-      <li><code>public IJavaElement[] findElements(IJavaElement)</code> has been
-        deprecated.
-        <ul>
-          <li>The method is now declared on <code>ICompilationUnit</code>
-            directly.</li>
-          <li>Rewrite <code>wc.findElements(elts)</code> as <code>((ICompilationUnit)
-            wc).findElements(elts)</code></li>
-        </ul>
-      </li>
-      <li><code>public IType findPrimaryType()</code> has been deprecated.
-        <ul>
-          <li>The method is now declared on <code>ICompilationUnit</code>
-            directly.</li>
-          <li>Rewrite <code>wc.findPrimaryType()</code> as <code>((ICompilationUnit)
-            wc).findPrimaryType()</code></li>
-        </ul>
-      </li>
-      <li><code>public IJavaElement getSharedWorkingCopy(IProgressMonitor,
-        IBufferFactory, IProblemRequestor)</code> has been deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public ICompilationUnit getWorkingCopy(WorkingCopyOwner,
-                IProblemRequestor, IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Note: the parameter order has changed, and <code>WorkingCopyOwner</code>
-            substitutes for <code>IBufferFactory.</code></li>
-        </ul>
-      </li>
-      <li><code>public IJavaElement getWorkingCopy()</code> has been deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public ICompilationUnit getWorkingCopy(IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Rewrite <code>wc.getWorkingCopy() </code>as <code>((ICompilationUnit)
-            wc).getWorkingCopy(null)</code></li>
-        </ul>
-      </li>
-      <li><code>public IJavaElement getWorkingCopy(IProgressMonitor,
-        IBufferFactory, IProblemRequestor)</code> has been deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public ICompilationUnit getWorkingCopy(WorkingCopyOwner,
-                IProblemRequestor, IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Note: the parameter order has changed, and <code>WorkingCopyOwner</code>
-            substitutes for <code>IBufferFactory.</code></li>
-        </ul>
-      </li>
-      <li><code>public boolean isBasedOn(IResource)</code> has been deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public boolean hasResourceChanged()</code></li>
-            </ul>
-          </li>
-          <li>Rewrite <code>wc.isBasesOn(res)</code> as <code>((ICompilationUnit)
-            wc).hasResourceChanged()</code></li>
-        </ul>
-      </li>
-      <li><code>public boolean isWorkingCopy()</code> has been deprecated.
-        <ul>
-          <li>The method is now declared on <code>ICompilationUnit</code>
-            directly.</li>
-          <li>Rewrite <code>wc.isWorkingCopy()</code> as <code>((ICompilationUnit)
-            wc).isWorkingCopy()</code></li>
-        </ul>
-      </li>
-      <li><code>public IMarker[]&nbsp; reconcile()</code> has been deprecated.
-        <ul>
-          <li>The equivalent functionality is now provided on <code>ICompilationUnit</code>
-            directly:
-            <ul>
-              <li><code>public void reconcile(boolean,IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Rewrite <code>wc.reconcile()</code> as <code>((ICompilationUnit)
-            wc).reconcile(false, null)</code></li>
-          <li>Note: The former method always returned <code>null</code>; the
-            replacement method does not return a result.</li>
-        </ul>
-      </li>
-      <li><code>public void reconcile(boolean, IProgressMonitor)</code> has been
-        deprecated.
-        <ul>
-          <li>The method is now declared on <code>ICompilationUnit</code>
-            directly.</li>
-          <li>Rewrite <code>wc.reconcile(b,monitor)</code> as <code>((ICompilationUnit)
-            wc).reconcile(b.monitor)</code></li>
-        </ul>
-      </li>
-      <li><code>public void restore()</code> has been deprecated.
-        <ul>
-          <li>The method is now declared on <code>ICompilationUnit</code>
-            directly.</li>
-          <li>Rewrite <code>wc.restore()</code> as <code>((ICompilationUnit)
-            wc).restore()</code></li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li><code>IType</code> (package <code>org.eclipse.jdt.core</code>)
-    <ul>
-      <li><code>public ITypeHierarchy newSupertypeHierarchy(IWorkingCopy[],
-        IProgressMonitor)</code> has been deprecated.
-        <ul>
-          <li>The replacement method is provided on the same class:
-            <ul>
-              <li><code>public ITypeHierarchy newSupertypeHierarchy(c,
-                IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Note: The Java language rules for array types preclude casting <code>IWorkingCopy[]</code>
-            to <code>ICompilationUnit[]</code>.</li>
-        </ul>
-      </li>
-      <li><code>public ITypeHierarchy newTypeHierarchy(IWorkingCopy[],
-        IProgressMonitor)</code> has been deprecated.
-        <ul>
-          <li>The replacement method is provided on the same class:
-            <ul>
-              <li><code>public ITypeHierarchy newTypeHierarchy(ICompilationUnit[],
-                IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Note: The Java language rules for array types preclude casting <code>IWorkingCopy[]</code>
-            to <code>ICompilationUnit[]</code>.</li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li><code>IClassFile</code> (package <code>org.eclipse.jdt.core</code>)
-    <ul>
-      <li><code>public IJavaElement getWorkingCopy(IProgressMonitor,
-        IBufferFactory)</code> has been deprecated.
-        <ul>
-          <li>The replacement method is provided on the same class:
-            <ul>
-              <li><code>public ICompilationUnit getWorkingCopy(WorkingCopyOwner,
-                IProgressMonitor)</code></li>
-            </ul>
-          </li>
-          <li>Note: the parameter order has changed, and <code>WorkingCopyOwner</code>
-            substitutes for <code>IBufferFactory.</code></li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li><code>JavaCore</code> (package <code>org.eclipse.jdt.core</code>)
-    <ul>
-      <li><code>public IWorkingCopy[] getSharedWorkingCopies(IBufferFactory)</code>
-        has been deprecated.
-        <ul>
-          <li>The replacement method is provided on the same class:
-            <ul>
-              <li><code>public ICompilationUnit[]
-                getWorkingCopies(WorkingCopyOwner)</code></li>
-            </ul>
-          </li>
-          <li>Note: <code>WorkingCopyOwner</code> substitutes for <code>IBufferFactory.</code></li>
-          <li>Note: The Java language rules for array types preclude casting <code>ICompilationUnit[]</code>
-            to <code>IWorkingCopy[]</code>.</li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li><code>SearchEngine</code> (package <code>org.eclipse.jdt.core.search</code>)
-    <ul>
-      <li><code>public SearchEngine(IWorkingCopy[])</code> has been deprecated.
-        <ul>
-          <li>The replacement constructor is provided on the same class:
-            <ul>
-              <li><code>public SearchEngine(ICompilationUnit[])</code></li>
-            </ul>
-          </li>
-          <li>Note: The Java language rules for array types preclude casting <code>IWorkingCopy[]</code>
-            to <code>ICompilationUnit[]</code>.</li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-</ul>
-<h3>Restructuring of org.eclipse.help plug-in</h3>
-<p>The org.eclipse.help plug-in, which used to hold APIs and extension points
-for contributing to and extending help system, as well as displaying help, now
-contains just APIs and extension points for contributing and accessing help
-resources. A portion of default help UI implementation contained in that plug-in
-has been moved to a new plug-in org.eclipse.help.base together with APIs for
-extending the implementation. The APIs and extension point for contributing Help
-UI and displaying help have been moved to org.eclipse.ui plug-in. This
-restructuring allows applications greater flexibility with regard to the help
-system; the new structure allows applications based on the generic workbench to
-provide their own Help UI and/or Help implementation, or to omit the help system
-entirely.</p>
-<p>Because the extension points and API packages affected are intended only for
-use by the help system itself, it is unlikely that existing plug-ins are
-affected by this change. They are included here only for the sake of
-completeness:</p>
-<ul>
-  <li>API packages org.eclipse.ui.help.browser and
-    org.eclipse.ui.help.standalone, formerly provided by the org.eclipse.help
-    plug-in, have been moved to the org.eclipse.help.base plug-in.</li>
-  <li>Extension points org.eclipse.help.browser, org.eclipse.help.luceneAnalyzer,
-    and org.eclipse.help.webapp, formerly defined by the org.eclipse.help
-    plug-in, have been moved to the org.eclipse.help.base plug-in, with a
-    corresponding change in extension point id.</li>
-  <li>Extension point org.eclipse.help.support has been replaced by the
-    org.eclipse.ui.helpSupport extension point. The contract for this extension
-    point changed as well (see entry for IHelp).</li>
-</ul>
-<h3>null messages in MessageBox and DirectoryDialog (package
-org.eclipse.swt.widgets)</h3>
-<p>Prior to 3.0, calling SWT's DirectoryDialog.setMessage(String string) or
-MessageBox.setMessage(String string) with a null value for string would result
-in a dialog with no text in the title. This behavior was unspecified (passing
-null has never been permitted) and creates problems with getMessage which is not
-permitted to return null. In 3.0, passing null now results in an
-IllegalArgumentException exception being thrown, and the specifications have
-been changed to state this, bringing it into line with the method on their
-superclass Dialog.setMessage. If you use Dialog.setMessage, ensure that that the
-string passed in is never null. Simply pass an empty string if you want a dialog
-with no text in the title.</p>
-<h2><a name="Proposed Changes for 3.0">Proposed Changes for 3.0</a></h2>
-<p>The following proposals are under discussion for inclusion in Eclipse 3.0.
-They are mentioned here because the proposed changes impact existing plug-ins
-being ported to 3.0.</p>
-<ul>
-  <li><b>Remove dependency on org.eclipse.xerces plug-in</b> (plan item <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37696">37696</a>)</li>
-</ul>
-<h2><a name="PDE Plug-in Migration Tool">PDE Plug-in Migration Tool</a></h2>
-<p>PDE provides a special wizard for converting 2.1 plug-in manifest to 3.0,
-found at <b>PDE Tools &gt; Migrate to 3.0</b>. on the context menu for the
-selected plugin.xml or fragment.xml file. In addition to adding &lt;?eclipse
-...?&gt; line, this migration tool also fixes up references to the extension
-points that have been renamed and changes the plug-ins dependencies list to
-reflect the Platform restructuring.</p>
-<h2><a name="General Information on Compatibility">General Information on
-Compatibility</a></h2>
-<p>Eclipse 3.0 is not fully compatible with 2.0 and 2.1. The nature and scope of
-some of the key 3.0 plan items were such that the only feasible solutions break
-compatibility. The decision to make these breaking changes was done after open
-discussion with the community. That said, most of the Eclipse APIs are the same
-in 3.0 as in 2.1 and 2.0. We have only broken APIs in 3.0 when there is a
-compelling case for doing so, and have tried to do it in a controlled way that
-minimizes the effort required to port an existing plug-in to the 3.0 APIs.
-Furthermore, in order to ensure that existing 2.1 binary plug-ins in the field
-continue to run with 3.0 despite these breaking change, we have included
-additional runtime compatibility mechanisms to provide effective binary API
-compatibility.</p>
-<p><b>API Contract Compatibility:</b> Eclipse SDK 3.0 is upwards
-contract-compatible with Eclipse SDK 2.0 and 2.1 except in those areas noted in
-this document. Programs that use affected APIs and extension points will need to
-be ported to Eclipse SDK 3.0 APIs (API is construed broadly to include such
-things as plug-in extension points.) Downward contract compatibility is not
-supported. There is no guarantee that compliance with Eclipse SDK 3.0 APIs would
-ensure compliance with Eclipse SDK 2.0 or 2.1 APIs. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving
-Java-based APIs</a></i> for a discussion of the kinds of API changes that
-maintain contract compatibility.
-<p><b>Binary (plug-in) Compatibility:</b> Eclipse SDK 3.0 is upwards
-binary-compatible with Eclipse SDK 2.0 and 2.1 except in those areas noted in
-this document. Eclipse 3.0 includes additional runtime compatibility mechanisms
-to provide effective binary API compatibility. For cases not covered by these
-runtime compatibility mechanisms, plug-ins that use affected APIs and extension
-points will need to be ported and recompiled for Eclipse SDK 3.0. Downward
-plug-in compatibility is not supported either. Plug-ins for Eclipse SDK 3.0 will
-not be usable in Eclipse SDK 2.0 or 2.1. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving
-Java-based APIs</a></i> for a discussion of the kinds of API changes that
-maintain binary compatibility.
-<p><b>Source Compatibility:</b> Eclipse SDK 3.0 is upwards source-compatible
-with Eclipse SDK 2.0 or 2.1 except in the areas noted in this document. This
-means that source files written to use Eclipse SDK 2.0 or 2.1 APIs might
-successfully compile and run against Eclipse SDK 3.0 APIs, although this is not
-guaranteed. Downward source compatibility is not supported. If source files use
-new Eclipse SDK APIs, they will not be usable with an earlier version of the
-Eclipse SDK.
-<p><b>Workspace Compatibility:</b> Eclipse SDK 3.0 is upwards
-workspace-compatible with Eclipse SDK 2.0 or 2.1 unless noted. This means that
-workspaces and projects created with Eclipse SDK 2.0 or 2.1 can be successfully
-opened by Eclipse SDK 3.0 and upgraded to a 3.0 workspace. This includes both
-hidden metadata, which is localized to a particular workspace, as well as
-metadata files found within a workspace project (e.g., the .project file), which
-may propagate between workspaces via file copying or team repositories.
-Individual plug-ins developed for Eclipse SDK 3.0 should provide similar upwards
-compatibility for their hidden and visible workspace metadata created by earlier
-versions; 3.0 plug-in developers are responsible for ensuring that their
-plug-ins recognize 3.0, 2.1, and 2.0 metadata and process it appropriately. User
-interface session state may be discarded when a workspace is upgraded. Downward
-workspace compatibility is not supported. A workspace created (or opened) by
-Eclipse SDK 3.0 will be unusable with an earlier version of Eclipse
-SDK.&nbsp;Visible metadata files created (or overwritten) by Eclipse SDK 3.0
-will generally be unusable with earlier versions of Eclipse SDK.
-<p><b>Non-compliant usage of API's</b>: All non-API methods and classes, and
-certainly everything in a package with &quot;internal&quot; in its name, are
-considered implementation details which may vary between operating environment
-and are subject to change without notice. Client plug-ins that directly depend
-on anything other than what is specified in the Eclipse SDK API are inherently
-unsupportable and receive no guarantees about compatibility within a single
-release much less with an earlier releases. Refer to <i><a href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">How
-to Use the Eclipse API</a></i> for information about how to write compliant
-plug-ins. This porting guide does not cover non-API methods and classes.</p>
-<p><a href="../hglegal.htm"><img src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2004." border="0" width="250" height="12"></a></p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/questions/index.html b/bundles/org.eclipse.platform.doc.isv/questions/index.html
deleted file mode 100644
index 3bd5b78..0000000
--- a/bundles/org.eclipse.platform.doc.isv/questions/index.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   
-   <meta name="Author" content="OTI">
-   <LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Platform questions index</title>
-</head>
-<body>
-
-<h1>
-Platform questions index</h1>
-<h3>Getting started</h3>
-<ul>
-  <li><a href="../samples/samples.html">How do I install the examples?</a></li>
-</ul>
-<h3>Core runtime</h3>
-<ul>
-  <li><a href="../guide/arch.htm">What is an extension point?&nbsp; an
-    extension?</a></li>
-  <li><a href="../guide/arch_extension_points.htm">How do I create an extension point?</a></li>
-  <li><a href="../reference/misc/plugin_manifest.html">What is the formal definition
-    for the manifest file?</a></li>
-  <li><a href="../guide/product_def_nl.htm">Where do I put translated files for
-    NLS?</a></li>
-</ul>
-<h3>Resources</h3>
-<ul>
-  <li><a href="../guide/resInt_workspace.htm">What is a workspace?</a>&nbsp;&nbsp;</li>
-  <li><a href="../guide/resInt.htm">What is a resource?</a></li>
-  <li><a href="../guide/resInt_properties.htm">What are resource properties?</a></li>
-  <li><a href="../guide/resAdv_saving.htm">How can I save my plug-in's
-    information when the workspace is saved?</a></li>
-  <li><a href="../guide/resAdv_events.htm">How do I know what changes are being
-    made to resources in the workspace?</a></li>
-  <li><a href="../guide/resAdv_markers.htm">How do I use markers?</a></li>
-  <li><a href="../guide/resAdv_markers.htm#resAdv_markers_extending">How do I
-    define my own marker?</a></li>
-  <li><a href="../guide/resAdv_natures.htm">What is a project nature?</a></li>
-  <li><a href="../guide/resAdv_builders.htm">How do I set up an incremental
-    project builder?</a></li>
-</ul>
-<h3>New file types in the UI</h3>
-<ul>
-  <li><a href="../guide/workbench_basicext_editors.htm">How do I set up an
-    editor for a particular file extension?</a></li>
-  <li><a href="../guide/preferences_prop.htm">How do I add a properties page for
-    a resource?</a></li>
-  <li><a href="../guide/dialogs_wizards_newWizards.htm">How do I add a new
-    resource wizard to the workbench?</a></li>
-  <li><a href="../guide/workbench_advext_decorators.htm">How do I provide
-    special icons for my new file type?</a></li>
-</ul>
-<h3>Workbench UI</h3>
-<ul>
-  <li><a href="../guide/workbench_structure.htm">What is a view?&nbsp; an
-    editor?&nbsp; a page?</a></li>
-  <li><a href="../guide/workbench_advext_perspectives.htm">What is a
-    perspective?&nbsp; How do I define one?</a></li>
-  <li><a href="../guide/workbench_structure.htm#views_and_editors">When do I
-    want to build a view vs. an editor?</a></li>
-  <li><a href="../guide/editors_workbench_outliner.htm">How do I customize a
-    content outliner for an editor?</a></li>
-  <li><a href="../guide/preferences_prefs.htm">How do I add a page to the
-    preferences dialog?</a></li>
-  <li><a href="../guide/workbench_basicext.htm">Where should I start learning
-    how to extend the workbench UI?</a></li>
-  <li><a href="../reference/extension-points/index.html">What extension points
-    are defined by the workbench UI?</a></li>
-  <li><a href="../guide/workbench_menus.htm">How do I add a menu to the
-    workbench?</a></li>
-  <li><a HREF="../guide/workbench_menus.htm#workbench_menus_paths" CLASS="XRef">How do I
-    specify menu and toolbar paths?</a></li>
-  <li><a href="../guide/wrkAdv_retarget.htm">How do I implement common actions
-    like cut/copy/paste?</a></li>
-  <li><a href="../guide/jface_resources.htm">How should I manage the icons in my
-    plug-in?</a></li>
-  <li><a href="../guide/dialogs_standard.htm">How do I build an error or message
-    dialog?</a></li>
-  <li><a href="../guide/dialogs_applications.htm">How do I implement a simple
-    dialog of my own?</a></li>
-  <li><a href="../guide/dialogs_settings.htm">How should I remember the user
-    settings in a dialog?</a></li>
-  <li><a href="../guide/jface_viewers.htm">Why would I want a viewer instead of
-    an SWT widget?</a></li>
-  <li><a href="../guide/editors_jface.htm">How should I start learning about the
-    text framework?</a></li>
-  <li><a href="../guide/dialogs_wizards_wizarddialogs.htm">How do I launch a
-    wizard if I'm not adding it as a workbench extension?</a></li>
-  <li><a href="../guide/dialogs_wizards_multipage.htm">How do I build a wizard
-    with multiple pages?</a></li>
-  <li><a href="../guide/swt_widgets_controls.htm">What widgets are available in
-    SWT?</a></li>
-  <li><a href="../guide/swt_layouts.htm">How do I implement an SWT layout?</a></li>
-  <li><a href="http://www.eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm">How do I implement an
-    SWT native
-    widget?</a></li>
-  <li><a href="../guide/swt_widgets_custom.htm">How do I implement a custom
-    widget in SWT?</a></li>
-  <li><a href="../guide/swt_graphics.htm">How do I draw my own graphics?</a></li>
-</ul>
-<h3>Installation and upgrade</h3>
-<ul>
-  <li><a href="../guide/product_config.htm">How do I configure my own splash
-    screens and product name?</a></li>
-  <li><a href="../guide/product_def_feature.htm">What is a feature?</a></li>
-  <li><a href="../reference/misc/feature_archive.html">How do I package a
-    feature so it will work with the update manager?</a></li>
-  <li><a href="../reference/misc/welcome.jpg">How do I configure a custom
-    welcome page?</a></li>
-  <li><a href="../reference/misc/eclipse-install.html">How do I install an
-    Eclipse based product?</a></li>
-</ul>
-<a href="../hglegal.htm"><img src="../ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/extension-points/hglegal.htm b/bundles/org.eclipse.platform.doc.isv/reference/extension-points/hglegal.htm
deleted file mode 100644
index 04b6478..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/extension-points/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/extension-points/index.html b/bundles/org.eclipse.platform.doc.isv/reference/extension-points/index.html
deleted file mode 100644
index eb41ad9..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/extension-points/index.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Platform Extension Points</title>
-<LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center>
-<h1>Platform Extension Points</center>
-</h1>
-The following extension points can be used to extend the capabilities
-of the platform infrastructure:
-<h3><a name="runtime"></a>Platform runtime</h3>
-<ul>
-  <li><a href="org_eclipse_core_runtime_applications.html">org.eclipse.core.runtime.applications</a></li>
-  <li><a href="org_eclipse_core_runtime_adapters.html">org.eclipse.core.runtime.adapters</a></li>
-  <li><a href="org_eclipse_core_runtime_urlHandlers.html">org.eclipse.core.runtime.urlHandlers</a></li>
-</ul>
-<h3><a name="workspace"></a>Workspace</h3>
-<ul>
-  <li><a href="org_eclipse_core_resources_builders.html">org.eclipse.core.resources.builders</a>
-  </li>
-   <li><a href="org_eclipse_core_resources_fileModificationValidator.html">org.eclipse.core.resources.fileModificationValidator</a>
-  </li>
-  <li><a href="org_eclipse_core_resources_markers.html">org.eclipse.core.resources.markers</a></li>
-  <li><a href="org_eclipse_core_resources_moveDeleteHook.html">org.eclipse.core.resources.moveDeleteHook</a></li>
-  <li><a href="org_eclipse_core_resources_natures.html">org.eclipse.core.resources.natures</a></li>
-  <li><a href="org_eclipse_core_resources_refreshProviders.html">org.eclipse.core.resources.refreshProviders</a></li>
-  <li><a href="org_eclipse_core_resources_teamHook.html">org.eclipse.core.resources.teamHook</a></li>
-</ul>
-
-<h3><a name="text"></a>Platform text</h3>
-<ul>
-	<li><a href="org_eclipse_core_filebuffers_documentSetup.html">org.eclipse.core.filebuffers.documentSetup</a></li>
-	<li><a href="org_eclipse_core_filebuffers_documentCreation.html">org.eclipse.core.filebuffers.documentCreation</a></li>
-	<li><a href="org_eclipse_ui_editors_annotationTypes.html">org.eclipse.ui.editors.annotationTypes</a></li>
-	<li><a href="org_eclipse_ui_editors_documentProviders.html">org.eclipse.ui.editors.documentProviders</a></li>
-	<li><a href="org_eclipse_ui_editors_markerUpdaters.html">org.eclipse.ui.editors.markerUpdaters</a></li>
-	<li><a href="org_eclipse_ui_editors_markerAnnotationSpecification.html">org.eclipse.ui.editors.markerAnnotationSpecification</a></li>
-	<li><a href="org_eclipse_ui_workbench_texteditor_quickDiffReferenceProvider.html">org.eclipse.ui.workbench.texteditor.quickDiffReferenceProvider</a></li>
-</ul>
-
-<h3><a name="workbench"></a>Workbench</h3>
-<ul>
-  <li><a href="org_eclipse_ui_actionSetPartAssociations.html">org.eclipse.ui.actionSetPartAssociations</a></li>
-  <li><a href="org_eclipse_ui_actionSets.html">org.eclipse.ui.actionSets</a></li>
-  <li><a href="org_eclipse_ui_activities.html">org.eclipse.ui.activities</a></li>
-  <li><a href="org_eclipse_ui_commands.html">org.eclipse.ui.commands</a></li>
-  <li><a href="org_eclipse_ui_decorators.html">org.eclipse.ui.decorators</a></li>
-  <li><a href="org_eclipse_ui_dropActions.html">org.eclipse.ui.dropActions</a></li>
-  <li><a href="org_eclipse_ui_editorActions.html">org.eclipse.ui.editorActions</a></li>
-  <li><a href="org_eclipse_ui_editors.html">org.eclipse.ui.editors</a></li>
-  <li><a href="org_eclipse_ui_elementFactories.html">org.eclipse.ui.elementFactories</a></li>
-  <li><a href="org_eclipse_ui_exportWizards.html">org.eclipse.ui.exportWizards</a></li>
-  <li><a href="org_eclipse_ui_fontDefinitions.html">org.eclipse.ui.fontDefinitions</a></li>
-  <li><a href="org_eclipse_ui_helpSupport.html">org.eclipse.ui.helpSupport</a></li>
-  <li><a href="org_eclipse_ui_importWizards.html">org.eclipse.ui.importWizards</a></li>
-  <li><a href="org_eclipse_ui_ide_markerHelp.html">org.eclipse.ui.ide.markerHelp</a></li>
-  <li><a href="org_eclipse_ui_ide_markerImageProviders.html">org.eclipse.ui.ide.markerImageProviders</a></li>
-  <li><a href="org_eclipse_ui_ide_markerResolution.html">org.eclipse.ui.ide.markerResolution</a></li>
-  <li><a href="org_eclipse_ui_newWizards.html">org.eclipse.ui.newWizards</a></li>
-  <li><a href="org_eclipse_ui_perspectiveExtensions.html">org.eclipse.ui.perspectiveExtensions</a></li>
-  <li><a href="org_eclipse_ui_perspectives.html">org.eclipse.ui.perspectives</a></li>
-  <li><a href="org_eclipse_ui_popupMenus.html">org.eclipse.ui.popupMenus</a></li>
-  <li><a href="org_eclipse_ui_preferencePages.html">org.eclipse.ui.preferencePages</a></li>
-  <li><a href="org_eclipse_ui_ide_projectNatureImages.html">org.eclipse.ui.ide.projectNatureImages</a></li>
-  <li><a href="org_eclipse_ui_propertyPages.html">org.eclipse.ui.propertyPages</a></li>
-  <li><a href="org_eclipse_ui_ide_resourceFilters.html">org.eclipse.ui.ide.resourceFilters</a></li>
-  <li><a href="org_eclipse_ui_startup.html">org.eclipse.ui.startup</a></li>
-  <li><a href="org_eclipse_ui_viewActions.html">org.eclipse.ui.viewActions</a></li>
-  <li><a href="org_eclipse_ui_views.html">org.eclipse.ui.views</a></li>
-  <li><a href="org_eclipse_ui_workingSets.html">org.eclipse.ui.workingSets</a></li>
-</ul>
-<h3><a name="team"></a>Team</h3>
-<ul>
-  <li><a href="org_eclipse_team_core_fileTypes.html">org.eclipse.team.core.fileTypes</a></li>
-  <li><a href="org_eclipse_team_core_ignore.html">org.eclipse.team.core.ignore</a></li>
-  <li><a href="org_eclipse_team_core_projectSets.html">org.eclipse.team.core.projectSets</a></li>
-  <li><a href="org_eclipse_team_core_repository.html">org.eclipse.team.core.repository</a></li>
-  <li><a href="org_eclipse_team_ui_configurationWizards.html">org.eclipse.team.ui.configurationWizards</a></li>
- </ul>
-<h3><a name="debug"></a>Debug</h3>
-<ul>
-  <li><a href="org_eclipse_debug_core_breakpoints.html">org.eclipse.debug.core.breakpoints</a></li>
-  <li><a href="org_eclipse_debug_core_launchConfigurationComparators.html">org.eclipse.debug.core.launchConfigurationComparators</a></li>
-  <li><a href="org_eclipse_debug_core_launchConfigurationTypes.html">org.eclipse.debug.core.launchConfigurationTypes</a></li>
-  <li><a href="org_eclipse_debug_core_launchDelegates.html">org.eclipse.debug.core.launchDelegates</a></li>
-  <li><a href="org_eclipse_debug_core_launchModes.html">org.eclipse.debug.core.launchModes</a></li>
-  <li><a href="org_eclipse_debug_core_launchers.html">org.eclipse.debug.core.launchers</a></li>
-  <li><a href="org_eclipse_debug_core_processFactories.html">org.eclipse.debug.core.processFactories</a></li>
-  <li><a href="org_eclipse_debug_core_sourceLocators.html">org.eclipse.debug.core.sourceLocators</a></li>
-  <li><a href="org_eclipse_debug_core_statusHandlers.html">org.eclipse.debug.core.statusHandlers</a></li>
-  <li><a href="org_eclipse_debug_core_watchExpressionDelegates.html">org.eclipse.debug.core.watchExpressionDelegates</a></li>
-  <li><a href="org_eclipse_debug_ui_consoleColorProviders.html">org.eclipse.debug.ui.consoleColorProviders</a></li>
-  <li><a href="org_eclipse_debug_ui_consoleLineTrackers.html">org.eclipse.debug.ui.consoleLineTrackers</a></li>
-  <li><a href="org_eclipse_debug_ui_contextViewBindings.html">org.eclipse.debug.ui.contextViewBindings</a></li>
-  <li><a href="org_eclipse_debug_ui_debugActionGroups.html">org.eclipse.debug.ui.debugActionGroups</a></li>
-  <li><a href="org_eclipse_debug_ui_debugModelContextBindings.html">org.eclipse.debug.ui.debugModelContextBindings</a></li>
-  <li><a href="org_eclipse_debug_ui_debugModelPresentations.html">org.eclipse.debug.ui.debugModelPresentations</a></li>
-  <li><a href="org_eclipse_debug_ui_launchConfigurationTabGroups.html">org.eclipse.debug.ui.launchConfigurationTabGroups</a></li>
-  <li><a href="org_eclipse_debug_ui_launchConfigurationTypeImages.html">org.eclipse.debug.ui.launchConfigurationTypeImages</a></li>
-  <li><a href="org_eclipse_debug_ui_launchGroups.html">org.eclipse.debug.ui.launchGroups</a></li>
-  <li><a href="org_eclipse_debug_ui_launchShortcuts.html">org.eclipse.debug.ui.launchShortcuts</a></li>
-</ul>
-<h3><a name="help"></a>Help</h3>
-<ul>
-  <li><a href="org_eclipse_help_toc.html">org.eclipse.help.toc</a></li>
-  <li><a href="org_eclipse_help_contexts.html">org.eclipse.help.contexts</a></li>
-  <li><a href="org_eclipse_help_contentProducer.html">org.eclipse.help.contentProducer</a></li>
-  <li><a href="org_eclipse_help_base_browser.html">org.eclipse.help.base.browser</a></li>
-  <li><a href="org_eclipse_help_base_luceneAnalyzer.html">org.eclipse.help.base.luceneAnalyzer</a></li>
-  <li><a href="org_eclipse_help_base_webapp.html">org.eclipse.help.base.webapp</a></li>
-</ul>
-<h3><a name="other"></a>Other</h3>
-<ul>
-  <li><a href="org_eclipse_ant_core_antProperties.html">org.eclipse.ant.core.antProperties</a></li>
-  <li><a href="org_eclipse_ant_core_antTasks.html">org.eclipse.ant.core.antTasks</a></li>
-  <li><a href="org_eclipse_ant_core_antTypes.html">org.eclipse.ant.core.antTypes</a></li>
-  <li><a href="org_eclipse_ant_core_extraClasspathEntries.html">org.eclipse.ant.core.extraClasspathEntries</a></li>
-  <li><a href="org_eclipse_compare_contentMergeViewers.html">org.eclipse.compare.contentMergeViewers</a></li>
-  <li><a href="org_eclipse_compare_contentViewers.html">org.eclipse.compare.contentViewers</a></li>
-  <li><a href="org_eclipse_compare_structureCreators.html">org.eclipse.compare.structureCreators</a></li>
-  <li><a href="org_eclipse_compare_structureMergeViewers.html">org.eclipse.compare.structureMergeViewers</a></li>
-  <li><a href="org_eclipse_core_variables_dynamicVariables.html">org.eclipse.core.variables.dynamicVariables</a></li>
-  <li><a href="org_eclipse_core_variables_valueVariables.html">org.eclipse.core.variables.valueVariables</a></li>
-  <li><a href="org_eclipse_search_searchPages.html">org.eclipse.search.searchPages</a></li>
-  <li><a href="org_eclipse_search_searchResultSorters.html">org.eclipse.search.searchResultSorters</a></li>
-  <li><a href="org_eclipse_update_core_featureTypes.html">org.eclipse.update.core.featureTypes</a></li>
-  <li><a href="org_eclipse_update_core_installHandlers.html">org.eclipse.update.core.installHandlers</a></li>
-  <li><a href="org_eclipse_update_core_siteTypes.html">org.eclipse.update.core.siteTypes</a></li>
-</ul>
-<p>
-<a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/extension-points/ngibmcpy.gif b/bundles/org.eclipse.platform.doc.isv/reference/extension-points/ngibmcpy.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/extension-points/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/Idea.jpg b/bundles/org.eclipse.platform.doc.isv/reference/misc/Idea.jpg
deleted file mode 100644
index 119ce70..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/Idea.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/about_customization.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/about_customization.html
deleted file mode 100644
index bc5283d..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/about_customization.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../../book.css" charset="ISO-8859-1" type="text/css">
-<title>About.ini File Format</title>
-</head>
-
-<body>
-
-<h1>About.ini File Format</h1>
-<p>Last revised March 25, 2003 for Eclipse 2.1</p>
-<p>A feature's &quot;about&quot; information is given by properties in the
-&quot;<code>about.ini</code>&quot; file located within the feature's <i>plug-in</i>.
-This is a <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Properties.html">java.io.Properties</a>
-format file (ISO 8859-1 character encoding with \u<i>xxxx </i>Unicode escapes),
-with the following keys:</p>
-<ul>
-  <li>&quot;<code>aboutText</code>&quot; - A multi-line text description of the
-    feature containing copyright, license terms, license registration info, etc.
-    URLs found in text are presented as links. Line breaks are indicated by
-    &quot;<code>\n</code>&quot;; lines should be no longer than 75 characters
-    each, and there is a limit of 15 lines. This information is shown in the
-    main &quot;about&quot; dialog (used in conjunction with a half-sized image),
-    and on the secondary &quot;about&quot; dialog describing individuals
-    feature. All features are required to have this property.</li>
-  <li>&quot;<code>windowImage</code>&quot; - A 16x16 pixel color image used to
-    brand windows created by a product. The value of this property is a
-    plug-in-relative path to an image file. This property is only required for
-    primary features; other features may omit it.</li>
-  <li>&quot;<code>featureImage</code>&quot; - A 32x32 pixel color image used as
-    an icon for this feature. The value of this property is a plug-in-relative
-    path to an image file. This image is shown on the &quot;about&quot; dialog
-    describing individual features, and is also used on the main
-    &quot;about&quot; dialog to indicate that the feature is present. This
-    property is optional. Related features supplied by a single provider should
-    contain copies of the identical image file; this allows duplicate images to
-    be eliminated.</li>
-  <li>&quot;<code>aboutImage</code>&quot; - A large color image that appears in
-    the main &quot;about&quot; dialog for a product. The value of this property
-    is a plug-in-relative path to an image file. This property is only required
-    for primary features; other features should omit it. Both graphic-and-text,
-    and graphic only layouts are supported, depending on the size of image
-    provided. A half-size image of up to 250 pixels wide by 330 pixels high is
-    shown on the main &quot;about&quot; dialog with text (&quot;<code>aboutText</code>&quot;
-    property) beside it. A full-size image of up to 500 pixels wide by 330
-    pixels high is shown without text.</li>
-  <li>&quot;<code>welcomePage</code>&quot;&nbsp; - A welcome page. The value of
-    this property is a plug-in-relative path to an XML-format file containing
-    the feature's welcome page. This property is recommended for all major
-    features; other features may omit it.</li>
-  <li>&quot;<code>welcomePerspective</code>&quot;&nbsp; - The preferred
-    perspective in which to show the welcome page. The value of this property is
-    a workbench perspective id. This property is recommended for features with
-    welcome pages that show better in the context of the feature's views and
-    editors. Features that do not have welcome pages, or have no strong opinion
-    where the welcome pages is shown, should omit it.</li>
-  <li>&quot;<code>appName</code>&quot; - A short, non-translatable string used to associate a name
-    with the application on platforms where this makes sense. In operating
-    environments with the Motif window system, the value is used for Motif
-    resource lookup (see xrdb and related). In addition, on the CDE window
-    manager (used on Solaris and AIX), this is the name which shows up under the
-    icon for windows which are minimized to the desktop. This property is
-    required for primary features; other features may omit it.</li>
-  <li>&quot;<code>tipsAndTricksHref</code>&quot;&nbsp; - Tips and tricks section
-    of help documentation. The value of this property is a reference to a help
-    book containing the feature's tips and trick section; for example, <code>tipsAndTricksHref=/org.eclipse.jdt.doc.user/tips/jdt_tips.html</code>.
-    This property is recommended for all major features; other features may omit
-    it.</li>
-</ul>
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/api-usage-rules.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/api-usage-rules.html
deleted file mode 100644
index 1dd58a5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/api-usage-rules.html
+++ /dev/null
@@ -1,336 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Eclipse Platform API - Rules of Engagement</title>
-  
-
-</head>
-<body>
-
-<h1>
-Eclipse platform<br>
-API rules of engagement</h1>
-<i><font size=-1>Version 0.15 - Last revised 12:00 May 30, 2001</font></i>
-<p>Here are the rules of engagement for clients of the Eclipse platform
-API (and other components).
-<h2>
-What it means to be API</h2>
-The Eclipse platform defines API elements for use by its clients, namely
-ISVs writing plug-ins. These plug-ins may in turn define API elements for
-their clients, and so on. API elements are the public face: they carry
-a specification about what they are supposed to do, and about how they
-are intended to be used. API elements are supported: the Eclipse platform
-team will fix implementation bugs where there is a deviation from the specified
-behavior. Since there is often a high cost associated with breaking API
-changes, the Eclipse platform team will also try to evolve API elements
-gracefully through successive major releases.
-<h2>
-How to tell API from non-API</h2>
-By their very nature, API elements are documented and have a specification,
-in contrast to non-API elements which are internal implementation details
-usually without published documentation or specifications. So if you cannot
-find the documentation for something, that's usually a good indicator that
-it's not API.
-<p>To try to draw the line more starkly, the code base for the platform
-is separated into API and non-API packages, with all API elements being
-declared in designated API packages.
-<ul>
-<li>
-<b>API package</b> - a Java package that contains at least one API class
-or API interface. The names of API packages are advertised in the documentation
-for that component; where feasible, all other packages containing only
-implementation details have "internal" in the package name. The names of
-API packages may legitimately appear in client code. For the Eclipse platform
-proper, these are:</li>
-
-<ul>
-<li>
-<tt>org.eclipse.foo.*</tt> - for example, <tt>org.eclipse.swt.widgets</tt>,
-<tt>org.eclipse.ui</tt>,
-or <tt>org.eclipse.core.runtime</tt></li>
-
-<li>
-<tt>org.eclipse.foo.internal.*</tt> - not API; internal implementation
-packages</li>
-
-<li>
-<tt>org.eclipse.foo.examples.*</tt> - not API; these are examples</li>
-
-<li>
-<tt>org.eclipse.foo.tests.*</tt> - not API; these are test suites</li>
-</ul>
-
-<li>
-<b>API class or interface</b> - a <tt>public</tt> class or interface in
-an API package, or a <tt>public</tt> or <tt>protected</tt> class or interface
-member declared in, or inherited by, some other API class or interface.
-The names of API classes and interfaces may legitimately appear in client
-code.</li>
-
-<li>
-<b>API method or constructor</b> - a <tt>public</tt> or <tt>protected</tt>
-method or constructor either declared in, or inherited by, an API class
-or interface. The names of API methods may legitimately appear in client
-code.</li>
-
-<li>
-<b>API field</b> - a <tt>public</tt> or <tt>protected</tt> field either
-declared in, or inherited by, an API class or interface. The names of API
-fields may legitimately appear in client code.</li>
-</ul>
-Everything else is considered internal implementation detail and off limits
-to all clients. Legitimate client code must never reference the names of
-non-API elements (not even using Java reflection). In some cases, the Java
-language's name accessibility rules are used to disallow illegal references.
-However, there are many cases where this is simply not possible. Observing
-this one simple rule avoids the problem completely:
-<ul>
-<li>
-<b>Stick to officially documented APIs. </b>Only reference packages that
-are documented in the <b><i>published API Javadoc</i></b> for the component.
-Never reference a package belonging to another component that has "internal"
-in its name---these are never API. Never reference a package for which
-there is no published API Javadoc---these are not API either.</li>
-</ul>
-
-<h2>
-General rules</h2>
-The specification of API elements is generated from Javadoc comments in
-the element's Java source code. For some types of elements, the specification
-is in the form of a contract. For example, in the case of methods, the
-contract is between two parties, the caller of the method and the implementor
-of the method. The fundamental ground rule is:
-<ul>
-<li>
-<b>Honor all contracts.</b> The contracts are described in the published
-Javadoc for the API elements you are using.</li>
-</ul>
-The term "must", when used in an API contract, means that it is incumbent
-on the party to ensure that the condition would always be met; any failure
-to do so would be considered a programming error with unspecified (and
-perhaps unpredictable) consequences.
-<ul>
-<li>
-<b>You must honor "must". </b>Pay especially close heed to conditions where
-"must" is used.</li>
-</ul>
-Other common sense rules:
-<ul>
-<li>
-<b>Do not rely on incidental behavior. </b>Incidental behavior is behavior
-observed by experiment or in practice, but which is not guaranteed by any
-API specification.</li>
-
-<li>
-<b>Do not treat null as an object.</b> Null is more the lack of an object.
-Assume everything is non-null unless the API specification says otherwise.</li>
-
-<li>
-<b>Do not try to cheat with Java reflection.</b> Using Java reflection
-to circumvent Java compiler checking buys you nothing more. There are no
-additional API contracts for uses of reflection; reflection simply increases
-the likelihood of relying on unspecified behavior and internal implementation
-detail.</li>
-
-<li>
-<b>Use your own packages. </b>Do not declare code in a package belonging
-to another component. Always declare your own code in your own packages.</li>
-</ul>
-
-<h2>
-Calling public API methods</h2>
-For most clients, the bulk of the Eclipse API takes the form of public
-methods on API interfaces or classes, provided for the client to call when
-appropriate.
-<ul>
-<li>
-<b>Ensure preconditions.</b> Do ensure that an API method's preconditions
-are met before calling the method. Conversely, the caller may safely assume
-that the method's postconditions will have been achieved immediately upon
-return from the call.</li>
-
-<li>
-<b>Null parameters.</b> Do not pass null as a parameter to an API method
-unless the parameter is explicitly documented as allowing null. This is
-perhaps the most frequently made programming error.</li>
-
-<li>
-<b>Restricted callers.</b> Do not call an API method that is documented
-as available only to certain callers unless you're one of them. In some
-situations, methods need to be part of the public API for the benefit of
-a certain class of callers (often internal); calling one of these methods
-at the wrong time has unspecified (and perhaps unpredictable) consequences.</li>
-
-<li>
-<b>Debugging methods.</b> Do not call an API method labelled "for debugging
-purposes only". For example, most <tt>toString()</tt> methods are in this
-category.</li>
-
-<li>
-<b>Parameter capture.</b> Do not pass an array, collection, or other mutable
-object as a parameter to an API method and then modify the object passed
-in. This is just asking for trouble.</li>
-</ul>
-
-<h2>
-Instantiating platform API classes</h2>
-Not all concrete API classes are intended to be instantiated by just anyone.
-API classes have an instantiation contract indicating the terms under which
-instances may be created. The contract may also cover things like residual
-initialization responsibilities (for example, configuring a certain property
-before the instance is fully active) and associated lifecycle responsibilities
-(for example, calling <tt>dispose()</tt> to free up OS resources hung on
-to by the instance). Classes that are designed to be instantiated by clients
-are explicitly flagged in the Javadoc class comment (with words like "Clients
-may instantiate.").
-<ul>
-<li>
-<b>Restricted instantiators.</b> Do not instantiate an API class that is
-documented as available only to certain parties unless you're one of them.
-In some situations, classes need to be part of the public API for the benefit
-of a certain party (often internal); instantiating one of these classes
-incorrectly has unspecified (and perhaps unpredictable) consequences.</li>
-</ul>
-
-<h2>
-Subclassing platform API classes</h2>
-Only a subset of the API classes were designed to be subclassed. API classes
-have a subclass contract indicating the terms under which subclasses may
-be declared. This contract also covers initialization responsibilities
-and lifecycle responsibilities. Classes that are designed to be subclassed
-by clients are explicitly flagged in the Javadoc class comment (with words
-like "Clients may subclass.").
-<ul>
-<li>
-<b>Restricted subclassers.</b> Do not subclass an API class that is not
-intended to be subclassed. Treat these classes as if they had been declared
-final. (These are sometimes referred to as "soft final" classes).</li>
-</ul>
-
-<h2>
-Calling protected API methods</h2>
-Calling inherited protected and public methods from within a subclass is
-generally allowed; however, this often requires more care to correctly
-call than to call public methods from outside the hierarchy.
-<h2>
-Overriding API methods</h2>
-Only a subset of the public and protected API methods were designed to
-be overridden. Each API method has a subclass contract indicating the terms
-under which a subclass may override it. By default, overriding is not permitted.
-It is important to check the subclass contract on the actual method implementation
-being overridden; the terms of subclass contracts are not automatically
-passed along when that method is overridden.
-<ul>
-<li>
-<b>Do not override a public or protected API method unless it is explicitly
-allowed.</b> Unless otherwise indicated, treat all methods as if they had
-been declared final. (These are sometimes known as "soft final" methods).
-If the kind of overriding allowed is:</li>
-
-<ul>"<b>implement</b>" - the abstract method declared on the subclass must
-be implemented by a concrete subclass
-<br>"<b>extend</b>" - the method declared on the subclass must invoke the
-method on the superclass (exactly once)
-<br>"<b>re-implement</b>" - the method declared on the subclass must not
-invoke the method on the superclass
-<br>"<b>override</b>" - the method declared on the subclass is free to
-invoke the method on the superclass as it sees fit</ul>
-
-<li>
-<b>Ensure postconditions. </b>Do ensure that any postconditions specified
-for the API method are met by the implementation upon return.</li>
-
-<li>
-<b>Proactively check preconditions. </b>Do not presume that preconditions
-specified for the API method have necessarily been met upon entry. Although
-the method implementation would be within its rights to not check specified
-preconditions, it is usually a good idea to check preconditions (when feasible
-and reasonably inexpensive) in order to blow the whistle on misbehaving
-callers.</li>
-
-<li>
-<b>Null result. </b>Do not return null as a result from an API method unless
-the result is explicitly documented (on the specifying interface or superclass)
-as allowing null.</li>
-
-<li>
-<b>Return copies. </b>Do not return an irreplaceable array, collection,
-or other mutable object as the result from an API method. Always return
-a copy to avoid trouble from callers that might modify the object.</li>
-</ul>
-
-<h2>
-Implementing platform API interfaces</h2>
-Only a subset of the API interfaces were designed to be implemented by
-clients. API interfaces have a contract indicating the terms under which
-it may be implemented. Interfaces that are designed to be implemented by
-clients are explicitly flagged in the Javadoc class comment (with words
-like "Clients may implement."). A client may declare a subinterface of
-an API interface if and only if they are allowed to implement it.
-<ul>
-<li>
-<b>Restricted implementors.</b> Do not implement an API interface that
-is documented as available only to certain parties unless you're one of
-them. In many situations, interfaces are used to hide internal implementation
-details from view.</li>
-</ul>
-
-<h2>
-Implementing public API methods</h2>
-See "Overriding API methods".
-<h2>
-Accessing fields in API classes and interfaces</h2>
-Clients may read API fields, most of which are final. Certain struct-like
-objects may have non-final public fields, which clients may read and write
-unless otherwise indicated.
-<ul>
-<li>
-<b>Null fields.</b> Do not set an API field to null unless this is explicitly
-allowed.</li>
-</ul>
-
-<h2>
-Casting objects of a known API type</h2>
-An object of a known API type may only be cast to a different API type
-(or conditionally cast using instanceof) if this is explicitly allowed
-in the API.
-<ul>
-<li>
-<b>Cast and instanceof.</b> Do not use instanceof and cast expressions
-to increase what is known about an object beyond what the API supports.
-Improper use exposes incidental implementation details not guaranteed by
-the API.</li>
-</ul>
-And, of course, casting any object to a non-API class or interface is always
-inappropriate.
-<h2>
-Not following the rules</h2>
-Whether done knowingly or unwittingly, there are consequences for transgressing
-the rules. It might be easier for all involved if there were API police
-that would bust you for breaking the rules. However, that is not the case.
-For the most part, API conformance operates as an honor system, with each
-client responsible for knowing the rules and adhering to them.
-<p>The contracts on the API elements delimit the behavior that is supported
-and sustained. As the Eclipse platform matures and evolves, it will be
-the API contracts that guide how this evolution happens. Outside of these
-contracts, everything is unsupported and subject to change, without notice,
-and at any time (even mid-release or between different OS platforms). Client
-code that oversteps the above rules might fail on different versions and
-patch levels of the platform; or when run on different underlying OSes;
-or when run with a different mix of co-resident plug-ins; or when run with
-a different workbench perspective; and so on. Indeed, no one is even particularly
-interested in speculating exactly how any particular transgression might
-come back to bite you. To those who choose to ignore the rules, don't say
-that you weren't warned. And don't expect much more than a sympathetic
-"Told you so."
-<p>On the other hand, client plug-in code that lives by the above rules
-should continue to work across different versions and patch levels of the
-platform, across different underlying OSes, and should peacefully co-exist
-with other plug-ins. If everyone plays by the rules, the Eclipse platform
-will provide a stable and supported base on which to build exciting new
-products.
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/eclipse-install.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/eclipse-install.html
deleted file mode 100644
index 1dbd05e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/eclipse-install.html
+++ /dev/null
@@ -1,522 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>How to write an Eclipse installer</title>
-</head>
-
-<body>
-
-<h1>How to write an Eclipse installer</h1>
-<p>Last modified 11:15 Monday May 6, 2002</p>
-<p>Eclipse-based products need to be correctly installed on the end user's
-computer. Special-purpose packaging tools, such as <a href="http://www.installshield.com/">InstallShield</a>
-and <a href="http://www.rpm.org/">RPM</a>, are often used to build executable
-installers that automate installing, updating, and uninstalling. This note
-describes how to write an installer for an Eclipse-based product, and for
-separately-installable extensions to Eclipse-based products.</p>
-<p>We assume that a product development team is responsible for providing the
-raw ingredients that will need to find their way to end users' computers
-packaged as an executable installer. The creation of executable installers is
-scripted, as are the install time actions needed to interact with the end user
-and deposit files on their computer. This note described in detail what these
-installers need to do and how they should work.&nbsp;</p>
-<p>This note should be treated as a recipe for the person responsible for
-writing an installer for an Eclipse-based products. Two good reasons why we
-recommend all installers writers follow our recipe:</p>
-<ul>
-  <li><b>Product and extension interoperability.</b> By behaving in standard
-    ways, an installer for one Eclipse-based product or extension automatically
-    works with products and extensions laid down by other installers. Otherwise
-    the idiosyncrasies of one product's installer would require matching quirks
-    in all extension installers that expected to work with that product.</li>
-  <li><b>Uniformity of install time user interaction.</b> All installers for
-    Eclipse-based products and extension should interact with the user in the
-    same manner. There is nothing to having gratuitous variety in this matter.</li>
-</ul>
-
-<h2>Product installer creation script</h2>
-
-<p>A product installer should be self-contained - the kind of thing that could
-be distributed on a CD and installed on any machine with a suitable operating
-system.</p>
-<p>Eclipse requires a Java2 Java Runtime Environment (JRE) to run Java code.
-JREs are licensed software, obtained from Java vendors. With a license to
-redistribute a JRE from a JRE vendor, a company can include a JRE with its
-product, and install it on the end user's computer at the same time as the
-product. The alternative is to require that a JRE be pre-installed on the end
-user's computer, and associated with at product install time. One way or the
-other, an Eclipse-based product requires a suitable JRE, and the product
-installer must play a role in either installing a JRE or locating and linking to
-a pre-existing JRE.&nbsp;</p>
-<p>Assume that a JRE is to be installed with the product. A directory containing
-the JRE is one input to the installer creation script. Denote this directory
-&lt;<i>JRE</i>&gt;. This directory must have a standard JRE directory structure,
-with the Java executable is located at <code>jre/bin/java.exe</code> and the class
-library at <code>jre/lib/rt.jar</code> below the &lt;<i>JRE</i>&gt; directory.
-For reference, the skeletal structure of this directory looks like:</p>
-<p><code>&lt;<i>JRE</i>&gt;/<br>
-&nbsp; jre/<br>
-&nbsp;&nbsp;&nbsp; bin/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.exe<br>
-&nbsp;&nbsp;&nbsp; lib/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt.jar
-</code></p>
-<p>There are additional files (and subdirectories) in these directories; we've
-only shown a sample to give the general structure. Italicized names in italics
-are product-specific.</p>
-<p>The second input to the installer creation script is a directory, &lt;<code><i>product
-head</i></code>&gt;,
-containing the product-specific executable launcher and any files unrelated to
-Eclipse. For reference, the skeletal
-structure of this directory would look like (italics indicate file names that
-will vary from product to product):</p>
-<p><code>&lt;<i>product head</i>&gt;/<br>
-<i>&nbsp; acmeproduct.exe<br>
-</i>
-<br>
-</code>The third input to the installer creation script is a directory, &lt;<code><i>product
-body</i></code>&gt;,
-containing the features and plug-ins developed for the product. For reference, the skeletal
-structure of this directory would look like:</p>
-<p><code>&lt;<i>product body</i>&gt;/<br>
-&nbsp; eclipse/<br>
-&nbsp;&nbsp;&nbsp; features/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.acmefeature</i>_<i>1.0.0</i>/<br>
-&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feature.xml<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.otherfeature</i>_<i>1.0.0</i>/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feature.xml<br>
-&nbsp;&nbsp;&nbsp; plugins/<br>
-</code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.acmefeature</i>_<i>1.0.0</i>/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.ini<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.properties<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.mappings<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin_customization.ini<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; splash.bmp<br>
-</code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.otherfeature</i>_<i>1.0.0</i>/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.ini<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.properties<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.mappings<br>
-</code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.myplugin</i>_<i>1.0.0</i>/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>myplugin</i>.jar<br>
-</code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.otherplugin</i>_<i>1.0.0</i>/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>otherplugin</i>.jar
-</code></p>
-<p>The fourth input to the installer creation script is a directory, &lt;<code><i>platform</i></code>&gt;,
-containing the features and plug-ins for the Eclipse platform itself and any third-party tools being included.
-This directory also includes the standard Eclipse executable launcher, <code>eclipse.exe</code>,
-(named <code>eclipse</code> on Unix operating environment), its companion <code>startup.jar</code>, and any other Eclipse platform files
-required to be at the root of the install. For reference, the skeletal
-structure of this directory would look like:</p>
-<p><code>
-&lt;<i>platform</i>&gt;<br>
-&nbsp; eclipse/<br>
-&nbsp; &nbsp; eclipse.exe<br>
-&nbsp;&nbsp;&nbsp; startup.jar<br>
-&nbsp;&nbsp;&nbsp; features/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform_2.0.0/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform.win32_2.0.0/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.jdt_2.0.0/<br>
-&nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.pde_2.0.0/<br>
-&nbsp;&nbsp;&nbsp; plugins/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform_2.0.0/<br>
-&nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.core.runtime_2.0.0/<br>
-&nbsp;&nbsp;&nbsp; &nbsp; org.eclipse.core.boot_2.0.0/<br>
-&nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.core.resources_2.0.0/<br>
-&nbsp;&nbsp;&nbsp; &nbsp; org.eclipse.ui_2.0.0/<br>
-&nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.jdt_2.0.0/<br>
-&nbsp;&nbsp;&nbsp; &nbsp; org.eclipse.jdt.core_2.0.0/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.jdt.ui_2.0.0/<br>
-&nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.pde_2.0.0/<br>
-&nbsp;&nbsp;&nbsp; &nbsp; org.eclipse.pde.core_2.0.0/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.pde.ui_2.0.0/<br>
-&nbsp; &nbsp;&nbsp;&nbsp; (more org.eclipse.* plug-in directories)<br>
-<br>
-</code>The exact contents of the &lt;<i><code>JRE</code></i>&gt;, &lt;<i><code>product
-head</code></i>&gt;, &lt;<i><code>product body</code></i>&gt;,
-and &lt;<code><i>platform</i></code>&gt; input directories determine what files
-will eventually be installed on the end user's computer.</p>
-<p>The final inputs to the installer creation script are the id and version
-strings for the product's primary feature; e.g., &quot;<code><i>com.example.acme.acmefeature&quot;</i></code>,
-and &quot;<code><i>1.0.0</i></code>&quot;;
-and the name of the product executable; e.g., &quot;<code><i>acmeproduct</i></code><code>.exe</code>&quot;.
-For products that do not require their own product executable, this would be the
-path of the standard Eclipse executable launcher &quot;<code>eclipse/eclipse.exe</code>&quot;.
-These strings have special significance to the installer, appearing in file and
-directory names, and in the contents of marker files created at install time.</p>
-<p>At install time, the installer should behave in the standard manner (further
-details follow the list of steps):</p>
-<ol>
-  <li>warn user to exit all programs</li>
-  <li>introduce the product to be installed</li>
-  <li>if appropriate, ask the user for the name of the registered owner and for
-    the license key</li>
-  <li>display the product's licensing agreement and ask the user to accept</li>
-  <li>recommend a location on the disk to install the product (but allow user to
-    override this default)</li>
-  <li>check that a product or extension is not already stored at the specified
-    location</li>
-  <li>ask user to confirm all details of the install</li>
-  <li>create marker file to mark root of product install</li>
-  <li>copy files to disk&nbsp; (see below)</li>
-  <li>if appropriate, insert name of registered owner and license key into the &quot;about
-    &quot; description</li>
-  <li>create a desktop shortcut to run the product executable</li>
-  <li>create an appropriate entry to allow the user to uninstall the product</li>
-  <li>launch the product executable with -initialize option to perform all
-    first-time processing</li>
-  <li>offer to show the product release notes (&quot;readme&quot; file)</li>
-</ol>
-<p>If the location specified in step 5 is &lt;<code><i>install</i></code>&gt;,
-the installer copies all the files in the &lt;<i><code>JRE</code></i>&gt;, <code>&lt;<i>platform</i>&gt;, </code> &lt;<i><code>product</code></i>&gt;,&nbsp;
-and <code>&lt;<i>product plug-ins</i>&gt;</code> directories into &lt;<code><i>install</i></code>&gt;.</p>
-<table border="1" width="50%">
-  <tr>
-    <td width="50%">Input file</td>
-    <td width="50%">Installed file</td>
-  </tr>
-  <tr>
-    <td width="50%"><code>&lt;<i>JRE</i>&gt;/*</code></td>
-    <td width="50%"><code>&lt;<i>install</i>&gt;/eclipse/*</code></td>
-  </tr>
-  <tr>
-    <td width="50%"><code>&lt;<i>product head</i>&gt;/*</code></td>
-    <td width="50%"><code>&lt;<i>install</i>&gt;/*</code></td>
-  </tr>
-  <tr>
-    <td width="50%"><code>&lt;<i>product body</i>&gt;/*</code></td>
-    <td width="50%"><code>&lt;<i>install</i>&gt;/*</code></td>
-  </tr>
-  <tr>
-    <td width="50%"><code>&lt;<i>platform</i>&gt;/*</code></td>
-    <td width="50%"><code>&lt;<i>install</i>&gt;/*</code></td>
-  </tr>
-</table>
-<p>The marker file created in step 8 is <code>&lt;<i>install</i>&gt;/eclipse/.eclipseproduct</code>
- is used to mark a directory into which an Eclipse-based product has been
-installed, primarily for extension installers to locate. This marker file is a <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Properties.html">java.io.Properties</a>
-format file (ISO 8859-1 character encoding with &quot;\&quot; escaping) and
-contains the following information that identifies the product to the user and distinguishes
-one Eclipse-based product from one another:</p>
-<blockquote>
-<p><code>name=<i>Acme Visual Tools Pro</i><br>
-id=<i>com.example.acme.acmefeature<br>
-</i>version=<i>1.0.0</i></code></p>
-</blockquote>
-<p>The values of the &quot;id&quot; and &quot;version&quot; property are inputs
-to the installer creation script; the name of the product is presumably known
-and hard-wired. (Products would not ordinarily access this marker file; only
-product and extension installers write or read it.)</p>
-<p>Step 6 requires checking for an existing <code>&lt;<i>install</i>&gt;/eclipse/.eclipseproduct</code>
-or <code>&lt;<i>install</i>&gt;/eclipse/.eclipseextension</code> file. A
-product cannot be installed in exactly the same place as another product or extension.</p>
-<p>After installing all files, the top-level structure of the install directory
-would contain the following files and subdirectories (and perhaps others):</p>
-<p><code>&lt;<i>install</i>&gt;/<br>
-&nbsp; <i>acmeproduct</i>.exe<br>
-&nbsp; eclipse/<br>
-&nbsp;&nbsp;&nbsp; .eclipseproduct<br>
-&nbsp; &nbsp; eclipse.exe<br>
-&nbsp; &nbsp; startup.jar<br>
-&nbsp;&nbsp;&nbsp; features/<br>
-&nbsp;&nbsp;&nbsp; plugins/<br>
-&nbsp;&nbsp;&nbsp; jre/<br>
-<br>
-</code>If a product installer solicits license information from the user, such as
-the name of the registered owner and the license key, this information should
-make it into the product &quot;about&quot; dialog (step 10).</p>
-<p>This is done by recording the user responses in the &quot;<code>about.mapping</code>&quot;
-file in the primary feature's plug-in. For example, at <code>&lt;<i>install</i>&gt;/plugins/<i>com.example.acme.acmefeature</i>_<i>1.0.0</i>/about.mapping</code>.
-The &quot;<code>about.mapping</code>&quot; file may be pre-existing in the &lt;<i><code>product
-head</code></i>&gt;
-input, or may need to be created by the installer at install time.
-The keys are numbers; the value of the &quot;<i>n</i>&quot; key is substituted
-for the substring &quot;<code>{<i>n</i>}</code>&quot; in the &quot;<code>aboutText</code>&quot; property.
-For example, if a license key was field number 0, an &quot;<code>about.mapping</code>&quot;
-file containing a line like &quot;<code>0=T42-24T-ME4U-U4ME</code>&quot; should
-be created.</p>
-<p>N.B.
-The &quot;<code>about.mapping</code>&quot; file is a&nbsp; <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Properties.html">java.io.Properties</a>
-format file (ISO 8859-1 character encoding with "\" escaping).
-When the native character encoding at install time is different from ISO 8859-1,
-the installer is responsible for converting the native character encoding to
-Unicode and for adding &quot;\&quot; escapes where required. Escaping is required
-when the strings contain special characters (such as &quot;\&quot;) or non-Latin characters. For example, field number 1 containing the first 3 letters of the Greek
-alphabet would be written &quot;<code>1=\u03B1\u03B2\u03B3</code>&quot;.</p>
-<p>At step 12, the product installer launches the product executable,<code>&nbsp;&lt;<i>install</i>&gt;/<i>acmeproduct</i>.exe</code>,
-with the special -initialize option [exact details TBD]. This causes the Eclipse platform to quietly
-perform all time-consuming first-time processing and cache the results, so that
-when the user starts the product it comes up promptly in an open-for-business
-state.</p>
-<h3>Uninstaller behavior</h3>
-<p>At uninstall time, the uninstaller should behave in the standard manner:</p>
-<ol>
-  <li>warn user to exit all programs, especially the product being uninstalled</li>
-  <li>ask user to confirm that the product is to be uninstalled</li>
-  <li>remove all installed files from the &lt;<i><code>install</code></i>&gt;
-    directory, and <b>all</b> files in &lt;<i><code>install</code></i>&gt;<code>/eclipse/features</code>
-    and &lt;<i><code>install</code></i>&gt;<code>/eclipse/plugins</code> including ones put there by parties other than
-    this installer (e.g., by the Eclipse update manager)</li>
-  <li>remove desktop shortcut for the product executable</li>
-  <li>remove entry for product uninstaller</li>
-  <li>inform user of any files that were not removed</li>
-</ol>
-<p>When the product is uninstalled, files deposited at
-install time should be deleted, along with updated features and plug-ins created
-by the Eclipse update manager. <b>Important:</b> At uninstall time, there may be
-other directories and files in the <code>&lt;<i>install</i>&gt;</code>
-directory, notably <code>&lt;<i>install</i>&gt;/eclipse/workspace/</code>,
-<code>&lt;<i>install</i>&gt;/eclipse/links/</code>, and <code>&lt;<i>install</i>&gt;/eclipse/platform.cfg</code>,
-that contain important data
-which must be retained when the product is uninstalled. The user must be able to
-uninstall and reinstall a product at the same location without losing important
-data.</p>
-<h3>Installer behavior when product already installed</h3>
-<p>When the product is already installed on the user's computer, the installer
-should allow a service update or version upgrade to be applied to the installed
-product.</p>
-<p>At install time, the installer should behave in the standard manner:</p>
-<ol>
-  <li>warn user to exit all programs, especially the product being updated</li>
-  <li>locate the installed product to be updated, if necessary by searching the
-    disk for an existing product install or by allowing the user to locate it</li>
-  <li> determine where this installer is a compatible update</li>
-  <li>if appropriate, ask the user for the name of the registered owner and for
-    the license key</li>
-  <li>display the product's updated licensing agreement and ask the user to accept</li>
-  <li>ask user to confirm all details of the update</li>
-  <li>update files to disk&nbsp; (see below)</li>
-  <li>if required, alter the desktop shortcut to run the product executable</li>
-  <li>should add modified or newly added files to the list of ones to be removed at uninstall
-    time (where feasible)</li>
-  <li>offer to show the product release notes (&quot;readme&quot; file)</li>
-</ol>
-<p>In step 2, an installed product can be recognized by the presence of an &quot;<code>eclipse</code>&quot;
-directory immediately containing a file named &quot;<code>.eclipseproduct</code>&quot;.
-The parent of the &quot;<code>eclipse</code>&quot; directory is a product's install
-directory; i.e., <code>&lt;<i>install</i>&gt;/eclipse/.eclipseproduct</code>.
-The information contained within this marker file should be shown to the user for
-confirmation that the correct product is being updated (there may be several
-Eclipse-based product on the user's computer).</p>
-<p>The installer should perform compatibility checks in step 3 by simple pattern
-matching against subdirectories in the <code>&lt;<i>install</i>&gt;/eclipse/features</code>
-directory. For example, the presence of a folder matching &quot;<code><i>com.example.acme.otherfeature</i>_<i>1.0.1</i></code>&quot;
-would ensure that a certain service update had been applied to the installed
-product.</p>
-<p>For step 7, the installer may delete or replace any of the files that it
-originally installed, and add more files. <b>Important:</b> Several files and directories,
-including <code>&lt;<i>install</i>&gt;/eclipse/workspace/</code>, <code>&lt;<i>install</i>&gt;/eclipse/platform.cfg</code>,
-may be co-located with the install and contain important data files
-which need to be retained
-when the product is upgraded.&nbsp;</p>
-<p>In upgrade situations, there is a good chance that most of the files below <code>&lt;<i>install</i>&gt;/eclipse/plugins/</code>
-are the same (likewise for <code>&lt;<i>install</i>&gt;/eclipse/features/</code>).
-There is significant opportunity for optimization in <code>&lt;<i>install</i>&gt;/eclipse/plugins/</code>
-since the sub-directory name, which embeds the plug-in (or fragment) version
-number, changes if and only iff any of the files below it change. In other
-words, there is no need to touch any files in <code>&lt;<i>install</i>&gt;/eclipse/plugins/org.eclipse.ui_2.0.0</code>/
-if this sub-directory should also exist after the upgrade; if any of the plug-in's
-files were to change, the plug-in's version number is revised, causing the files
-for the upgraded plug-in to be installed in a parallel directory <code>&lt;<i>install</i>&gt;/eclipse/plugins/org.eclipse.ui_2.0.1</code>/.&nbsp;</p>
-<p>Note also that the product executable must not be launched with -initialize
-in the reinstall case, as this would lose important user configuration data.</p>
-<h3>Associating a JRE installed elsewhere</h3>
-<p>The JRE is expected to be located at <code>&lt;<i>install</i>&gt;/eclipse/jre/bin/javaw.exe</code>.
-If it is located elsewhere, the absolute path should be specified using the <code>-vm</code>
-option on the command line; e.g.,<code>   -vm C:\j2jre1.3.0\jre\bin\javaw.exe</code>.
-In which case, the installer should add this option to the command line of the desktop shortcut
-it creates.</p>
-<h2>Extension installer creation script</h2>
-
-<p>By extension we mean a separately installable set of features and their plug-ins that
-can be associated with, and used from, one ore more Eclipse-based products installed on the
-same computer. In contrast to a product, an extension is not self-contained; an extension does not include
-a product executable, the Eclipse platform, a JRE.</p>
-<p>Without loss of generality, assume that an extension consists of a single
-feature. The first input to the installer creation script is a directory, &lt;<code><i>extension</i></code>&gt;,
-containing its feature and plug-ins. We are assuming that an extension has no
-files that are related to Eclipse; if it did, they would go in <code>&lt;<i>extension</i>&gt;/</code>,
-and not in <code>&lt;<i>extension</i>&gt;/eclipse/</code>. For reference, the skeletal
-structure of this directory would look like:</p>
-<p><code>&lt;<i>extension</i>&gt;/<br>
-&nbsp; eclipse/<br>
-&nbsp; &nbsp; features/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.anvilfeature</i>_<i>1.0.0</i>/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feature.xml<br>
-&nbsp; &nbsp; plugins/<br>
-</code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.anvilfeature</i>_<i>1.0.0</i>/<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; plugin.xml<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.ini<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.properties<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.mappings<br>
-</code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.mainplugin</i>_<i>1.0.0</i>/<br>
-</code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.otherplugin</i>_<i>1.0.0</i>/
-</code></p>
-<p>The exact contents of the &lt;<i><code>extension</code></i>&gt; input
-directory determines what files
-will eventually be installed on the end user's computer.</p>
-<p>The final inputs to the installer creation script are the id and version
-strings for the extension's feature; e.g., &quot;<i><code>com.example.wiley.anvil</code></i>&quot;
-and &quot;<code><i>1.0.0</i></code>&quot;. These strings have special
-significance to the installer, appearing in file and directory names, and in the
-contents of marker files created at install time.</p>
-<p>An extension installer is similar to a product installer in most respects.
-The areas where it differs are highlighted below:</p>
-<p>At install time, the installer behaves in the standard manner:</p>
-<ol>
-  <li>warn user to exit all programs</li>
-  <li>introduce the extension to be installed</li>
-  <li>if appropriate, ask the user for the name of the registered owner and for
-    the license key</li>
-  <li>display the extension's licensing agreement and ask the user to accept</li>
-  <li>recommend a location on the disk to install the extension (but allow user to
-    override this default)</li>
-  <li>check that a product or a different extension is not already stored at the specified
-    location</li>
-  <li> ask user which product(s) to are to use this extension (search disk;
-    browse; or skip)
-  </li>
-  <li>optionally, determine if extension is compatible with selected products</li>
-  <li>ask user to confirm all details of the install</li>
-  <li>create marker file to mark root of extension install</li>
-  <li>copy files to disk&nbsp; (see below)</li>
-  <li>insert name of registered owner and license key into the &quot;about
-    &quot; description</li>
-  <li>create an appropriate entry to allow the user to uninstall the extension</li>
-  <li>write link file in each of the selected products to associate extension
-    with product</li>
-  <li>offer to show the extension release notes (&quot;readme&quot; file)</li>
-</ol>
-<p>If the location specified in step 5 is &lt;<code><i>install</i></code>&gt;,
-the installer copies all the files in the <code>&lt;<i>extension</i>&gt; </code>directory
-into &lt;<code><i>install</i></code>&gt; in step 11.</p>
-<table border="1" width="50%">
-  <tr>
-    <td width="50%">Input file</td>
-    <td width="50%">Installed file</td>
-  </tr>
-  <tr>
-    <td width="50%"><code>&lt;<i>extension</i>&gt;/*</code></td>
-    <td width="50%"><code>&lt;<i>install</i>&gt;/*</code></td>
-  </tr>
-</table>
-<p>For step 7, any Eclipse product might be a candidate. Eclipse-based product
-can be recognized by the presence of a <code>&lt;<i>product install</i>&gt;/eclipse/.eclipseproduct</code>
-file; the user should be able to request a limited disk search for installed
-products (a &quot;search for installed products&quot; button), or would navigate
-to a directory containing a product (i.e., a &quot;browse&quot; button).</p>
-<p>The installer should perform compatibility checks in step 8 by simple pattern
-matching against subdirectories in the <code>&lt;<i>product install</i>&gt;/eclipse/features</code>
-directory. For example, the presence of a folder matching &quot;<code>org.eclipse.jdt_2.*</code>&quot;
-means that JDT is included in the installed product.&nbsp;</p>
-<p>The marker file created in step 10 is <code>&lt;<i>install</i>&gt;/eclipse/.eclipseextension</code>
- is used to mark a directory into which an Eclipse-based extension has been
-installed, primarily for extension installers to locate
-(analogous to a product's <code>.eclipseproduct</code> marker file). This
-marker file is a <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Properties.html">java.io.Properties</a>
-format file (ISO 8859-1 character encoding with &quot;\&quot; escaping) and
-contains the following information that identifies the extension to the user and distinguishes
-one Eclipse-based extension from one another:</p>
-<blockquote>
-<p><code>name=<i>Wiley Anvil Enterprise Edition</i><br>
-id=<i>com.example.wiley.anvilfeature<br>
-</i>version=<i>1.0.0</i></code></p>
-</blockquote>
-<p>The values of the &quot;id&quot; and &quot;version&quot; property are inputs
-to the installer creation script; the name of the extension is presumably known
-and hard-wired. (Products would not ordinarily access this marker file; only
-product and extension installers write or read it.)</p>
-<p>After installing all files, the top-level structure of the install directory
-would contain the following files and subdirectories:</p>
-<p><code>&lt;<i>install</i>&gt;/<br>
-&nbsp; eclipse/<br>
-&nbsp; &nbsp; .eclipseextension<br>
-&nbsp;&nbsp;&nbsp; features/<br>
-&nbsp;&nbsp;&nbsp; plugins/</code></p>
-<p>The only significant difference from a product installer is that an extension
-installer also creates link files in other Eclipse-based products already
-installed on the user's computer. (This saves the user from having to manually
-associate the new extension from within each product using the Eclipse update
-manager.)&nbsp;</p>
-<p>The link file created in step 14 is <code>&lt;<i>product install</i>&gt;/eclipse/links/<i>com.example.wiley.anvilfeature.</i>link</code>;
-that is, the file has the same name of as the extension's feature directory less
-the version number suffix. A link file is a <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Properties.html">java.io.Properties</a>
-format file (ISO 8859-1 character encoding with "\" escaping).
-The key is &quot;path&quot; and the value is the absolute path of the installed
-extension, <code>&lt;<i>install</i>&gt;</code>; e.g., an entry might looks like &quot;<code>path=C:\\Program
- Files\\Wiley\\Anvil</code>&quot;<code>.</code> The installer is responsible for converting
-from native character
-encoding to Unicode and adding &quot;\&quot; escapes where required. Escaping is
-usually required since <code>&lt;<i>install</i>&gt;</code>
- typically contains special characters (such as &quot;\&quot;)
-and may mention directories with non-Latin characters in their names. The product reads
-link files when it starts up. The installer keeps a record of any link
-files it creates so that they can be located when the extension is updated or
-uninstalled.</p>
-<h3>Uninstaller behavior</h3>
-<p>At un install time, the un installer should behave in the standard manner:</p>
-<ol>
-  <li>warn user to exit all programs, especially products using the extension
-    being uninstalled</li>
-  <li>ask user to confirm that the extension is to be un installed</li>
-  <li>remove all installed files from the &lt;<i><code>install</code></i>&gt;
-    directory, and <b>all</b> files in &lt;<i><code>install</code></i>&gt;<code>/eclipse/features</code>
-    and &lt;<i><code>install</code></i>&gt;<code>/eclipse/plugins</code> including ones put there by parties other than
-    this installer (e.g., by the Eclipse update manager)</li>
-  <li>if feasible, remove the link file from any products to which it had been
-    added&nbsp;</li>
-  <li>remove entry for extension uninstaller</li>
-  <li>inform user of any files that were not removed</li>
-</ol>
-<p>When an extension is uninstalled, all plug-in and feature files should be deleted; there are no
-important data files to be kept in these subdirectories. This allows the user to uninstall an extension
-completely, including any updates applied by the Eclipse update manager.</p>
-<h3>Installer behavior when extension already installed</h3>
-<p>When the extension is already installed on the user's computer, the installer
-should allow a service update or version upgrade to be applied to the installed
-extension.</p>
-<p>At install time, the installer should behave in the standard manner:</p>
-<ol>
-  <li>warn user to exit all programs, especially products using the extension
-    being updated</li>
-  <li>locate the installed extension to be updated, if necessary by searching
-    the disk for an existing extension install or by allowing the user to locate
-    it</li>
-  <li> determine where this installer is a compatible update</li>
-  <li>if appropriate, ask the user for the name of the registered owner and for
-    the license key</li>
-  <li>display the product's updated licensing agreement and ask the user to accept</li>
-  <li>ask user to confirm all details of the update</li>
-  <li>update files on disk&nbsp; (see below)</li>
-  <li>should add modified or newly added files to the list of ones to be removed at uninstall
-    time (where feasible)</li>
-  <li>offer to show the extension release notes (&quot;readme&quot; file)</li>
-</ol>
-<p>In step 2, an installed extension can be recognized by the presence of an &quot;<code>eclipse</code>&quot;
-directory immediately containing a file named &quot;<code>.eclipseextension</code>&quot;.
-The parent of the &quot;<code>eclipse</code>&quot; directory is an extension's install
-directory; i.e., <code>&lt;<i>install</i>&gt;/eclipse/.eclipseextension</code>.
-The information contained within this marker file should be shown to the user for
-confirmation that the correct extension is being updated (there may be several
-Eclipse-based extension on the user's computer).</p>
-<p>For step 7, the installer should not delete or overwrite any of the files
-that it originally installed; rather, it should only add the files for new
-versions of features and plug-in, and possibly rewrite the marker file <code>&lt;<i>install</i>&gt;/eclipse/.eclipseextension</code>. Leaving the old versions around gives the user
-the option to back out of the update. As with upgrading a product install, there
-is no need to touch any files in <code>&lt;<i>install</i>&gt;/eclipse/plugins/<i>com.example.wiley.otherplugin</i>_<i>1.0.0</i></code>/
-if this sub-directory should also exist after the upgrade; if any of the plug-in's
-files were to change, the plug-in's version number is revised, causing the files
-for the upgraded plug-in to be installed in a parallel directory <code>&lt;<i>install</i>&gt;/eclipse/plugins/<i>com.example.wiley.otherplugin</i>_<i>1.0.1</i></code>/.&nbsp;</p>
-
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/feature_archive.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/feature_archive.html
deleted file mode 100644
index dd120e8..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/feature_archive.html
+++ /dev/null
@@ -1,629 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Feature Archives</title>
-</head>
-<body>
-
-<h1>
-Feature Archives</h1>
-The feature packaging information is placed into a separate Java .jar.
-Standard Java jar facilities are used for constructing feature archives.
-Feature archives reference separately packaged plug-in archives (see next
-section) and non-plug-in files.<p>Features are identified using a structured identifier based on the provider
-internet domain name. For example, organization eclipse.org produces
-feature org.eclipse.jdt. The character set used for feature identifiers
-is as specified for plug-in identifiers (see <a href="plugin_manifest.html">Plug-in
-Manifest</a>).
-<p>The recommended convention for naming the feature archives is
-<br><tt>&lt;id>_&lt;version>.jar</tt>
-<p>Where <tt>&lt;id></tt> is the feature identifier and <tt>&lt;version></tt>
-is the full version identifier contained in the respective feature.xml.
-Note that this is a recommended convention that minimizes chance of collisions,
-but is not required by the Eclipse architecture. For example, the following
-are valid feature archive names
-<p><tt>org.eclipse.jdt_2.0.0.jar</tt>
-<br><tt>org.eclipse.pde_2.0.jar</tt>
-<br><tt>my_feature.jar</tt>
-<p>Internally, each feature archive is packaged relative to its feature
-directory (but not including the directory path element). The archive has
-the following structure
-<p><tt>feature.xml</tt>
-<br><tt>feature&lt;_locale>.properties (see "Translated Feature Information")</tt>
-<br><tt>other feature files and subdirectories (TBD)</tt>
-<br><tt>META-INF/</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; Java jar manifest and security files</tt>
-<h2><a name="manifest"></a>Feature manifest</h2>
-<p>The feature manifest format is defined by the following dtd:
-<p><tt>&lt;?xml encoding="ISO-8859-1"?></tt>
-<p><tt>&lt;!ELEMENT feature (install-handler? | description? | copyright? |
-license? | url? | includes* | requires? | plugin* | data*)></tt>
-<br><tt>&lt;!ATTLIST feature</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; provider-name CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; image&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; arch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; ws&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; nl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; colocation-affinity</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; primary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(true | false) "false"<br>
-&nbsp;&nbsp;&nbsp; exclusive&nbsp;&nbsp;&nbsp;&nbsp; (true | false)
-&quot;false&quot;<br>
-&nbsp;&nbsp;&nbsp; plugin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA
-#IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; application&nbsp;&nbsp; CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT install-handler EMPTY></tt>
-<br><tt>&lt;!ATTLIST install-handler</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT description (#PCDATA)></tt>
-<br><tt>&lt;!ATTLIST description</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT copyright (#PCDATA)></tt>
-<br><tt>&lt;!ATTLIST copyright</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT license (#PCDATA)></tt>
-<br><tt>&lt;!ATTLIST license</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT url (update?, discovery*)></tt>
-<p><tt>&lt;!ELEMENT update EMPTY></tt>
-<br><tt>&lt;!ATTLIST update</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT discovery EMPTY></tt>
-<br><tt>&lt;!ATTLIST discovery<br>
-&nbsp;&nbsp;&nbsp; type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(web | update) &quot;update&quot;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT includes EMPTY></tt>
-<br><tt>&lt;!ATTLIST includes</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED<br>
-&nbsp;&nbsp;&nbsp;
-name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED<br>
-&nbsp;&nbsp;&nbsp;
-optional&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (true | false)
-&quot;false&quot;<br>
-&nbsp;&nbsp;&nbsp; search-location&nbsp;&nbsp; (root | self | both)
-&quot;root&quot;<br>
-></tt>
-<p><tt>&lt;!ELEMENT requires (import+)></tt>
-<p><tt>&lt;!ELEMENT import EMPTY></tt>
-<br><tt>&lt;!ATTLIST import</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; plugin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED<br>
-&nbsp;&nbsp;&nbsp; feature&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; match&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(perfect | equivalent | compatible | greaterOrEqual) "compatible"<br>
-&nbsp;&nbsp;&nbsp; patch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (true |
-false) &quot;false&quot;</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT plugin EMPTY></tt>
-<br><tt>&lt;!ATTLIST plugin</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; fragment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (true
-| false) "false"</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; arch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; ws&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; nl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; download-size CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; install-size&nbsp; CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; unpack&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (true |
-false) &quot;true&quot;</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT data EMPTY></tt>
-<br><tt>&lt;!ATTLIST data</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; arch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; ws&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; nl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; download-size CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; install-size&nbsp; CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p>The element and attribute definitions are as follows:
-<ul>
-<li>
-&lt;feature> - defines the feature</li>
-
-<ul>
-<li>
-id - required feature identifier (eg. com.xyz.myfeature)</li>
-
-<li>
-version - required component version (eg. 1.0.3)</li>
-
-<li>
-label - optional displayable label (name). Intended to be translated.</li>
-
-<li>
-provider-name - optional display label identifying the organization providing
-this component. Intended to be translated.</li>
-
-<li>
-image - optional image to use when displaying information about the feature.&nbsp;
-Specified relative to the feature.xml.</li>
-
-<li>
-os - optional operating system specification. A comma-separated list of
-os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this feature should only be installed on one of the specified
-os systems. If this attribute is not specified, the feature can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of feature regardless of this setting).</li>
-
-<li>
-arch - optional machine architecture specification. A comma-separated list
-of architecture designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this feature should only be installed on one of the specified
-systems. If this attribute is not specified, the feature can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of feature regardless of this setting).</li>
-
-<li>
-ws - optional windowing system specification. A comma-separated list of
-ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this feature should only be installed on one of the specified
-ws systems. If this attribute is not specified, the feature can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of feature regardless of this setting).</li>
-
-<li>
-nl - optional locale specification. A comma-separated list of locale designators
-defined by Java. Indicates this feature should only be installed on a system
-running with a compatible locale (using Java locale-matching rules). If
-this attribute is not specified, the feature can be installed on all systems
-(language-neutral implementation). This information is used as a hint by
-the installation and update support (user can force installation of feature
-regardless of this setting).</li>
-
-<li>
-colocation-affinity - optional reference to another feature identifier
-used to select the default installation location for this feature. When
-this feature is being installed as a new feature (no other versions of
-it are installed), an attempt is made to install this feature in the same
-installation location as the referenced feature.</li>
-
-<li>
-primary - optional indication specifying whether this feature can be used
-as a primary feature. Default if <i>false</i>
-(not a primary feature).</li>
-
-<li>
-application - optional identifier of the Eclipse application that is to
-be used during startup when the declaring feature is the primary feature. The application identifier must represent a valid application
-registered in the <tt>org.eclipse.core.runtime.applications</tt> extension
-point. Default is <tt>org.eclipse.ui.workbench</tt>.</li>
-
-<li>
-plugin (new in 2.1) - optional identifier that represents the id of the plug-in
-listed in the feature that is used to carry attribution information for the
-feature (images, translations, splash screens in case of primary feature etc.).
-If not specified, the assumption will be made the the attribution plug-in has
-the same id as the feature.</li>
-
-<li>
-exclusive (new in 2.1) - optional flag that, if &quot;true&quot;, indicates that
-the feature cannot be installed in a group with other features.</li>
-</ul>
-
-<li>
-&lt;install-handler></li>
-
-<ul>
-<li>
-library - optional .jar library containing the install handler classes.
-If specified, the referenced .jar must be contained in the feature archive.
-It is specified as a path within the feature archive, relative to the feature.xml
-entry. If not specified, the feature archive itself is used to load the
-install handler classes. This attribute is only interpreted if <i>class</i>
-attribute is also specified</li>
-
-<li>
-handler - optional identifier of the install handler. The value is interpreted
-depending on the value of the <i>library</i> attribute. If <i>library</i>
-is specified,&nbsp; the value is interpreted as a fully qualified name
-of a class contained in the specified <i>library</i>. If <i>library</i>
-is not specified, the value is is interpreted as an extension identifier
-of an extension registered in the <i>org.eclipse.update.installHandlers</i>
-extension point. In either case, the resulting class must implement the
-<i>IInstallHandler</i>
-interface. The class is dynamically loaded and called at specific points
-during feature processing. The handler has visibility to the API classes
-from the update plug-in, and Eclipse plug-ins required by the update plugin.</li>
-</ul>
-
-<li>
-&lt;description> - brief component description as simple text. Intended
-to be translated.</li>
-
-<ul>
-<li>
-url - optional URL for the full description as HTML. The URL can be specified
-as absolute of relative. If relative, it is assumed to be relative to (and
-packaged in) the feature archive. Note, that for NL handling the URL value
-should be separated to allow alternate URLs to be specified for each national
-language.</li>
-</ul>
-
-<li>
-&lt;copyright> - feature copyright as simple text. Intended to be translated.</li>
-
-<ul>
-<li>
-url - optional URL for the full description as HTML. The URL can be specified
-as absolute of relative. If relative, it is assumed to be relative to (and
-packaged in) the feature archive. Note, that for NL handling the URL value
-should be separated to allow alternate URLs to be specified for each national
-language.</li>
-</ul>
-
-<li>
-&lt;license> - feature "click-through" license as simple text. Intended
-to be translated. It is displayed in a standard dialog with [Accept] [Reject]
-actions during the download/ installation process. Note, that click-through
-license must be specified for any feature that will be selected for installation
-or update using the Eclipse update manager. When using nested features,
-only the nesting parent (ie. the feature selected for installation or update)
-must have click-through license text defined. The license text is required
-even if the optional <i>url</i> attribute is specified.</li>
-
-<ul>
-<li>
-url - optional URL for the full description as HTML. The URL can be specified
-as absolute of relative. If relative, it is assumed to be relative to (and
-packaged in) the feature archive. Note, that for NL handling the URL value
-should be separated to allow alternate URLs to be specified for each national
-language. Note, that the "content" of this URL is <b>not</b> what is presented
-as the click-through license during installation processing. The click-through
-license is the actual value of the <i>&lt;license></i> element (eg. <tt>&lt;license>click
-through text&lt;/license></tt>)</li>
-</ul>
-
-<li>
-&lt;url> - optional URL specifying site(s) contain feature updates, or
-new features</li>
-
-<ul>
-<li>
-&lt;update> - URL to go to for updates to this feature</li>
-
-<ul>
-<li>
-url - actual URL</li>
-
-<li>
-label - displayable label (name) for the referenced site</li>
-</ul>
-
-<li>
-&lt;discovery> - URL to go to for new features. In general, a provider
-can use this element to reference its own site(s), or site(s) of partners
-that offer complementary features. Eclipse uses this element simply as
-a way to distribute new site URLs to the clients. Sites that belong to root
-features (at the top of the hierarchy) typically appear in &quot;Sites to
-Visit&quot; in Update Manager.</li>
-
-<ul>
-<li>
-url - actual URL</li>
-
-<li>
-label - displayable label (name) for the referenced site</li>
-
-<li>
-type (new in 2.1) - by default, discovery sites are assumed to be update sites
-(&quot;update&quot;). By setting the value of this attribute to &quot;web&quot;,
-it is possible to indicate to Eclipse that the URL should be treated as a
-regular Web hyperlink that can be directly displayed in a suitable browser.</li>
-</ul>
-</ul>
-
-<li>
-&lt;includes> - optional reference to a nested feature that is considered
-to be part of this feature. Nested features must be located on the same
-update site as this feature</li>
-
-<ul>
-<li>
-id - required nested feature identifier</li>
-
-<li>
-version - required nested feature version</li>
-
-<li>
-optional (new in 2.1) - it is possible to include a feature as optional when
-this attribute is &quot;true&quot;. Users are allowed to not install optional
-features, disable them if they are installed, and install them later. A missing
-optional feature is not treated as an error.</li>
-
-<li>
-name (new in 2.1) - if an optional feature is missing, Eclipse cannot render its
-name properly. This attribute can be used as a 'place holder' to allow Eclipse
-to render the name of the optional feature when it is not installed.</li>
-
-<li>
-search-location (new in 2.1) - an included feature can be updated by patches. 
-By default, search location is &quot;root&quot;
-which means that URL specified in the &quot;update&quot; element within the
-&quot;url&quot; element of the parent will be considered. If an included feature
-has its own &quot;update&quot; element defined, it will be ignored by default.
-If the parent feature wants to allow the child to be updated from its own
-location, it can set this attribute to &quot;both&quot; or &quot;self&quot;.</li>
-</ul>
-
-<li>
-&lt;requires> - optional feature dependency information. Is expressed in
-terms of plug-in dependencies. If specified, is enforced by the installation
-and update support at the time of installation</li>
-
-<ul>
-<li>
-&lt;import> - dependency entry. Specification and processing is a subset
-of the &lt;import> specification in plugin.xml</li>
-
-<ul>
-<li>
-plugin - identifier of dependent plug-in, if plug-in is used to express
-dependency</li>
-
-<li>
-feature (new in 2.1) - identifier of dependent feature, if feature is used to
-express dependency. <b>Either plugin or feature attribute must be set, but not
-both. </b>If &quot;patch&quot; is &quot;true&quot;, feature attribute must be
-used.</li>
-
-<li>
-version - optional plug-in version specification. If &quot;patch&quot; is
-&quot;true&quot;, version must be set.</li>
-
-<li>
-match - optional matching rule. Valid values and processing are as follows:</li>
-
-<ul>
-<li>
-if version attribute is not specifies, the match attribute (if specified)
-is ignored.</li>
-
-<li>
-<b><i>perfect</i></b> - dependent plug-in version must match exactly the
-specified version. If &quot;patch&quot; is &quot;true&quot;, &quot;perfect&quot;
-is assumed and other values cannot be set.</li>
-
-<li>
-<b><i>equivalent</i></b> - dependent plug-in version must be at least at
-the version specified, or at a higher service level (major and minor version
-levels must equal the specified version).</li>
-
-<li>
-<b><i>compatible</i></b> - dependent plug-in version must be at least at
-the version specified, or at a higher service level or minor level (major
-version level must equal the specified version).</li>
-
-<li>
-<b><i>greaterOrEqual</i></b> - dependent plug-in version must be at least
-at the version specified, or at a higher service, minor or major level.</li>
-</ul>
-
-<li>
-patch (new in 2.1) - if &quot;true&quot;, this constraint declares the enclosing
-feature to be a patch for the referenced feature. Certain rules must be followed
-when this attribute is set:
-<ul>
-  <li>feature attribute must be used to identifier of feature being patched</li>
-  <li>version attribute must be set</li>
-  <li>match attribute should not be set and &quot;perfect&quot; value will be
-    assumed.</li>
-</ul>
-<p>A patch is a special feature that carries newer versions of plug-ins for
- the feature it is patching.  It does not replace the feature.  A patch can also
- carry other patches by inclusion.</li>
-</ul>
-</ul>
-
-<li>
-&lt;plugin> - identifies referenced plug-in</li>
-
-<ul>
-<li>
-id - required plug-in identifier (from plugin.xml)</li>
-
-<li>
-version - required plug-in version (from plugin.xml)</li>
-
-<li>
-fragment - optional specification indicating if this entry is a plug-in
-fragment. Default is "false"</li>
-
-<li>
-os - optional operating system specification. A comma-separated list of
-os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this entry should only be installed on one of the specified os
-systems. If this attribute is not specified, the entry can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of entry regardless of this setting).</li>
-
-<li>
-arch - optional machine architecture specification. A comma-separated list
-of architecture designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this feature should only be installed on one of the specified
-systems. If this attribute is not specified, the feature can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of feature regardless of this setting).</li>
-
-<li>
-ws - optional windowing system specification. A comma-separated list of
-ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this entry should only be installed on one of the specified ws
-systems. If this attribute is not specified, the entry can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of entry regardless of this setting).</li>
-
-<li>
-nl - optional locale specification. A comma-separated list of locale designators
-defined by Java. Indicates this entry should only be installed on a system
-running with a compatible locale (using Java locale-matching rules). If
-this attribute is not specified, the entry can be installed on all systems
-(language-neutral implementation). This information is used as a hint by
-the installation and update support (user can force installation of entry
-regardless of this setting).</li>
-
-<li>
-download-size - optional hint supplied by the feature packager, indicating
-the download size in KBytes of the referenced plug-in archive. If not specified,
-the download size is not known (<b>Implementation Note:</b> the implementation
-needs to distinguish between "not known" and 0 size)</li>
-
-<li>
-install-size - optional hint supplied by the feature packager, indicating
-the install size in KBytes of the referenced plug-in archive. If not specified,
-the install size is not known (<b>Implementation Note:</b> the implementation
-needs to distinguish between "not known" and 0 size)</li>
-
-<li>
-unpack (new in 3.0) - optional specification supplied by the feature packager,
-indicating that plugin is capable of running from a jar, and contents of plug-in
-jar should not be unpacked into a directory.  Default is "true".
-(<b>Implementation Note:</b> partial plug-ins - delivered in a feature specifying
-<tt>org.eclipse.update.core.DeltaInstallHandler</tt> as an install handler should
-not set unpack to &quot;false&quot;)</li>
-</ul>
-
-<li>
-&lt;data> - identifies non-plugin data that is part of the feature</li>
-
-<ul>
-<li>
-id - required data identifier in the form of a relative path.</li>
-
-<li>
-os - optional operating system specification. A comma-separated list of
-os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this entry should only be installed on one of the specified os
-systems. If this attribute is not specified, the entry can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of entry regardless of this setting).</li>
-
-<li>
-arch - optional machine architecture specification. A comma-separated list
-of architecture designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this feature should only be installed on one of the specified
-systems. If this attribute is not specified, the feature can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of feature regardless of this setting).</li>
-
-<li>
-ws - optional windowing system specification. A comma-separated list of
-ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>.
-Indicates this entry should only be installed on one of the specified ws
-systems. If this attribute is not specified, the entry can be installed
-on all systems (portable implementation). This information is used as a
-hint by the installation and update support (user can force installation
-of entry regardless of this setting).</li>
-
-<li>
-nl - optional locale specification. A comma-separated list of locale designators
-defined by Java. Indicates this entry should only be installed on a system
-running with a compatible locale (using Java locale-matching rules). If
-this attribute is not specified, the entry can be installed on all systems
-(language-neutral implementation). This information is used as a hint by
-the installation and update support (user can force installation of entry
-regardless of this setting).</li>
-
-<li>
-download-size - optional hint supplied by the feature packager, indicating
-the download size in KBytes of the referenced data archive. If not specified,
-the download size is not known (<b>Implementation Note:</b> the implementation
-needs to distinguish between "not known" and 0 size)</li>
-
-<li>
-install-size - optional hint supplied by the feature packager, indicating
-the install size in KBytes of the referenced data archive. If not specified,
-the install size is not known (<b>Implementation Note:</b> the implementation
-needs to distinguish between "not known" and 0 size)</li>
-</ul>
-</ul>
-When interacting with
-the update site, the feature implementation maps the <tt>&lt;plugin></tt>
-and <tt>&lt;data></tt> elements into path identifiers used by the site
-to determine the actual files to download and install. The default feature
-implementation supplied by Eclipse constructs the path identifiers as follows:
-<ul>
-<li>
-<tt>&lt;plugin></tt> element results in a path entry in the form "<tt>plugins/&lt;pluginId>_&lt;pluginVersion>.jar</tt>"
-(for example, "<tt>plugins/org.eclipse.core.boot_2.0.0.jar</tt>")</li>
-
-<li>
-<tt>&lt;data></tt> element results in a path entry in the form "<tt>features/&lt;featureId>_&lt;featureVersion>/&lt;dataId></tt>"
-(for example, "f<tt>eatures/com.xyz.tools_1.0.3/examples.zip</tt>")</li>
-</ul>
-Note, that in general the feature.xml&nbsp; manifest documents should specify
-UTF-8 encoding. For example
-<p><tt>&lt;?xml version="1.0" encoding="UTF-8"?></tt>
-<p>Translatable text contained in the feature.xml can be separated into
-feature&lt;_locale>.properties files using Java property bundle conventions.
-Note that the translated strings are used at installation time (ie. do
-not employ the plug-in fragment runtime mechanism).&nbsp;
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/help_infocenter.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/help_infocenter.html
deleted file mode 100644
index 0073c7a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/help_infocenter.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-   <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-      <meta name="Author" content="eclipse.org">
-      <title>
-         Infocenter
-      </title>
-  <link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   </head>
-<body>
-
-<h1>Installing the help system as an infocenter</h1>
-
-<p>You can allow your users to access the help system over the Internet or an 
-intranet, by installing the infocenter and the documentation 
-plug-ins on   a server. Clients view help by navigating 
-to a URL, and the help system is shown in their web browser. The infocenter help 
-system can be used both for client applications and for web applications, either 
-of which can have their help accessed remotely. All features of help system except infopops and 
-active help are supported. </p>
-<P>The infocenter help system allows passing number of options that can
-be used to customize various aspects of the infocenter. The following
-options are supported:</P>
-<UL>
-	<LI><B>-eclipsehome</B> <I>eclipseInstallPath</I> - specifies Eclipse
-	installation directory. This directory is a parent to "plugins" directory
-	and eclipse executable.  The option must be provided, when current directory
-	from which infocenter is launched, is
-	not the same as Eclipse installation directory.</LI>
-	<LI><B>-host</B> <I>helpServerHost</I> - specifies host name of the
-	interface that help server will use. It overrides host name specified in
-	the application server plugin preferences.</LI>
-
-	<LI><B>-port</B> <I>helpServerPort</I> - specifies port number that
-	help server will use. It overrides port number specified in the
-	application server plugin preferences.</LI>
-
-  <li><b>-locales</b> <I>localeList</I> - specifies a list of locales that infocenter
-   will recognize and provide a customized content for.
-   If the option is not specified, infocenter will build navigation, and index documents
-   for each preferred locale of the browsers accessing the infocenter.
-   When the option is present, locales from browser requests will be matched with locales in the list.
-   If browser preferred locale does not exist in the list, but its language part does, it will be used.
-   Subsequently, additional browser locales in decreased order of preference will be matched against
-   the list.  If none of the browser locales (or its language part) matches any locale on the list,
-   the client will be served content in the default locale - server locale or locale passed with -nl option.
-   For example using options <pre>-nl en -locales de en es fr it ja ko pt_BR zh_CN zh_TW</pre>
-   will cause infocenter operating in 10 locales.  All other locales will receive content for en locale.</li>
-
-	<LI><B>-servertimeout</B> <I>timeout</I> - number of seconds waiting
-	to connect to the help server while executing commands,
-	such as shutdown.  Default is 40s.  You may need to
-	use this option when running from a slow media such as a CD-ROM.</LI>
-
-	<LI><B>-noexec</B> - indicates that Eclipse executable
-	should not be used.  You may need to use this option when running
-	on a platform for which Eclipse executable is not available.</LI>
-
-	<LI>Additionally, most <A
-		href="../../../org.eclipse.platform.doc.user/tasks/running_eclipse.htm">options
-	accepted by Eclipse executable</A> can be passed. They are especially
-	useful during debugging and for applying customization to Eclipse.
-	For example, passing options
-	<PRE><EM><SPAN style="font-style: normal">-vmargs -Xmx256M</SPAN></EM> </PRE>
-	increases memory available to the infocenter and will allow serving a larger book collection.</LI>
-</UL>
-<H2><B>Installation/packaging</B></H2>
-<P>These steps are for the help system integrator and are not meant to
-address all the possible scenarios. It is assumed that all your
-documentation is delivered as Eclipse plug-ins and, in general, you are
-familiar with the eclipse help system.</P>
-<OL>
-	<LI>Download the Eclipse Platform Runtime Binary
-	driver from <A target="_blank" href="http://www.eclipse.org/downloads/">www.eclipse.org</A>.</LI>
-	<LI>Install (unzip) the driver in a directory, <VAR>d:\myApp</VAR>. This will create an eclipse sub-directory,
-	d:\myApp\eclipse that contains the code required for the Eclipse
-	platform (which includes the help system).</LI>
-</OL>
-<H2><B>How to start or stop infocenter from command line</B></H2>
-<P>The org.eclipse.help.standalone.Infocenter class has a main method that you
-can use to launch infocenter from a command line. The command line
-arguments syntax is:</P>
-<PRE><EM><SPAN style="font-style: normal">-command start | shutdown | [-eclipsehome eclipseInstallPath] [-host helpServerHost] [-locales localeList] [-port helpServerPort] [-servertimeout timeout] [-noexec] [platform options] [-vmargs JavaVMarguments]</SPAN></EM></PRE>
-<P>To start an infocenter on port 8081 issue a start command by running</P>
-<PRE>java -classpath d:\myApp\eclipse\plugins\org.eclipse.help.base_3.0.0\helpbase.jar org.eclipse.help.standalone.Infocenter -command start -eclipsehome d:\myApp\eclipse -port 8081</PRE>
-<P>To shut the infocenter down issue a shutdown command by running</P>
-
-<PRE>java -classpath d:\myApp\eclipse\plugins\org.eclipse.help.base_3.0.0\helpbase.jar org.eclipse.help.standalone.Infocenter -command shutdown -eclipsehome d:\myApp\eclipse</PRE>
-<h2>Using the infocenter</h2>
-<p>Start the web server. Point a web browser to the path &quot;help&quot; web 
-application running on a port specified when starting the infocenter.&nbsp; On the machine the infocenter is installed, this would be 
-http://localhost:8081/help/. </p>
-<H2><B>How to start or stop infocenter from Java</B></H2>
-<P>When including infocenter as part of another application, it may be more convenient to start it and stop using Java APIs instead of using system commands. Follow the steps if it is the case:</P>
-<OL>
-	<LI>Make sure <EM><SPAN style="font-style: normal">d:\myApp\eclipse\plugins\org.eclipse.help.base_3.0.0\helpbase.jar</SPAN></EM>
-	is on your app classpath. The class you use to start, and shut
-	down the infocenter isorg.eclipse.help.standalone.Infocenter.</LI>
-	<LI>Create an array of String containing options that you want to pass
-	to the infocenter. Typically, the eclipsehome and port options are needed. <PRE><EM><SPAN
-		style="font-style: normal">String[] options = new String[] { &quot;-eclipsehome&quot;, &quot;d:\\myApp\\eclipse&quot; , &quot;-port&quot;, &quot;8081&quot; };</SPAN></EM> </PRE></LI>
-	<LI>In your application, create an instance of the Help class by
-	passing the options.<PRE><EM><SPAN style="font-style: normal">Infocenter infocenter = new Help(options);</SPAN></EM> </PRE>
-	</LI>
-	<LI>To start the help system: <PRE><EM><SPAN style="font-style: normal">helpSystem.start();</SPAN></EM></PRE>
-	</LI>
-	<LI>
-	<P>To shut the infocenter down:</P>
-	<PRE><EM><SPAN style="font-style: normal">helpSystem.shutdown();</SPAN></EM> </PRE></LI>
-</OL>
-<H2>Making infocenter available on the web</H2>
-<P>Eclipse contains a complete infocenter and does not require other server software to run. However, in unsecure environment like Internet, it is recommended infocenter is not accessed directly by clients, but is made available through an HTTP server or an application server. Most servers come with
-modules or servlets for delegating certain request to other web resources. For example, one may configure a proxy module of Apache HTTP Server to redirect requests made to <I>http://mycompany.com/myproduct/infocenter</I> to  <I>http://internalserver:8081/help</I> that runs an infocenter. Adding the  lines
-<pre>LoadModule proxy_module modules/ApacheModuleProxy.dll
-ProxyPass /myproduct/infocenter http://internalserver:8081/help
-ProxyPassReverse /myproduct/infocenter http://internalserver:8081/help
-</pre> to conf/httpd.conf file of Apache server running mycompany web site accomplishes this.
-</P>
-<P>Some versions of Apache HTTP server, may contain AddDefaultCharset directive enabled in configuration file.
-Remove the directive or replace with <pre>AddDefaultCharset Off</pre> to have browsers display documents using correct character set.
-</P>
-
-<H2>[Optional] Installing a minimal set of plug-ins</H2>
- <p>The infocenter does not require the entire &nbsp;Eclipse Platform package.
-It is possible to run the infocenter with the following plug-ins (located
-in the&nbsp; eclipse\plugins directory):<br>
-</p>
-<p><code> org.apache.lucene<br>
-org.apache.ant<br>
-org.apache.xerces<br>
-org.eclipse.core.boot<br>
-org.eclipse.core.resources<br>
-org.eclipse.core.runtime<br>
-org.eclipse.help<br>
-org.eclipse.help.appserver<br>
-org.eclipse.help.base<br>
-org.eclipse.help.webapp<br>
-org.eclipse.tomcat<br>
-org.eclipse.update.core<br>
-</code>
-</p>
-<p>In addition to these plugins, depending on the operating system or machine
-architecture, you may need to also need to install the corresponding fragments
-for the above plugins (when they exist). For example, on Windows, you need
-to add the following fragments (also located in the eclipse\plugins directory):<br>
-</p>
-<p>
-<code>org.eclipse.core.resources.win32<br>
-org.eclipse.update.core.win32<br>
-</code>
-</p>
-
-<a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-
-
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/help_product_index.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/help_product_index.html
deleted file mode 100644
index f9ef277..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/help_product_index.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-                           
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-                           
-  <meta name="Author" content="eclipse.org">
-  <title>Pre-built documentation index</title>
-                                                
-  <link rel="STYLESHEET" href="../../book.css" charset="ISO-8859-1"
- type="text/css">
-</head>
-<body>
-<h1>Pre-built documentation index</h1>
-<p>When user searches help contents of a product, the search is performed
-within a documentation index. &nbsp;By default, this index &nbsp;is created
-on the first invocation of help search, but can be pre-built and delivered
-to the user with a product. &nbsp;This avoids indexing from occurring on
-the user machine and lets user obtain first search results faster.<br>
-</p>
-<h2><b>Building an index for a product</b></h2>
-<p>To build an index follow the steps:<br>
-</p>
-<ul>
-  <li>build a product, including all documentation plug-ins,</li>
-  <li>create an index for a desired locale by running this command:     
-                          
-    <pre>eclipse -nosplash -application org.eclipse.help.base.indexTool -vmargs -DindexOutput=<i>outputDirectory</i> -DindexLocale=<i>locale</i></pre>
-from the directory containing the product. &nbsp;The following arguments
-need to be set :<br>
-    <b>outputDirectory</b> - specifies path of the directory where the index
-is to be saved<br>
-    <b>locale</b> - specifies locale for which the index will be built<br>
-   </li>
-</ul>
-<p>For example, running<br>
-</p>
-<pre>eclipse -nosplash -application org.eclipse.help.base.indexTool -vmargs -DindexOutput=d:/build/com.my.plugin -DindexLocale=en</pre>
-<p>will result in file <b>doc_index.zip</b> being saved in the <b>nl/en</b>
-directory that will be created under <b>d:/build/com.my.plugin</b>. &nbsp;The
-zip will contain index of contents of documents that are available to users
-when they run the product in the <b>en</b> locale.<br>
-</p>
-<h2><b>Packaging and Installation of pre-built index</b> </h2>
-Pre-built indices, the <b>doc_index.zip</b> files, need to be packaged as
-a plug-in. &nbsp; You can choose to use a plug-in associated with the primary
-feature, or choose to package the index for each language into separate fragments.<br>
-<br>
-For example, if product's documentation is available in three languages, say
-English, German and Simplified Chinese, a plug-in com.my.plugin can have the following structure:<br>
-<pre>com.my.plugin/<br>              plugin.xml<br>              nl/<br>                 de/<br>                    doc_index.zip<br>                 en/<br>                    doc_index.zip<br>                 zh/<br>                    CN/<br>                       doc_index.zip<br>              other files of this plugin</pre>
-<br>
- The ID of the plugin needs to be specified as a <b>productIndex</b> preference
-for org.eclipse.help.base plugin. &nbsp;For plugin in the above example, the plugin_customization.ini
-file needs to contain the entry<br>
-<pre>org.eclipse.help.base/productIndex=com.my.plugin<br></pre>
-<p><br>
-<a href="hglegal.htm"><img src="ngibmcpy.gif"
- alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="324" height="14"></a><br>
-</p>
-<br>
-<br>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/help_standalone.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/help_standalone.html
deleted file mode 100644
index 1258df1..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/help_standalone.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-   <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-      <meta name="Author" content="eclipse.org">
-      <title>
-         Installing Standalone Help
-      </title>
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   </head>
-<body>
-
-<h1>Installing the stand-alone help system</h1>
-<p>If you are creating an application that is not based on 
-the Eclipse framework, you can still use the Eclipse help system. Your 
-application can package and install the stand-alone help system, a very small 
-version of Eclipse that has  everything except the help system stripped out 
-of it. Then, your application can make API calls from its Help menu, or from UI 
-objects, to launch the help browser. The stand-alone help system has all the 
-features of the integrated help system, except infopops and active help. When an application is not Java based, or help is required when the application is not running, it is possible to use stand-alone help from a system shell, a shell script or a desktop shortcut and provide command line options instead of calling Java APIs.</p>
-<P>The stand-alone help system allows passing number of options that can be used to customize various aspects of the help system. The following options are supported:</P><UL>
-	<LI><B>-eclipsehome</B> <I>eclipseInstallPath</I> - specifies Eclipse
-	installation directory. This directory is a parent to "plugins" directory
-	and eclipse executable.  The option must be provided, when current directory
-	from which infocenter is launched, is
-	not the same as Eclipse installation directory.</LI>
-	<LI><B>-host</B> <I>helpServerHost</I> - specifies host name of the
-	interface that help server will use. It overrides host name specified
-	the application server plugin preferences.</LI>
-
-	<LI><B>-port</B> <I>helpServerPort</I> - specifies port number that
-	help server will use. It overrides port number specified the
-	application server plugin preferences.</LI>
-	<LI><B>-servertimeout</B> <I>timeout</I> - number of seconds waiting
-	to connect to the help server while executing commands,
-	such as shutdown.  Default is 40s.  You may need to
-	use this option when running from a slow media such as a CD-ROM.</LI>
-	<LI>Additionally, most <A
-		href="../../../org.eclipse.platform.doc.user/tasks/running_eclipse.htm">options
-	accepted by Eclipse executable</A> can be passed. They are especially useful during debugging and for applying customization to Eclipse.
-	For example, passing an option
-	<PRE><EM><SPAN style="font-style: normal">-nl fr_FR</SPAN></EM> </PRE>
-	will start help system in French language instead of a language specified by the machine's locale.</LI>
-
-</UL>
-<h2><b>Installation/packaging</b> </h2>
-These steps are for the help system 
-  integrator and are not meant to address all the possible scenarios. It is 
-  assumed   that 
-  all your documentation is delivered as Eclipse plug-ins and, in general, you are 
-  familiar with the eclipse help system.
-<ol>
-  <li>Download the Eclipse Platform Runtime Binary driver from
-  <a target="_blank" href="http://www.eclipse.org/downloads/">www.eclipse.org</a>.</li>
-  <li>Install (unzip) the driver under your application directory, for 
-  example, <var>d:\myApp</var>. This will create an eclipse sub-directory, d:\myApp\eclipse that 
-  contains the code required for the Eclipse platform (which includes the help 
-  system). </li>
-</ol>
-<h2><b>How to call the help classes from Java</b></h2>
-<ol>
-  <li>Make sure <em><span style="font-style: normal">d:\myApp\eclipse\plugins\org.eclipse.help.base_3.0.0\helpbase.jar</span></em> is 
-  on your app classpath. The class you use to start, launch, and shut down the help system is 
-  org.eclipse.help.standalone.Help. </li>
-  <li>Create an array of String containing options that you want to pass to help system support. Typically, the eclipsehome option is needed.
-  <PRE><EM><SPAN style="font-style: normal">String[] options = new String[] { &quot;-eclipsehome&quot;, &quot;d:\\myApp\\eclipse&quot; };</SPAN></EM> </PRE></li>
-	<LI>In your application, create an instance of the Help class by
-	passing the options. This object should be held onto until
-	the end of your application.<PRE><EM><SPAN style="font-style: normal">Help helpSystem = new Help(options);</SPAN></EM> </PRE>
-	</LI>
-	<li>To start the help system:
-  <pre><em><span style="font-style: normal">helpSystem.start();</span></em> </pre>
-  <p></p>
-  </li>
-  <li>To invoke help when needed:
-  <pre><em><span style="font-style: normal">helpSystem.displayHelp();</span></em> </pre>
-  <p>You can also call help on specific primary TOC files or topics:</p>
-  <pre>helpSystem.displayHelp(&quot;/com.mycompany.mytool.doc/toc.xml&quot;);
-helpSystem.displayHelp(&quot;/com.mycompany.mytool.doc/tasks/task1.htm&quot;);</pre>
-  </li>
-  <li>To launch context sensitive help, call 
-  helpSystem.displayContext(contextId, x, y) where contextId is a fully 
-  qualified context id. The screen coordinates, x and y, are not currently used.
-  </li>
-	<LI>
-	<P>At the end of your application, to shutdown the help system:</P>
-	<PRE><EM><SPAN style="font-style: normal">helpSystem.shutdown();</SPAN></EM> </PRE></LI>
-</ol>
-<h2><b>How to call the help from command line</b> </h2>
-<p>The org.eclipse.help.standalone.Help class has a  main method that you 
-can use to launch stand-alone help from a command 
-line. The command line arguments syntax is:</p>
-<pre><em><span style="font-style: normal">-command start | shutdown | (displayHelp [href]) [-eclipsehome eclipseInstallPath] [-host helpServerHost] [-port helpServerPort] [-servertimeout timeout] [platform options] [-vmargs JavaVMarguments]</span></em></pre>
-<P>A simple way to display help is to invoke</P>
-<pre>java -classpath d:\myApp\eclipse\plugins\org.eclipse.help.base_3.0.0\helpbase.jar org.eclipse.help.standalone.Help -command displayHelp</pre><P>from within d:\myApp\eclipse directory. To display specific TOC file or topic use</P>
-
-<PRE>java -classpath d:\myApp\eclipse\plugins\org.eclipse.help.base_3.0.0\helpbase.jar org.eclipse.help.standalone.Help -command displayHelp /com.mycompany.mytool.doc/tasks/task1.htm</PRE>
-<P>The calls above to display help will cause help system to start, display help, and keep running to allow a user to continue browsing  help after the command is executed. To control the life cycle of the help system, use start and shutdown commands, in addition to the displayHelp command. For example, you may call</P>
-<PRE>java -classpath d:\myApp\eclipse\plugins\org.eclipse.help.base_3.0.0\helpbase.jar org.eclipse.help.standalone.Help -command start</PRE>
-
-
-<H2>[Optional] Installing a minimal set of plug-ins</H2>
- <p>The stand-alone help does not require the entire &nbsp;Eclipse Platform package.
-It is possible to run the stand-alone help with the following plug-ins (located
-in the&nbsp; eclipse\plugins directory):<br>
-</p>
-<p><code> org.apache.lucene<br>
-org.apache.ant<br>
-org.apache.xerces<br>
-org.eclipse.core.boot<br>
-org.eclipse.core.resources<br>
-org.eclipse.core.runtime<br>
-org.eclipse.help<br>
-org.eclipse.help.appserver<br>
-org.eclipse.help.base<br>
-org.eclipse.help.webapp<br>
-org.eclipse.tomcat<br>
-org.eclipse.update.core<br>
-</code>
-</p>
-<p>In addition to these plugins, depending on the operating system or machine
-architecture, you may need to also need to install the corresponding fragments
-for the above plugins (when they exist). For example, on Windows, you need
-to add the following fragments (also located in the eclipse\plugins directory):<br>
-</p>
-<p>
-<code>org.eclipse.core.resources.win32<br>
-org.eclipse.update.core.win32<br>
-</code>
-</p>
-<p>
-On Windows, it is possible to provide a different help browser (an SWT-embedded Internet Explorer web browser) by adding the following plugins and fragments on top of the minimal configuration:
-
-<p><code> 
-org.eclipse.help.ui<br>
-org.eclipse.jface.text<br>
-org.eclipse.jface<br>
-org.eclipse.search<br>
-org.eclipse.swt.win32<br>
-org.eclipse.swt<br>
-org.eclipse.text<br>
-org.eclipse.ui.editors<br>
-org.eclipse.ui.views<br>
-org.eclipse.ui.win32<br>
-org.eclipse.ui.workbench.texteditor<br>
-org.eclipse.ui.workbench<br>
-org.eclipse.ui<br>
-</code>
-</p>
-
-</p>
-
-<a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-
-</body>
-</html>
-
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/hglegal.htm b/bundles/org.eclipse.platform.doc.isv/reference/misc/hglegal.htm
deleted file mode 100644
index 2c87542..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. and others 2000, 2002. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/index.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/index.html
deleted file mode 100644
index 2078867..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Eclipse Platform Release Notes</title>
-</head>
-<body>
-
-<h1>
-Other Reference Information</h1>
-The following specifications, white papers, and design notes describe various
-aspects of the Eclipse Platform.
-<h2>Basic platform information</h2>
-<ul>
-
-<li>
-<a href="api-usage-rules.html">Eclipse API Rules of Engagement</a></li>
-
-<li>
-<a href="naming.html">Naming Conventions and Guidelines for the Eclipse
-Platform</a></li>
-
-<li>
-<a href="terminology.html">Short primer on Eclipse Platform terminology</a></li>
-
-<li>
-<a href="overview-platform.html">Map of Eclipse Platform Plug-ins</a></li>
-
-<li>
-<a href="plugin_manifest.html">Plug-in Manifest</a></li>
-
-<li>
-<a href="project_description_file.html">Project Description File</a></li>
-
-</ul>
-<h2>User interface information</h2>
-<ul>
-<li>
-<a href="ui_accessibility_tips.html">Tips for Making User Interfaces Accessible</a></li>
-
-</ul>
-<h2>Help information</h2>
-<ul>
-<li>
-<a href="help_standalone.html">Installing the stand-alone help system</a></li>
-
-<li>
-<a href="help_infocenter.html">Installing the help system as an infocenter</a></li>
-
-</ul>
-<h2>Product install and configuration information</h2>
-<ul>
-
-<li>
-<a href="eclipse-install.html">How to write an Eclipse Installer</a></li>
-
-<li>
-<a href="about_customization.html">About.ini File Format</a></li>
-
-<li>
-<a href="welcome.html"> Welcome pages</a></li>
-
-<li>
-<a href="plugin_archive.html">Plug-in archives</a></li>
-
-<li>
-<a href="feature_archive.html">Feature archives</a></li>
-
-<li>
-<a href="update_sitemap.html">Update server site map</a></li>
-
-</ul>
-<h2><a href="http://www.eclipse.org/articles/index.html">Eclipse.org articles
-index</a></h2>
-<p>The eclipse corner site contains technical articles about many topics of
-interest.&nbsp; Check the index regularly for the latest technical information
-regarding Eclipse.</p>
-<a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/naming.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/naming.html
deleted file mode 100644
index 8a37365..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/naming.html
+++ /dev/null
@@ -1,214 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Eclipse Platform - Naming Conventions</title>
-</head>
-<body>
-
-<h1>
-Eclipse Platform<br>
-Naming Conventions</h1>
-<font size=-1>Last revised June 24, 2002 - version for Eclipse project R2.0</font>
-<p>Naming conventions and guidelines for the Eclipse Platform:
-<ul>
-<li>
-<a href="#Java Packages">Java packages</a></li>
-
-<li>
-<a href="#Classes and Interfaces">Classes and interfaces</a></li>
-
-<li>
-<a href="#Methods">Methods</a></li>
-
-<li>
-<a href="#Variables">Variables</a></li>
-
-<li>
-<a href="#Plug-ins">Plug-ins and extension points</a></li>
-</ul>
-
-<h2>
-<a NAME="Java Packages"></a><b>Java Packages</b></h2>
-The Eclipse Platform consists of a collection of Java packages. The package
-namespace is managed in conformance with <a href="http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367">Sun's
-package naming guidelines</a>; subpackages should not be created without
-prior approval from the owner of the package sub-tree. The packages for
-the Eclipse platform are all subpackages <b><tt>org.eclipse</tt></b>. The
-first package name component after <b><tt>org.eclipse</tt></b> is called
-the <i>major </i>package name. The following major packages of <b><tt>org.eclipse</tt></b>
-are assigned in the Eclipse 2.0 release:
-<blockquote><b><tt>org.eclipse.ant[.*]</tt> </b>- Ant support
-<br><b><tt>org.eclipse.compare[.*]</tt></b> - Compare support
-<br><b><tt>org.eclipse.core[.*]</tt> </b>- Platform core
-<br><b><tt>org.eclipse.debug[.*]</tt> </b>- Debug
-<br><b><tt>org.eclipse.help[.*]</tt></b> - Help support
-<br><b><tt>org.eclipse.jdi[.*]</tt> </b>- Eclipse implementation of Java
-Debug Interface (JDI)
-<br><b><tt>org.eclipse.jdt[.*]</tt> </b>- Java development tools
-<br><b><tt>org.eclipse.jface[.*]</tt> </b>- JFace
-<br><b><tt>org.eclipse.pde[.*]</tt></b> - Plug-in Development Environment
-<br><b><tt>org.eclipse.search[.*]</tt></b> - Search support
-<br><b><tt>org.eclipse.swt[.*]</tt> </b>- Standard Widget Toolkit
-<br><b><tt>org.eclipse.team[.*]</tt> </b>- Team support and Version and
-  Configuration Management
-<br><b><tt>org.eclipse.tomcat[.*]</tt> </b>- Apache tomcat support
-<br><b><tt>org.eclipse.ui[.*]</tt></b> - Workbench
-<br><b><tt>org.eclipse.update[.*]</tt></b> - Update/install
-<br><b><tt>org.eclipse.webdav[.*]</tt> </b>- WebDAV support</blockquote>
-The following package name segments are reserved:
-<blockquote><b><tt>internal</tt></b> - indicates an internal implementation
-package that contains no API
-<br><b><tt>tests</tt></b> - indicates a non-API package that contains only
-test suites
-<br><b><tt>examples</tt></b> - indicates a non-API package that contains
-only examples</blockquote>
-These name are used as qualifiers, and must only appear following the major
-package name. For example,
-<blockquote><b><tt>org.eclipse.core.internal.resources</tt></b> - Correct
-usage
-<br><b><tt>org.eclipse.internal.core.resources</tt></b> - Incorrect. <b><tt>internal</tt></b>
-precedes major package name.
-<br><b><tt>org.eclipse.core.resources.internal</tt></b> - Incorrect. <b><tt>internal</tt></b>
-does not immediately follow major package name.</blockquote>
-Aside on how the Eclipse Platform is structured: The Eclipse Platform is
-divided up into <i>Core </i>and <i>UI</i>. Anything classified as Core
-is independent of the window system; applications and plug-ins that depend
-on the Core and not on the UI can run headless. The distinction between
-Core and UI does not align with the distinction between API and non-API;
-both Core and UI contain API. The UI portion of the Eclipse Platform is
-known as the Workbench. The Workbench is a high-level UI framework for
-building products with sophisticated UIs built from pluggable components.
-The Workbench is built atop JFace, SWT, and the Platform Core. SWT (Standard
-Widget Toolkit) is a low-level, OS-platform-independent means of talking
-to the native window system. JFace is a mid-level UI framework useful for
-building complex UI pieces such as property viewers. SWT and JFace are
-UI by definition. The Java tooling is a Java IDE built atop the workbench.
-End aside.
-<p><b>API Packages</b>&nbsp; API packages are ones that contain classes
-and interfaces that must be made available to ISVs. The names of API packages
-need to make sense to the ISV. The number of different packages that the
-ISV needs to remember should be small, since a profusion of API packages
-can make it difficult for ISVs to know which packages they need to import.
-Within an API package, all public classes and interfaces are considered
-API. The names of API packages should not contain <b><tt>internal</tt></b>,
-<b><tt>tests</tt></b>,
-or <b><tt>examples</tt></b> to avoid confusion with the scheme for naming
-non-API packages.
-<p><b>Internal Implementation Packages</b>&nbsp; All packages that are
-part of the platform implementation but contain no API that should be exposed
-to ISVs are considered internal implementation packages. All implementation
-packages should be flagged as <b><tt>internal</tt></b>, with the tag occurring
-just after the major package name. ISVs will be told that all packages
-marked <b><tt>internal</tt></b> are out of bounds. (A simple text search
-for "<tt>.internal.</tt>" detects suspicious reference in source files;
-likewise, "/<tt>internal/</tt>" is suspicious in .class files).
-<p><b>Test Suite Packages</b>&nbsp; All packages containing test suites
-should be flagged as <b><tt>tests</tt></b>, with the tag occurring just
-after the major package name. Fully automated tests are the norm; so, for
-example,
-<tt>org.eclipse.core.tests.resources</tt> would contain automated
-tests for API in <tt>org.eclipse.core.resources</tt>. Interactive tests
-(ones requiring a hands-on tester) should be flagged with <b><tt>interactive</tt></b>
-as the <i>last</i> package name segment; so, for example, <tt>org.eclipse.core.tests.resources.interactive</tt>
-would contain the corresponding interactive tests.
-<p><b>Examples Packages</b>&nbsp; All packages containing examples that
-ship to ISVs should be flagged as <b><tt>examples</tt></b>, with the tag
-occurring just after the major package name. For example,
-<tt>org.eclipse.swt.examples</tt>
-would contain examples for how to use the SWT API.
-<p>Additional rules:
-<ul>
-<li>
-Package names should contain only lowercase ASCII alphanumerics, and avoid
-underscore <tt>_</tt> or dollar sign <tt>$</tt> characters.</li>
-</ul>
-
-<h2>
-<a NAME="Classes and Interfaces"></a><b>Classes and Interfaces</b></h2>
-<a href="http://java.sun.com/docs/codeconv/index.html">Sun's naming guidelines</a>
-states
-<blockquote>Class names should be nouns, in mixed case with the first letter
-of each internal word capitalized. Try to keep your class names simple
-and descriptive. Use whole words - avoid acronyms and abbreviations (unless
-the abbreviation is much more widely used than the long form, such as URL
-or HTML).
-<p>Examples:
-<br><tt>&nbsp;&nbsp;&nbsp; class Raster;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; class ImageSprite;</tt>
-<p>Interface names should be capitalized like class names.</blockquote>
-For interface names, we follow the "I"-for-interface convention: all interface
-names are prefixed with an "<tt>I</tt>". For example, "<tt>IWorkspace</tt>"
-or "<tt>IIndex</tt>". This convention aids code readability by making interface
-names more readily recognizable. (Microsoft COM interfaces subscribe to
-this convention).
-<p>Additional rules:
-<ul>
-<li>
-The names of exception classes (subclasses of <tt>Exception</tt>) should
-follow the common practice of ending in "<tt>Exception</tt>".</li>
-</ul>
-
-<h2>
-<a NAME="Methods"></a><b>Methods</b></h2>
-<a href="http://java.sun.com/docs/codeconv/index.html">Sun's naming guidelines</a>
-states
-<blockquote>Methods should be verbs, in mixed case with the first letter
-lowercase, with the first letter of each internal word capitalized.
-<p>Examples:
-<br><tt>&nbsp;&nbsp;&nbsp; run();</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; runFast();</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; getBackground();</tt></blockquote>
-Additional rules:
-<ul>
-<li>
-The named of methods should follow common practice for naming getters (<tt>get<i>X</i>()</tt>),
-setters (<tt>set<i>X</i>()</tt>), and predicates (<tt>is<i>X</i>()</tt>,
-<tt>has<i>X</i>()</tt>).</li>
-</ul>
-
-<h2>
-<a NAME="Variables"></a><b>Variables</b></h2>
-<a href="http://java.sun.com/docs/codeconv/index.html">Sun's naming guidelines</a>
-states
-<blockquote>Except for variables, all instance, class, and class constants
-are in mixed case with a lowercase first letter. Internal words start with
-capital letters. Variable names should not start with underscore <tt>_</tt>
-or dollar sign <tt>$ </tt>characters, even though both are allowed.
-<p>Variable names should be short yet meaningful. The choice of a variable
-name should be mnemonic - that is, designed to indicate to the casual observer
-the intent of its use. One-character variable names should be avoided except
-for temporary "throwaway" variables. Common names for temporary variables
-are <tt>i</tt>, <tt>j</tt>, <tt>k</tt>, <tt>m</tt>, and <tt>n</tt> for
-integers; <tt>c</tt>, <tt>d</tt>, and <tt>e</tt> for characters.
-<p>Examples:
-<br><tt>&nbsp;&nbsp;&nbsp; int i;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; char c;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; float myWidth;</tt></blockquote>
-(Note: we are no longer following the convention that prefixes non-constant
-field names with "<tt>f</tt>", such as "<tt>fWidget</tt>".)
-<h2>
-<a NAME="Constants"></a><b>Constants</b></h2>
-<a href="http://java.sun.com/docs/codeconv/index.html">Sun's naming guidelines</a>
-states
-<blockquote>The names of variables declared class constants and of ANSI
-constants should be all uppercase with words separated by underscores ("_").
-<p>Examples:
-<br><tt>&nbsp;&nbsp;&nbsp; static final int MIN_WIDTH = 4;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; static final int MAX_WIDTH = 999;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; static final int GET_THE_CPU = 1;</tt></blockquote>
-
-<h2>
-<a NAME="Plug-ins"></a><b>Plug-ins and Extension Points</b></h2>
-All plug-ins, including the ones that are part of the Eclipse Platform,
-like the Resources and Workbench plug-ins, must have unique identifiers
-following the same naming pattern as Java packages. For example, workbench
-plug-ins are named <b><tt>org.eclipse.ui[.*]</tt></b>.
-<p>The plug-in namespace is managed hierarchically; do not create plug-in
-without prior approval from the owner of the enclosing namespace.
-<p>Extension points that expect multiple extensions should have plural
-names. For example, "<tt>builders</tt>" rather than "<tt>builder</tt>".
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/ngibmcpy.gif b/bundles/org.eclipse.platform.doc.isv/reference/misc/ngibmcpy.gif
deleted file mode 100644
index 3fda87a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/overview-platform.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/overview-platform.html
deleted file mode 100644
index 991d568..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/overview-platform.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../../book.css" charset="ISO-8859-1" type="text/css">
-<title>Map of Platform Plug-ins</title>
-</head>
-
-<body>
-
-<h1>Eclipse Platform<br>
-Map of Platform Plug-ins</h1>
-<i><font size="-1">Last revised March 25, 2003 - For Eclipse R2.1</font></i>
-<p>The Eclipse Platform provides basic support for plug-ins, resources, and the
-workbench.
-<p>The Eclipse Platform itself is divided up into a number of separate plug-ins.
-The following table shows which API packages are found in which plug-ins (the
-most commonly referenced API packages are highlighted). This table is useful for
-determining which plug-ins a given plug-in should include as prerequisites.<br>
-&nbsp;<center>
-<table border="1" width="80%">
-  <tr>
-    <td><b>API Package</b></td>
-    <td><b>Plug-in id</b></td>
-    <td>Notes</td>
-  </tr>
-  <tr>
-    <td><tt>org.apache.tools.ant[.*]</tt></td>
-    <td><tt>org.apache.ant</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.ant.core[.*]</tt></td>
-    <td><tt>org.eclipse.ant.core</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.compare[.*]</tt></td>
-    <td><tt>org.eclipse.compare</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.core.boot</tt></td>
-    <td><tt>org.eclipse.core.boot</tt></td>
-    <td><a href="#Note pseudo">[1]</a></td>
-  </tr>
-  <tr>
-    <td><b><tt>org.eclipse.core.resources</tt></b><tt>[.*]</tt></td>
-    <td><tt>org.eclipse.core.resources</tt></td>
-    <td><a href="#Note resources">[2]</a></td>
-  </tr>
-  <tr>
-    <td><tt><b>org.eclipse.core.runtime</b>[.*]</tt></td>
-    <td><tt>org.eclipse.core.runtime</tt></td>
-    <td><a href="#Note pseudo">[1]</a></td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.debug.core[.*]</tt></td>
-    <td><tt>org.eclipse.debug.core</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.debug.ui[.*]</tt></td>
-    <td><tt>org.eclipse.debug.ui</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.help[.*]</tt></td>
-    <td><tt>org.eclipse.help</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.help.ui[.*]</tt></td>
-    <td><tt>org.eclipse.help.ui</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt><b>org.eclipse.jface</b>[.*],</tt><br>
-      <tt><b>org.eclipse.swt</b>[.*],</tt><br>
-      <tt><b>org.eclipse.ui</b>[.*]</tt></td>
-    <td><tt>org.eclipse.ui</tt></td>
-    <td><a href="#Note swt">[3]</a></td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.search.ui</tt></td>
-    <td><tt>org.eclipse.search</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.team.core</tt></td>
-    <td><tt>org.eclipse.team.core</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.team.ui[.*]</tt></td>
-    <td><tt>org.eclipse.team.ui</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>org.eclipse.update.core[.*]</tt></td>
-    <td><tt>org.eclipse.update.core</tt></td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr>
-    <td><tt>javax.xml.parsers,</tt><br>
-      <tt>org.w3c.dom[.*],</tt><br>
-      <tt>org.xml.sax[.*]</tt></td>
-    <td><tt>org.apache.xerces</tt></td>
-    <td><a href="#Note xml API">[4]</a></td>
-  </tr>
-  <tr>
-    <td><tt>org.apache.html.dom,</tt><br>
-      <tt>org.apache.xerces[.*],</tt><br>
-      <tt>org.apache.xml.serialize</tt></td>
-    <td><tt>org.apache.xerces</tt></td>
-    <td><a href="#Note xerces implementation">[5]</a></td>
-  </tr>
-</table>
-</center>
-<p><a name="Note pseudo"></a>Note 1: <tt>org.eclipse.core.boot</tt> and <tt>org.eclipse.core.runtime</tt>
-are pseudo plug-ins. They are automatically provided as prerequisites of every
-plug-in; their API packages are therefore available automatically to any
-plug-in.
-<p><a name="Note resources"></a>Note 2: Plug-ins needing access to the workspace
-and resource API and must list <tt>org.eclipse.core.resources</tt> as a
-prerequisite plug-in.
-<p><a name="Note swt"></a>Note 3: Plug-ins needing access to the SWT, JFace, or
-workbench API must list <tt>org.eclipse.ui</tt> as a prerequisite plug-in. The
-implementation of the <code>org.eclipse.ui</code> plug-in involves a number of
-other plug-ins which should never be explicitly listed as prerequisites.
-<p><a name="Note xml API"></a>Note 4: The generic XML APIs found in the <code>javax.xml.parsers</code>
-and <code>org.w3c.*</code> packages are in <code>xmlParserAPIs.jar</code>.
-<p><a name="Note xerces implementation"></a>Note 5: The Xerces-specific
-implementation classes are found in <code>xerxesImpl.jar</code>.</p>
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_archive.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_archive.html
deleted file mode 100644
index 93fea4a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_archive.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Plugin-in Archives</title>
-</head>
-<body>
-
-<h1>
-Plug-in Archives</h1>
-Plug-ins and plug-in fragments are individually packaged as separate Java
-.jars. Standard Java jar facilities are used for constructing plug-in archives.
-There is no distinction made between a plug-in archive containing a plug-in
-and one containing a plug-in fragment.
-<p>The recommended convention for naming the plug-in archives is
-<br><tt>&lt;id>_&lt;version>.jar</tt>
-<p>Where <tt>&lt;id></tt> is the plug-in or fragment identifier and <tt>&lt;version></tt>
-is the full version identifier contained in the respective plugin.xml or
-fragment.xml. Note that this is a recommended convention that minimizes
-chance of collisions, but is not required by the Eclipse architecture.
-For example, the following are valid plug-in archive names
-<p><tt>org.eclipse.platform_1.0.3.jar</tt>
-<br><tt>org.eclipse.ui.nl_2.0.jar</tt>
-<br><tt>my_plugin.jar</tt>
-<p>Internally, each plug-in archive packages all the relevant plug-in or
-fragment files relative to its plug-in or fragment directory (but not including
-the directory path element). The archive has the following structure
-<p><tt>plugin.xml *OR* fragment.xml</tt>
-<br><tt>other plug-in or feature files and subdirectories</tt>
-<br><tt>META-INF/</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; Java jar manifest and security files</tt>
-<p>
-<a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_dtd.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_dtd.html
deleted file mode 100644
index 4fd798b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_dtd.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-
-<title>Plug-in manifest dtd</title>
-</head>
-
-<body lang="EN-US" style='tab-interval:.5in'>
-
-<div class=Section1><pre>&lt;?xml encoding=&quot;US-ASCII&quot;?&gt;</pre>
-<pre><p>
-&lt;!ELEMENT plugin (requires?, runtime?, extension-point*, extension*)&gt;
-&lt;!ATTLIST plugin
- name                CDATA #REQUIRED
- id                  CDATA #REQUIRED
- version             CDATA #REQUIRED
- provider-name       CDATA #IMPLIED
- class               CDATA #IMPLIED
-&gt;</p></pre>
-<pre><p>
-&lt;!ELEMENT fragment (requires?, runtime?, extension-point*, extension*)&gt;
-&lt;!ATTLIST fragment
- name                CDATA #REQUIRED
- id                  CDATA #REQUIRED
- version             CDATA #REQUIRED
- provider-name       CDATA #IMPLIED
- plugin-id           CDATA #REQUIRED
- plugin-version      CDATA #REQUIRED
- match               (perfect | equivalent | compatible | greaterOrEqual) &quot;compatible&quot;
-&gt;
-</p></pre><pre><p>
-&lt;!ELEMENT requires (import+)&gt;
-&lt;!ELEMENT import EMPTY&gt;
-&lt;!ATTLIST import
- plugin              CDATA #REQUIRED
- version             CDATA #IMPLIED
- match               (perfect | equivalent | compatible | greaterOrEqual) &quot;compatible&quot;
- export              (true | false) &quot;false&quot;
- optional            (true | false) &quot;false&quot;
-&gt;
-</p></pre><pre><p>
-&lt;!ELEMENT runtime library+)&gt;</p></pre>
-<pre><p>
-&lt;!ELEMENT library (export*, packages?)&gt;
-&lt;!ATTLIST library
- name                CDATA #REQUIRED
- type                (code | resource) &quot;code&quot;
-&gt;
-</p></pre>
-  <pre><p>
-&lt;!ELEMENT export EMPTY&gt;
-&lt;!ATTLIST export
- name                CDATA #REQUIRED
-&gt;
-</p></pre>
-  <pre>&lt;!ELEMENT packages EMPTY&gt;
-&lt;!ATTLIST packages
- prefixes            CDATA #REQUIRED
-&gt;</pre>
-<pre><p>
-&lt;!ELEMENT extension-point EMPTY&gt;
-&lt;!ATTLIST extension-point
- name                CDATA #REQUIRED
- id                  CDATA #REQUIRED
- schema              CDATA #IMPLIED
-&gt;
-</p></pre>
-  <pre><p>
-&lt;!ELEMENT extension ANY&gt;
-&lt;!ATTLIST extension
- point               CDATA #REQUIRED
- name                CDATA #IMPLIED
- id                  CDATA #IMPLIED
-&gt;</p></pre>
-
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></p></div>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_manifest.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_manifest.html
deleted file mode 100644
index 84c5399..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_manifest.html
+++ /dev/null
@@ -1,405 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Plug-in manifest</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=blue style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<h1>Eclipse platform plug-in manifest</h1>
-
-<p class=MsoNormal><span style='font-size:10.0pt'>Version 2.1 - Last revised August
-26, 2003</span></p>
-
-<p>The manifest markup definitions below make use of various naming tokens and
-identifiers. To eliminate ambiguity, here are some production rules for these [are
-referenced in text below]. In general, all identifiers are case-sensitive. </p>
-
-<pre>SimpleToken := sequence of characters from ('a-z','A-Z','0-9')&nbsp;
-ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken)&nbsp;
-JavaClassName := ComposedToken&nbsp;
-PlugInId := ComposedToken
-PlugInPrereq := PlugInId | 'export' PlugInId&nbsp;
-ExtensionId := SimpleToken&nbsp;
-ExtensionPointId := SimpleToken&nbsp;
-ExtensionPointReference := ExtensionPointID | (PlugInId '.' ExtensionPointId)</pre>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-remainder of this section describes the plugin.xml file structure as a series
-of DTD fragments. File <a href="plugin_dtd.html">plugin.dtd</a> presents the DTD
-definition in its entirety. </p>
-
-<pre>&lt;?xml encoding=&quot;US-ASCII&quot;?&gt;&nbsp;
-&lt;!ELEMENT plugin (requires?, runtime?, extension-point*, extension*)&gt;&nbsp;
-&lt;!ATTLIST plugin&nbsp;
-&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
-&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
-&nbsp; version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
-&nbsp; provider-name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED
-&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
-&gt;</pre>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-&lt;plugin&gt; element defines the body of the manifest. It optionally contains
-definitions for the plug-in runtime, definitions of other plug-ins required by
-this one, declarations of any new extension points being introduced by the
-plug-in, as well as configuration of functional extensions (configured into
-extension points defined by other plug-ins, or introduced by this plug-in).
-&lt;plugin&gt; attributes are as follows: </p>
-
-<ul type=disc>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>name</b> - user
-     displayable (translatable) name for the plug-in</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>id</b> - unique identifier
-     for the plug-in.</li>
- <ul type=circle>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l2 level2 lfo3;tab-stops:list 1.0in'>To minimize potential
-      for naming collisions, the identifier should be derived from the internet
-      domain id of the supplying provider (reversing the domain name tokens and
-      appending additional name tokens separated by dot [.]). For example,
-      provider ibm.com could define plug-in identifier com.ibm.db2</li>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l2 level2 lfo3;tab-stops:list 1.0in'>[production rule:
-      PlugInId]</li>
- </ul>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>version </b>- plug-in
-     version number. See org.eclipse.core.runtime.PluginVersionIdentifier for
-     details. Plug-in version format is <b>major.minor.service.qualifier</b>.
-     Change in the major component is interpreted as an incompatible version
-     change. Change in the minor component is interpreted as a compatible
-     version change. Change in the service component is interpreted as <i>cumulative</i>
-     service applied to the minor version.<span style="mso-spacerun:
-     yes">&nbsp; </span>Change in the qualifier component is interpreted as
-     different source code control version of the same component.</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>provider-name</b> <b>-</b>
-     user-displayable name of the provider supplying the plug-in.</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>class - </b>name of the
-     plug-in class for this plug-in. The class must be a subclass of
-     org.eclipse.core.runtime.Plugin.</li>
-</ul>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-XML DTD construction rule <tt><i><span style='font-size:10.0pt;font-family:
-"Courier New"'>element</span></i></tt><tt><span style='font-size:10.0pt;
-font-family:"Courier New"'>*</span></tt> means zero or more occurrences of the
-element; <tt><i><span style='font-size:10.0pt;font-family:"Courier New"'>element</span></i></tt><tt><span
-style='font-size:10.0pt;font-family:"Courier New"'>?</span></tt> means zero or
-one occurrence of the element; and <tt><i><span style='font-size:10.0pt;
-font-family:"Courier New"'>element</span></i></tt><tt><span style='font-size:
-10.0pt;font-family:"Courier New"'>+</span></tt> (used below) means one or more
-occurrences of the element. Based on the &lt;plugin&gt; definition above, this
-means, for example, that a plug-in containing only a run-time definition and no
-extension point declarations or extension configurations is valid (for example,
-common libraries that other plug-ins depend on). Similarly, a plug-in
-containing only extension configurations and no runtime or extension points of
-its own is also valid (for example, configuring classes delivered in other
-plug-ins into extension points declared in other plug-ins). </p>
-
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-&lt;requires&gt; section of the manifest declares any dependencies on other
-plug-ins. </p>
-
-<pre>&lt;!ELEMENT requires (import+)&gt;
-&lt;!ELEMENT import EMPTY&gt;
-&lt;!ATTLIST import
-&nbsp;plugin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp;version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED
- match<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(perfect | equivalent | compatible | greaterOrEqual) &quot;compatible&quot;
-&nbsp;export&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (true | false) &quot;false&quot;
-&nbsp;optional&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (true | false) &quot;false&quot;
-&gt;</pre>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Each
-dependency is specified using an &lt;import&gt; element. It contains the
-following attributes: </p>
-
-<ul type=disc>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l0 level1 lfo6;tab-stops:list .5in'><b>plugin</b> - identifier of
-     the required plug-in</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l0 level1 lfo6;tab-stops:list .5in'><b>version</b> - optional
-     version specification</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l0 level1 lfo6;tab-stops:list .5in'><b>match</b> - version
-     matching rule. Ignored if version attribute is not specified. Determines
-     whether the dependency is satisfied only with a plug-in<span
-     style="mso-spacerun: yes">&nbsp; </span>that has this exact<span
-     style="mso-spacerun: yes">&nbsp; </span>specified version, with a plug-in
-     that has a service or qualifier more recent than this one, with any
-     compatible version (including a more recent minor version of the plug-in)
-     or with any more recent version of this plug-in</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l0 level1 lfo6;tab-stops:list .5in'><b>export</b> - specifies
-     whether the dependent plug-in classes are made visible (are (re)exported)
-     to users of this plug-in. By default, dependent classes are not exported
-     (are not made visible)</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l0 level1 lfo6;tab-stops:list .5in'><b>optional</b> - specifies
-     whether or not this dependency will be strictly enforced.<span
-     style="mso-spacerun: yes">&nbsp; </span>If set to &lt;true&gt; and this
-     dependency cannot be satisfied, the dependency will be ignored</li>
-</ul>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
-name=runtime></a>The &lt;runtime&gt; section of the manifest contains a
-definition of one or more libraries that make up the plug-in runtime. The
-referenced libraries are used by the platform execution mechanisms (the plug-in
-class loader) to load and execute the correct code required by the plug-in. </p>
-
-  <pre>&lt;!ELEMENT runtime (library+)&gt;&nbsp;
-&lt;!ELEMENT library (export*, packages?)&gt;
-&lt;!ATTLIST library&nbsp;
-  name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
-<span style="mso-spacerun: yes">&nbsp; </span>type<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(code | resource) &quot;code&quot;
-&gt;
-&lt;!ELEMENT export EMPTY&gt;&nbsp;
-&lt;!ATTLIST export
-&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
-&gt;
-&lt;!ELEMENT packages EMPTY&gt;
-&lt;!ATTLIST packages
-  prefixes           CDATA #REQUIRED
-&gt;</pre>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-&lt;runtime&gt; element has no attributes. </p>
-
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-&lt;library&gt; elements collectively define the plug-in runtime. At least one
-&lt;library&gt; must be specified. Each &lt;library&gt; element has the
-following attributes: </p>
-
-<ul type=disc>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l1 level1 lfo9;tab-stops:list .5in'><b>name - </b>string
-     reference to a library file or directory containing classes (relative to
-     the plug-in install directory). Directory references must contain trailing
-     file separator.</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l1 level1 lfo9;tab-stops:list .5in'><b>type</b> - specifies
-     whether this library contains executable code (&lt;code&gt;) or just
-     resources.<span style="mso-spacerun: yes">&nbsp; </span>If the library is
-     of type &lt;code&gt; accessing anything in this library will cause activation of
-     the plug-in.<span style="mso-spacerun: yes">&nbsp; </span>Accessing a
-     &lt;resource&gt; will not cause plug-in activation (a potential for significant
-     performance improvement).<span style="mso-spacerun: yes">&nbsp; </span>It
-     should be noted that specifying a library of type &lt;code&gt; allows it to
-     contain both code and resources.<span style="mso-spacerun: yes">&nbsp;
-     </span>But specifying a library of type &lt;resource&gt; assumes it will only be
-     used for resources.</li>
-</ul>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Each
-&lt;library&gt; element can specify which portion of the library should be
-exported. The export rules are specified as a set of export masks. By default
-(no export rules specified), the library is considered to be private. Each export mask
-is specified using the <b>name</b> attribute, which can have the following values:
-
-<ul type=disc>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l5 level2 lfo12;tab-stops:list 1.0in'><b>*</b> - indicates
-      all contents of library are exported (public)</li>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l5 level2 lfo12;tab-stops:list 1.0in'>package.name.* - indicates
-      all classes in the specified package are exported. The matching rules are
-      the same as in the Java import statement.</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l5 level1 lfo12;tab-stops:list .5in'>package.name.ClassName- fully qualified java class name</li>
-</ul>
-
-Each library can also specify the package prefixes. These are used to enhance 
-  the classloading performance for the plug-in and/or fragment. If the &lt;packages&gt; 
-  element is not specified, then by default the classloading enhancements are 
-  not used. The &lt;packages&gt; element has the following attribute: <p></p>
-  <ul type=disc>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l5 level1 lfo12;tab-stops:list .5in'><b>prefixes - </b>a comma-separated
-	 list of package prefixes for the runtime library</li>
-</ul>
-
-More detailed information about package prefixes can be found 
-<a href="plugin_package_prefixes.html">here</a>.
-
-  <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-platform's architecture is based on the notion of configurable extension
-points. The platform itself predefines a set of extension points that cover the
-task of extending the platform and desktop (for example, adding menu actions,
-contributing embedded editor). In addition to the predefined extension points,
-each supplied plug-in can declare additional extension points. By declaring an
-extension point the plug-in is essentially advertising the ability to configure
-the plug-in function with externally supplied extensions. For example, the Page
-Builder plug-in may declare an extension point for adding new Design Time
-Controls (DTCs) into its builder palette. This means that the Page Builder has
-defined an architecture for what it means to be a DTC and has implemented the
-code that looks for DTC extensions that have been configured into the extension
-points. </p>
-
-<pre>&lt;!ELEMENT extension-point EMPTY&gt;&nbsp;&nbsp;
-&lt;!ATTLIST extension-point&nbsp;
-&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
-&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;&nbsp;&nbsp;&nbsp;
-&nbsp; schema&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
-&gt;</pre>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-&lt;extension-point&gt; element has the following attributes: </p>
-
-<ul type=disc>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l3 level1 lfo15;tab-stops:list .5in'><b>name - </b>user-displayable
-     (translatable) name for the extension point</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l3 level1 lfo15;tab-stops:list .5in'><b>id - </b>simple id token,
-     unique within this plug-in. The token cannot contain dot (.) or
-     whitespace.</li>
- <ul type=circle>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l3 level2 lfo15;tab-stops:list 1.0in'>[production rule:
-      ExtensionPointId]</li>
- </ul>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l3 level1 lfo15;tab-stops:list .5in'><b>schema</b> - schema
-     specification for this extension point. The exact details are being
-     defined as part of the Plug-In Development Environment (PDE). The schema
-     is currently not used at runtime. The reference is a file name relative to
-     the plug-in installation location.</li>
-</ul>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Actual
-extensions are configured into extension points (predefined, or newly declared
-in this plug-in) in the &lt;extension&gt; section. The configuration
-information is specified as well-formed XML contained between the &lt;extension&gt;
-and &lt;/extension&gt; tags. The platform does not specify the actual form of
-the configuration markup (other than requiring it to be well-formed XML). The
-markup is defined by the supplier of the plug-in that declared the extension
-point. The platform does not actually interpret the configuration markup. It
-simply passes the configuration information to the plug-in as part of the
-extension point processing (at the time the extension point logic queries all
-of its configured extensions). </p>
-
-<pre>&lt;!ELEMENT extension ANY&gt;&nbsp;
-&lt;!ATTLIST extension&nbsp;
-&nbsp; point&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
-&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
-&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
-&gt;</pre>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
-&lt;extension&gt; element has the following attributes: </p>
-
-<ul type=disc>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l4 level1 lfo18;tab-stops:list .5in'><b>point - </b>reference to
-     an extension point being configured. The extension point can be one
-     defined in this plug-in or another plug-in</li>
- <ul type=circle>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l4 level2 lfo18;tab-stops:list 1.0in'>[production rule:
-      ExtensionPointReference]</li>
- </ul>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l4 level1 lfo18;tab-stops:list .5in'><b>id - </b>optional
-     identifier for this extension point configuration instance. This is used
-     by extension points that need to uniquely identify (rather than just
-     enumerate) the specific configured extensions. The identifier is specified
-     as a simple token unique within the definition of the declaring plug-in.
-     When used globally, the extension identifier is qualified by the plug-in
-     identifier</li>
- <ul type=circle>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l4 level2 lfo18;tab-stops:list 1.0in'>[production rule:
-      ExtensionId]</li>
- </ul>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l4 level1 lfo18;tab-stops:list .5in'><b>name - </b>user-displayable
-     (translatable) name for the extension</li>
-</ul>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b>Important:</b>
-The content of the &lt;extension&gt; element is declared using the <tt><span
-style='font-size:10.0pt;font-family:"Courier New"'>ANY</span></tt> rule. This
-means that any well-formed XML can be specified within the extension
-configuration section (between &lt;extension&gt; and &lt;/extension&gt; tags). </p>
-
-<p></p>Fragments are used to increase the scope of a plug-in.<span style="mso-spacerun: yes">&nbsp; </span>An example would be to incorporate data such as messages or labels in another language.<p></p>
-<pre>&lt;?xml encoding=&quot;US-ASCII&quot;?&gt;&nbsp;
-&lt;!ELEMENT fragment (requires?, runtime?, extension-point*, extension*)&gt;
-&lt;!ATTLIST fragment
-&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp; version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED
-&nbsp; provider-name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED
-<span style="mso-spacerun: yes">&nbsp; </span>plugin-id<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>CDATA #REQUIRED
-<span style="mso-spacerun: yes">&nbsp; </span>plugin-version<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>CDATA #REQUIRED
-<span style="mso-spacerun: yes">&nbsp; </span>match<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(perfect | equivalent | compatible | greaterOrEqual) &quot;compatible&quot;
-&gt;</pre>
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Each fragment must be associated with a specific plug-in.  
-The associated plug-in is identified with &lt;plugin-id&gt;, &lt;plugin-version&gt; and optionally, &lt;match&gt;.  
-Note that if this specification matches more than one plug-in, the matching plug-in with the highest version number will be used.<p></p>
-The &lt;requires&gt;, &lt;runtime&gt;, &lt;extension-point&gt;, and &lt;extension&gt; components of a fragment will be logically added to the matching plug-in.<p></p>
-
-<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>&lt;fragment&gt;
-attributes are as follows: </p>
-
-<ul type=disc>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>name</b> - user
-     displayable (translatable) name for the fragment</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>id</b> - unique identifier
-     for the fragment.</li>
- <ul type=circle>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l2 level2 lfo3;tab-stops:list 1.0in'>To minimize potential
-      for naming collisions, the identifier should be derived from the id of
-      the associated plug-in in addition to something which identifies the
-      scope of this fragment.<span style="mso-spacerun: yes">&nbsp; </span>For
-      example, org.eclipse.core.runtime.nl1 could define a natural language fragment
-      for the org.eclipse.core.runtime plug-in</li>
-  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-      auto;mso-list:l2 level2 lfo3;tab-stops:list 1.0in'>[production rule:
-      PlugInId]</li>
- </ul>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>version </b>- fragment
-     version number. See org.eclipse.core.runtime.PluginVersionIdentifier for
-     details. Fragment version format is the same as plug-in version format.</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>provider-name</b> <b>-</b>
-     user-displayable name of the provider supplying the fragment.</li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>plugin-</b><b
-     style='mso-bidi-font-weight:normal'>id</b> - matches the id of the
-     associated plug-in<b style='mso-bidi-font-weight:normal'><p></p></b></li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>plugin-</b><b
-     style='mso-bidi-font-weight:normal'>version</b> - matches the version of
-     the associated plug-in<b style='mso-bidi-font-weight:normal'><p></p></b></li>
- <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
-     mso-list:l2 level1 lfo3;tab-stops:list .5in'><b>match</b><span
-     style='mso-bidi-font-weight:bold'>  - the matching rule used to find an
-     associated plug-in using &lt;plugin-id&gt; and
-     &lt;plugin-version&gt;.<span style="mso-spacerun: yes">&nbsp; </span>See
-     the definition of &lt;match&gt; in the &lt;requires&gt; clause for
-     complete details.</span><b style='mso-bidi-font-weight:normal'><p></p></b></li>
-</ul>
-
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_package_prefixes.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_package_prefixes.html
deleted file mode 100644
index ddf8287..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/plugin_package_prefixes.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD><TITLE>Using the class loader properties file</TITLE>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1126" name=GENERATOR></HEAD>
-<BODY>
-<H1>Using the class loader enhancements</H1>
-<EM>Last update: December 9, 2002</EM> 
-<P>Eclipse 2.1 includes many performance enhancements, including some in the area 
-  of classloading. In order to help out with this, mark-up has been added to the 
-  plug-in manifest file and this file explains its use. 
-<P>
-<UL>
-  <LI><A href="#activation">Activation</A> 
-  <LI><A href="#format">Format</A> 
-  <LI><A href="#classloader.properties">Use with the Classloader Properties file</A>
-  <LI><A href="#trouble">Trouble-Shooting</A> 
-  <LI><A href="#known issues">Known Issues</A>
-</UL>
-<P>
-<H2><A name=activation></A>Activation</H2>
-The classloader performance enhancements are automatically enabled by default. 
-If the user wishes to override this behaviour and disable them, then they may 
-pass the <CODE>-noPackagePrefixes</CODE> command-line argument to the Eclipse 
-executable. 
-<P>
-<H2><A name=format></A>Format</H2>
-<p>Declaration of the package prefixes in the plug-in manifest file is indicated 
-  by a <code>packages</code> element for each library which is declared in the 
-  file. The <code>packages</code> element has a <code>prefixes</code> attrbute 
-  which lists the package prefixes for that library.</p>
-<p>It is quite common for jar files to contain code which reside in multiple packages. 
-  For instance, the <CODE>org.eclipse.core.runtime</CODE> plug-in contains code 
-  in the following packages:<BR>
-  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;org.eclipse.core.runtime<BR>
-  &nbsp;&nbsp;&nbsp;&nbsp;org.eclipse.core.internal.runtime,<BR>
-  &nbsp;&nbsp;&nbsp;&nbsp;org.eclipse.core.internal.plugins<BR>
-  &nbsp;&nbsp;&nbsp;&nbsp;org.eclipse.core.runtime.model</CODE>. </p>
-<P>In this case, the <code>plugin.xml</code> specifies: 
-<P> 
-<code>&nbsp;&nbsp;&nbsp;&nbsp;&lt;runtime&gt;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;library name=&quot;runtime.jar&quot;&gt;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;export name=&quot;*&quot;/&gt;<br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;packages 
-  prefixes=&quot;org.eclipse.core&quot;/&gt;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/library&gt;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;/runtime&gt;
-</code>
-
-<P>Notice that <CODE>org.eclipse.core</CODE> is a common prefix for all packages 
-in the plug-in. The alternative is to declare all 4 prefixes in the file as a 
-comma-separated list. In this case one must weigh the trade-off between the 
-number of checks required against multiple entries and a prefix which may 
-include false hits. Depending on the way that your code is structured, it might 
-be best to list as many as 5-10 package prefixes rather than going with a more 
-general prefix. For instance, if all your code across multiple plug-ins contains 
-the same prefix (e.g. <CODE>com.mycompany</CODE>) then you will not be taking 
-full advantage of all benefits if you list only the single prefix 
-"com.mycompany" in the file. 
-<P>When a plug-in contains multiple library declarations, each one should account 
-  for the package prefixes from its jar. 
-<P>If you choose not to include any <code>packages</code> elements in your plug-in 
-  manifest your code will still work but you will not be taking advantage of the 
-  class loading optimization. Note that your list of package prefixes <b>must</b> 
-  be complete for all the packages in all the libraries in your plug-in. If this 
-  list is not complete then your code will not work.
-<H2><A name=classloader.properties>Use with the class loader properties file</A></H2>
- 
-<p>In Eclipse 2.0.2 and early Eclipse 2.1 Integration builds, a feature was added 
-  which allowed the user to specify a class loader properties file which contained 
-  the package prefixes to enable the classloader enhancements. Use of this file 
-  is specified <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-core-home/docs/classloader-properties/classloader_properties.html">here</a>. 
-</p>
-<p>Eclipse 2.1 is fully backwards compatible with the class loader properties 
-  file and, in fact, it can be used in conjunction with the package prefix declarations 
-  in the plug-in manifest. This section describes the behaviour of the interaction 
-  between these two mechanisms.</p>
-<p><em>Default behaviour: </em>(no command-line arguments) The package prefixes 
-  will be read from the <code>plugin.xml</code> file and applied to the class 
-  loading strategy. The <code>classloader.properties</code> file is not accessed 
-  or considered.
-<p><em>Using -classloaderProperties: </em>The package prefixes are read from the 
-  <code>plugin.xml</code> file and then the <code>classloader.properties</code> 
-  file is read. If there is an entry in the classloader properties file for a 
-  plug-in which had prefixes defined in the manifest file, the entry in the properties 
-  file will over-ride and take precedence. (the results are NOT merged) If the 
-  entry in the properties file does not contain a value (e.g. <code>org.eclipse.core.runtime=</code>) 
-  then any prefixes declared in the manifest file will be removed and the class 
-  loading strategy will default to not using the enhancements. 
-<p><em>Using -noPackagePrefixes: </em>Any package prefixes declared in the plug-in 
-  manifest file are ignored and the class loader properties file is also not taken 
-  into consideration. The class loading strategy defaults to not using the prefix 
-  enhancements. 
-<p><em>Using both -classloaderProperties and -noPackagePrefixes: </em>Any package declarations 
-  in the plug-in manifest file are ignored. The class loader properties file is 
-  read and any declarations defined within it are taken into consideration when 
-  in class loading.
-<P><h2><A name=trouble>Trouble-shooting</a></h2>
-<p>If you get a <CODE>java.lang.ClassNotFoundException</CODE> then that is an 
-  indication that there might be a problem with your entries in the manifest or 
-  properties files. Try running Eclipse with the <code>-noPackagePrefixes</code> 
-  command-line argument and do NOT use the <code>-classloaderProperties</code> 
-  argument. This will disable all class loading enhancements with respect to the 
-  package prefixes. </p>
-<p>If your code runs fine after doing this, then the files could have the correct 
-  syntax, but the package prefixes in the comma-separated list might be missing 
-  some entries. To verify this is the problem, comment out the appropriate lines 
-  in the file. Use a number sign (#) to comment out the line of the offending 
-  plug-in in the properties file or use HTML comment characters (&lt;!-- ... --&gt;) 
-  to comment out the packages declaration in the offending <code>plugin.xml</code> 
-  file. </p>
-
-<H2><A name="known issues">Known issues</A></H2>
-If a plug-in manifest file declares the list of package prefixes, then all fragments 
-which contribute to it must also list their package prefixes. If they don't then 
-it will result in a <code>NoClassDefFoundError</code> problem. This can be resolved 
-either by using the <code>-noPackagePrefixes</code> command-line argument to turn 
-off the classloader enhancements, or by adding the appropriate package prefix 
-entries to the plug-in and all its fragments. 
-</BODY></HTML>
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></p>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/project_description_file.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/project_description_file.html
deleted file mode 100644
index 2d2e91f..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/project_description_file.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Project description file</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<h1 align="left">
-The project description file</h1>
-<b><i>Description:</i></b> When a project is created in the workspace,
-a project description file is automatically generated that describes the
-project.&nbsp; The purpose of this file is to make the project self-describing,
-so that a project that is zipped up or released to a server can be correctly
-recreated in another workspace.&nbsp; This file is always called ".project",
-and is located as a direct member of the project's content area.&nbsp;
-The name of the file is exposed through the static field <tt>DESCRIPTION_FILE_NAME</tt>
-on <tt>org.eclipse.core.resources.IProjectDescription.</tt>
-<p></p>
-
-<p>The name, location, and content of this file are part of the workspace
-API.&nbsp; This means they are guaranteed not to change in a way that would
-break existing users of the file.&nbsp; However, the right to add additional
-elements and attributes to the markup is reserved for possible future additions
-to the file.&nbsp; For this reason, clients that read the description file
-contents should tolerate unknown elements and attributes.
-</p>
-
-<p>Clients that modify, delete, or replace the project description file
-do so at their own risk.&nbsp; Projects with invalid or missing description
-files will not be generally usable.&nbsp; If a project with an invalid
-description file is discovered on workspace startup, the project is closed,
-and it will not be possible to open it until the project description file
-has been repaired.&nbsp; The workspace will not generally attempt to automatically
-repair a missing or invalid description file.&nbsp; One exception is that
-missing project description files will be regenerated during workspace
-save and on calls to <tt>IProject.setDescription</tt>.
-</p>
-
-<p>Modifications to the project description file have mostly the same effect
-as changing the project description via <tt>IProject.setDescription</tt>.&nbsp;
-One exception is that adding or removing project natures will not trigger
-the corresponding nature's configure or deconfigure method.&nbsp; Another
-exception is that changes to the project name are ignored.
-</p>
-
-<p>If a new project is created at a location that contains an existing
-project description file, the contents of that description file will be
-honoured as the project description.&nbsp; One exception is that the project
-name in the file will be ignored if it does not match the name of the project
-being created.&nbsp; If the description file on disk is invalid, the project
-creation will fail.
-</p>
-
-<br>&nbsp;
-<p><b><i>Configuration Markup:</i></b>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT projectDescription (name, comment, projects,
-buildSpec, natures, linkedResources)></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT name EMPTY></tt>
-<ul>
-<li>
-<b>name </b>- the name of the project.&nbsp; Ignored if it does match the
-name of the project using this description.&nbsp; Corresponds to <tt>IProjectDescription.getName()</tt>.</li>
-</ul>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT comment EMPTY></tt>
-<ul>
-<li>
-<b>comment</b> - a comment for the project.&nbsp; The comment can have
-arbitrary contents that are not interpreted by the project or workspace.&nbsp;
-Corresponds to <tt>IProjectDescription.getComment()</tt>.</li>
-</ul>
-<tt>&nbsp;&nbsp; &lt;!ELEMENT projects (project)*></tt>
-<br><tt>&nbsp;&nbsp; &lt;!ELEMENT project EMPTY></tt>
-<ul>
-<li>
-<b>projects</b> - the names of the projects that are referenced by this
-project.&nbsp; Corresponds to <tt>IProjectDescription.getReferencedProjects().</tt></li>
-</ul>
-<tt>&nbsp;&nbsp; &lt;!ELEMENT buildSpec (buildCommand)*></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT buildCommand (name, arguments)></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT name EMPTY></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT arguments (dictionary?)></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT dictionary (key, value)*></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT key EMPTY></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT value EMPTY></tt>
-<ul>
-<li><b>buildSpec</b> - the ordered list of build commands for this project.&nbsp;
-Corresponds to <tt>IProjectDescription.getBuildSpec().</tt></li>
-<li><b>buildCommand </b>- a single build commands for this project.&nbsp; Corresponds
-to <tt>org.eclipse.core.resources.ICommand.</tt></li>
-<li><b>name</b> - the symbolic name of an incremental project builder.&nbsp;
-Corresponds to <tt>ICommand.getBuilderName().</tt></li>
-<li><b>arguments</b> - optional arguments that may be passed to the project
-builder.&nbsp; Corresponds to <tt>ICommand.getArguments()</tt>.</li>
-<li><b>dictionary</b> - a list of &lt;key, value> pairs in the argument list.&nbsp;
-Analagous to <tt>java.util.Map.</tt></li>
-</ul>
-
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT natures (nature)*></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT nature EMPTY></tt>
-<ul>
-<li>
-<b>natures </b>- the names of the natures that are on this project.&nbsp;
-Corresponds to <tt>IProjectDescription.getNatureIds().</tt></li>
-<li><b>nature </b>- the name of a single natures on this project.</li>
-</ul>
-
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT linkedResources (link)*></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT link (name, type, location)></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT name EMPTY></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT type EMPTY></tt>
-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT location EMPTY></tt>
-
-<ul>
-<li><b>linkedResources</b> - the list of linked resources for this project.</li>
-<li><b>link</b> - the definition of a single linked resource.</li>
-<li><b>name</b> - the name of the linked resource as it appears in the workspace.</li>
-<li><b>type</b> - the resource type.  Value values are: &quot;1&quot; for a file,
-or &quot;2&quot; for a folder.</li>
-<li><b>location</b> - the file system path of the target of the linked resource.  Either an
-absolute path, or a relative path whose first segment is the name of a workspace
-path variable.</li>
-</ul>
-
-<b><i>Examples: </i></b>The following is a sample project description file.&nbsp;
-The project has a single nature and builder configured, and some project
-references.
-<p><tt>&lt;?xml version="1.0" encoding="UTF-8"?></tt>
-<br><tt>&lt;projectDescription></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;name>WinterProject&lt;/name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;comment>This is a cool project.&lt;/comment></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;projects></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;project>org.seasons.sdt&lt;/project></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;project>CoolStuff&lt;/project></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/projects></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;buildSpec></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;buildCommand></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;name>org.seasons.sdt.seasonBuilder&lt;/name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;arguments></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;dictionary></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;key>climate&lt;/key></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;value>cold&lt;/value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;/dictionary></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;/arguments></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/buildCommand></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/buildSpec></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;natures></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;nature>org.seasons.sdt.seasonNature&lt;/nature></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/natures></tt>
-<br><tt>&lt;/projectDescription></tt>
-<br>&nbsp;<b><i></i></b>
-<p><b><i>API Information:</i></b> The contents of the project description
-file map to the <tt>org.eclipse.core.resources.IProjectDescription</tt>
-interface. The project description file can be overwritten by the method
-<tt>IProject.setDescription()</tt>.
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></p></body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/terminology.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/terminology.html
deleted file mode 100644
index a32d8cd..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/terminology.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Glossary of terms</title>
-
-
-</head>
-<body>
-
-<h1>
-Glossary of terms</h1>
-It can be confusing when one person refers to the same thing with different
-terms, and downright misleading if they refer to different things using
-the same term. That's why it's important to choose the right words when
-referring to things in comments, code, and documentation.
-<p><b>Eclipse</b>
-<blockquote>Eclipse is the name for the overall project supporting the
-construction of integrated tools for developing applications. It represents
-a collection of related <a href="http://www.eclipse.org/projects/main.html">projects</a>
-that include the <a href="#Platform"> Eclipse Platform,</a> the <a href="#JDT"> Java development tools
-  (JDT)</a>, and
-the <a href="#PDE"> Plug-in Development Environment (PDE)</a>.</blockquote>
-<b>Eclipse Platform</b>
-<blockquote>Eclipse Platform is the name for&nbsp; the core frameworks
-and services upon which plug-in extensions are created. It provides the
-runtime in which plug-ins are loaded and run. In order to use the term
-with the right degree of (im)precision, it is useful to know some things
-about the Platform. First off, the Eclipse Platform itself is not really
-a true product that would ship by itself. The Platform's direct consumers
-are tool builders, or ISVs, since they add the value to the Eclipse Platform
-that makes it useful to people.</blockquote>
-
-<ul>The Eclipse Platform is divided up into <i>Core </i>and <i>UI</i>.
-Anything classified as "UI" needs a window system, whereas things classified
-as "Core" can run "headless". The UI portion of the Eclipse Platform is
-known as the <a href="#Workbench">Workbench</a>. The core portion of the
-Eclipse Platform is simply called the <a href="#Core">Platform Core</a>,
-or Core.
-<p>So the Eclipse Platform is just the nucleus around which tool builders
-build tool plug-ins.</ul>
-<b>Eclipse SDK</b>
-<blockquote>The Eclipse SDK is the <a href="#Eclipse Platform">Eclipse
-Platform</a>, <a href="#JDT">JDT</a>, and <a href="#PDE">PDE</a>.
-In addition to the Platform, the SDK provides the development tools required
-to, among other things, enable Eclipse to be a development environment
-for itself.</blockquote>
-<a NAME="Platform"></a><b>Platform - </b>Short for "<a href="#Eclipse Platform">Eclipse
-Platform</a>".
-<p><a NAME="Workbench"></a><b>Workbench</b> - Short for "Eclipse Platform
-UI".
-<blockquote>The Workbench is a high-level UI framework for building products
-with sophisticated UIs built from pluggable components. The Workbench is
-built atop <a href="#JFace">JFace</a>, <a href="#SWT">SWT</a>, and the
-<a href="#Core">Platform
-Core</a>.</blockquote>
-<a NAME="Core"></a><b>Core</b> - Short for "Eclipse Platform Core".
-<blockquote>All the UI-free infrastructure of the <a href="#Eclipse Platform">Eclipse
-Platform</a>. The major divisions are: platform runtime and plug-in management,
-workspaces and resource management, and version and configuration management.</blockquote>
-<a NAME="Runtime"></a><b>Runtime</b> - Short for "Eclipse Platform Core
-Runtime".
-<blockquote>The lowest level part of the <a href="#Core">Platform Core</a>,
-responsible for the plug-in registry and plug-ins. Note that the Platform
-Core Runtime does not include workspaces and resources (they're in the
-Resources plug-in).</blockquote>
-<a NAME="Workspace"></a><b>Workspace</b>
-<blockquote>A workspace is the general umbrella for managing resources
-in the Eclipse Platform. Note that workspaces and resources are an optional
-part of the Platform; some configurations of the Platform will not have
-a workspace.</blockquote>
-<a NAME="UI"></a><b>UI</b> - Short for "Eclipse Platform UI".
-<blockquote>All-inclusive term for the UI portion of the <a href="#Eclipse Platform">Eclipse
-Platform</a>.</blockquote>
-<a NAME="JFace"></a><b>JFace</b>
-<blockquote>JFace is the mid-level UI framework useful for building complex
-UI pieces such as property viewers. JFace works in conjunction with <a href="#SWT">SWT</a>.</blockquote>
-<a NAME="SWT"></a><b>SWT</b>
-<blockquote>SWT (Standard Widget Toolkit) is a small, fast widget toolkit
-with a portable API and a native implementation. So far, SWT has been ported
-to Windows, Linux (GTK and Motif window systems), AIX (Motif), Solaris (Motif),
-  HP-UX (Motif), QNX (Photon) and Mac OS X (Carbon).</blockquote>
-
-<a name="JDT"><b>JDT</b>
-</a>
-<blockquote>Java development tools (n.b. &quot;development tools&quot; in
-  lowercase, for legal reasons) adds Java program development capability to the
-  Eclipse Platform.</blockquote>
-
-<a name="PDE"><b>PDE</b>
-</a>
-<blockquote>The Plug-in Development Environment adds specialized tools for
-  developing Eclipse plug-ins.</blockquote>
-
-<h3>
-&nbsp;<a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></h3>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/ui_accessibility_tips.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/ui_accessibility_tips.html
deleted file mode 100644
index c8e0e7e..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/ui_accessibility_tips.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-
-<html>
-<head>
-<title>Tips For making user interfaces accessible</title>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body>
-<h1>Tips for making user interfaces accessible </h1>
-<p>Below is a series of tips for making something usable to the IAccessibility
-interface provided by Windows. </p>
-<p>1) Use Groups instead of Labels </p>
-<blockquote>
-  <p>If you use a Label to title a group of related widgets remove the label and
-  replace thier parent composite with a Group whose text is the same as the
-  title Label. </p>
-</blockquote>
-<p>2) Avoid intermediate Composites. </p>
-<blockquote>
-  <p>IAccessibility tools will read as far up the parent hierarchy of a widget
-  with focus as there are widgets to read. Be sure there are no widgets without
-  text anywhere in the tree. </p>
-</blockquote>
-<p>3) Use Read Only Texts instead of Labels </p>
-<blockquote>
-  <p>A text can be accessed using the keyboard and should be used if you want
-  the information in a label to be accessible to keyboard navigation. Please
-  note that a label beside a text will be treated as a title and so if you have
-  a title:value pair you wish to show it is only required that you make the
-  value widget a Text.&nbsp; </p>
-</blockquote>
-<p>4) <font COLOR="#000000"> Read and understand the IBM checklist. <a href="http://www-3.ibm.com/able/accesssoftware.html">
-http://www-3.ibm.com/able/accesssoftware.html</a></font> </p>
-<p><font COLOR="#000000">5) Assign mnemonics to all menus and menu items.</font></p>
-<blockquote>
-  <p>E<font COLOR="#000000">nsure they are unique within a given menu. If a menu
-  is dynamically composed from multiple plugins, it may be better to not assign
-  mnemonics since conflicts cannot be avoided in general (e.g. the <b>File &gt; New</b>
-  list, or <b>Window &gt; Show View</b> list)</font></p>
-</blockquote>
-<p><font COLOR="#000000">&nbsp;6) Assign mnemonics to all labels of controls in
-dialogs / preference pages / property pages (e.g. buttons, checkboxes, radio
-buttons, etc)</font></p>
-<p><font COLOR="#000000">Ensure they are unique within the dialog. Be careful to
-avoid collisions with the default buttons (e.g. Restore &amp;Defaults,
-&amp;Apply in preference pages; &amp;Next, &amp;Back, &amp;Finish in wizards).
-Do not assign mnemonics to OK and Cancel buttons. If you make OK the default
-button of the shell, and Cancel is equivalent to closing the shell, then Enter
-and Esc map to these by default. Generally doing something with Esc or Enter is
-a bad idea. </font></p>
-<p><font color="#000000">7) </font>I<font COLOR="#000000">f a control does not
-have its own label (e.g. a text field), use a preceeding label ending with ':'
-and assign a mnemonic to it.&nbsp; Screen readers like JAWS will read this label
-when the control has focus (e.g. see <b>Window &gt; Preferences &gt; Workbench</b>)</font></p>
-<p><font COLOR="#000000">8) Avoid extra freestanding labels as you cannot
-navigate to them with the keyboard and screen readers like JAWS skip these since
-they don't take focus</font></p>
-<p><font COLOR="#000000">9) Do not assign mnemonics on controls in the main
-window (other than main menus and main menu items), even if it looks like a
-dialog (e.g. the form editors in WSAD) as these will usually conflict with menu
-mnemonics</font></p>
-<p><font COLOR="#000000">10) Assign shortcut keys for frequently used functions
-(and -only- frequently used functions).</font></p>
-<blockquote>
-  <p><font COLOR="#000000">There are currently only two ways to hook shortcut
-  keys in SWT:</font></p>
-  <ul>
-    <li><font COLOR="#000000">by setting an accelerator on a menu item in the
-      main menubar (they are ignored in context menus)- JFace actions have
-      support for this</font></li>
-    <li><font COLOR="#000000">by hooking a key listener on a particular control
-      (e.g. in the implementation of a view or editor)</font></li>
-  </ul>
-  <p><font COLOR="#000000">Consult the table of Eclipse SDK shortcut keys
-  (available off of eclipse.org -&gt; Projects -&gt; Eclipse Project -&gt;
-  Platform -&gt; UI -&gt; Development Resources -&gt; Accessibility) to avoid
-  collision.</font></p>
-</blockquote>
-<p><font COLOR="#000000">12) Avoid Alt+{key} combinations since they may
-conflict with menu mnemonics</font></p>
-<p><font COLOR="#000000">13) Avoid Ctrl+Alt+{key} combinations since they often
-conflict with entering special characters on international keyboards (alt Gr =
-Ctrl+Alt)</font></p>
-<p><font COLOR="#000000">14) Avoid Ctrl+Space+{key} combinations since
-Ctrl-Space is used for mode switching in Asian languages.</font></p>
-<p><font COLOR="#000000">15) Try to save navigation context.</font></p>
-<blockquote>
-  <p><font COLOR="#000000">e.g. in Workbench / Preferences, we now remember
-  which page you had selected last. This avoids having to navigate through the
-  list each time</font></p>
-</blockquote>
-<p><font color="#000000">16) Assign a specific person on the team to be
-responsible for accessibility on your project.</font></p>
-<p><font color="#000000">17) Test for accessibility.</font></p>
-<blockquote>
-  <p><font color="#000000">Have your team hold an occasional &quot;unplug your
-  mouse day&quot; where they try to use the product using keyboard only. Get a
-  copy of JAWS<font size="-1"><sup>TM</sup></font> (http://www.freedomscientific.com/) and ensure that your UI is
-  usable with it</font></p>
-</blockquote>
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</body>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/update_sitemap.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/update_sitemap.html
deleted file mode 100644
index 92532a7..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/update_sitemap.html
+++ /dev/null
@@ -1,214 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="Lab User">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Update server site map</title>
-</head>
-<body>
-
-<h1>
-Update server site map</h1>
-The default Eclipse update server is any URL-accessible server. The default
-implementation assumes a fixed-layout server. The content of the server
-(in terms of available features and plug-ins) is described in a site map
-file, <i>site.xml</i>. This file can be manually maintained, or can be
-dynamically computed by the server.
-<h3>
-Site Map</h3>
-The update server URL can be specified as a full URL to the site map file,
-or a URL of a directory path containing the site map file (similar to index.html
-processing). The site map site.xml format is defined by the following dtd:
-<p><tt>&lt;?xml encoding="ISO-8859-1"?></tt>
-<p><tt>&lt;!ELEMENT site (description?, feature*, archive*, category-def*)></tt>
-<br><tt>&lt;!ATTLIST site</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT description (#PCDATA)></tt>
-<br><tt>&lt;!ATTLIST description</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT feature (category*)></tt>
-<br><tt>&lt;!ATTLIST feature</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #IMPLIED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT archive EMPTY></tt>
-<br><tt>&lt;!ATTLIST archive</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT category EMPTY></tt>
-<br><tt>&lt;!ATTLIST category</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>></tt>
-<p><tt>&lt;!ELEMENT category-def (description?)></tt>
-<br><tt>&lt;!ATTLIST category-def</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-CDATA #REQUIRED</tt>
-<br><tt>></tt>
-<p>The element and attribute definitions are as follows:
-<ul>
-<li>
-&lt;site> - defines the site map</li>
-
-<ul>
-<li>
-type - optional site type specification. The value refers to a type string
-registered via the install framework extension
-point. If not specified, the type is assumed to be the default Eclipse
-site type (as specified in this document).</li>
-
-<li>
-url - optional URL defining the update site baseline URL (used to determine
-individual &lt;feature> and &lt;archive> location).&nbsp; Can be relative
-or absolute. If relative, is relative to site.xml. If not specified, the
-default is the URL location of the site.xml file.</li>
-</ul>
-
-<li>
-&lt;description> - brief description as simple text. Intended to be translated.</li>
-
-<ul>
-<li>
-url - optional URL for the full description as HTML. The URL can be specified
-as absolute of relative. If relative, If relative, is relative to site.xml.</li>
-
-<br>Note, that for NL handling the URL value should be separated to allow
-alternate URLs to be specified for each national language.</ul>
-
-<li>
-&lt;feature> - identifies referenced feature archive</li>
-
-<ul>
-<li>
-type - optional feature type specification. The value refers to a type
-string registered via the install framework extension
-point. If not specified, the type is assumed to be the default feature
-type for the site. If the site type is the default Eclipse site type, the
-default feature type is the packaged feature type (as specified in this
-document).</li>
-
-<li>
-id - optional feature identifier. The information is used as a performance
-optimization to speed up searches for features. Must match the identifier
-specified in the feature.xml of the referenced archive (the url attribute).
-If specified, the version attribute must also be specified.</li>
-
-<li>
-version - optional feature version. The information is used as a performance
-optimization to speed up searches for features. Must match the version
-specified in the feature.xml of the referenced archive (the url attribute).
-If specified, the id attribute must also be specified.</li>
-
-<li>
-url - required URL reference to the feature archive. Can be relative or
-absolute. If relative, it is relative to the location of the site.xml file.
-<b>Note</b>:
-the default site implementation allows features to be accessed without
-being explicitly declared using a &lt;feature> entry. By default, an undeclared
-features reference is interpreted as "features/&lt;id>_&lt;version>.jar"</li>
-</ul>
-
-<li>
-&lt;archive> - identifies referenced "storage" archive (the actual files
-referenced via the <tt>&lt;plugin></tt> or <tt>&lt;data></tt> elements
-in the feature manifest). The site simply manages archives as a path-to-URL
-map. The default Eclipse site implementation does not require the &lt;archive>
-section to be included in the site map (site.xml). Any archive reference
-not explicitly defined as part of an &lt;archive> section is assumed to
-be mapped to a url in the form "&lt;archivePath>" relative to the location
-of the site.xml file.</li>
-
-<ul>
-<li>
-path - required archive path identifier. This is a string that is determined
-by the feature referencing
-this archive and is not otherwise interpreted by the site (other than as
-a lookup token).</li>
-
-<li>
-url - required URL reference to the archive. Can be relative or absolute.
-If relative, it is relative to the location of the site.xml file.</li>
-</ul>
-
-<li>
-&lt;category-def> - an optional definition of a category that can be used
-by installation and update support to hierarchicaly organize features</li>
-
-<ul>
-<li>
-name - category name. Is specified as a path of name tokens separated by
-/</li>
-
-<li>
-label - displayable label. Intended to be translated.</li>
-</ul>
-
-<li>
-&lt;category> - actual category specification for a feature entry</li>
-
-<ul>name - category name</ul>
-</ul>
-Note, that in general the feature.xml&nbsp; manifest documents should specify
-UTF-8 encoding. For example
-<p><tt>&lt;?xml version="1.0" encoding="UTF-8"?></tt>
-<p>Translatable text contained in the site.xml can be separated into site&lt;_locale>.properties
-files using Java property bundle conventions. Note that the translated
-strings are used at installation time (ie. do not employ the plug-in fragment
-runtime mechanism). The property bundles are located relative to the site.xml
-location.
-<h3>
-Default Site Layout</h3>
-<tt>&lt;site root>/</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; site.xml</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; features/</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feature archives&nbsp;&nbsp;
-(eg. org.eclipse.javatools_1.0.1.jar)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;featureId>_&lt;featureVersion>/&nbsp;&nbsp;&nbsp;
-(optional)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-non-plug-in files for feature</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; plugins/</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plug-in argives&nbsp;&nbsp;&nbsp;
-(eg. org.eclipse.ui_1.0.3.jar)</tt>
-<h3>
-Controlling Access</h3>
-The default Eclipse site implementation provides support for http access
-with basic user authentication (userid and password).
-<p>Custom access control mechanisms can be added to base Eclipse in one
-of 2 ways:
-<ul>
-<li>
-by supplying server-side logic on the update server (eg. implementing servlets
-that compute the site.xml map, and control access to individual archives
-based on some user criteria)</li>
-
-<li>
-by supplying a custom concrete implementation of the site object (installed
-on the client machine, update server specified <tt>&lt;site type=""></tt>).
-The custom concrete site implementation, together with any server-side
-logic support the required control mechanisms.</li>
-</ul>
-Eclipse provides an example demonstrating an implementation of an access
-mechanism based on feature key files.
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/web_triggered_updates.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/web_triggered_updates.html
deleted file mode 100644
index e524cbc..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/web_triggered_updates.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="Lab User">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Web-triggered updates</title>
-</head>
-<body>
-
-<h1>
-Web-triggered updates</h1>
-<p>Eclipse update manager can be used to render and browse Eclipse update sites
-in a predictable manner. An update site can contain categories shown in the tree
-view, and these categories in turn contain features. Features can be inspect in
-the Preview view inside update manager. If a feature is a valid install
-candidate, it will contain a button &quot;Install Now&quot; that will launch
-Eclipse install wizard. Upon completion of the install task, the feature will be
-part of the product.</p>
-<p>This standard way of presenting features for installation is not the only
-way. Providers can take over presentation, registration, search and other tasks
-from update manager and return control only when it is time to actually install
-a feature into an Eclipse product.</p>
-<p>Update manager is capable of running a servlet that can accept requests from
-Web pages. This capability is not automatic: it must be activated in <b>Preferences&gt;Install/Update&gt;Web-triggered
-Updates</b> page. When <b>OK</b> is pressed, update manager will activate the
-application server that can handle incoming requests. After that, all URLs
-opened from within Update Manager will be encoded with the callback URL
-information. If the initial URL is a regular Web page, the encoded URL will have
-the query part that adds the callback URL to use to call Eclipse:</p>
-<blockquote>
-  <div align="left">
-    <pre align="left">http://acme.com/myApplication.html</pre>
-  </div>
-</blockquote>
-<p align="left">becomes</p>
-<blockquote>
-  <div align="left">
-    <pre align="left">http://acme.com/myApplication.html?updateURL=&lt;localhost&gt;:&lt;localport&gt;?org.eclipse.update/install</pre>
-  </div>
-</blockquote>
-<p align="left">where 'localhost' is the address of the Eclipse server running
-on your local machine, local port is selected dynamically when the server is
-started, and the query is the Eclipse Web application name and the name of the
-servlet that handles the request.</p>
-<p align="left">If the original URL is already a query:</p>
-<blockquote>
-  <div align="left">
-    <pre align="left">http://acme.com/myApplication/myServlet?arg1=value1&amp;arg2=value2</pre>
-  </div>
-</blockquote>
-<p align="left">the encoding will simply add our information as another
-parameter:</p>
-<blockquote>
-  <div align="left">
-    <pre align="left">http://acme.com/myApplication/myServlet?arg1=value1&amp;arg2=value2&amp;updateURL=&lt;localhost&gt;:&lt;localport&gt;?org.eclipse.update/install</pre>
-  </div>
-</blockquote>
-<p align="left">The encoding is ignored by normal web pages and queries and does
-not cause any problems nor it affects the presentation. It simply adds
-information that can be used by a page that knows about it.</p>
-<p align="left">Since a Web page must be launched from update manager, site
-bookmarks in Updates view can be created as Web bookmarks. Update manager treats
-these bookmarks accordingly and when you double-click on one, it will open the
-URL in a browser (if embedded browser is available on the version of operating
-and windowing system, it will open directly inside update manager; otherwise, it
-will open in the resident browser window).</p>
-<h3 align="left">Tasks that can be performed in a Web page</h3>
-<p align="left">Providers can set up their Update web pages any way they want:
-they can use elaborate Web applications backed by databases, or use simple,
-static HTML. Using more complex architecture allows providers to offer more
-value to users. Complex searches for new features, updates and e-fixes, rich
-visual presentations of selected features, articles on their functionality,
-various useful links, 'most popular features' votes are just some of the
-possibilities. In addition, providers can enable authentication to restrict
-access to some of the features, require user registration etc.</p>
-<h3 align="left">Calling Eclipse from a Web page</h3>
-<p align="left">There are many different ways to extract the encoded
-information. A very simple one is to use Java Script function as shown below:</p>
-<blockquote>
-  <pre align="left">&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;
-
-function getArgs() {
-   var args = new Object();
-   var query = location.search.substring(1);
-   var pairs = query.split(&quot;&amp;&quot;);
-   for (var i=0; i&lt;pairs.length; i++) {
-      var pos = pairs[i].indexOf('=');
-      if (pos == -1) continue;
-      var argname = pairs[i].substring(0, pos);
-      var value = pairs[i].substring(pos+1);
-      args[argname] = unescape(value);
-   }
-   return args;
-}
-&lt;/SCRIPT&gt;</pre>
-</blockquote>
-<p align="left">The function above parses the URL of the current page and
-returns query arguments as an array.</p>
-<p align="left">The role of the callback URL is to allow Web pages to return
-control back to Eclipse. Once user selected a feature to install, it must return
-back to Eclipse to complete it. The role of Web-triggered update is not to make
-update sites obsolete: they are still needed, but in this scenario they are used
-simply as a location where features are physically stored. Web page must at some
-point call back into Eclipse and pass the update site URL, as well as the
-selected feature ID and version. This information is encoded by using the
-original callback URL and adding the arguments, thus forming a query.</p>
-<p>The arguments for the callback query are:</p>
-<ul>
-  <li><b>server</b> - expects a URL of the Eclipse Update site (the one with
-    site.xml) where feature and plug-in archives are placed. This URL can be the
-    same as the web site, or can be a completely different server (you probably
-    had experience with download sites in which the actual data servers are
-    different from the front end and use different protocols, e.g. FTP).
-  <li><b>feature</b> - expects a string in the form &lt;id&gt;_&lt;version&gt;
-    where 'id' is the feature identifier and 'version' is its version. These
-    values will be used to locate the feature on the update server.
-  <li><b>backURL</b> - passes the URL of the page itself that will be used in
-    Eclipse servlet to feed the 'Go Back' links (those that will get you back to
-    this page)</li>
-</ul>
-<p align="left">Calling back to Eclipse should be done when users finished all
-their selections in the Web page and all that is left is to press some kind of
-'Download' button or hyperlink. A simple implementation of this capability would
-be:</p>
-<div align="left">
-  <blockquote>
-    <pre align="left">&lt;input type=&quot;button&quot; 	name=&quot;Download&quot; value=&quot;Download&quot; 
-			onClick=&quot;javascript:download('com.example.root', '1.0.0')&quot;&gt;</pre>
-  </blockquote>
-</div>
-<p>In the code above, feature Id and versions are hard-coded in the button tag.</p>
-<p>The download function can be implemented as follows:</p>
-<blockquote>
-  <pre>function download(id, version) {
-   var args = getArgs();
-   if (args.updateURL) {
-      var updateURL = args.updateURL;
-      var callback = updateURL+&quot;?server=
-      &quot;+escape(&quot;<a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-update-home/optionalSite/index.html">http://acme.com/updateSite</a>/&quot;)+
-      &quot;&amp;feature=&quot;+escape(id+'_'+version)+&quot;&amp;backURL=&quot;+escape(location);
-      location = callback;
-   }
-}</pre>
-</blockquote>
-<p>In the JavaScript function above, the callback URL that was encoded in the
-page URL from the beginning is used to form the query. Once the query is
-created, the browser is asked to open it. This step will cause the browser to
-call Eclipse servlet, which will process the query, connect to the provider
-update site (in this case &quot;http://acme.com/updateSite/&quot;) and locate
-the feature with the provided id and version. If everything goes well, Eclipse
-window will be brought to the top and the familiar install wizard will open. At
-that point, you will be back in Eclipse and can finish the installation as
-usual.</p>
-<p>It is important to point out that having encoded callback URL is crucial for
-the whole mechanism. If the page that contains the 'download' link or button is
-several levels deep in the web site map, the root web page (the one launched
-from update manager) has to ensure the callback URL passed down to all pages
-opened from within that page. It can be done in various ways (direct encoding in
-the page, saving a transient cookie, storing it in a servlet that serves the
-pages from the site etc.).</p>
-<p>&nbsp;</p>
-<p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a>
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/welcome.html b/bundles/org.eclipse.platform.doc.isv/reference/misc/welcome.html
deleted file mode 100644
index 0458ee5..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/welcome.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Welcome Page Configuration</title>
-</head>
-<body>
-
-<h1>Welcome Pages</h1>
-
-<p>Welcome pages are used to familiarize the user with a given aspect of the
-workbench.</p>
-
-<p><img alt="Default Welcome Page" border="0" src="welcome.jpg" width="602" height="480"></p>
-
-<p>Each feature can contribute a welcome page. This is done by including a&nbsp; <b>welcomePage</b> 
-attribute in the <b>about.ini</b> file in the sub-directory of the feature's plug-in.</p>
-
-<p class="Code">welcomePage = $nl$/welcome.xml</p>
-
-<p>
-The value of the <b>welcomePage</b> attribute is an XML-like file defining the welcome page.<br>
-The file has the following format:</p>
-
-<p><b> &lt;welcomePage></b> tag with&nbsp;</p>
-<ol>
-  <li>an optional title attribute</li>
-  <li>an optional format attribute</li>
-  <li>an optional &lt;intro> tag</li>
-  <li>0 or more &lt;item> tags</li>
-</ol>
-<p>The <b> format</b> tag can have a value of &quot;wrap&quot; or &quot;nowrap&quot;.
-If the format attribute is &quot;wrap&quot;, the text within the Welcome Editor will be wrapped 
-to fit the size of its window.  Note that line breaks within text will be preserved when
-wrapping unless paragraph (<b>&lt;p&gt;</b>) tags are used.  If the format attribute is not specified, the default 
-value of &quot;nowrap&quot; will be used.
-</p>
-<p>The <b> intro</b> and <b> item</b> tags can contain the following</p>
-<ol>
-  <li>Text (with line breaks preserved)</li>
-  <li>Paragraph (<b>&lt;p&gt;</b>) tags to indicate which text should be wrapped.
-   <p>Text between <b>&lt;p&gt;</b> tags will be treated as one continuous line (i.e., line breaks within the <b>&lt;p&gt;</b> text 
-   will be &quot;soft&quot;).  The <b>&lt;p&gt;</b> tag only applies when format = &quot;wrap&quot;.
-   If format = &quot;nowrap&quot;, paragraph tags will be ignored.</p>
-  </li>
-  <li>Bold (<b>&lt;b&gt;</b>) tags</li>
-  <li>Action (<b>&lt;action&gt;</b>) tags containing the following attributes
-    <p><b>pluginId</b> (the id of the plug-in containing the action)</p>
-    <p><b>
-		class</b> (the qualified name of the action class to instantiate and run)</li>
-  <li>Help topic (<b>&lt;topic&gt;</b>) tags containing the following attributes
-    <p><b>
-		id</b> (the id of the infoset to show in the help viewer)
-    <p><b>href</b> (optional - a valid help topic URL
-    contained in the specified infoSet and having the following
-    format:&nbsp;&nbsp;<b><br>
-    /pluginID/path_to_document</b>)</li>
-</ol>
-<p>
-	Note that text between the start and end tags for actions and help topics will appear as a highlighted link.</p>
-<p>Below is an example welcome page.  The text for the second item will be wrapped.</p>
-<pre><font color="#4444CC">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
-&lt;welcomePage 
-    title=&quot;Eclipse Platform&quot;
-    format = &quot;wrap&quot;&gt;
-
-&lt;intro&gt;This page will help familiarize you with the Eclipse Workbench.
-To get started, read the sections below and click on the related links. &lt;/intro&gt;
-
-&lt;item&gt;&lt;b&gt;Installed Features &lt;/b&gt;
-To find out more about the features installed in your workbench, choose
-&lt;action pluginId=&quot;org.eclipse.ui&quot;
-   class=&quot;org.eclipse.ui.internal.QuickStartAction&quot;&gt;Help &gt; Welcome...&lt;/action&gt;
-and select the feature you are interested in.&lt;/item&gt;
-
-&lt;item&gt;&lt;b&gt;Perspectives, views and editors &lt;/b&gt;
-&lt;p&gt;A window contains one or more perspectives. A perspective consists of views (e.g. Navigator)
-and editors for working with your resources.
-The shortcut bar at the far left of the window allows you to open new perspectives and move
-between perspectives that are already open. The perspective you are currently working with
-is shown in the title of the window and in the shortcut bar as a pushed-in icon.&lt;/p&gt;&lt;/item&gt;
-
-&lt;item&gt;&lt;b&gt;Configuring your perspectives&lt;/b&gt;
-You can move views and editors around the workbench by dragging their titlebars. You can
-also add more views to your current perspective by using Window &gt; Show View.
-To reset the perspective to its original state, choose
-&lt;action pluginId=&quot;org.eclipse.ui&quot;
-   class=&quot;org.eclipse.ui.internal.ResetPerspectiveAction&quot;&gt;Window &gt; Reset Perspective&lt;/action&gt;.
-Once you have arranged your perspective, you can save it using Window &gt; Save Perspective As....
-You can customize the views, perspectives and New menu operations that show up for
-your perspective. To do this choose
-&lt;action pluginId=&quot;org.eclipse.ui&quot;
-   class=&quot;org.eclipse.ui.internal.EditActionSetsAction&quot;&gt;Window &gt; Customize Perspective...&lt;/action&gt; .
-A view can additionally be converted into a Fast View by dragging it to the shortcut bar (at the
-far left of the window). &lt;/item&gt;
-
-&lt;item&gt;&lt;b&gt;Learn more &lt;/b&gt;
-To learn more you can browse the
-&lt;topic id=&quot;/org.eclipse.platform.doc.user/toc.xml&quot;&gt;Workbench User Guide&lt;/topic&gt;.&lt;/item&gt;
-
-&lt;/welcomePage&gt;</font></pre>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. and others 2000, 2002." BORDER=0 width="250" height="12"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/welcome.jpg b/bundles/org.eclipse.platform.doc.isv/reference/misc/welcome.jpg
deleted file mode 100644
index c43f7ca..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/welcome.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/reference/misc/win_only.gif b/bundles/org.eclipse.platform.doc.isv/reference/misc/win_only.gif
deleted file mode 100644
index 1d7cb0c..0000000
--- a/bundles/org.eclipse.platform.doc.isv/reference/misc/win_only.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/samples/hglegal.htm b/bundles/org.eclipse.platform.doc.isv/samples/hglegal.htm
deleted file mode 100644
index 2c87542..0000000
--- a/bundles/org.eclipse.platform.doc.isv/samples/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. and others 2000, 2002. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/samples/ngibmcpy.gif b/bundles/org.eclipse.platform.doc.isv/samples/ngibmcpy.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.platform.doc.isv/samples/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.isv/samples/samples.html b/bundles/org.eclipse.platform.doc.isv/samples/samples.html
deleted file mode 100644
index 106e97b..0000000
--- a/bundles/org.eclipse.platform.doc.isv/samples/samples.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Installation of Examples</title>
-   <LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body>
-
-<h1>
-<b>Installing the examples</b></h1>
-
-<h3>
- Installing examples via the Update Manager</h3>
-
-<p>
-The Eclipse SDK examples are found on the Eclipse project update site at <a href="http://update.eclipse.org/updates">http://update.eclipse.org/updates</a>.
-To locate and install them into a product:</p>
-
-<ol>
-  <li>Open the main update manager by clicking <b>Help &gt; Software Updates &gt;
-    Update Manager</b>. This opens the Install/Update perspective.</li>
-  <li> In the Feature Updates view, select <b>New
-    &gt; Site Bookmark</b> from the context menu. In the New Site Bookmark dialog that opens, give the site
-    the name 
-    &quot;Eclipse.org&quot; and URL
-	&quot;http://update.eclipse.org/updates&quot;.</li>
-  <li>Expand the 
-    &quot;Eclipse.org&quot; item and select the feature named &quot;Eclipse SDK
-    Examples&quot; (or &quot;Eclipse SDK Examples (Windows)&quot; if you're on
-    Windows). Click the <b>Install</b> button
-    within the Preview view.</li>
-  <li>The Feature Install wizard confirms the details of the feature you are
-    about to install. Click <b>Next</b>.</li>
-  <li> Select the directory into which the example feature is to be installed and hit <b>Next</b>.</li>
-  <li> <p>Click <b>Install</b> to allow the downloading and installing
-    to proceed.</p></li>
-  <li> Click <b>Yes</b> when asked to exit and restart the workbench for the
-    changes to take effect. The examples are now installed in the workbench.</li>
-</ol>
-
-<h3>
- Installing examples manually</h3>
-To install the examples without the Update Manager, download the appropriate Eclipse SDK Example zip file from the
-Eclipse project web site at <a href="http://www.eclipse.org/downloads">http://www.eclipse.org/downloads</a>.
-<p>
-The workbench should not be running while the examples are being&nbsp;
-installed.&nbsp; Extract the contents of the zip file to the root directory&nbsp;
-of your Eclipse installation.&nbsp;</p>
-<p> For example, if you installed the Eclipse
-Project SDK on <b> d:\eclipse-sdk\</b> then extract the contents of the examples
-zip file to <b>d:\eclipse-sdk\</b> (the
-subdirectories named <b>eclipse</b> should line up).</p>
-<p>Start the workbench.&nbsp;The workbench will report that updates have been
-detected; accept them. The examples are now installed in the workbench.</p>
-
-<p>You can verify that examples have been installed by looking for <b>File &gt;
-New &gt; Example...</b> in the workbench menu bar.</p>
-
-<p>&nbsp;
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.isv/schema.css b/bundles/org.eclipse.platform.doc.isv/schema.css
deleted file mode 100644
index 4efbf26..0000000
--- a/bundles/org.eclipse.platform.doc.isv/schema.css
+++ /dev/null
@@ -1,66 +0,0 @@
-H6.CaptionFigColumn#header {
-	font-size:16px; 
-	display:inline
-}
-
-P.Note#copyright {
-	font-size: smaller; 
-	font-style: normal;
-	color: #336699; 
-	display:inline;
-	margin-top: 3.000000pt;
-	margin-bottom: 11.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 0.000000pt;
-}
-
-P.Code#dtd {
-	color: #800000; 
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 10.000000pt;
-}
-
-P.Code#dtdAttlist {
-	color: #800000; 
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 20.000000pt;
-}
-
-P.Code#tag {
-	color: #000080; 
-	display:inline;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 0.000000pt;
-}
-
-P.Code#cstring {
-	color: #008000; 
-	display:inline;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 0.000000pt;	
-}
-
-.ConfigMarkup#elementDesc {
-	color: black;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 10.000000pt;
-}
-
-.ConfigMarkup#attlistDesc {
-	color: black;
-	margin-top: 0.000000pt;
-	margin-bottom: 0.000000pt;
-	margin-right: 0.000000pt;
-	margin-left: 32.000000pt;
-}
-
diff --git a/bundles/org.eclipse.platform.doc.isv/toc.xml b/bundles/org.eclipse.platform.doc.isv/toc.xml
deleted file mode 100644
index 26b0bdf..0000000
--- a/bundles/org.eclipse.platform.doc.isv/toc.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define the top level topics                                                   -->
-<!-- ============================================================================= -->
-
-<toc label="Platform Plug-in Developer Guide">
-	<topic label="Programmer&apos;s Guide">
-		<link toc="topics_Guide.xml" />
-	</topic>
-	<topic label="Reference">
-		<link toc="topics_Reference.xml" />
-	</topic>
-	<topic label="Porting Guide">
-		<link toc="topics_Porting.xml"/>
-	</topic>
-	<topic label="Examples Guide">
-		<link toc="topics_Samples.xml" />
-	</topic>
-	<topic label="Questions Index" href="questions/index.html">
-		<link toc="topics_Questions.xml" />
-	</topic>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/topics_Guide.xml b/bundles/org.eclipse.platform.doc.isv/topics_Guide.xml
deleted file mode 100644
index 75f330a..0000000
--- a/bundles/org.eclipse.platform.doc.isv/topics_Guide.xml
+++ /dev/null
@@ -1,267 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the main guide                                              -->
-<!-- ============================================================================= -->
-<toc label="Guide">
-	<topic label="Welcome to Eclipse" href="guide/int.htm">
-		<topic label="Who needs a platform?" href="guide/int_who.htm" />
-		<topic label="The holy grail" href="guide/int_goal.htm" />
-		<topic label="What is Eclipse?" href="guide/int_eclipse.htm" />
-		<topic label="Go to eclipse.org" href="http://www.eclipse.org" />
-	</topic>
-
-	<topic label="Platform architecture" href="guide/arch.htm">
-		<topic label="Platform SDK roadmap" href="guide/arch_struct.htm" />
-	</topic>
-
-	<topic label="Simple plug-in example" href="guide/firstplugin.htm">
-		<topic label="A minimal plug-in" href="guide/firstplugin_minimal.htm" />
-		<topic label="Installing and running the plug-in" href="guide/firstplugin_install.htm" />
-		<topic label="Beyond the basics" href="guide/firstplugin_btb.htm" />
-	</topic>
-
-	<topic label="Runtime overview"  href="guide/runtime.htm">
-		<topic label="Concurrency infrastructure" href="guide/runtime_jobs.htm">
-			<topic label="Reporting and listening to progress" href="guide/runtime_jobs_progress.htm"/>
-			<topic label="Job scheduling" href="guide/runtime_jobs_scheduling.htm"/>
-			<topic label="Scheduling rules" href="guide/runtime_jobs_rules.htm"/>
-			<topic label="Locking" href="guide/runtime_jobs_locks.htm"/>
-		</topic>
-	</topic>
-
-	<topic label="Resources overview"  href="guide/resInt.htm">
-		<topic label="Resources and the workspace" href="guide/resInt_workspace.htm" />
-		<topic label="Resources and the local file system" href="guide/resInt_filesystem.htm" />
-		<topic label="Resource properties" href="guide/resInt_properties.htm" />
-		<topic label="Beyond the basics" href="guide/resInt_btb.htm" />
-	</topic>
-
-	<topic label="Plugging into the workbench"  href="guide/workbench.htm">
-		<topic label="Workbench under the covers" href="guide/workbench_structure.htm" />
-		<topic label="Basic workbench extension points" href="guide/workbench_basicext.htm" >
-			<topic label="org.eclipse.ui.views" href="guide/workbench_basicext_views.htm" />
-			<topic label="org.eclipse.ui.viewActions" href="guide/workbench_basicext_viewActions.htm" />
-			<topic label="org.eclipse.ui.editors" href="guide/workbench_basicext_editors.htm" />
-			<topic label="org.eclipse.ui.editorActions" href="guide/workbench_basicext_editorActions.htm" />
-			<topic label="org.eclipse.ui.popupMenus" href="guide/workbench_basicext_popupMenus.htm" />
-			<topic label="org.eclipse.ui.actionSets" href="guide/workbench_basicext_actionSets.htm" />
-			<topic label="org.eclipse.ui.actionSetPartAssociations" href="guide/workbench_basicext_actionSetPartAssociations.htm" />
-		</topic>
-		<topic label="The plug-in class" href="guide/workbench_plugin.htm" />
-		<topic label="Workbench menu contributions" href="guide/workbench_menus.htm" />
-		<topic label="Menu and toolbar paths" href="guide/workbench_menupaths.htm" />
-		<topic label="Boolean expressions and action filters" href="guide/workbench_actionfilters.htm" />
-		<topic label="Perspectives" href="guide/workbench_perspectives.htm" >
-			<topic label="org.eclipse.ui.perspectives" href="guide/workbench_advext_perspectives.htm" />
-			<topic label="org.eclipse.ui.perspectiveExtensions" href="guide/workbench_advext_perspectiveExtension.htm" />
-		</topic>
-		<topic label="More workbench extensions" href="guide/workbench_advext.htm" >
-			<topic label="org.eclipse.ui.elementFactories" href="guide/workbench_advext_elementFactories.htm" />
-			<topic label="org.eclipse.ui.ide.resourceFilters" href="guide/workbench_advext_resourceFilters.htm" />
-			<topic label="org.eclipse.ui.decorators" href="guide/workbench_advext_decorators.htm" />
-			<topic label="org.eclipse.ui.fontDefinitions" href="guide/workbench_advext_fonts.htm" />
-		</topic>
-		<topic label="Beyond the basics" href="guide/workbench_btb.htm" />
-	</topic>
-
-	<topic label="Dialogs and wizards"  href="guide/dialogs.htm">
-		<topic label="Standard dialogs" href="guide/dialogs_standard.htm" />
-		<topic label="Application dialogs" href="guide/dialogs_applications.htm" />
-		<topic label="Dialog settings" href="guide/dialogs_settings.htm" />
-		<topic label="Wizards" href="guide/dialogs_wizards.htm" />
-		<topic label="Workbench wizard extension points" href="guide/dialogs_wizards_extensions.htm" >
-			<topic label="org.eclipse.ui.newWizards" href="guide/dialogs_wizards_newWizards.htm" />
-			<topic label="org.eclipse.ui.importWizards" href="guide/dialogs_wizards_importWizards.htm" />
-			<topic label="org.eclipse.ui.exportWizards" href="guide/dialogs_wizards_exportWizards.htm" />
-		</topic>
-		<topic label="Wizard dialogs" href="guide/dialogs_wizards_wizarddialogs.htm" />
-		<topic label="Multi-page wizards" href="guide/dialogs_wizards_multipage.htm" />
-	</topic>
-
-	<topic label="Preferences and properties"  href="guide/preferences.htm">
-		<topic label="Preferences" href="guide/preferences_prefs.htm">
-			<topic label="Contributing a preference page" href="guide/preferences_prefs_contribute.htm" />
-			<topic label="Implementing a preference page" href="guide/preferences_prefs_implement.htm" />
-			<topic label="Field editors" href="guide/preferences_prefs_fieldeditors.htm" />
-		</topic>
-		<topic label="Property pages" href="guide/preferences_prop.htm">
-			<topic label="Contributing a property page" href="guide/preferences_prop_contribute.htm" />
-			<topic label="Implementing a property page" href="guide/preferences_prop_implement.htm" />
-		</topic>
-	</topic>
-
-	<topic label="JFace UI framework" href="guide/jface.htm">
-		<topic label="Viewers" href="guide/jface_viewers.htm" />
-		<topic label="Actions and contributions" href="guide/jface_actions.htm" />
-		<topic label="User interface resources" href="guide/jface_resources.htm" />
-		<topic label="Long-running operations" href="guide/jface_operations.htm" />
-	</topic>
-
-	<topic label="Standard Widget Toolkit" href="guide/swt.htm">
-		<topic label="Widgets" href="guide/swt_widgets.htm" >
-			<topic label="Controls" href="guide/swt_widgets_controls.htm" />
-			<topic label="Events" href="guide/swt_widgets_events.htm" />
-			<topic label="Custom widgets" href="guide/swt_widgets_custom.htm" />
-		</topic>
-		<topic label="Layouts" href="guide/swt_layouts.htm" >
-			<topic label="FillLayout" href="guide/swt_layouts_fill.htm" />
-			<topic label="RowLayout" href="guide/swt_layouts_row.htm" />
-			<topic label="FormLayout" href="guide/swt_layouts_form.htm" />
-			<topic label="GridLayout" href="guide/swt_layouts_grid.htm" />
-			<topic label="StackLayout" href="guide/swt_layouts_stack.htm" />
-			<topic label="Custom Layouts" href="guide/swt_layouts_custom.htm" />
-		</topic>
-		<topic label="Threading issues " href="guide/swt_threading.htm" />
-		<topic label="Error handling" href="guide/swt_error.htm" />
-		<topic label="Graphics" href="guide/swt_graphics.htm" />
-	</topic>
-
-	<topic label="Editors" href="guide/editors.htm">
-		<topic label="Workbench editors" href="guide/editors_workbench.htm" />
-		<topic label="Text editors and platform text" href="guide/editors_jface.htm" />
-		<topic label="Documents and partitions" href="guide/editors_documents.htm" />
-		<topic label="Source viewers and annotations" href="guide/editors_annotations.htm" />
-		<topic label="Configuring a source viewer" href="guide/editors_sourceviewers.htm" />
-		<topic label="Text and ruler hover" href="guide/editors_hover.htm" />
-		<topic label="Syntax coloring" href="guide/editors_highlighting.htm" />
-		<topic label="Content assist" href="guide/editors_contentassist.htm" />
-		<topic label="Registering editor actions" href="guide/editors_actions.htm" />
-		<topic label="Other text editor responsibilities" href="guide/editors_utilities.htm" />
-		<topic label="Content outliners" href="guide/editors_workbench_outliner.htm" />
-	</topic>
-
-	<topic label="Resource and workspace API" href="guide/resAdv.htm">
-		<topic label="Linked resources" href="guide/resInt_linked.htm" />
-		<topic label="Resource markers" href="guide/resAdv_markers.htm" />
-		<topic label="Tracking resource changes" href="guide/resAdv_events.htm" />
-		<topic label="Incremental project builders" href="guide/resAdv_builders.htm" />
-		<topic label="Workspace save participation" href="guide/resAdv_saving.htm" />
-		<topic label="Project natures" href="guide/resAdv_natures.htm" />
-		<topic label="Derived resources" href="guide/resAdv_derived.htm" />
-		<topic label="Resource modification hooks" href="guide/resAdv_hooks.htm" />
-	</topic>
-
-	<topic label="Advanced workbench concepts" href="guide/wrkAdv.htm">
-		<topic label="Marker help and resolution" href="guide/wrkAdv_markers.htm" >
-			<topic label="Contributing marker help" href="guide/wrkAdv_markerhelp.htm" />
-			<topic label="Contributing marker resolution" href="guide/wrkAdv_markerresolution.htm" />
-		</topic>
-		<topic label="Accessible user interfaces" href="guide/wrkAdv_accessibility.htm" />
-		<topic label="Workbench key bindings" href="guide/wrkAdv_keyBindings.htm" >
-			<topic label="Commands" href="guide/wrkAdv_keyBindings_actionDef.htm" />
-			<topic label="Key bindings" href="guide/wrkAdv_keyBindings_accelSet.htm" />
-			<topic label="Key configurations" href="guide/wrkAdv_keyBindings_accelConfig.htm" />
-			<topic label="Scopes" href="guide/wrkAdv_keyBindings_accelScope.htm" />
-		</topic>
-		<topic label="Honoring single click support" href="guide/wrkAdv_singleclick.htm" />
-		<topic label="Text file encoding" href="guide/wrkAdv_encoding.htm" />
-		<topic label="Working sets" href="guide/wrkAdv_workingsets.htm" />
-		<topic label="Retargetable actions" href="guide/wrkAdv_retarget.htm" >
-			<topic label="Setting a global action handler" href="guide/wrkAdv_retarget_setting.htm" />
-			<topic label="Contributing new retargetable actions" href="guide/wrkAdv_retarget_contribute.htm" >
-				<topic label="Retargetable editor actions" href="guide/wrkAdv_retarget_contribute_editors.htm" />
-				<topic label="Retargetable action set actions" href="guide/wrkAdv_retarget_contribute_actionsets.htm" />
-			</topic>
-		</topic>
-	</topic>
-	<topic label="Search support" href="guide/search.htm">
-		<topic label="Contributing a search page" href="guide/search_page.htm" />
-		<topic label="Sorting search results" href="guide/search_sort.htm" />
-	</topic>
-	
-	<topic label="Compare support" href="guide/compare.htm">
-		<topic label="Implementing a content viewer" href="guide/compare_contentviewer.htm" />
-		<topic label="Implementing a structure viewer" href="guide/compare_structureviewer.htm" />
-		<topic label="Beyond the basics" href="guide/compare_beyond.htm" />
-	</topic>
-	
-	<topic label="Team support" href="guide/team.htm">
-		<topic label="Repository and Deployment providers" href="guide/team_provider.htm" >
-			<topic label="Implementing a repository provider" href="guide/team_provider_repository.htm" />
-			<topic label="Implementing a deployment provider" href="guide/team_provider_deployment.htm" />
-			<topic label="Adding your repository provider to the Sharing wizard" href="guide/team_provider_repository_wizard.htm" />
-			<topic label="Deployment provider wizard" href="guide/team_provider_deployment_wizard.htm" />	
-		</topic>
-		<topic label="Resource management" href="guide/team_resources.htm" >
-			<topic label="File types" href="guide/team_resources_filetypes.htm" />
-			<topic label="Project sets" href="guide/team_resources_projects.htm" />
-			<topic label="Team private resources" href="guide/team_resources_private.htm" />
-			<topic label="Team and linked resources" href="guide/team_resources_linked.htm" />
-		</topic>
-		<topic label="Synchronization Support" href="guide/team_synchronize.htm" >
-			<topic label="Introduction to workspace synchronization" href="guide/team_synchronize_intro.htm" />
-			<topic label="Adding synchronization support to your provider" href="guide/team_synchronize_subscriber.htm" />
-			<topic label="Synchronize View integration" href="guide/team_synchronize_view_integration.htm" />
-			<topic label="Additional support for displaying synchronization states" href="guide/team_synchronize_uicomponents.htm" />
-			<topic label="Example" href="guide/team_synchronize_example.htm" />
-		</topic>
-		<topic label="Rich Team Integration" href="guide/team_howto.htm" >
-			<topic label="Adding team actions" href="guide/team_ui_actions.htm" />
-			<topic label="Team decorators" href="guide/team_ui_decorators.htm" />
-			<topic label="Adding preferences and properties" href="guide/team_ui_prefs.htm" />
-		</topic>
-	</topic>
-	
-	<topic label="Program debug and launch support" href="guide/debug.htm">
-		<topic label="Launching a program" href="guide/debug_launch.htm" >
-			<topic label="Adding launchers to the platform" href="guide/debug_launch_adding.htm" />
-			<topic label="Handling errors from a launched program" href="guide/debug_launch_status.htm" />		
-			<topic label="Launch configuration dialog" href="guide/debug_launch_ui.htm" />
-			<topic label="Launch configuration type images" href="guide/debug_launch_uiimages.htm" />
-			<topic label="Launch shortcuts" href="guide/debug_launch_uishortcuts.htm" />
-		</topic>
-		<topic label="Debugging a program" href="guide/debug_debug.htm" >
-			<topic label="Platform debug model" href="guide/debug_model.htm" />
-			<topic label="Breakpoints" href="guide/debug_breakpoints.htm" />
-			<topic label="Expressions" href="guide/debug_expressions.htm" />
-			<topic label="Debug model presentation" href="guide/debug_presentation.htm" />
-			<topic label="Debug UI utility classes" href="guide/debug_ui.htm" />
-			<topic label="Debug action groups" href="guide/debug_actiongroups.htm" />
-		</topic>
-	</topic>
-	
-	<topic label="Plugging in help" href="guide/help.htm">
-		<topic label="Building a help plug-in" href="guide/help_plugin.htm" >
-			<topic label="Table of contents (toc) files" href="guide/help_plugin_toc.htm" />
-			<topic label="Help server and file locations" href="guide/help_plugin_files.htm" />
-			<topic label="Completing the plug-in manifest" href="guide/help_plugin_manifest.htm" />
-			<topic label="Building nested documentation structures" href="guide/help_plugin_nested.htm" />
-			<topic label="Dynamic help" href="guide/help_dynamic.htm" />
-		</topic>
-		<topic label="Infopops" href="guide/help_infopops.htm" >
-			<topic label="Declaring a context id" href="guide/help_infopops_id.htm" />
-			<topic label="Describing and packaging infopop content" href="guide/help_infopops_xml.htm" />
-		</topic>
-		<topic label="Active help" href="guide/help_active.htm" >
-			<topic label="Writing the help action" href="guide/help_active_action.htm" />
-			<topic label="Invoking the action from HTML" href="guide/help_active_invoke.htm" />
-			<topic label="Tips for debugging active help" href="guide/help_active_debug.htm" />
-		</topic>	
-	</topic>
-	
-	<topic label="Platform Ant support" href="guide/ant.htm">
-		<topic label="Running Ant buildfiles programmatically" href="guide/ant_running_buildfiles_programmatically.htm" />
-		<topic label="Ant tasks provided by the platform" href="guide/ant_eclipse_tasks.htm" />
-		<topic label="Contributing tasks and types" href="guide/ant_contributing_task.htm" />
-		<topic label="Developing Ant tasks and types within Eclipse" href="guide/ant_developing.htm" />
-		<topic label="Expanding the Ant classpath" href="guide/ant_expanding_classpath.htm" />
-	</topic>
-
-	
-	<topic label="Packaging and delivering Eclipse based products" href="guide/product.htm">
-		<topic label="What is a product?" href="guide/product_def.htm" >
-			<topic label="Features" href="guide/product_def_feature.htm" />
-			<topic label="Primary feature" href="guide/product_def_primary.htm" />
-			<topic label="Plug-ins and fragments" href="guide/product_def_plugins.htm" />
-			<topic label="Locale specific files" href="guide/product_def_nl.htm" />
-		</topic>
-		<topic label="Customizing a product" href="guide/product_config.htm" />
-		<topic label="Product installation guidelines" href="guide/product_config_install.htm" />
-		<topic label="Product extensions" href="guide/product_extension.htm" />
-		<topic label="Updating a product or extension" href="guide/product_update.htm" />
-	</topic>
-
-
-
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/topics_Porting.xml b/bundles/org.eclipse.platform.doc.isv/topics_Porting.xml
deleted file mode 100644
index f221a37..0000000
--- a/bundles/org.eclipse.platform.doc.isv/topics_Porting.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the porting guide index                                     -->
-<!-- ============================================================================= -->
-<toc label="Porting">
-	<topic label="Eclipse 3.0 Porting Guide"
-	       href="porting/eclipse_3_0_porting_guide.html"/>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/topics_Questions.xml b/bundles/org.eclipse.platform.doc.isv/topics_Questions.xml
deleted file mode 100644
index ad5a504..0000000
--- a/bundles/org.eclipse.platform.doc.isv/topics_Questions.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the questions index                                         -->
-<!-- ============================================================================= -->
-<toc label="Questions">
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/topics_Reference.xml b/bundles/org.eclipse.platform.doc.isv/topics_Reference.xml
deleted file mode 100644
index cc239aa..0000000
--- a/bundles/org.eclipse.platform.doc.isv/topics_Reference.xml
+++ /dev/null
@@ -1,254 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the references                                              -->
-<!-- ============================================================================= -->
-<toc label="Reference">
-
-	<topic label="API Reference" href="reference/api/overview-summary.html">
-		<topic label="Platform runtime">
-	     	<topic label="org.eclipse.core.runtime" href="reference/api/org/eclipse/core/runtime/package-summary.html"/>
-	     	<topic label="org.eclipse.core.runtime.jobs" href="reference/api/org/eclipse/core/runtime/jobs/package-summary.html"/>
-		</topic>
-		<topic label="Workspace">
-      		<topic label="org.eclipse.core.resources" href="reference/api/org/eclipse/core/resources/package-summary.html"/>
-      		<topic label="org.eclipse.core.resources.refresh" href="reference/api/org/eclipse/core/resources/refresh/package-summary.html"/>
-		</topic>
-		<topic label="Workbench">
-     		<topic label="org.eclipse.ui" href="reference/api/org/eclipse/ui/package-summary.html"/>
-      		<topic label="org.eclipse.ui.actions" href="reference/api/org/eclipse/ui/actions/package-summary.html"/>
-      		<topic label="org.eclipse.ui.activities" href="reference/api/org/eclipse/ui/activities/package-summary.html"/>
-      		<topic label="org.eclipse.ui.activities.services" href="reference/api/org/eclipse/ui/activities/services/package-summary.html"/>
-      		<topic label="org.eclipse.ui.application" href="reference/api/org/eclipse/ui/application/package-summary.html"/>
-      		<topic label="org.eclipse.ui.commands" href="reference/api/org/eclipse/ui/commands/package-summary.html"/>
-      		<topic label="org.eclipse.ui.contexts" href="reference/api/org/eclipse/ui/contexts/package-summary.html"/>
-      		<topic label="org.eclipse.ui.dialogs" href="reference/api/org/eclipse/ui/dialogs/package-summary.html"/>
-      		<topic label="org.eclipse.ui.editors.text" href="reference/api/org/eclipse/ui/editors/text/package-summary.html"/>
-      		<topic label="org.eclipse.ui.help" href="reference/api/org/eclipse/ui/help/package-summary.html"/>
-      		<topic label="org.eclipse.ui.ide" href="reference/api/org/eclipse/ui/ide/package-summary.html"/>
-      		<topic label="org.eclipse.ui.keys" href="reference/api/org/eclipse/ui/keys/package-summary.html"/>
-      		<topic label="org.eclipse.ui.model" href="reference/api/org/eclipse/ui/model/package-summary.html"/>
-      		<topic label="org.eclipse.ui.part" href="reference/api/org/eclipse/ui/part/package-summary.html"/>
-      		<topic label="org.eclipse.ui.plugin" href="reference/api/org/eclipse/ui/plugin/package-summary.html"/>
-      		<topic label="org.eclipse.ui.progress" href="reference/api/org/eclipse/ui/progress/package-summary.html"/>
-      		<topic label="org.eclipse.ui.testing" href="reference/api/org/eclipse/ui/testing/package-summary.html"/>
-      		<topic label="org.eclipse.ui.texteditor" href="reference/api/org/eclipse/ui/texteditor/package-summary.html"/>
-      		<topic label="org.eclipse.ui.texteditor.quickdiff" href="reference/api/org/eclipse/ui/texteditor/quickdiff/package-summary.html"/>
-      		<topic label="org.eclipse.ui.views.bookmarkexplorer" href="reference/api/org/eclipse/ui/views/bookmarkexplorer/package-summary.html"/>
-      		<topic label="org.eclipse.ui.views.contentoutline" href="reference/api/org/eclipse/ui/views/contentoutline/package-summary.html"/>
-     		<topic label="org.eclipse.ui.views.framelist" href="reference/api/org/eclipse/ui/views/framelist/package-summary.html"/>
-     		<topic label="org.eclipse.ui.views.markers" href="reference/api/org/eclipse/ui/views/markers/package-summary.html"/>
-       		<topic label="org.eclipse.ui.views.navigator" href="reference/api/org/eclipse/ui/views/navigator/package-summary.html"/>
-      		<topic label="org.eclipse.ui.views.properties" href="reference/api/org/eclipse/ui/views/properties/package-summary.html"/>
-      		<topic label="org.eclipse.ui.views.tasklist" href="reference/api/org/eclipse/ui/views/tasklist/package-summary.html"/>
-      		<topic label="org.eclipse.ui.wizards.datatransfer" href="reference/api/org/eclipse/ui/wizards/datatransfer/package-summary.html"/>
-      		<topic label="org.eclipse.ui.wizards.newresource" href="reference/api/org/eclipse/ui/wizards/newresource/package-summary.html"/>
-      		<topic label="org.eclipse.jface.action" href="reference/api/org/eclipse/jface/action/package-summary.html"/>
-      		<topic label="org.eclipse.jface.dialogs" href="reference/api/org/eclipse/jface/dialogs/package-summary.html"/>
-      		<topic label="org.eclipse.jface.operation" href="reference/api/org/eclipse/jface/operation/package-summary.html"/>
-      		<topic label="org.eclipse.jface.preference" href="reference/api/org/eclipse/jface/preference/package-summary.html"/>
-      		<topic label="org.eclipse.jface.progress" href="reference/api/org/eclipse/jface/progress/package-summary.html"/>
-      		<topic label="org.eclipse.jface.resource" href="reference/api/org/eclipse/jface/resource/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text" href="reference/api/org/eclipse/jface/text/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text.contentassist" href="reference/api/org/eclipse/jface/text/contentassist/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text.formatter" href="reference/api/org/eclipse/jface/text/formatter/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text.information" href="reference/api/org/eclipse/jface/text/information/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text.presentation" href="reference/api/org/eclipse/jface/text/presentation/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text.reconciler" href="reference/api/org/eclipse/jface/text/reconciler/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text.rules" href="reference/api/org/eclipse/jface/text/rules/package-summary.html"/>
-      		<topic label="org.eclipse.jface.text.source" href="reference/api/org/eclipse/jface/text/source/package-summary.html"/>
-      		<topic label="org.eclipse.jface.util" href="reference/api/org/eclipse/jface/util/package-summary.html"/>
-      		<topic label="org.eclipse.jface.viewers" href="reference/api/org/eclipse/jface/viewers/package-summary.html"/>
-      		<topic label="org.eclipse.jface.window" href="reference/api/org/eclipse/jface/window/package-summary.html"/>
-      		<topic label="org.eclipse.jface.wizard" href="reference/api/org/eclipse/jface/wizard/package-summary.html"/>
-      		<topic label="org.eclipse.swt" href="reference/api/org/eclipse/swt/package-summary.html"/>
-      		<topic label="org.eclipse.swt.accessibility" href="reference/api/org/eclipse/swt/accessibility/package-summary.html"/>
-      		<topic label="org.eclipse.swt.browser" href="reference/api/org/eclipse/swt/browser/package-summary.html"/>
-      		<topic label="org.eclipse.swt.custom" href="reference/api/org/eclipse/swt/custom/package-summary.html"/>
-      		<topic label="org.eclipse.swt.dnd" href="reference/api/org/eclipse/swt/dnd/package-summary.html"/>
-      		<topic label="org.eclipse.swt.events" href="reference/api/org/eclipse/swt/events/package-summary.html"/>
-      		<topic label="org.eclipse.swt.graphics" href="reference/api/org/eclipse/swt/graphics/package-summary.html"/>
-	      	<topic label="org.eclipse.swt.layout" href="reference/api/org/eclipse/swt/layout/package-summary.html"/>
-	      	<topic label="org.eclipse.swt.ole.win32" href="reference/api/org/eclipse/swt/ole/win32/package-summary.html"/>
-	      	<topic label="org.eclipse.swt.printing" href="reference/api/org/eclipse/swt/printing/package-summary.html"/>
-	      	<topic label="org.eclipse.swt.program" href="reference/api/org/eclipse/swt/program/package-summary.html"/>
-	      	<topic label="org.eclipse.swt.widgets" href="reference/api/org/eclipse/swt/widgets/package-summary.html"/>
-		 	<topic label="org.eclipse.text.edits" href="reference/api/org/eclipse/text/edits/package-summary.html"/>
-		</topic>
-		<topic label="Team">
-      		<topic label="org.eclipse.team.core" href="reference/api/org/eclipse/team/core/package-summary.html"/>
-      		<topic label="org.eclipse.team.core.synchronize" href="reference/api/org/eclipse/team/core/synchronize/package-summary.html"/>
-      		<topic label="org.eclipse.team.core.variants" href="reference/api/org/eclipse/team/core/variants/package-summary.html"/>
-      		<topic label="org.eclipse.team.core.subscribers" href="reference/api/org/eclipse/team/core/subscribers/package-summary.html"/>
-      		<topic label="org.eclipse.team.ui" href="reference/api/org/eclipse/team/ui/package-summary.html"/>
-      		<topic label="org.eclipse.team.ui.synchronize" href="reference/api/org/eclipse/team/ui/synchronize/package-summary.html"/>
-      		<topic label="org.eclipse.team.ui.synchronize.subscribers" href="reference/api/org/eclipse/team/ui/synchronize/subscribers/package-summary.html"/>
-      		<topic label="org.eclipse.core.resources.team" href="reference/api/org/eclipse/core/resources/team/package-summary.html"/>
-		</topic>
-		
-		<topic label="Debug">
-		 	<topic label="org.eclipse.debug.core" href="reference/api/org/eclipse/debug/core/package-summary.html"/>
-    		<topic label="org.eclipse.debug.core.model" href="reference/api/org/eclipse/debug/core/model/package-summary.html"/>
-    		<topic label="org.eclipse.debug.ui" href="reference/api/org/eclipse/debug/ui/package-summary.html"/>
-    		<topic label="org.eclipse.debug.ui.actions" href="reference/api/org/eclipse/debug/ui/actions/package-summary.html"/>
-    		<topic label="org.eclipse.debug.ui.console" href="reference/api/org/eclipse/debug/ui/console/package-summary.html"/>
-    	</topic>
-    	
-		<topic label="Help">
-	      	<topic label="org.eclipse.help" href="reference/api/org/eclipse/help/package-summary.html"/>
-	      	<topic label="org.eclipse.help.browser" href="reference/api/org/eclipse/help/browser/package-summary.html"/>
-	      	<topic label="org.eclipse.help.ui.browser" href="reference/api/org/eclipse/help/ui/browser/package-summary.html"/>
-		</topic>
-		
-		<topic label="Update">
-      		<topic label="org.eclipse.update.core" href="reference/api/org/eclipse/update/core/package-summary.html"/>
-      		<topic label="org.eclipse.update.core.model" href="reference/api/org/eclipse/update/core/model/package-summary.html"/>
-		</topic>
-
-      	<topic label="Other">
-	      	<topic label="org.eclipse.ant.core" href="reference/api/org/eclipse/ant/core/package-summary.html"/>
-      		<topic label="org.eclipse.compare" href="reference/api/org/eclipse/compare/package-summary.html"/>
-	      	<topic label="org.eclipse.compare.contentmergeviewer" href="reference/api/org/eclipse/compare/contentmergeviewer/package-summary.html"/>
-	      	<topic label="org.eclipse.compare.rangedifferencer" href="reference/api/org/eclipse/compare/rangedifferencer/package-summary.html"/>
-	      	<topic label="org.eclipse.compare.structuremergeviewer" href="reference/api/org/eclipse/compare/structuremergeviewer/package-summary.html"/>
-	     	<topic label="org.eclipse.core.boot" href="reference/api/org/eclipse/core/boot/package-summary.html"/>
-	     	<topic label="org.eclipse.core.expressions" href="reference/api/org/eclipse/core/expressions/package-summary.html"/>
-	     	<topic label="org.eclipse.core.filebuffers" href="reference/api/org/eclipse/core/filebuffers/package-summary.html"/>
-	     	<topic label="org.eclipse.core.launcher" href="reference/api/org/eclipse/core/launcher/package-summary.html"/>
-	      	<topic label="org.eclipse.core.runtime.model" href="reference/api/org/eclipse/core/runtime/model/package-summary.html"/>
-	     	<topic label="org.eclipse.core.variables" href="reference/api/org/eclipse/core/variables/package-summary.html"/>
-    		<topic label="org.eclipse.search.ui" href="reference/api/org/eclipse/search/ui/package-summary.html"/>
-		</topic>
- 	</topic>
-
-	<topic label="Extension Points Reference" href="reference/extension-points/index.html">
-		<topic label="Platform runtime" href="reference/extension-points/index.html#runtime">
-      		<topic label="org.eclipse.core.runtime.adapters" href="reference/extension-points/org_eclipse_core_runtime_adapters.html"/>
-      		<topic label="org.eclipse.core.runtime.applications" href="reference/extension-points/org_eclipse_core_runtime_applications.html"/>
-      		<topic label="org.eclipse.core.runtime.urlHandlers" href="reference/extension-points/org_eclipse_core_runtime_urlHandlers.html"/>
-		</topic>
-		<topic label="Platform text" href="reference/extension-points/index.html#text">
-	      	<topic label="org.eclipse.core.filebuffers.documentSetup" href="reference/extension-points/org_eclipse_core_filebuffers_documentSetup.html"/>
-	      	<topic label="org.eclipse.core.filebuffers.documentCreation" href="reference/extension-points/org_eclipse_core_filebuffers_documentCreation.html"/>
-	      	<topic label="org.eclipse.ui.editors.annotationTypes" href="reference/extension-points/org_eclipse_ui_editors_annotationTypes.html"/>
-	      	<topic label="org.eclipse.ui.editors.documentProviders" href="reference/extension-points/org_eclipse_ui_editors_documentProviders.html"/>
-	      	<topic label="org.eclipse.ui.editors.markerUpdaters" href="reference/extension-points/org_eclipse_ui_editors_markerUpdaters.html"/>
-	      	<topic label="org.eclipse.ui.editors.markerAnnotationSpecification" href="reference/extension-points/org_eclipse_ui_editors_markerAnnotationSpecification.html"/>
-	      	<topic label="org.eclipse.ui.workbench.texteditor.quickDiffReferenceProvider" href="reference/extension-points/org_eclipse_ui_workbench_texteditor_quickDiffReferenceProvider.html"/>
-		</topic>
-		<topic label="Workspace" href="reference/extension-points/index.html#workspace">
-      		<topic label="org.eclipse.core.resources.builders" href="reference/extension-points/org_eclipse_core_resources_builders.html"/>
-			<topic label="org.eclipse.core.resources.fileModificationValidator" href="reference/extension-points/org_eclipse_core_resources_fileModificationValidator.html"/>
-      		<topic label="org.eclipse.core.resources.markers" href="reference/extension-points/org_eclipse_core_resources_markers.html"/>
-			<topic label="org.eclipse.core.resources.moveDeleteHook" href="reference/extension-points/org_eclipse_core_resources_moveDeleteHook.html"/>
-      		<topic label="org.eclipse.core.resources.natures" href="reference/extension-points/org_eclipse_core_resources_natures.html"/>
-      		<topic label="org.eclipse.core.resources.refreshProviders" href="reference/extension-points/org_eclipse_core_resources_refreshProviders.html"/>
-			<topic label="org.eclipse.core.resources.teamHook" href="reference/extension-points/org_eclipse_core_resources_teamHook.html"/>
-		</topic>
-		<topic label="Workbench" href="reference/extension-points/index.html#workbench">
-	      	<topic label="org.eclipse.ui.actionSetPartAssociations" href="reference/extension-points/org_eclipse_ui_actionSetPartAssociations.html"/>
-	      	<topic label="org.eclipse.ui.actionSets" href="reference/extension-points/org_eclipse_ui_actionSets.html"/>
-			<topic label="org.eclipse.ui.commands" href="reference/extension-points/org_eclipse_ui_commands.html"/>
-	      	<topic label="org.eclipse.ui.decorators" href="reference/extension-points/org_eclipse_ui_decorators.html"/>
-	      	<topic label="org.eclipse.ui.dropActions" href="reference/extension-points/org_eclipse_ui_dropActions.html"/>
-	      	<topic label="org.eclipse.ui.editorActions" href="reference/extension-points/org_eclipse_ui_editorActions.html"/>
-	      	<topic label="org.eclipse.ui.editors" href="reference/extension-points/org_eclipse_ui_editors.html"/>
-	      	<topic label="org.eclipse.ui.elementFactories" href="reference/extension-points/org_eclipse_ui_elementFactories.html"/>
-	      	<topic label="org.eclipse.ui.exportWizards" href="reference/extension-points/org_eclipse_ui_exportWizards.html"/>
-			<topic label="org.eclipse.ui.fontDefinitions" href="reference/extension-points/org_eclipse_ui_fontDefinitions.html"/>
-	      	<topic label="org.eclipse.ui.helpSupport" href="reference/extension-points/org_eclipse_ui_helpSupport.html"/>
-	      	<topic label="org.eclipse.ui.importWizards" href="reference/extension-points/org_eclipse_ui_importWizards.html"/>
-	      	<topic label="org.eclipse.ui.ide.markerHelp" href="reference/extension-points/org_eclipse_ui_ide_markerHelp.html"/>
-	      	<topic label="org.eclipse.ui.ide.markerImageProviders" href="reference/extension-points/org_eclipse_ui_ide_markerImageProviders.html"/>
-	      	<topic label="org.eclipse.ui.ide.markerResolution" href="reference/extension-points/org_eclipse_ui_ide_markerResolution.html"/>
-	      	<topic label="org.eclipse.ui.newWizards" href="reference/extension-points/org_eclipse_ui_newWizards.html"/>
-	      	<topic label="org.eclipse.ui.perspectiveExtensions" href="reference/extension-points/org_eclipse_ui_perspectiveExtensions.html"/>
-	      	<topic label="org.eclipse.ui.perspectives" href="reference/extension-points/org_eclipse_ui_perspectives.html"/>
-	      	<topic label="org.eclipse.ui.popupMenus" href="reference/extension-points/org_eclipse_ui_popupMenus.html"/>
-	      	<topic label="org.eclipse.ui.preferencePages" href="reference/extension-points/org_eclipse_ui_preferencePages.html"/>
-	      	<topic label="org.eclipse.ui.ide.projectNatureImages" href="reference/extension-points/org_eclipse_ui_ide_projectNatureImages.html"/>
-	      	<topic label="org.eclipse.ui.propertyPages" href="reference/extension-points/org_eclipse_ui_propertyPages.html"/>
-	      	<topic label="org.eclipse.ui.ide.resourceFilters" href="reference/extension-points/org_eclipse_ui_ide_resourceFilters.html"/>
-	      	<topic label="org.eclipse.ui.startup" href="reference/extension-points/org_eclipse_ui_startup.html"/>
-	      	<topic label="org.eclipse.ui.viewActions" href="reference/extension-points/org_eclipse_ui_viewActions.html"/>
-	      	<topic label="org.eclipse.ui.views" href="reference/extension-points/org_eclipse_ui_views.html"/>
-	      	<topic label="org.eclipse.ui.workingSets" href="reference/extension-points/org_eclipse_ui_workingSets.html"/>
-		</topic>
-		<topic label="Team" href="reference/extension-points/index.html#team">
-	      	<topic label="org.eclipse.team.core.fileTypes" href="reference/extension-points/org_eclipse_team_core_fileTypes.html"/>
-	      	<topic label="org.eclipse.team.core.ignore" href="reference/extension-points/org_eclipse_team_core_ignore.html"/>
-	      	<topic label="org.eclipse.team.core.projectSets" href="reference/extension-points/org_eclipse_team_core_projectSets.html"/>
-	      	<topic label="org.eclipse.team.core.repository" href="reference/extension-points/org_eclipse_team_core_repository.html"/>
-	      	<topic label="org.eclipse.team.ui.configurationWizards" href="reference/extension-points/org_eclipse_team_ui_configurationWizards.html"/>
-	      	<topic label="org.eclipse.team.ui.synchronizeParticipants" href="reference/extension-points/org_eclipse_team_ui_synchronizeParticipants.html"/>
-		</topic>
-		<topic label="Debug" href="reference/extension-points/index.html#debug">
-	      	<topic label="org.eclipse.debug.core.breakpoints" href="reference/extension-points/org_eclipse_debug_core_breakpoints.html"/>
-	      	<topic label="org.eclipse.debug.core.launchConfigurationComparators" href="reference/extension-points/org_eclipse_debug_core_launchConfigurationComparators.html"/>
-	      	<topic label="org.eclipse.debug.core.launchConfigurationTypes" href="reference/extension-points/org_eclipse_debug_core_launchConfigurationTypes.html"/>
-	      	<topic label="org.eclipse.debug.core.launchDelegates" href="reference/extension-points/org_eclipse_debug_core_launchDelegates.html"/>	      	
-	      	<topic label="org.eclipse.debug.core.launchModes" href="reference/extension-points/org_eclipse_debug_core_launchModes.html"/>
-			<topic label="org.eclipse.debug.core.launchers" href="reference/extension-points/org_eclipse_debug_core_launchers.html"/>
-			<topic label="org.eclipse.debug.core.processFactories" href="reference/extension-points/org_eclipse_debug_core_processFactories.html"/>
-	      	<topic label="org.eclipse.debug.core.sourceLocators" href="reference/extension-points/org_eclipse_debug_core_sourceLocators.html"/>
-	      	<topic label="org.eclipse.debug.core.statusHandlers" href="reference/extension-points/org_eclipse_debug_core_statusHandlers.html"/>
-	      	<topic label="org.eclipse.debug.core.watchExpressionDelegates" href="reference/extension-points/org_eclipse_debug_core_watchExpressionDelegates.html"/>
-	      	<topic label="org.eclipse.debug.ui.consoleColorProviders" href="reference/extension-points/org_eclipse_debug_ui_consoleColorProviders.html"/>
-	      	<topic label="org.eclipse.debug.ui.consoleLineTrackers" href="reference/extension-points/org_eclipse_debug_ui_consoleLineTrackers.html"/>
-	      	<topic label="org.eclipse.debug.ui.contextViewBindings" href="reference/extension-points/org_eclipse_debug_ui_contextViewBindings.html"/>
-	      	<topic label="org.eclipse.debug.ui.debugActionGroups" href="reference/extension-points/org_eclipse_debug_ui_debugActionGroups.html"/>
-	      	<topic label="org.eclipse.debug.ui.debugModelContextBindings" href="reference/extension-points/org_eclipse_debug_ui_debugModelContextBindings.html"/>
-	      	<topic label="org.eclipse.debug.ui.debugModelPresentations" href="reference/extension-points/org_eclipse_debug_ui_debugModelPresentations.html"/>
-	      	<topic label="org.eclipse.debug.ui.launchConfigurationTabGroups" href="reference/extension-points/org_eclipse_debug_ui_launchConfigurationTabGroups.html"/>
-	      	<topic label="org.eclipse.debug.ui.launchConfigurationTypeImages" href="reference/extension-points/org_eclipse_debug_ui_launchConfigurationTypeImages.html"/>
-	      	<topic label="org.eclipse.debug.ui.launchGroups" href="reference/extension-points/org_eclipse_debug_ui_launchGroups.html"/>
-	      	<topic label="org.eclipse.debug.ui.launchShortcuts" href="reference/extension-points/org_eclipse_debug_ui_launchShortcuts.html"/>	      	
-		</topic>
-		<topic label="Help" href="reference/extension-points/index.html#help">
-	      	<topic label="org.eclipse.help.toc" href="reference/extension-points/org_eclipse_help_toc.html"/>
-	      	<topic label="org.eclipse.help.contexts" href="reference/extension-points/org_eclipse_help_contexts.html"/>
-	      	<topic label="org.eclipse.help.contentProducer" href="reference/extension-points/org_eclipse_help_contentProducer.html"/>
-	      	<topic label="org.eclipse.help.base.browser" href="reference/extension-points/org_eclipse_help_base_browser.html"/>
-	      	<topic label="org.eclipse.help.base.luceneAnalyzer" href="reference/extension-points/org_eclipse_help_base_luceneAnalyzer.html"/>
-			<topic label="org.eclipse.help.base.webapp" href="reference/extension-points/org_eclipse_help_base_webapp.html"/>
-		</topic>
-		<topic label="Other" href="reference/extension-points/index.html#other">
-	      	<topic label="org.eclipse.ant.core.antProperties" href="reference/extension-points/org_eclipse_ant_core_antProperties.html"/>		
-	      	<topic label="org.eclipse.ant.core.antTasks" href="reference/extension-points/org_eclipse_ant_core_antTasks.html"/>
-	      	<topic label="org.eclipse.ant.core.antTypes" href="reference/extension-points/org_eclipse_ant_core_antTypes.html"/>
-	      	<topic label="org.eclipse.ant.core.extraClasspathEntries" href="reference/extension-points/org_eclipse_ant_core_extraClasspathEntries.html"/>
-	      	<topic label="org.eclipse.compare.contentMergeViewers" href="reference/extension-points/org_eclipse_compare_contentMergeViewers.html"/>
-	      	<topic label="org.eclipse.compare.contentViewers" href="reference/extension-points/org_eclipse_compare_contentViewers.html"/>
-	      	<topic label="org.eclipse.compare.structureCreators" href="reference/extension-points/org_eclipse_compare_structureCreators.html"/>
-	      	<topic label="org.eclipse.compare.structureMergeViewers" href="reference/extension-points/org_eclipse_compare_structureMergeViewers.html"/>
-	      	<topic label="org.eclipse.core.expressions" href="reference/extension-points/org_eclipse_core_expressions_propertyTesters.html"/>
-	      	<topic label="org.eclipse.core.variables.dynamicVariables" href="reference/extension-points/org_eclipse_core_variables_dynamicVariables.html"/>
-	      	<topic label="org.eclipse.core.variables.valueVariables" href="reference/extension-points/org_eclipse_core_variables_valueVariables.html"/>
-			<topic label="org.eclipse.search.searchPages" href="reference/extension-points/org_eclipse_search_searchPages.html"/>
-			<topic label="org.eclipse.search.searchResultSorters" href="reference/extension-points/org_eclipse_search_searchResultSorters.html"/>
-			<topic label="org.eclipse.update.core.featureTypes" href="reference/extension-points/org_eclipse_update_core_featureTypes.html"/>
-			<topic label="org.eclipse.update.core.installHandlers" href="reference/extension-points/org_eclipse_update_core_installHandlers.html"/>
-      		<topic label="org.eclipse.update.core.siteTypes" href="reference/extension-points/org_eclipse_update_core_siteTypes.html"/>      		
-		</topic>
-	</topic>
-
-	<topic label="Other reference information" href="reference/misc/index.html">
-      	<topic label="Platform API rules of engagement" href="reference/misc/api-usage-rules.html"/>
-      	<topic label="Platform naming conventions" href="reference/misc/naming.html"/>
-      	<topic label="Platform terminology" href="reference/misc/terminology.html"/>
-      	<topic label="Platform plug-ins map" href="reference/misc/overview-platform.html"/>
-      	<topic label="Plug-in manifest " href="reference/misc/plugin_manifest.html"/>
-     	<topic label="Project description file" href="reference/misc/project_description_file.html"/>
-      	<topic label="Tips for making user interfaces accessible" href="reference/misc/ui_accessibility_tips.html"/>
-      	<topic label="Pre-built documentation index" href="reference/misc/help_product_index.html"/>
-      	<topic label="Installing the stand-alone help system" href="reference/misc/help_standalone.html"/>
-      	<topic label="Installing the help system as an infocenter" href="reference/misc/help_infocenter.html"/>
-       	<topic label="How to write an Eclipse Installer" href="reference/misc/eclipse-install.html"/>
-       	<topic label="About.ini file format" href="reference/misc/about_customization.html"/>
-       	<topic label="Adding to the Eclipse welcome page" href="reference/misc/welcome.html"/>
-       	<topic label="Plug-in archives" href="reference/misc/plugin_archive.html"/>
-       	<topic label="Feature archives" href="reference/misc/feature_archive.html"/>
-       	<topic label="Update server site map" href="reference/misc/update_sitemap.html"/>
-       	<topic label="Web-triggered updates" href="reference/misc/web_triggered_updates.html"/>
-   	</topic>
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/topics_Samples.xml b/bundles/org.eclipse.platform.doc.isv/topics_Samples.xml
deleted file mode 100644
index 0c0c5ba..0000000
--- a/bundles/org.eclipse.platform.doc.isv/topics_Samples.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define topics for the samples                                                 -->
-<!-- ============================================================================= -->
-<toc label="Examples" >
-   <topic label="Installing the examples" href="samples/samples.html" />
-   <topic label="Standard Widget Toolkit">
-      <topic label="Using the SWT example launcher" href="samples/org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html" />
-      <topic label="Running and browsing the SWT examples manually" href="samples/org.eclipse.swt.examples/doc-html/swt_manual_setup.html" />
-      <topic label="Stand-alone examples" >
-        <topic label="Address book" href="samples/org.eclipse.swt.examples/doc-html/swt_addressbook_ex.html" />
-        <topic label="Clipboard" href="samples/org.eclipse.swt.examples/doc-html/swt_clipboard_ex.html" />
-        <topic label="File viewer" href="samples/org.eclipse.swt.examples/doc-html/swt_fileviewer_ex.html"/>
-        <topic label="Hello world" href="samples/org.eclipse.swt.examples/doc-html/swt_helloworld_ex.html"/>
-        <topic label="Hover help" href="samples/org.eclipse.swt.examples/doc-html/swt_hoverhelp_ex.html"/>
-        <topic label="Image analyzer" href="samples/org.eclipse.swt.examples/doc-html/swt_imageanalyzer_ex.html"/>
-        <topic label="Java syntax viewer" href="samples/org.eclipse.swt.examples/doc-html/swt_javaviewer_ex.html"/>
-        <topic label="Text editor" href="samples/org.eclipse.swt.examples/doc-html/swt_texteditor_ex.html"/>
-      </topic>
-      <topic label="Workbench views" >
-        <topic label="Browser" href="samples/org.eclipse.swt.examples.browser/doc-html/swt_browser_ex.html"/>
-        <topic label="Controls" href="samples/org.eclipse.swt.examples.controls/doc-html/swt_controls_ex.html"/>
-        <topic label="Custom Controls" href="samples/org.eclipse.swt.examples.controls/doc-html/swt_customcontrols_ex.html"/>
-        <topic label="Layout" href="samples/org.eclipse.swt.examples.layouts/doc-html/swt_layout_ex.html"/>
-        <topic label="OLE" href="samples/org.eclipse.swt.examples.ole.win32/doc-html/swt_ole_ex.html" />
-        <topic label="Paint" href="samples/org.eclipse.swt.examples.paint/doc-html/swt_paint_ex.html"/>
-      </topic>
-   </topic>
-
-   <topic label="Workbench">
-      <topic label="Java editor" href="samples/org.eclipse.ui.examples.javaeditor/doc-html/ui_javaeditor_ex.html" />
-      <topic label="Multi page editor" href="samples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html" />
-      <topic label="Property sheet" href="samples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html" />
-      <topic label="Readme tool" href="samples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html" />
-   </topic>
-
-   <topic label="Help" href="samples/org.eclipse.help.examples.ex1/doc-html/help_ex.html" />
- 
-   <topic label="Team" href="samples/org.eclipse.team.examples.filesystem/doc-html/team_filesystem_ex.html" />
-     
-   <topic label="Compare" href="samples/org.eclipse.compare.examples/doc-html/ui_structurecreator_ex.html" />
-   <topic label="Compare" href="samples/org.eclipse.compare.examples.xml/doc-html/ui_xmlcompare_ex.html" />
-   
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.isv/workbench.gif b/bundles/org.eclipse.platform.doc.isv/workbench.gif
deleted file mode 100644
index d4125ed..0000000
--- a/bundles/org.eclipse.platform.doc.isv/workbench.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/.project b/bundles/org.eclipse.platform.doc.user/.project
deleted file mode 100644
index bc7b559..0000000
--- a/bundles/org.eclipse.platform.doc.user/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.platform.doc.user</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.platform.doc.user/about.html b/bundles/org.eclipse.platform.doc.user/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.platform.doc.user/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/book.css b/bundles/org.eclipse.platform.doc.user/book.css
deleted file mode 100644
index 139eb28..0000000
--- a/bundles/org.eclipse.platform.doc.user/book.css
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/build.properties b/bundles/org.eclipse.platform.doc.user/build.properties
deleted file mode 100644
index 75fb4a7..0000000
--- a/bundles/org.eclipse.platform.doc.user/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# use provided build.xml
-custom=true
diff --git a/bundles/org.eclipse.platform.doc.user/build.xml b/bundles/org.eclipse.platform.doc.user/build.xml
deleted file mode 100644
index 3fdc75b..0000000
--- a/bundles/org.eclipse.platform.doc.user/build.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.platform.doc.user" default="build.jars" basedir=".">
-
-	<target name="init">
-		<property name="plugin" value="org.eclipse.platform.doc.user"/>
-		<property name="version.suffix" value="_3.0.0"/>
-		<property name="full.name" value="${plugin}${version.suffix}"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-	</target>
-
-	<target name="build.update.jar" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<zip zipfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/${full.name}"/>
-		<zip zipfile="${destination.temp.folder}/${full.name}/doc.zip"
-			basedir="${basedir}"
-			includes="book.css, hglegal.htm, ngibmcpy.gif, no_help_exists.htm, concepts/**, gettingStarted/**, images/**, reference/**, tasks/**, tips/**, whatsNew/**"
-		/>
-		<copy todir="${destination.temp.folder}/${full.name}">
-			<fileset dir="${basedir}" includes="*.properties,*.xml,*.zip,*.html,*.htm,*.gif,book.css" excludes="build.properties,build.xml"/>
-		</copy>
-	</target>
-
-	<target name="build.jars" depends="init">
-	</target>
-
-	<target name="gather.sources" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="build.sources" depends="init">
-	</target>
-
-	<target name="gather.logs" depends="init" if="destination.temp.folder">
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${plugin.destination}/${full.name}.jar"/>
-		<delete file="${plugin.destination}/${full.name}.zip"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running">
-		<eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
-	</target>
-
-	<target name="zip.plugin" depends="init">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="build.sources"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<antcall target="gather.sources">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<delete>
-			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
-		</delete>
-		<zip zipfile="${plugin.destination}/${full.name}.zip" basedir="${temp.folder}" filesonly="true"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/accessmain.htm b/bundles/org.eclipse.platform.doc.user/concepts/accessibility/accessmain.htm
deleted file mode 100644
index 1eafcf3..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/accessmain.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-
- <head>
-<LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"> 
-<meta name="keyword" content="shortcut key, accelerator key, hot key, hotkey">
- <meta name="keyword" content="shortcut keys, accelerator keys, hot keys, hotkeys">
- <meta name="keyword" content="accessibility, disability, special needs">
- <meta name="keyword" content="accessible, disabilities, special need">
- <title>Accessibility features for Eclipse</title>
-
- 
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
- <body>
-
- <h1>Accessibility features in Eclipse</h1>
- <p>
- Accessibility features help people with a physical disability, such as 
- restricted mobility or limited vision, or those with special needs to use 
- software products successfully. These are the major accessibility features in
- Eclipse:</p>
- <ul>
-   <li>Eclipse uses Microsoft Active 
-   Accessibility (MSAA) APIs to render user interface elements accessible to 
-   assistive technology.</li>
-   <li>You can operate all features using the keyboard instead of the mouse. See 
-   the related task. </li>
-   <li>You can use screen-reader software such as Freedom Scientific's JAWS <sup>TM</sup>
-    and a digital speech synthesizer to hear what is displayed on the 
-   screen. You can also use voice recognition software,
-   such as IBM ViaVoice <sup>TM</sup> to enter data and to navigate the user 
-   interface.</li>
-   <li>You can magnify what is displayed on your screen in the graphical views.
-   </li>
-   <li>Any fonts or colors defined by Eclipse can be set using the <strong>Window &gt; 
-   Preferences </strong>dialog<strong>. </strong>See the related link.
-   </li>
- </ul>
- <p><strong>Note: </strong>The Accessibility features mentioned in 
- this document apply to the Windows operating system.
- </p>
- <p><img src="../../images/ngrelt.gif" alt="Related tasks" border="0" width="159" height="27"><a href="navigation.htm"><br>
- Navigating the user interface using the keyboard</a></p>
- <p><img src="../../images/ngrelr.gif" alt="Related references" border="0" width="159" height="27"><br>
- <a href="keyboardshortcuts.htm">Keys</a><br>
-  <a href="fontsandcolors.htm">Font and color settings in Eclipse</a></p>
-
- 
-<p><a href="../../hglegal2003.htm"><img src="../../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a></p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/colordialog.htm b/bundles/org.eclipse.platform.doc.user/concepts/accessibility/colordialog.htm
deleted file mode 100644
index ff8e5a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/colordialog.htm
+++ /dev/null
@@ -1,531 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <title>Color Dialog Mappings Table</title>
-  <LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"> 
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body>
-<h1>Windows Color Dialog Reference</h1>
-<p>Below are the tables that show the colors of the fonts in the matrix of the 
-  Windows color dialog and the color settings that each of these correspond to.</p>
-<h2>Windows Color Dialog Color Matrix</h2>
-<table border="1">
-  <col >
-  <col span=2 >
-  <col  span=5 >
-  <tr bordercolor="#000000" > 
-    <td > <div align="center">salmon</div></td>
-    <td> <div align="center">pale yellow</div></td>
-    <td > <div align="center">pale green</div></td>
-    <td > <div align="center">spring green</div></td>
-    <td> <div align="center">pale turquoise</div></td>
-    <td > <div align="center">deep sky blue</div></td>
-    <td> <div align="center">pale rose</div></td>
-    <td > <div align="center">pink</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="center">red</div></td>
-    <td > <div align="center">yellow</div></td>
-    <td > <div align="center">apple green</div></td>
-    <td > <div align="center">light green</div></td>
-    <td > <div align="center">aqua</div></td>
-    <td > <div align="center">turquoise</div></td>
-    <td > <div align="center">pale slate blue</div></td>
-    <td > <div align="center">magenta</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="center">chocolate</div></td>
-    <td > <div align="center">pumpkin</div></td>
-    <td > <div align="center">lime</div></td>
-    <td > <div align="center">teal</div></td>
-    <td > <div align="center">dark turquoise</div></td>
-    <td > <div align="center">medium slate blue</div></td>
-    <td > <div align="center">maroon</div></td>
-    <td > <div align="center">rose</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="center">dark red</div></td>
-    <td > <div align="center">dark orange</div></td>
-    <td > <div align="center">green</div></td>
-    <td > <div align="center">sea green</div></td>
-    <td > <div align="center">blue</div></td>
-    <td > <div align="center">medium blue</div></td>
-    <td > <div align="center">purple</div></td>
-    <td > <div align="center">blueviolet</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="center">dark brown</div></td>
-    <td > <div align="center">saddle brown</div></td>
-    <td > <div align="center">dark forest green</div></td>
-    <td > <div align="center">dark teal</div></td>
-    <td > <div align="center">navy </div></td>
-    <td > <div align="center">midnight blue</div></td>
-    <td > <div align="center">dark purple</div></td>
-    <td > <div align="center">dark blueviolet</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="center">black</div></td>
-    <td > <div align="center">olive</div></td>
-    <td > <div align="center">dark olive</div></td>
-    <td > <div align="center">grey</div></td>
-    <td > <div align="center">light teal</div></td>
-    <td > <div align="center">light grey</div></td>
-    <td > <div align="center">dark purple</div></td>
-    <td > <div align="center">white</div></td>
-  </tr>
-</table>
-<h2>Settings for Default Colors in the Windows Color Dialog</h2>
-<p></p>
-<table border="1">
-  <col >
-  <col span=2 >
-  <col  span=5 >
-  <tr bordercolor="#000000"  > 
-    <td width="95"  > <div align="left"><strong>Color</strong></div></td>
-    <td width="22" > <div align="right"><strong>Hue</strong></div></td>
-    <td width="58" > <div align="right"><strong>Saturation</strong></div></td>
-    <td width="63" > <div align="right"><strong>Lumination</strong></div></td>
-    <td width="21" > <div align="right"><strong>Red</strong></div></td>
-    <td width="37"  x:str="Green "> <div align="right"><strong>Green </strong></div></td>
-    <td width="26" > <div align="right"><strong>Blue</strong></div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">apple green</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">aqua</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">black</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">blue</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">blueviolet</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">chocolate</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">80</div></td>
-    <td  > <div align="right">90</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark blueviolet</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark brown</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">30</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark forest green</div></td>
-    <td  > <div align="right">80</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">30</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark olive</div></td>
-    <td  > <div align="right">40</div></td>
-    <td  > <div align="right">80</div></td>
-    <td  > <div align="right">90</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark orange</div></td>
-    <td  > <div align="right">20</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark purple</div></td>
-    <td  > <div align="right">200</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">30</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark purple</div></td>
-    <td  > <div align="right">200</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">30</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark red</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark teal</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">30</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">dark turquoise</div></td>
-    <td  > <div align="right">140</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">deep sky blue</div></td>
-    <td  > <div align="right">140</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">green</div></td>
-    <td  > <div align="right">80</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">grey</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">light green</div></td>
-    <td  > <div align="right">90</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">light grey</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">181</div></td>
-    <td  > <div align="right">192</div></td>
-    <td  > <div align="right">192</div></td>
-    <td  > <div align="right">192</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">light teal</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">80</div></td>
-    <td  > <div align="right">90</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">lime</div></td>
-    <td  > <div align="right">80</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">magenta</div></td>
-    <td  > <div align="right">200</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">maroon</div></td>
-    <td  > <div align="right">220</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">medium blue</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">75</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">160</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">medium slate blu<span style='display:
-  none'>e</span></div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">midnight blue</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">30</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td   x:str="navy "> <div align="left">navy </div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">olive</div></td>
-    <td  > <div align="right">40</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">pale green</div></td>
-    <td  > <div align="right">80</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">pale rose</div></td>
-    <td  > <div align="right">220</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">192</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">pale slate blue</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">81</div></td>
-    <td  > <div align="right">151</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">192</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">pale turquoise</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">pale yellow</div></td>
-    <td  > <div align="right">40</div></td>
-    <td > <div align="right">240</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">pink</div></td>
-    <td  > <div align="right">200</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">pumpkin</div></td>
-    <td  > <div align="right">13</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">150</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">purple</div></td>
-    <td  > <div align="right">200</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">red</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">rose</div></td>
-    <td  > <div align="right">220</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">saddle brown</div></td>
-    <td  > <div align="right">20</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">64</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">salmon</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">180</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">sea green</div></td>
-    <td  > <div align="right">100</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">64</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">spring green</div></td>
-    <td  > <div align="right">100</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">teal</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">60</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">128</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">turquoise</div></td>
-    <td  > <div align="right">133</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">90</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">128</div></td>
-    <td  > <div align="right">192</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">white</div></td>
-    <td  > <div align="right">160</div></td>
-    <td  > <div align="right">0</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">255</div></td>
-  </tr>
-  <tr bordercolor="#000000"  > 
-    <td  > <div align="left">yellow</div></td>
-    <td  > <div align="right">40</div></td>
-    <td  > <div align="right">240</div></td>
-    <td  > <div align="right">120</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">255</div></td>
-    <td  > <div align="right">0</div></td>
-  </tr>
-</table>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/fontsandcolors.htm b/bundles/org.eclipse.platform.doc.user/concepts/accessibility/fontsandcolors.htm
deleted file mode 100644
index e965323..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/fontsandcolors.htm
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <title>Fonts and colors in Eclipse</title>
-  <LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"> 
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body>
-
-<h1>Fonts and colors in Eclipse</h1>
-<p>Eclipse uses the fonts and colors provided by the operating system as much as
-possible. On Windows the platform color and font settings are found on the
-<b>Properties &gt; Appearance</b> page. The font used by most widgets in Eclipse is the
-one set in the Message Box settings of the properties. However, operating
-systems do not provide enough colors to handle all of the extra information that
-colors and fonts provide in Eclipse.&nbsp;</p>
-<h2>Fonts</h2>
-<p><img src="../../images/accessibility_new_project.gif" alt="New Project Wizard" border="0" width="499" height="499"></p>
-<p>There are 4 main fonts in use by the Eclipse platform. They are: </p>
-
-<dl>
-  <dt><em>Banner Font</em></dt>
-  <dd>Used in PDE editors, welcome pages and in the title area of many wizards. 
-    For instance the New Project wizard uses this font for the top title,</dd>
-  <dt><em>Header Font</em></dt>
-  <dd>Used as a section heading. For instance the Welcome page for the Eclipse 
-    Platform uses this font for the top title,</dd>
-  <dt><em>Text Font</em></dt>
-  <dd>Used in text editors.</dd>
-  <dt><em>Dialog Font</em></dt>
-  <dd>Used in dialogs.</dd>
-</dl>
-<p>&nbsp; </p>
-<p>These fonts can be set via the <b>Workbench &gt; Font</b> preference. As well 
-  as these 4 fonts there are several other secondary font settings. These default 
-  to the text font. They can be found on the font preference page:</p>
-<ul>
-  <li><b>Compare Text Font</b></li>
-  <li><b>CVS Console Font</b></li>
-  <li><b>Debug Console Font</b></li>
-  <li><b>Detail Pane Text Font</b></li>
-  <li><b>Java Compare Text Font</b></li>
-  <li><b>Java Editor Text Font</b></li>
-</ul>
-<h2>Colors</h2>
-<p>Eclipse uses colors as an information enhancement in many places. Whenever
-possible the operating system color settings are used, but in cases where the
-operating system settings are not enough, Eclipse defines other colors. All of
-these colors can be adjusted via the following preference pages:</p>
-<ul>
-  <li><b>Workbench &gt; Appearance</b> (Error text, hyperlink text, active hyperlink 
-    text)</li>
-  <li><b>Workbench &gt; Search</b> (Foreground for inexact matches)</li>
-  <li><b>Debug &gt; Console</b> (Standard Out, Standard Error, Standard In)</li>
-  <li><b>Debug &gt; Variable Views</b> (Changed variable)</li>
-  <li><b>Ant</b> (Error, Warning, Information, Verbose, Debug)</li>
-  <li><b>Install/Update</b> (Section Title Color)</li>
-  <li><b>Java &gt; Editor &gt; Appearance</b> (Line number, matching brackets, 
-    current line, problems, print, find scope, linked position)</li>
-  <li><b>Java &gt; Editor &gt; Syntax</b> (Multi line comment, single line comment, 
-    keywords, strings, others, javadoc keywords, javadoc html, javadoc links, 
-    javadoc others, background)</li>
-  <li><b>Java &gt; Editor &gt; Code Assist</b> (background and foreground for 
-    completion proposals and method parameters)</li>
-  <li><b>Plug-in Development &gt; Editors</b> (Text, processing instructions, 
-    constant strings, tags ,comments)</li>
-  <li><b>Team &gt; CVS &gt; Console</b> (Command line, message, error)</li>
-</ul>
-<h2><img src="../../images/win_only.gif" alt="Windows only" border="0" width="51" height="13">Accessibility 
-  and the Windows Color Dialog</h2>
-<p>For color selection, Eclipse uses a dialog provided by the operating system. 
-  On windows, the color selection dialog does not respond properly to assitive 
-  technology. When you first get into the dialog, focus is on one of the basic 
-  colors, but the dialog provides no indication of this through assistive technology. 
-  You can select colors in Eclipse with this dialog in the following way:</p>
-<ol>
-  <li> Select to customize the color of something in Eclipse, for example the 
-    color of Error Text in your Workbench Appearance preferences.</li>
-  <li> In the color selection dialog, tab twice to go from the Basic Color matrix 
-    to the Define Custom Colors button and press Enter.</li>
-  <li> You can now enter the basic colors using an HSL or RGB specification according 
-    to the following definitions. See the<a href="colordialog.htm"> Windows Color 
-    Dialog Reference</a> for a tables and values for these colors.<br>
-  </li>
-</ol>
-<p><img src="../../images/ngrelt.gif" alt="Related tasks" border="0" width="159" height="27"><br>
-<a href="accessmain.htm">Accessibility Features in Eclipse</a><br>
-<a href="navigation.htm">Navigating the user interface by using the keyboard</a>
-</p>
-
-<p><img src="../../images/ngrelr.gif" alt="Related references" border="0" width="159" height="27"><br>
-<a href="keyboardshortcuts.htm">Keys</a><br>
-<a href="colordialog.htm"> Windows Color 
-    Dialog Reference</a> 
-</p>
-
-<p>&nbsp;<br>
-<a href="../../hglegal2003.htm"><img src = "../../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/keyboardshortcuts.htm b/bundles/org.eclipse.platform.doc.user/concepts/accessibility/keyboardshortcuts.htm
deleted file mode 100644
index 59bcf27..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/keyboardshortcuts.htm
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<head>
-	<title>Keys</title>
-	<LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"> 
-	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-<body>
-<h1>Keys</h1>
-<p>
-The function of the keyboard can be extensively customized in Eclipse. Within Eclipse, 
-key strokes and key sequences are assigned to invoke particular commands. 
-</p>
-<h2>Key strokes, Key sequences, and Key bindings</h2>
-<p>
-A 'key stroke' is the pressing of a key on the keyboard, while optionally holding down one 
-or more of these modifier keys: <code>Ctrl</code>, <code>Alt</code> (<code>Option</code> on the Macintosh), <code>Shift</code>, or 
-<code>Command</code> (only on the Macintosh.) For example, holding down <code>Ctrl</code> then 
-pressing <code>A</code> produces the key stroke <code>Ctrl+A</code>. The pressing of the modifier keys themselves
-do not constitute key strokes.
-</p>
-<p>
-A 'key sequence' is one or more key strokes. Traditionally, emacs assigned two or three key stroke key sequences to particular 
-commands. For example, the normal key sequence assigned to <code>Close All</code> in emacs is <code>Ctrl+X Ctrl+C</code>. 
-To enter this key sequence, one presses the key stroke <code>Ctrl+X</code> followed by the key stroke <code>Ctrl+C</code>.
-Eclipse supports key sequences of arbitrary lengths.
-</p>
-<p>
-A 'key binding' is the assignment of a key sequence to a command.
-</p>
-<h2>Configurations</h2>
-<p>
-A 'configuration' is a set of key bindings. Eclipse includes two configurations:
-</p>
-<ul>
-<li>Standard</li>
-<li>Emacs (extends Standard)</li>
-</ul>
-<p>
-The <em>Standard</em> configuration contains a general set of key bindings, in many cases recognizable to 
-users as traditional key sequences. For instance, <code>Ctrl+A</code> is assigned to <code>Select All</code>, 
-<code>Ctrl+S</code> is assigned to <code>Save</code>, etc.
-</p>
-The <em>Emacs</em> configuration contains a set of key bindings familiar to users of emacs.
-For instance, <code>Ctrl+X H</code> is assigned to <code>Select All</code>, <code>Ctrl+X S</code> is assigned to <code>Save</code>, etc.
-</p>
-<p>
-It is important to understand why the <em>Emacs</em> configuration says that it 'extends Standard'. The <em>Emacs</em> configuration
-is not a complete set of key bindings like the <em>Standard</em> configuration. Rather, it borrows from the <em>Standard</em>
-configuration where possible, only defining explicit emacs style key bindings where they vary from the
-<em>Standard</em> configuration. Generally, only well known commands like <code>Select All</code>, <code>Save</code>, etc. have specific emacs key sequences associated with them. 
-</p>
-<p>
-The user decides which configuration they are most comfortable using by changing the 'Active Configuration' setting on the
-keys preference page. If the user chooses the <em>Standard</em> configuration, all <em>Emacs</em> key bindings are ignored. If the user chooses
-the <em>Emacs</em> configuration, explicit emacs style key sequence assignments take precedence over any conflicting assignments in the <em>Standard</em> configuration.
-</p>
-<h2>Scopes</h2>
-<p>
-Key bindings can vary based on the current context of Eclipse. 
-</p>
-<p>
-Sometimes the active part might be a java file editor, for instance, where a different set of
-key sequence assignments may be more appropriate than if the active part was an html file editor.
-As a specific example, typically <code>Ctrl+B</code> is assigned to <code>Build</code> in a context such as java file editing, 
-while <code>Ctrl+B</code> is assigned to <code>Make Text Bold</code> in a context such as html file editing. This context is called
-'scope' and is determined by the active part. If the active part does not choose a particular scope, the workbench
-will set the active scope to <em>Global</em>.
-</p>
-<p>
-Eclipse includes three different scopes. They are:
-</p>
-<ul>
-<li>Global</li>
-<li>Text Editor (extends Global)</li>
-<li>Java Editor (extends Text Editor)</li>
-</ul>
-<p>
-Much like configurations, scopes can extend other scopes. For example, the <em>Java Editor</em> scope borrows key bindings from the
-<em>Text Editor</em> scope, which in turn borrows key bindings from the <em>Global</em> scope.
-</p>
-<h2>Platform and Locale</h2>
-<p>
-Key bindings also vary by platform and locale. On the Macintosh platform, <code>Command+S</code> is assigned to <code>Save</code>, instead of the usual <code>Ctrl+S</code>. On Chinese locales (zh), <code>Alt+/</code> is assigned to <code>Content Assist</code>, instead of the usual <code>Ctrl+Space</code>.
-</p>
-<p>
-The current platform and locale is determined when Eclipse starts, and does not vary over the course of an Eclipse instance.
-</p>
-<h2>Customizing Key bindings</h2>
-<p>
-With multi-stroke key sequences, configurations, and scopes, there are a lot of things to keep in mind when customizing key bindings.
-To make things easier, all key customization is done on the Keys preference page.
-</p>
-<p>
-Select <b>Window &gt; Preferences &gt; Workbench &gt; Keys</b> for the Keys preference page.
-</p>
-<p> <img src="../../images/keys1.gif" alt="Keys preference page showing Emacs as the active configuration and the Close command selected" width="591" height="543"> 
-</p>
-In this example, we have chosen to select <em>Emacs</em> as the active configuration, and have selected the command <code>Close</code> from the list of commands. Information on this command, along with its current key bindings, is shown on the right side.
-</p>
-<p>
-Notice that <code>Close</code> has two key sequences assigned to it: <code>Ctrl+F4</code> in the <em>Standard</em> configuration and <code>Ctrl+X K</code> in the <em>Emacs</em> configuration. Both are assigned in the <em>Global</em> scope. Thus, if the user sets the active configuration to <em>Standard</em>, <code>Ctrl+F4</code> will be assigned to <code>Close</code> while <code>Ctrl+X K</code> will not. If the user sets the active configuration to <em>Emacs</em>, however, <code>Ctrl+X K</code> will be assigned to <code>Close</code>. As well, because the <em>Emacs</em> configuration also borrows key bindings from the <em>Standard</em> configuration, <code>Ctrl+F4</code> will also be assigned to <code>Close</code> provided that <code>Ctrl+F4</code> has not been assigned to another command in the <em>Emacs</em> configuration. 
-</p>
-<p>
-Below the list of key sequences assigned to <code>Close</code>, there is a place to add or remove key bindings. By default, it selects the scope as <em>Global</em> and the configuration to be the user's active configuration (recall above where we changed this to <em>Emacs</em>).
-<p>
-<p>
-We type in the key sequence <code>Ctrl+W</code>, and the 'Add' button becomes enabled. Also, a list of all the commands to which the key sequence
-<code>Ctrl+W</code> is already assigned is show below the Add button. We can see that <code>Ctrl+W</code> is currently assigned to the command <code>Cut</code> in the <em>Global</em> scope and <em>Emacs</em> configuration. We click the 'Add' button to assign <code>Ctrl+W</code> to <code>Close</code>.
-</p>
-<img src="../../images/keys2.gif" alt="Keys preference page, assigning the key sequence Ctrl+W to the command Close" width="470" height="247"> </p> 
-Now we see <code>Ctrl+W</code> added to the list of key sequences assigned to 
-<code>Close</code>. Notice the small 'change' graphic <img src="../../images/change.gif" alt="Small graphic representing 'change'"> 
-indicating that this key binding changes an existing key binding. Our new key 
-binding, effectively removes the previous assignment of <code>Ctrl+W</code> to 
-<code>Cut</code>. We can remove this change at any time by selecting our new key 
-binding and clicking the 'Remove' button. The previous assignment of <code>Ctrl+W</code> 
-to <code>Cut</code> will automatically be restored. 
-<p> <img src="../../images/keys3.gif" alt="Keys preference page showing the new assignment, including 'change' graphic" width="472" height="428"> 
-</p>
-By selecting the command <code>Cut</code>, we can see the results of our change. Notice the small 'minus' graphic <img src="../../images/minus.gif" alt="Small graphic representing 'minus'"> indicating that the key binding was removed. We can restore this key binding at any time by selecting it here and clicking the 'Restore' button, effectively removing the new key binding we added in the previous step.
-<p> <img src="../../images/keys4.gif" alt="Keys preference page showing the Cut command" width="604" height="517"> 
-</p>
-Perhaps we choose to assign another key to <code>Cut</code> in the <em>Emacs</em> 
-configuration, say <code>Ctrl+Alt+W</code>. Adding this in the previous manner 
-above produces the following. Notice the small 'plus' graphic <img src="../../images/plus.gif" alt="Small graphic representing 'plus'"> 
-indicating that the key binding was added by the user, and was previously unassigned: 
-<p> <img src="../../images/keys5.gif" alt="Keys preference page adding the key sequence Ctrl+Alt+W to Close" width="574" height="450"></p>
-<h2>The Dynamic Nature of Key bindings</h2>
-<p>
-Key bindings are provided by plug-ins, and in Eclipse, plug-ins can be added or removed. This can cause key bindings declared by these plug-ins to be added or removed. Eclipse stores custom key bindings in a way to automatically compensate for this. Consider the example above where <code>Ctrl+Alt+W</code> was assigned to <code>Cut</code> in the <em>Emacs</em> configuration. Consider the user installs a new plug-in which assigns <code>Ctrl+Alt+W</code> to a particular command. Eclipse will preserve the user's assignment to <code>Cut</code>, but show the key binding with the small 'change' graphic instead of the 'plus' graphic.
-</p>
-<h2>Conflict Resolution</h2>
-<p>
-There are only a finite number of simple, common key strokes available to assign to a multitude of commands. We have seen that configuration, scope, platform, and locale all partition key sequence assignments into domains where they don't conflict with one another. Consider the case for <code>Ctrl+B</code> above if scopes did not exist. One plug-in would assign <code>Ctrl+B</code> to <code>Build</code>, the other plug-in would assign <code>Ctrl+B</code> to <code>Make Bold Text</code>. How would Eclipse properly resolve this conflict?
-</p>
-<p>
-Though conflicts are drastically reduced by employing the above mechanisms, they can still occur. Two plug-ins, independent of one another, could assign the same key sequence to different commands with the same scope, configuration, platform, and locale. Consider if a plug-in assigned <code>Ctrl+F4</code> in the <em>Global</em> scope and <em>Standard</em> configuration to one of its commands. This directly conflicts with Eclipse assigning <code>Ctrl+F4</code> to the close command in the same scope and configuration.
-</p>
-This is a conflict. It wouldn't be proper to invoke both commands, nor would it be proper to simply choose one of the two commands to receive the key stroke. The only proper thing to do is to ignore both key bindings, making <code>Ctrl+F4</code> effectively useless in this scope and configuration.
-</p>
-<p>
-Conflicts of this nature are shown in the Keys preference page as follows. Notice the red text and the word "[conflict]":
-</p>
-<p> <img src="../../images/keys6.gif" alt="Keys preference page showing a conflict for the key sequence Ctrl+F4" width="567" height="451"> 
-</p>
-<p>
-These types of conflicts can be resolved by the user explicitly assigning the key sequence to one of the commands.
-</p>
-<p>
-Another type of conflict can be caused by multiple-key stroke key sequences. For example, in the <em>Emacs</em> configuration, there are many multiple-key stroke key sequences beginning with the key stroke <code>Ctrl+X</code>. <code>Ctrl+H K</code> is assigned to <code>Close</code>. <code>Ctrl+X H</code> is assigned to <code>Select All</code>.
-</p>
-<p>
-As previously mentioned, the <em>Emacs</em> configuration borrows key bindings from the <em>Standard</em> configuration. In the standard configuration, <code>Ctrl+X</code> is assigned to <code>Cut</code>. Though the <em>Emacs</em> configuration doesn't explicitly redefine <code>Ctrl+X</code>, pressing <code>Ctrl+X</code> is required as part of many of its key bindings. In the <em>Emacs</em> configuration, when one presses <code>Ctrl+X</code>, one is half way to entering one of many possible assigned key sequences. One would not expect the <code>Cut</code> action to be invoked at this time.
-</p>
-<p>
-For this type of conflict, the rule is that the <code>Ctrl+X</code> key sequence assigned to <code>Cut</code> would be ignored. Otherwise, it would not be possible to complete many of the key bindings in the <em>Emacs</em> configuration. 
-</p>
-<p><img src="../../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="accessmain.htm">Accessibility Features in Eclipse</a><br>
-<a href="../../tasks/tkeybindings.htm">Changing the key bindings</a><br>
-<a href="../chelpsys.htm">Online help system</a></p>
-<p><img src="../../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-  <a href="fontsandcolors.htm">Font and color settings in Eclipse</a></p>
-<p><a href="../../hglegal2003.htm">
-<img src="../../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a></p> 
-</body>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/navigation.htm b/bundles/org.eclipse.platform.doc.user/concepts/accessibility/navigation.htm
deleted file mode 100644
index df1b9bd..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/accessibility/navigation.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<head>
- <title>Navigating the user interface using the keyboard</title>
- <LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"> 
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
- <body>
-
- <h1>Navigating the user interface using the keyboard</h1>
- <p>The user interface is navigable using the keyboard. The Tab key is used to
- iterate through the controls in a particular scope (for example, a dialog or a view and
- its related icons). To navigate to the main controls for the Workbench window
- or to tab out of views that use the Tab key (such as editors) use Ctrl+Tab. </p>
- <h2>Menus</h2>
- <p>Most menus are assigned mnemonics for each entry which allow you to
- select them by typing the underlined letter instead of the mouse. You can also
- select an item by moving through the menus and sub-menus with the arrow keys. </p>
- <p>The various menus available can be accessed using the keyboard in the
- following ways: </p>
- <ul>
-  <li>F10 accesses the menus on the main menu bar.</li>
-  <li>Shift + F10 pops up the context menu for the current view.</li>
-  <li>Ctrl+F10 will pull down the pull down menu for the current view if there is
-    one.</li>
-  <li>Alt - pops up the main view menu.</li>
-  <li>Alt + mnemonic will activate the Workbench menu for a particular entry
-    (i.e. Alt + W will bring down the <u>W</u>indow menu).</li>
- </ul>
- <h2>Controls</h2>
- <p>Mnemonics are assigned to most labels of controls (for 
- example, buttons, check boxes, radio buttons) in dialog boxes, 
- preference pages, and property pages. To access the control associated
- with a label, use the Alt key along with the letter that is underlined 
- in the label. </p>
- <h2>Navigation Context</h2>
- <p>Navigation context is saved for the packages, navigator views, Workbench preferences and properties dialogs. The expanded state of the tree in
- the packages and resource views are saved between Workbench sessions. The
- selected page for the preferences and properties dialog is saved between
- invocations of the dialog but are not saved between workbench invocations. </p>
- <h2>Cycling Editors, Views and Perspectives </h2>
- <p>To switch between editors, views and perspectives, the workbench provides a cycling
- function that is invoked by Ctrl and a function key. All of these cycling
- functions recall the last thing selected to allow for rapid cycling back and
- forth between two items. The cycling functions are </p>
- <ul>
-  <li>Ctrl+F6 - Cycle to Editor</li>
-  <li>Ctrl+F7 - Cycle to View</li>
-  <li>Ctrl+F8 - Cycle to Perspective</li>
- </ul>
- <h2>Accelerators </h2>
- 
-<p>Many of the actions in Eclipse have an accelerator assigned to them. For additional 
-  information on accelerators, see <a href="keyboardshortcuts.htm">Keys</a>. </p>
- <h2>Help system</h2>
- <p>You can navigate the help system by keyboard using the following key 
- combinations:</p>
- <ul>
-   <li>Pressing Tab inside a frame (page) takes you to the next link, button or 
-   topic node. </li>
-   <li>To expand/collapse a tree node, press Right/Left arrows. </li>
-   <li>To move to the next topic node, press Down arrow or Tab </li>
-   <li>To move to the previous topic node, press Up arrow or Shift+Tab </li>
-   <li>To display selected topic, press Enter. </li>
-   <li>To scroll all the way up or down press Home or End. </li>
-   <li>To go back press Alt+Left arrow; to go forward press Alt+Right arrow.
-   </li>
-   <li>To go to the next frame, or toolbar press Ctrl+Tab
-     (Ctrl+F6, if using browser based on Mozilla 1.2 or newer).</li>
-   <li>To move to previous frame, press Shift+Ctrl+Tab.
-     (Shift-Ctrl+F6, if using browser based on Mozilla 1.2 or newer).</li>
-
-   <li>To move between tabs, press Right/Left arrows.</li>
-   <li>To switch view, select a tab and press Enter.</li>
-   <li>To switch and move to a view, select a tab and press Up arrow.</li>
-   <li>To print the current page or active frame, press Ctrl+P. </li>
- </ul>
-<p><img src="../../images/ngrelc.gif" alt="Related concepts" border="0" width="159" height="27"><br>
-  <a href="accessmain.htm">Accessibility features in Eclipse</a><br>
- <a href="../../tasks/tkeybindings.htm">Changing the key bindings</a><br>
- <a href="keyboardshortcuts.htm">Keys</a> <br>
-<a href="../chelpsys.htm">Online help system</a></p>
- <p><img src="../../images/ngrelr.gif" alt="Related references" border="0" width="159" height="27"><br>
-  <a href="fontsandcolors.htm">Font and color settings in Eclipse</a></p>
-
-<p><a href="../../hglegal2003.htm">
-<img src="../../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a></p> 
-</body>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/cbookmrk.htm b/bundles/org.eclipse.platform.doc.user/concepts/cbookmrk.htm
deleted file mode 100644
index ae52188..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/cbookmrk.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Bookmarks</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
- Bookmarks </H1>
-<P CLASS="Para">You can place an &quot;anchor&quot; either on a resource within
-the Workbench, or at a specific line within a file, by creating a bookmark. Then
-you can use the Bookmarks view to return to those files quickly.</P>
-<P CLASS="Para">The Bookmarks&nbsp; view (<b>Window &gt; Show View &gt;
-Bookmarks</b>) displays all bookmarks&nbsp;that you have created.&nbsp;</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="ctskview.htm">Tasks view</a></p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-81b.htm">Creating a bookmark for an entire file</a><a href="../tasks/tasks-81.htm"><br>
-Creating a bookmark within a file</a><a href="../tasks/tasks-82.htm"><br>
-Deleting a bookmark<br>
-</a><a href="../tasks/tasks-77.htm">Adding line items in the Tasks view</a><a href="../tasks/tasks-77b.htm"><br>
-Associating a task with an editable resource</a></p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-28.htm">Bookmarks view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/cdecorations.htm b/bundles/org.eclipse.platform.doc.user/concepts/cdecorations.htm
deleted file mode 100644
index a8f21ba..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/cdecorations.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Label decorations</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
- Label decorations </H1>
-<P CLASS="Para">Label decorations are used to show extra information about an
-item by modifying its label or icon. They can be used to obtain information
-about the state of an item without having to look at its properties in the
-Properties view or open its Properties dialog.</P>
-<P CLASS="Para">A number of label decorators may be available. To control which decorators
-are visible, go to <b>Window &gt; Preferences &gt; Workbench &gt; Label</b> <b>Decorations</b>.
-This preference page provides a selectable list and description of the available
-decorations.</P>
-<P CLASS="Para">The following is the Navigator view showing resources with CVS
-decorations:</P>
-<P CLASS="Para"><img src="../images/Image273_nav-decorators.gif" alt="Navigator view with CVS decorators on" border="0" width="236" height="286"></P>
-<P CLASS="Para">&nbsp;</P>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/chelpsys.htm b/bundles/org.eclipse.platform.doc.user/concepts/chelpsys.htm
deleted file mode 100644
index a00a50d..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/chelpsys.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Help system</title>
-</head>
-
-<body>
-
-<h1>Help system</h1>
-
-<p>The online help system lets you 
-browse, search, and print system documentation. The documentation is organized into sets of 
-information that are analogous to books. The help system also supplies a text
-search engine for finding the information you need by keyword and
-context-sensitive help for finding information to describe the particular
-function you are working with.</p>
-
-<h2>The help browser</h2>
-
-<p>When you first open the help browser by selecting <b>Help &gt; Help Contents</b> 
-in the Workbench, the first view shown is called Contents.  Contents displays 
-various groupings of documentation for the product. Click on 
-one of the links to expand the navigation tree for that set of documentation.
-Browse the tree and click on topics to display them.</p>
-
-<h2>Search</h2>
-<p>If you want to find a particular piece of information in the online help, use
-Search. The help system will search the entire information set, or only a part
-of it, to find topics that meet the criteria you specify.</p>
-
-<h2>Context-sensitive help</h2>
-
-<p>If you are working through a task and encounter part of the interface that
-you do not understand, use infopops. Bring focus to the interface widget in
-question by clicking on it or using the Tab key, and then press F1. The infopop
-will provide you with information about the interface and, if appropriate, links
-to more information.</p>
-
-<p>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/taccess.htm">Accessing and navigating online help</a><br>
-<a href="../tasks/tsearch.htm">Searching online help</a><br>
-<a href="../tasks/tf1help.htm">Accessing context-sensitive help</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/cnav.htm b/bundles/org.eclipse.platform.doc.user/concepts/cnav.htm
deleted file mode 100644
index 181d871..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/cnav.htm
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Navigator view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h1>
-Navigator view</H1>
-<P CLASS="Intro">
-
-The Navigator view provides a hierarchical view of the resources in the Workbench.
-From here, you can open files for editing or select resources for operations such
-as exporting.&nbsp;
-<P CLASS="Para">
-<img src="../images/Image241_nav_view.gif" alt="Picture of Navigator view showing a simple hierarchy (project, folders, files)" border="0" width="157" height="166"></P>
-<P CLASS="Para">
-Right-click on any resource in the Navigator view to open a pop-up menu that
-allows you to perform operations such as copying, moving, creating new
-resources, comparing resources with each other, or performing team
-operations. To see a description of what each menu item does, move selection
-highlight to that menu item and press F1.&nbsp;</P>
-<P CLASS="Para">
-By default, the Navigator view is included in the Resources perspective. To add it
-to the current perspective, click <b>Window &gt; Show View &gt; Navigator</b>.</P>
-<h2>
-Toolbar</h2>
-<P>
-The toolbar of the Navigator view contains the following buttons:</P>
-<dl>
-  <dt>Back</dt>
-  <dd>Displays the hierarchy that was displayed immediately prior to the current display.</dd>
-  <dt>Forward</dt>
-  <dd>Displays the hierarchy that was displayed immediately after the current
-    display.</dd>
-  <dt>Up</dt>
-  <dd>Displays the hierarchy of the parent of the
-current highest level resource.</dd>
-  <dt>Collapse All</dt>
-  <dd>Collapses the tree expansion state of all resources in the view.</dd>
-  <dt>Link with Editor</dt>
-  <dd>Toggles whether the Navigator view selection is linked to the active editor.
-  When this option is selected, changing the active editor will automatically update the 
-  Navigator selection to the resource being edited.</dd>
-  <dt>Menu</dt>
-  <dd>Provides menu items that allow you to sort or filter the contents of the
-  Navigator view as well as select a working set.</dd>
-</dl>
-<h2>
-Icons</h2>
-<p CLASS="Para">The following icons can appear in the Navigator view.</p>
-<table BORDER="1" cellspacing="0">
-    <thead>
-    <tr>
-      <th ROWSPAN="1" COLSPAN="1">
-        <p CLASS="Para">Icon</p>
-      </th>
-      <th ROWSPAN="1" COLSPAN="1">
-        <p CLASS="Para">Description</p>
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td ROWSPAN="1" COLSPAN="1" valign="top" align="left"><img src="../images/ref-10.gif" alt=" Open project icon" border="0" width="16" height="16"></td>
-      <td ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-        Project (open)      </td>
-    </tr>
-    <tr>
-      <td COLSPAN="1" valign="top" align="left"><img src="../images/ref-11.gif" alt="Closed project icon" border="0" width="16" height="16"></td>
-      <td COLSPAN="1" valign="top" align="left">Project (closed)</td>
-    </tr>
-    <tr>
-      <td ROWSPAN="1" COLSPAN="1" valign="top" align="left"><img src="../images/ref-12.gif" alt="Folder icon" border="0" width="16" height="16"></td>
-      <td ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-       Folder
-      </td>
-    </tr>
-    <tr>
-      <td COLSPAN="1" valign="top" align="left"><img src="../images/ref-15.gif" alt="File icon" border="0" width="16" height="16"></td>
-      <td COLSPAN="1" valign="top" align="left"> File</td>
-    </tr>
-  </tbody>
-</table>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-12.htm">Resources</a><br>
-<a href="concepts-5.htm">Views</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-46bg.htm">Narrowing the scope of the Navigator view</a><br>
-<a href="../tasks/tasks-48.htm">Sorting resources in the Navigator view</a><br>
-<a href="../tasks/tasks-48b.htm">Showing or hiding files in the Navigator view</a><br>
-<a href="../tasks/tasks-3.htm">Opening views</a><br>
-<a href="../tasks/tasks-3e.htm">Moving and docking views</a><br>
-<a href="../tasks/tasks-9b.htm">Creating fast views</a>
-</p>
-<P><IMG border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-27.htm">Navigator view</a>
-</P>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-11.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-11.htm
deleted file mode 100644
index eee7c44..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-11.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Markers</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Markers</H1>
-<p CLASS="Head">Markers are objects that may be associated with Workbench
-resources.&nbsp; There are many uses of markers in the Workbench.&nbsp; Described below are
-some of the different types of markers that can be used in the
-Workbench.&nbsp;&nbsp;</p>
-<DIV CLASS="Subtopic">
-<h3>
-Tasks</h3>
-<P CLASS="Para">
-Two kinds of tasks exist and can be displayed in the Tasks view or on the marker bar in the editor area:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-Automatically-generated errors, warnings, or information associated with the resource</LI>
-<LI CLASS="Item">
-Tasks that may or may not be associated with a resource</LI>
-</UL>
-<p>The different types of tasks that exist in the Workbench are described below.</p>
-<h3>
-Problems</h3>
-<P CLASS="Para" Label=Type>
-Problem markers represent invalid states (i.e., errors, warnings, and/or information). The various kinds of problems are all considered tasks and can be displayed in the Tasks view.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<h3>
-Errors</h3>
-<P CLASS="Para" Label=Type>
-Error markers are often used to indicate the source location
-of syntax or compilation errors.&nbsp; Errors are considered problem tasks and can be displayed in the Tasks view.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<h3>
-Warnings</h3>
-<P CLASS="Para" Label=Type>
-Warning markers indicate the source location of, for example, compilation warnings. Warnings are considered problem tasks and can be displayed in the Tasks view.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<h3>
-Information Tasks</h3>
-<P CLASS="Para" Label=Type>
-Information markers indicate the source location of information only tasks. Information markers are considered problem tasks and can be displayed in the Tasks view. </P>
-</DIV>
-<h3>
-Bookmarks</h3>
-<P CLASS="Para" Label=Type>
-Bookmarks place an anchor either at a specific line in a resource or
-on the resource itself.</P>
-
-<P CLASS="Para" Label=Type>
-<img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="cbookmrk.htm">Bookmarks</a><br>
-<a href="ctskview.htm">Task view</a></P>
-
-<P CLASS="Para" Label=Type>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-81.htm">Creating a bookmark within a file</a><br>
-<a href="../tasks/tasks-81b.htm">Creating a bookmark for an entire file</a></P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-12.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-12.htm
deleted file mode 100644
index f76d146..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-12.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Resources</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Resources</H1>
-<p CLASS="Head">
-<i>Resources</i> is a collective term for the projects, folders, and files
-that exist in the Workbench. The Navigator view provides a hierarchical view of resources and allows you to open
-them for editing. Other tools may display and handle these resources differently.&nbsp;</p>
-<p CLASS="Head">There are three basic types of resources that exist in the
-Workbench:</p>
-<dl>
-  <dt>Files</dt>
-  <dd>Comparable to files as you see them in the file system.&nbsp;</dd>
-  <dt>Folders</dt>
-  <dd>Comparable to directories on a file system.&nbsp; In the Workbench,
-    folders are contained in projects or other folders. Folders can contain
-    files and other folders.</dd>
-  <dt>Projects</dt>
-  <dd>Contain folders and files. Projects are used for builds, version
-    management, sharing, and resource organization. Like folders, projects map
-    to directories in the file system. (When you create a project, you specify a
-    location for it in the file system.)</dd>
-
-  <dd>A project is either open or closed. When a project is closed, it cannot be
-    changed in the Workbench.&nbsp; The resources of a closed project will not
-    appear in the Workbench, but the resources still reside on the local file
-    system.&nbsp; Closed projects require less memory.&nbsp; Since they are not
-    examined during builds, closing a project can improve build time.</dd><dd>When a project is open, the structure of the project can be changed and
-    you will see the contents.&nbsp;</dd>
-</dl>
-<p>
-Folders and files directly below projects can be linked to locations in the file system
-outside of the project's location.  These special folders and files are called 
-<a href="concepts-13.htm">linked resources</a>.
-</p>
-<p>Different tools that plug into the Workbench use their own specialized types
-of projects, folders, and files.&nbsp;</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-2.htm">Workbench</a><br>
-<a href="cnav.htm">Navigator view</a><br>
-<a href="concepts-17.htm">Resource hierarchies</a><br>
-<a href="concepts-13.htm">Linked resources</a><br>
-<a href="concepts-22.htm">Builds</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-53.htm">Importing resources into the Workbench</a><br>
-<a href="../tasks/tasks-42.htm">Creating a project</a><br>
-<a href="../tasks/tasks-43.htm">Creating a folder</a><br>
-<a href="../tasks/tasks-44.htm">Creating a file</a><br>
-<a href="../tasks/tasks-45.htm">Creating linked resources</a><br>
-<a href="../tasks/tasks-47.htm">Closing projects</a><br>
-<a href="../tasks/tasks-49.htm">Viewing resource properties</a><br>
-<a href="../tasks/tasks-46ag.htm">Finding a resource quickly</a><br>
-<a href="../tasks/tasks-63cg.htm">Copying resources</a><br>
-<a href="../tasks/tasks-63.htm">Moving resources</a><br>
-<a href="../tasks/tasks-68.htm">Comparing resources</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-13.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-13.htm
deleted file mode 100644
index 14ab9d6..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-13.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Linked resources</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Linked resources</H1>
-<p CLASS="Head">
-<p>
-Linked resources are files and folders that are stored in locations 
-in the file system outside of the project's location.  These special resources must
-have a project as their parent resource.  Linked folders and files can be
-used to add resources to your project that for some reason must be stored in a 
-certain place outside of your project.  For example, a linked folder can be used
-to store build output separately from your source files.
-</p>
-<p>
-You can even use linked resources to overlap other resources in the workspace, so
-resources from one project can appear in another project.
-If you do want to have overlapping resources in your workspace, do so with caution.
-Keep in mind that this means changing a resource in one place will cause simultaneous 
-changes in the duplicate resource.  Deleting one duplicate resource will delete both!
-</p>
-<p>
-Special rules apply when manipulating linked resources.  Since they must be located
-directly below a project, you cannot copy or move linked resources into other folders.
-Deleting a linked resource will <em>not</em> cause the corresponding resource
-in the file system to be deleted.  However, deleting child resources of linked folders
-<em>will</em> cause them to be removed from the file system.
-</p>
-<p>
-Some plug-ins built on top of the Eclipse platform are not compatible with linked resources.
-If this is the case, you can completely disable the linked resource feature to prevent them
-from being created in your workspace.  Linked resources can be disabled from the 
-<b>Window &gt; Preferences &gt; Workbench &gt; Linked Resources</b> preference page.
-Certain types of projects or team repository providers may also disallow linked resources
-from being created in some projects.
-<p>
-
-<img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-2.htm">Workbench</a><br>
-<a href="cnav.htm">Navigator view</a><br>
-<a href="concepts-12.htm">Resources</a><br>
-<a href="concepts-17.htm">Resource hierarchies</a><br>
-</p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-45.htm">Creating linked resources</a><br>
-<a href="../tasks/tasks-67.htm">Deleting resources</a><br>
-<a href="../tasks/tasks-49.htm">Viewing resource properties</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br>
-  <a href="../reference/ref-14b.htm">Linked resources</a> 
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-17.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-17.htm
deleted file mode 100644
index 4d9e08b..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-17.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Resource hierarchies</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Resource hierarchies</H1>
-<p CLASS="Head">Resources are stored and displayed in the Workbench in
-hierarchies.&nbsp; Described below are the terms used when referring to
-resources that are stored and displayed in a hierarchical structure.</p>
-<dl>
-  <dt>Root</dt>
-  <dd>The top level of the Workbench contents (in the file system).</dd>
-  <dt>Parent resource</dt>
-  <dd>Any resource that contains another resource. Only projects and folders can be parent resources.</dd>
-  <dt>Child resource</dt>
-  <dd>Any resource that is contained within another resource. Only files and folders can be child resources.</dd>
-</dl>
-<P>Resource hierarchies are displayed in the Navigator view, which is one of the
-default views in the Resource perspective.
-</P>
-
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><a href="cnav.htm"><br>
-</a><a href="concepts-12.htm">Resources
-</a><a href="cnav.htm"><br>
-Navigator view</a></p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-46ag.htm">
-Finding a resource quickly</a><a href="../tasks/tasks-46bg.htm"><br>
-Narrowing the scope of the Navigator view</a><a href="../tasks/tasks-48.htm"><br>
-Sorting resources in the Navigator view</a><a href="../tasks/tasks-48b.htm"><br>
-Showing or hiding files in the Navigator view</a></p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-17a.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-17a.htm
deleted file mode 100644
index 3b5dee7..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-17a.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Local history</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Local history</H1>
-<p>A local edit history of a file is maintained when you create or modify a
-file. Each time you edit and save the file,&nbsp; a copy is saved so that you can replace the current
-file with a previous edit or even restore a deleted file.&nbsp; You can also
-compare the contents of all the local edits.&nbsp; Each edit in the local
-history is uniquely represented by the date and time the file was
-saved.&nbsp;&nbsp;</p>
-<p>Only files have local history; projects and folders do not.</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-27.htm">Versions</a></p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-70.htm">Comparing resources with local history</a><br>
-<a href="../tasks/tasks-87.htm">Replacing a resource with local history</a><br>
-<a href="../tasks/tasks-87b.htm">Restoring deleted resources from local history</a><br>
-<a href="../tasks/tasks-88.htm">Setting local history preferences<br></a><br>
-<a href="../tasks/tasks-100.htm">Creating a version of a project</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-18.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-18.htm
deleted file mode 100644
index 11ce33b..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-18.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Toolbars in the Workbench</title>
-<meta name="keyword" content="shortcut bar">
-<meta name="keyword" content="fast view">
-</HEAD>
-
-<BODY>
-
-<H1 CLASS="Head">Toolbars </H1>
-
-<p CLASS="Para" Label="Type">There are three kinds of toolbars in the Workbench.</p>
-
-
-<p CLASS="Para" Label="Type">The <i> main toolbar</i>, sometimes called the Workbench toolbar,
-is displayed at the top of
-the Workbench window directly beneath the menu bar. The contents of this toolbar change based on the active perspective. Items in the toolbar
-might be enabled or disabled based on
-the state of either the active view or editor. Sections of the main toolbar can be rearranged using the mouse.
-</p>
-
-
-<p CLASS="Para" Label="Type">There are also individual <i>view toolbars</i>,
-which appear in the title
-bar of a view. Actions in a view's toolbar apply only to the view in which
-they appear. Some view toolbars include a <b>Menu</b> button, shown as an
-inverted triangle, that contain actions for that view.</p>
-<p CLASS="Head">Finally, the <i>shortcut bar</i> is a vertical toolbar that
-appears along the left edge of the Workbench window. The shortcut bar allows
-quick access to perspectives that are currently open. It also contains <i>fast
-views</i>, which you can create as shortcuts to the views you use most often.</p>
-<p CLASS="Head">In all cases, you can find out what toolbar buttons do by moving
-your mouse pointer over the button and reading the tooltip that opens. See the
-list of related reference topics below for a table of all toolbar buttons.</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="concepts-2.htm">Workbench<br>
-</a><a href="concepts-5.htm">Views</a>
-<a href="concepts-2.htm"><br>
-</a><a href="concepts-4.htm">Perspectives<br>
-</a><a href="concepts-21.htm">Fast views</a></p>
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<a href="../tasks/tasks-9b.htm"><br>Creating fast views</a>
-<a href="../tasks/ttoolbars.htm"><br>Rearranging the main toolbar</a>
-</p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-68.htm">Toolbar buttons</a></p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-2.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-2.htm
deleted file mode 100644
index 9e502a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-2.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>The Workbench</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Workbench</H1>
-<P>The term <i>Workbench</i> refers to the desktop development environment. 
-The Workbench aims to achieve seamless tool integration and controlled openness by providing a common paradigm for the creation, management, and navigation of Workbench resources.</P>
-
-
-<P>
-Each Workbench window contains one or more
-perspectives.&nbsp; Perspectives contain views and editors and control
-what appears in certain menus and tool bars.&nbsp; More than one Workbench window can exist
-on the desktop at any given time.</P>
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><a href="concepts-25.htm"><br>
-Features<br>
-</a><a href="concepts-12.htm">Resources</a><a href="concepts-4.htm"><br>
-Perspectives</a><a href="concepts-5.htm"><br>
-Views<br>
-</a><a href="concepts-6.htm">Editors<br>
-</a><a href="concepts-27c.htm">CVS Repositories</a></P>
-
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><a href="../tasks/tasks-34.htm"><br>
-Installing new features with the update manager</a><a href="../tasks/tasks-9f.htm"><br>
-Opening perspectives<br>
-</a><a href="../tasks/tasks-3.htm">Opening views</a><br>
-<a href="../tasks/tasks-28.htm">Switching between perspectives</a><br>
-<a href="../tasks/tasks-9k.htm">Configuring perspectives</a></P>
-
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><a href="../reference/ref-68.htm"><br>
-Toolbar buttons</a></P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-21.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-21.htm
deleted file mode 100644
index 8066b80..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-21.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fast views</title>
-<meta name="keyword" content="shortcut bar">
-
-</HEAD>
-
-<H1 CLASS="Head">
-Fast views</H1>
-<P CLASS="Para" Label=Type>
-   Fast views are hidden views that can be quickly opened and closed. They work
-   like other views except they do not take up space in your Workbench window.&nbsp;</P>
-<P CLASS="Para" Label=Type>
-   Fast views are represented by toolbar buttons on the <i> shortcut bar</i>,
-   which is the vertical toolbar at the left side of the Workbench window. When you click
-   the toolbar button for a fast view, that view opens temporarily in the current perspective.
-   As soon as you click outside that view, it is hidden again.</P>
-<P CLASS="Para" Label=Type>
-You can create a new fast view by dragging any open view to the
-shortcut bar or by selecting <b>Fast View</b> from the menu that opens when you
-click the icon at the left end of the view's title bar.</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="concepts-2.htm">Workbench</a><a href="concepts-18.htm"><br>
-Toolbars</a></P>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-9b.htm">Creating fast views</a><a href="../tasks/tasks-3e.htm"><br>
-Moving and docking views</a><br>
-<a href="../tasks/tasks-3i.htm">Maximizing a view or editor</a></P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-22.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-22.htm
deleted file mode 100644
index 2841cd5..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-22.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Builds</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Builds</H1>
-<p CLASS="Head">
-A <i>build</i> is a process that derives new resources from existing ones, updates existing resources, or both.&nbsp;</p>
-<p CLASS="Head">
-In the Workbench,&nbsp;different <i>builders</i> are invoked for different types
-of projects. For example, when a build is triggered for a Java project, a Java
-builder converts each Java source file (.java files) into one or more executable class files
-(.class files). Builders usually enforce the constraints of some
-domain. For example, a Web link builder could update links to files
-whose name/location changes.</p>
-
-<p CLASS="Para" Label="Type">There are two kinds of builds:&nbsp;</p>
-<ul>
-  <li>
-    <p CLASS="Para" Label="Type">An <i>incremental build</i> leverages a
-    previously built state and applies the transforms of the configured builders
-    to the resources that have changed since the previous state was computed
-    (that is, since the last build).</li>
-  <li>
-    <p CLASS="Para" Label="Type">A full build (or <i>rebuild</i>) discards any
-    previously built state and transforms all requested resources according to
-    the domain rules of the configured builders. The first incremental build is
-    equivalent to a full build as there is no previous state to work from.</li>
-</ul>
-<p>Full and incremental builds can be done over a specific set of projects or
-the workspace as a whole.&nbsp;Specific files and folders cannot be built. There are two ways that builds can be performed:</p>
-<ul>
-  <li>
-Automatic builds are performed as resources are saved. Automatic builds are always incremental and always operate
-    over the 
-entire workspace. You can configure your Workbench preferences (<b>Window
-    &gt; Preferences &gt; Workbench</b>) to perform builds automatically on resource
-    modification.&nbsp;</li>
-  <li>
-Manual builds are initiated when you explicitly select a menu item or press the
-equivalent shortcut key. Manual builds can be either full or incremental and can operate over collections of projects 
-or the entire workspace.</li>
-</ul>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="concepts-exttools.htm">External tools</a>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a href="../tasks/tasks-73.htm">Building resources</a>
-<br><a href="../tasks/tasks-75.htm">Performing builds manually</a>
-<br><a href="../tasks/tasks-16.htm">Performing builds automatically</a>
-<br><a href="../tasks/tasks-17.htm">Saving resources automatically before a manual build</a><a href="../tasks/tasks-14.htm"><br>
-Changing build order</a></p>
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-25.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-25.htm
deleted file mode 100644
index 5b47e9c..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-25.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Features</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head" dir="ltr">
-Features</H1>
-
-<p>On disk, an Eclipse based product is structured as a collection of <em>plug-ins</em>.
-Each plug-in contains the code that provides some of the product's
-functionality. The code and other files for a plug-in are installed on the local
-computer, and get activated automatically as required. A product's plug-ins are
-grouped together into features. A <em>feature</em> is the smallest unit of separately downloadable and installable
-functionality. (The notion of a feature is new for Eclipse 2.0; it replaces the similar
-notion of component in Eclipse 1.0.) </p>
-<p>The fundamentally modular nature of the Eclipse platform makes it easy 
-to install additional features and plug-ins into an Eclipse based
-product, and to update the product's existing features and plug-ins. You 
-can do this either by using traditional native installers running separately from Eclipse,
-or by using the Eclipse platform's own update manager. The Eclipse <em>update
-manager</em> can be used to discover, download, and install updated features and
-plug-ins from special web based Eclipse update sites.</p>
-<p>The basic underlying mechanism of the update manager is simple: the files for a feature or
-plug-in are always stored in a sub-directory whose name includes a version
-identifier (e.g., &quot;2.0.0&quot;). Different versions of a feature or plug-in
-are always given different version identifiers, thereby ensuring that 
-multiple versions of the same feature or plug-in can co-exist on
-disk. This means that installing or updating features and plug-ins requires
-adding more files, but never requires deleting or overwriting existing files.
-Once the files are installed on the local computer, the new feature and plug-in
-versions are available to be configured. The same installed base of files is
-therefore capable of supporting many different <em>configurations</em>
-simultaneously; installing and upgrading an existing product is reduced to
-formulating a configuration that is incrementally newer than the current one. Important
-configurations can be saved and restored to active service in the
-event of an unsuccessful upgrade.</p>
-
-<p>Large Eclipse based products can organize their features into trees starting
-from the root feature that represents the entire product. This root feature then
-includes smaller units of functionality all the way down to leaf features that
-list one or more plug-ins and fragments. The capability to group feature
-hierarchically allows products to be stacked using a 'Russian doll' approach - a
-large product can build on top of a smaller one by including it and adding more
-features.</p>
-
-<p>Some included features may be useful add-ons but not vital to the proper
-functioning of the overall product. Feature providers can elect to mark them as <b>optional</b>.
-When installing optional features, users are provided with a choice of whether
-they want them or not. If not installed right away, optional features can be
-added at a later date.</p>
-
-<p>The <b>About</b> option on the <b>Help</b> menu provides information about installed features and plug-ins. 
-The <b>Software Updates</b> submenu on the <b>Help</b> menu groups together items for updating existing features, and 
-for finding, downloading, and installing new features.
-</p>
-
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-2.htm">Workbench</a></P>
-
-<P>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a href="../tasks/tasks-33.htm">Inspecting the current configuration</a>
-<br><a href="../tasks/tasks-34.htm">Installing new features with the update manager</a>
-<br><a href="../tasks/tasks-34a.htm">Installing several features at once using group updates</a>
-<br><a href="../tasks/tasks-35.htm">Picking up pending changes</a>
-<br>
-  <a href="../tasks/tasks-36.htm">Updating features with the update manager</a> 
-  <br>
-  <a href="../tasks/tasks-37.htm">Saving a configuration</a>
-<br><a href="../tasks/tasks-38.htm">Restoring a saved configuration</a>
-</P>
-
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-26.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-26.htm
deleted file mode 100644
index 7cfafa2..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-26.htm
+++ /dev/null
@@ -1,198 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-             
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-             
-  <meta http-equiv="Content-Style-Type" content="text/css">
-              
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Team programming with CVS</title>
-                       
-  <meta name="keyword" content="team">
-</head>
-  <body style="background-color: rgb(255,255,255);">
-       
-<h1 class="Head">Team programming with CVS</h1>
-       
-<p class="Para">In the Concurrent Versions System (CVS) team programming environment,
-   team members do all of their work in their own Workbenches, isolated from
-others.    Eventually they will want to share their work. They do this via
-a CVS Repository.</p>
-       
-<h2 class="Para">Branches</h2>
-       
-<p class="Para">CVS uses a branch model to support multiple courses of work 
- that    are somewhat isolated from each other but still highly interdependent. 
- Branches    are where a development team shares and integrates ongoing work. 
- A branch can    be thought of as a shared workspace that is updated by team 
- members as they    make changes to the project. This model allows individuals 
- to work on a CVS    team project, share their work with others as changes 
- are made, and access the    work of others as the project evolves. A special 
- branch, referred to as HEAD,    represents the main course of work in the 
-repository (HEAD is often referred    to as the trunk).</p>
-       
-<h2 class="Para">Sharing work</h2>
-       
-<div class="Topic">      
-<p class="Para">As team members produce new work, they share this work by 
- <i>committing</i>      those changes to the branch. Similarly, when they 
-wish to get the latest available      work, they <i>update</i> their local 
-workspaces to the changes on the branch.&nbsp;      Thus the branch is constantly 
-changing, moving forward as team members submit      new work.</p>
-         
-<p class="Para">The branch effectively represents the current state of the 
- project.      At any point a team member can update their workspaces from the branch and know
- they are up      to date.</p>
-         
-<div class="Figure">        
-<div> <img src="../images/ref-9.gif"
- alt="Interaction with Branches and Workbenches" width="344" height="183">
-        </div>
-      </div>
-         
-<div class="XRefList">   </div>
-    </div>
-       
-<div class="Topic">      
-<h2>Optimistic team model</h2>
-         
-<p class="Para">CVS provides two important features required for working in
-     a team:</p>
-         
-<ul>
-        <li>                      
-    <p class="Para">A history of the work submitted by the team     </p>
-     </li>
-     <li>                      
-    <p class="Para">A way to coordinate and integrate this work   </p>
-     </li>
-     
-</ul>
-         
-<p class="Para">Maintaining history is important so that one can compare the
-     current work against previous drafts, revert to older work that is better, and
-so on.      Coordinating the work is critical so that there exists one definition
-of the      current project state, containing the integrated work of the
-team. This coordination      is provided via the branch model.</p>
-         
-<p class="Para">An optimistic model is one where any member of the team can 
-      make changes to any resource he or she has access to.&nbsp; Because 
-two team      members can commit to the branch changes to the same resource, 
- conflicts      can occur and must be dealt with. This model is termed <i>
-   optimistic</i> because      it is assumed that conflicts are rare.</p>
-         
-<h2>Recommended work flow</h2>
-         
-<p class="Para">Usually resources do not exist in isolation, they typically
-    contain implicit or explicit dependencies on other resources.&nbsp; For
-    example, Web pages have links to other Web pages, and source code has
-  references to artifacts described in other source code resources.&nbsp; 
- No   resource is an island.</p>
-         
-<p class="Para">As resources are committed to the branch, these dependencies 
-      can be affected. Ensuring the integrity of the dependencies is important 
- because      the branch represents the current project state: at any point 
- a team member      could take the branch contents as a basis for new work.</p>
-         
-<p class="Para">The ideal work flow therefore is one in which the branch integrity
-     is preserved. </p>
-
-<a name="IdealWorkFlow">
-<h3 class="Para">Ideal flow enumerated</h3>
-</a>
-
-<p class="Para">The ideal work flow proceeds as follows:</p>
-         
-<ol>
-        <li>                      
-    <p class="Para">Start fresh. Before starting work, update the resources
-    in the workspace with 
- the          current branch state. If you are sure that you have no local 
- work that          you care about, the fastest way to get caught up is to 
- select the projects          you are interested in from the branch (or HEAD) 
- and select <b>Checkout As Project</b> (or <b>Replace with &gt; Latest from Repository</b>
- if the projects already exist locally). This will overwrite your 
-local resources with those from          the branch.          </p>
-     </li>
-     <li>                      
-    <p class="Para">Make changes. Work locally in your Workbench, creating 
- new       resources, modifying existing ones, saving locally as you go. 
-   </p>
-     </li>
-     <li>                      
-    <p class="Para">Synchronize. When you are ready to commit your work, synchronize
-         with the repository.        </p>
-                 
-    <ol type="a">
-            <li>                                      
-        <p class="Para">Update. Examine incoming changes and add them to your
-             local Workbench. This allows you to determine if there are changes
-             which might affect the integrity of what you are about to commit.
-             Resolve conflicts. Retest, run integrity checkers (for example,
-check              for broken hypertext links, ensure your code compiles,
-and so on).                  </p>
-         </li>
-         <li>                                      
-        <p class="Para">Commit. Now that you are confident that your changes 
-              are well integrated with the latest branch contents, commit 
- your              changes to the branch. To be prudent, you may repeat the 
- previous              step if there are new incoming changes.           
-    </p>
-         </li>
-                 
-    </ol>
-        </li>
-         
-</ol>
-         
-<p class="Para">Of course this is an <i>ideal</i> workflow. Under certain 
- conditions      you may be confident that the incoming changes do not affect 
- you and choose      to commit without updating. However, in general team 
-members should make an      effort to follow a flow similar to the above in
-order to ensure that the branch      integrity is not accidentally compromised.&nbsp;
-    </p>
-     
-<p class="Para">You can find more information on CVS at <a
- href="http://www.cvshome.org" class="URL" target="_blank">http://www.cvshome.org.</a>
-    </p>
-   </div>
-        
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="concepts-27c.htm">CVS Repositories</a>
-<br><a href="concepts-27b.htm">Branches</a>
-<br><a href="concepts-27.htm">Versions</a>
-<br><a href="concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-         
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-   <a href="../tasks/tasks-92.htm"><br>
-    Creating a CVS repository location</a><a
- href="../tasks/tasks-96.htm"><br>
-    Checking out a project from a CVS repository</a>&nbsp;<a
- href="../tasks/tasks-103.htm"><br>
-    Replacing resources in the Workbench</a><a
- href="../tasks/tasks-117.htm"><br>
-    Sharing a new project using CVS</a><a href="../tasks/tasks-115.htm"><br>
-    Synchronizing with the repository</a><a
- href="../tasks/tasks-113.htm"><br>
-    Updating</a><a href="../tasks/tasks-113b.htm"><br>
-    Resolving conflicts </a><a href="../tasks/tasks-100b.htm"><br>
-    Merging from a branch</a><a href="../tasks/tasks-114.htm"><br>
-    Committing</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
- <br><a href="../reference/ref-47.htm">CVS</a>
-</p>
-           
-<p> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."
- border="0" width="324" height="14">
-   </a> </p>
-        
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-27.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-27.htm
deleted file mode 100644
index 8befb64..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-27.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Versions</title>
-         
-  <meta name="keyword" content="team">
-</head>
-  <body style="background-color: rgb(255,255,255);">
-   
-<h1 class="Head"> Versions</h1>
-   
-<p class="Para"> Resources are versioned in order to capture a snapshot 
-  of the current state of the resources at one specific point in time. Resources
-   in CVS are versioned by tagging them with a version label. When a resource
-is    versioned, it means that a non-modifiable copy of it can be retrieved
-from the    repository. </p>
-   
-<p class="Intro">Versioning a project saves the line up of all resource versions 
-   in the project. Resources other than projects (files and folders) 
-can    be versioned.&nbsp; However, it is more common to version entire projects 
-together    as the resources contained in a project are often highly interdependent. 
-Projects    can be versioned from the workspace or from the branch (including HEAD) in the 
-CVS Repositories    view. The difference between these two approaches is in
-deciding which child    resource versions should be part of the project version.
- </p>
- 
-<p class="Para"> When tagging a project as a version from the <i>Workbench</i>,    the base revisions of the files in the Workbench are tagged as belonging 
-to    that version.&nbsp; This is the preferred method of versioning a project 
-because    you know exactly which file revisions will be in the version.&nbsp;This 
-operation    is allowed if you have outgoing changes or uncommitted changes. 
-Uncommitted    changes are simply ignored and resources with outgoing changes 
-can still have    their base revisions be part of the version.&nbsp; Versioning 
-a project with    uncommitted or outgoing changes is handy if you have to 
-split the project at    the point where you started making changes to the 
-resources and commit the resources    to another branch.</p>
-   
-<p class="Para"> When tagging a project as a version from a <i>branch</i>
-  in the    CVS Repositories view, you are versioning whatever the latest 
-resource versions    are in the branch at that moment in time.&nbsp; You should
-not version your    projects from the branch if you do not know what is committed
-in the branch.    For this reason, versioning from the Workbench is often
-preferable.</p>
-     
-<p class="Para"> <img border="0" src="../images/ngrelc.gif"
- alt="Related concepts" width="159" height="27">
-  <br>
- <a href="concepts-27c.htm">CVS Repositories</a> <br>
- <a href="concepts-27b.htm">Branches</a> <br>
- <a href="concepts-17a.htm">Local history</a> <br>
- <a href="concepts-12.htm">Resources</a> </p>
-    
-<p class="Para"> <img border="0" src="../images/ngrelt.gif"
- alt="Related tasks" width="159" height="27">
-  <br>
- <a href="../tasks/tasks-100.htm">Creating a version of a project</a> <br>
- <a href="../tasks/tasks-118.htm">Versioning projects in the repository</a>
-  <br>
- <a href="../tasks/tasks-107b.htm">Enabling the CVS resource decorations</a><BR>
-  <a href="../tasks/tasks-105c.htm">Moving version tags</a><br>
-  </p>
-    
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
- <a href="../reference/ref-47.htm">CVS</a> </p>
-    
-<p><br>
-  <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."
- border="0" width="324" height="14">
- </a>  </p>
-     
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-27b.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-27b.htm
deleted file mode 100644
index b126514..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-27b.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Branches</title>
-<meta name="keyword" content="team">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>Branches</H1>
-
-<p>In CVS, teams share and integrate their ongoing work in <i>branches</i>. Think 
-  of a branch as a shared work area that can be updated at any time by team members. 
-  In this way, individuals can work on a team project, share their work with others 
-  on the team, and access the work of others during all stages of the project. 
-  The branch effectively represents the current shared state of the project. 
-</p>
-<p>Resources can be changed in the Workbench without affecting the branch. 
-  Individuals must explicitly provide their changed resources to the branch.
-</p>
-<p>Every CVS repository has at least one branch, referred to as HEAD. Under 
-  certain conditions, more than one branch may exist in a repository. For 
-  example, one branch may be for ongoing work, and another branch may be for maintenance 
-  work.&nbsp; </p>
-<p>As you make changes locally in your Workbench, you are working alone. When you are ready to make your local resource changes 
-  available to other team members, you'll need to <i>commit</i> your work to 
-  the branch. All such changes are classified as outgoing changes when you do a synchronization. 
-</p>
-  
-<p>Ideally, you should update your local workspace with any changes others have 
-  made in a branch before committing to it. This ensures that you have the very 
-  latest work from the other team members. After you have updated from the branch, 
-  merged any conflicting changes in your local Workbench, and tested your changes 
-  locally, you can more easily commit your Workbench's changes to the branch.</p>
-
-  
-<p>When you commit changes to the branch, your changes are copied from your local 
-  Workbench to the branch. As a result, these changes are then seen as incoming 
-  changes when other developers update from the branch later.</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="concepts-26.htm">Team programming with CVS</a>
-<br><a href="concepts-27c.htm">CVS Repositories</a>
-<br><a href="concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><a href="../tasks/tasks-92.htm"><br>
-  </a><a href="../tasks/tasks-96.htm"> Checking out a project from a CVS repository</a>&nbsp;<a href="../tasks/tasks-117.htm"><br>
-  Sharing a new project using CVS</a><a href="../tasks/tasks-100a.htm"><br>
-Branching</a><a href="../tasks/tasks-115.htm"><br>
-Synchronizing with the repository</a><a href="../tasks/tasks-113.htm"><br>
-Updating</a>
-<br><a href="../tasks/tasks-114.htm">Committing</a>
-<br><a href="../tasks/tasks-113b.htm">Resolving conflicts </a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-27c.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-27c.htm
deleted file mode 100644
index 5852a41..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-27c.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- 
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
- 
-  <meta http-equiv="Content-Style-Type" content="text/css">
-  
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>CVS Repositories</title>
-  
-  <meta name="keyword" content="team">
-</head>
-  <body bgcolor="#ffffff">
- 
-<h1 class="Head">CVS Repositories</h1>
- 
-<p class="Intro"> </p>
-<p class="Para"> A Concurrent Versions System (CVS) repository is a persistent
-   data store that coordinates multi-user access to projects and their contents.
-   Projects in a repository can be of two forms: immutable (a project version)
-   or modifiable (a project in a branch). Communication between the repository
-   and Workbench clients is possible over local or wide area networks.&nbsp;
-Currently    the Workbench supports two internal authentication protocols
-for CVS: pserver    and ssh. Authentication protocols provided by external
-tools can also be used    by CVS.</p>
- 
-<div class="Topic"> 
-<p class="Para"> You can find more information on CVS at <a
- href="http://www.cvshome.org" class="URL" target="_blank">http://www.cvshome.org.</a></p>
- </div>
-   
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-<br>
- <a href="concepts-26.htm">Team programming with CVS</a> <a
- href="concepts-27b.htm"><br>
- Branches</a><a href="concepts-27.htm"><br>
- Versions<br>
- </a><a href="concepts-17a.htm">Local history</a></p>
-   
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
- <br>
-<a href="../tasks/tasks-92.htm">Creating a CVS repository location</a> </p>
-   
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-<br><a href="../reference/ref-47.htm"> CVS</a> <br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a> </p>
-  
-<p>&nbsp;<br>
- <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-</a> </p>
-  
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-29.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-29.htm
deleted file mode 100644
index 11d650c..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-29.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Three way comparisons</title>
-    
-</head>
-  <body style="background-color: rgb(255,255,255);">
-     
-<h1 class="Head"> Three way comparisons </h1>
-     
-<p class="Para"> Three way comparisons show the differences between three different 
-  versions of a resource.&nbsp;This feature is most useful when merging resources 
-  or when there is a conflict during synchronization.&nbsp;Conflicts occur when 
-  two developers add a version from the same branch to their Workbench, then each 
-  developer modifies it, then one developer attempts to commit the resource after 
-  the other developer has already committed it.&nbsp; </p>
-     
-<p class="Para"> When this situation arises, you can view the differences between 
-  three resource versions: the resource in the Workbench, the version of the resource 
-  that is committed in the branch, and the <i> common ancestor</i> from which the 
-  two conflicting versions are based.&nbsp;&nbsp;If a common ancestor cannot 
-  be determined, for example because a resource with the same name and path was 
-  created and committed by two different developers, the comparison becomes a 
-  two-way comparison. </p>
-<h1>Interpreting compare results</h1>
-<p>The Synchronize view allows you to view the differences between two or three 
-  files. If a common ancestor is available, the sync view performs a three way 
-  comparison. It is possible that a common ancestor for two conflicting resource 
-  versions cannot be determined, (e.g. a resource with the same name and path 
-  is created and committed by two different developers). In this case the compare 
-  becomes a regular two way compare.&nbsp;&nbsp;</p>
-<p class="Para">In a three way compare the Workbench shows you: </p>
-<ul class="UnorderedList">
-  <li class="Item"> what has been changed in the first child in comparison to 
-    the common ancestor&nbsp;</li>
-  <li class="Item"> what has been changed in the second child in comparison to 
-    the common ancestor.</li>
-</ul>
-
-<p class="Para"> In the picture below, the common ancestor is displayed in the top pane of the text 
-  compare pane.&nbsp; The differences that you see 
-  highlighted are what has changed in the Workbench resource as compared to the 
-  common ancestor, and what has been changed in the branch resource as compared 
-  to the common ancestor. The sections that differ in all three files are highlighted 
-  as differences.&nbsp;Conflicts are shown in red, incoming changes in blue, and 
-  outgoing changes in gray. </p>
-  
-<p class="Para"> <img src="../images/Image49_3_way_compare.gif" alt="Synchronize View with 3 way compare" border="0" width="675" height="419">
-   </p>
-       
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-<br><a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a></p>
-       
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-  <a href="../tasks/tasks-92.htm"><br>
-   </a><a href="../tasks/tasks-68.htm">Comparing resources</a> <a
- href="../tasks/tasks-115.htm"><br>
-   Synchronizing with a repository<br>
-  </a><a href="../tasks/tasks-68dg.htm">Merging changes in the compare editor</a><a
- href="../tasks/tasks-113.htm"><br>
-   </a><a href="../tasks/tasks-113b.htm"> Resolving conflicts</a><a
- href="../tasks/tasks-68b.htm"><br>
-   Setting preferences for comparing files</a>&nbsp;<a
- href="../tasks/tasks-101.htm"><br>
-   Comparing resources with repository versions</a> </p>
-       
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-25.htm">Compare editor</a>
-<br><a href="../reference/ref-33.htm">CVS Synchronize view</a>
-</p>
-
-<p class="Para"> <a href="../hglegal2003.htm"><img
- src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."
- border="0" width="324" height="14">
-  </a>  </p>
-       
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-30.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-30.htm
deleted file mode 100644
index e998e97..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-30.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Synchronizing with a CVS repository</title>
-   
-</head>
- <body style="background-color: rgb(255,255,255);">
-   
-<h1 class="Head"> Synchronizing with a CVS repository</h1>
-   
-<p class="Para"> In the CVS team programming environment, there are    two
-distinct processes involved in synchronizing resources: <i>updating</i> 
-   with the latest changes from a branch and <i>committing</i> to the branch.&nbsp;</p>
-   
-<p class="Para">When you make changes in the Workbench, the resources   
-are saved locally.&nbsp; Eventually you will want to commit your changes
-to the branch so others can have access to them.&nbsp; Meanwhile, others
-may have committed changes to the branch.&nbsp; You will want to update
-your Workbench resources with their changes.</p>
-   
-<p class="Para"><b>Important!</b>: It is preferable to update <i> before</i>
-    committing, in case there are conflicts with the resources in your Workbench
-   and the resources currently in the branch.&nbsp;&nbsp;</p>
-   
-<p>The synchronize view contains filters to control whether you want to view only 
-  i<i>ncoming changes</i> or <i>outgoing changes</i>. Incoming changes come from 
-  the branch. If accepted, they will update the Workbench resource to the latest 
-  version currently committed into the branch. Outgoing changes come from the 
-  Workbench. If committed, they will change the branch resources to match those 
-  currently present in the Workbench. </p>
-     
-<p>Regardless of which mode (filter) you select, the Synchronize view always 
-shows    you conflicts that arise when you have locally modified a resource 
-for which    a more recent version is available in the branch.&nbsp; In this 
-situation you    can choose to do one of three things: update the resource 
-from the branch, commit    your version of the resource to the branch ,or 
-merge your work with the changes    in the branch resource.&nbsp; Typically 
-you will want to merge, as the other    two options will result in loss of 
-work. </p>
-     
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
- <br>
-  <a href="concepts-26.htm">Team programming with CVS</a>
-  <a href="concepts-27b.htm"><br>Branches</a>
-</p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
- <a href="../tasks/tasks-115.htm"><br>
-  Synchronizing with the repository</a><a href="../tasks/tasks-113.htm"><br>
-Updating</a><a href="../tasks/tasks-113b.htm"><br>
-  Resolving conflicts</a><a href="../tasks/tasks-100b.htm"><br>
-  Merging from a branch</a><a href="../tasks/tasks-114.htm"><br>
-Committing</a> </p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-33.htm">CVS Synchronize view</a>
-</p>
-   
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-     
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-4.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-4.htm
deleted file mode 100644
index dc3fa13..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-4.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Perspectives</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Perspectives</H1>
-<p CLASS="Para" Label="Type">Each Workbench window contains one or more
-perspectives. A perspective defines the initial set and layout of views
-in the Workbench window. Within the window, each perspective shares the same set
-of editors. Each perspective provides a set of capabilities aimed
-at accomplishing a specific type of task or works with specific types of
-resources.&nbsp;For example, the Java perspective combines views that you would
-commonly use while editing Java source files, while the Debug perspective
-contains the views that you would use while debugging Java programs. As you work
-in the Workbench, you will probably switch perspectives frequently.</p>
-<P CLASS="Para" Label=Type>Perspectives control what appears in certain menus
-and toolbars. They define visible <i> action sets</i>, which you
-can change to customize a perspective. You can save a perspective that you
-build in this manner, making your own custom perspective that you can open again
-later.&nbsp;&nbsp;</p>
-<P CLASS="Para" Label=Type>You can set your Workbench preferences to open
-perspectives in the same window or in a new window.</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="concepts-2.htm">Workbench</a><br>
-<a href="concepts-6.htm">Editors</a><br>
-<a href="concepts-5.htm">Views</a></p>
-<P CLASS="Para" Label=Type><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><a href="../tasks/tasks-9f.htm"><br>
-Opening perspectives<br>
-</a><a href="../tasks/tasks-3.htm">Opening views</a><br>
-<a href="../tasks/tasks-24.htm">Changing where perspectives open<br></a>
-<a href="../tasks/tasks-31.htm">Specifying the default perspective</a><br>
-<a href="../tasks/tasks-28.htm">Switching between perspectives</a><br>
-<a href="../tasks/tasks-9k.htm">Configuring perspectives</a><br>
-  <a href="../tasks/tasks-9i.htm">Saving a user defined perspective</a><a href="../tasks/tasks-9j.htm"><br>
-Resetting perspectives</a></p>
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-5.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-5.htm
deleted file mode 100644
index cce8aae..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-5.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Views</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Views</H1>
-<P CLASS="Para" Label=Type>
-Views support editors and provide alternative
-presentations as well as ways to navigate the information in your Workbench.&nbsp; For
-example, the Navigator view displays projects and other resources that you are working
-with.</P>
-<P CLASS="Para" Label=Type>
- Views also have their own menus. To open the menu for a view, click the icon at the left
-end of the view's title bar. Some views also have their own toolbars. The actions represented by buttons on view
-toolbars only affect the items within that view.&nbsp;</P>
-<P CLASS="Para" Label=Type>
-A view might appear by itself, or stacked with other
-views in a tabbed notebook.&nbsp;You can change the layout of a perspective by
-opening and closing views and by docking them in different
-positions in the Workbench window.&nbsp; </P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-4.htm">Perspectives</a><br>
-<a href="concepts-21.htm">Fast views</a><br>
-<a href="concepts-6.htm">Editors</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-3.htm">Opening views</a><br>
-<a href="../tasks/tasks-3e.htm">Moving and docking views</a><br>
-<a href="../tasks/tasks-9b.htm">Creating fast views</a><br>
-<a href="../tasks/tasks-3i.htm">Maximizing a view or editor</a><br>
-  <a href="../tasks/tasks-9i.htm">Saving a user defined perspective</a><br>
-<a href="../tasks/tasks-9j.htm">Resetting perspectives</a>
-</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-6.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-6.htm
deleted file mode 100644
index 378bf10..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-6.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editors and the editor area</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Editors</H1>
-<P CLASS="Para" Label=Type>
-Most perspectives in the Workbench are comprised of an editor area and one or more
-views. </P>
-<P CLASS="Para" Label=Type>You can associate different editors with different
-types of files. For example, when you open a file for editing by double-clicking
-it in the Navigator view, the associated editor opens in the Workbench.
-If there is no
-associated editor for a resource, the Workbench attempts to launch an <i>external
-editor</i>  outside the Workbench. (On Windows, the Workbench will first
-attempt to launch the editor in place as an OLE document. This type
-of editor is referred to as an <i>embedded editor</i>. For example, if you have a
-.doc file in the Workbench and Microsoft Word is registered as the editor for .doc
-files in your operating system, then opening the file will launch Word as an OLE document within the Workbench editor
-area. The Workbench menu bar and toolbar will be updated with options for
-Microsoft Word.)&nbsp; </P>
-<P CLASS="Para" Label=Type>Any number of editors can be open at once, but only
-one can be active at a time. The main menu bar and toolbar for the
-Workbench window contain operations that are applicable to the active
-editor.&nbsp; </P>
-<P CLASS="Para" Label=Type>Tabs in the editor area indicate the names of
-resources that are currently open for editing. An asterisk (*) indicates that an editor has unsaved
-changes.&nbsp;&nbsp; </P>
-<P CLASS="Para" Label=Type>By default, editors are stacked in the editor area,
-but you can choose to tile them in order to view source files simultaneously.</P>
-<P CLASS="Para" Label=Type>
-Here is an example of a text editor in the Workbench:</P>
-<P CLASS="Para" Label=Type> 
-<img src="../images/Image5_text_editor.gif" alt="Text editor" border="0" width="712" height="503"></P>
-<P>&nbsp;The gray border at the left margin of the editor area may contain
-icons that flag errors, warnings, or problems detected by the system. Icons also
-appear if you have created bookmarks, added breakpoints for debugging, or
-recorded notes in the Tasks view. You can view details for any icons in the left
-margin of the editor by moving the mouse cursor over them.
-</P>
-
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><a href="concepts-2.htm"><br>
-Workbench<br>
-</a><a href="concepts-6a.htm">External editors</a><a href="cbookmrk.htm"><br>
-Bookmarks</a><a href="ctskview.htm"><br>
-Tasks view<br>
-</a><a href="cnav.htm">
-Navigator view</a></p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-46.htm">Opening files for editing</a><br>
-<a href="../tasks/tasks-51.htm">Associating editors with file types</a><br>
-<a href="../tasks/tasks-52.htm">Editing files outside the Workbench</a></p>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-6a.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-6a.htm
deleted file mode 100644
index 61b737c..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-6a.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>External editors</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-External editors</H1>
-<P CLASS="Para" Label=Type>Sometimes you may need to use an external program to
-edit a file in the Workbench. This can occur, for example, when the Workbench
-has no editor for that file type.</P>
-<P CLASS="Para" Label=Type>The external program will be used if that program is
-registered as the system default editor for that file type and no other editor
-is registered for that file type in the Workbench. For example, on most systems the default
-&quot;editor&quot; for HTML files is a Web browser. If there is no other editor
-associated with .htm and .html files in the Workbench, then opening an HTML file from the
-Workbench would cause the file to be opened in a separate browser session.</P>
-<P CLASS="Para" Label=Type><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><a href="concepts-2.htm"><br>
-</a><a href="concepts-6.htm">
-Editors</a></P>
-<P CLASS="Para" Label=Type>&nbsp;<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-46.htm">Opening files for editing</a><br>
-<a href="../tasks/tasks-51.htm">Associating editors with file types</a><br>
-<a href="../tasks/tasks-52.htm">Editing files outside the Workbench</a></P>
-<P><br>
-<a href="../hglegal2003.htm"><img
- src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved."
- border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-antsupport.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-antsupport.htm
deleted file mode 100644
index 117a531..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-antsupport.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ant support</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Ant support</H1>
-<P CLASS="Para">
-Apache Ant is an open source, Java-based build tool. &nbsp;See <a href="http://ant.apache.org" target="_blank">http://ant.apache.org</a>
-for more details.  </P>
-<P CLASS="Para">
-The Ant support allows you to create and run Ant buildfiles from the Workbench.&nbsp;
-These Ant buildfiles can operate on resources in the file system as well as
-resources in the workspace. 
-</P>
-<P CLASS="Para">
-Output from an Ant buildfile is displayed in the console view in the same hierarchical
-format seen when running Ant from the command line. Ant tasks (for example "[mkdir]")
-are hyperlinked to the associated Ant buildfile, and javac error reports are hyperlinked
-to the associated Java source file and line number.
-</P>
-<P CLASS="Para">
-You can add classes to the Ant classpath and add Ant tasks and types from the ant
-runtime preference page, under <b>Window &gt; Preferences &gt; Ant &gt; Runtime</b>.
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-22.htm">Builds</a><br>
-<a href="../concepts/concepts-exttools.htm">External tools</a>
-</p>
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-ant-running.htm">Running Ant buildfiles</a><br>
-<a href="../tasks/tasks-ant-classpath.htm">Modifying the Ant classpath</a><br>
-<a href="../tasks/tasks-ant-addtasksandtypes.htm">Adding new Ant tasks and types</a><br>
-<a href="../tasks/tasks-ant-version.htm">Using a different version of Ant</a><br>
-<a href="../tasks/antRunner.htm">antRunner application entry point</a>
-</p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-antprefs.htm">Ant preferences</a><br>
-<a href="../reference/ref-anteditorprefs.htm">Ant editor preferences</a><br>
-<a href="../reference/ref-antruntimeprefs.htm">Ant runtime preferences</a><br>
-<a href="../reference/ref-antview.htm">Ant view</a><br>
-<a href="../reference/ref-anteditor.htm">Ant editor</a><br>
-<a href="../reference/ref-anticons.htm">External Tools and Ant icons</a>
-</p>
-<p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-cvs-watch.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-cvs-watch.htm
deleted file mode 100644
index 41005c5..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-cvs-watch.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>CVS Watch/Edit</title>
-   
-</head>
- <body style="background-color: rgb(255,255,255);">
-<h1 class="Head"> Watch/Edit</h1>
-   
-<p class="Para"> CVS provides a notification scheme which allows a group of developers 
-  to know if somebody is working on a given file. This facility is known as <em>watches</em>. 
-  By setting a <em>watch</em> on a file, you can have CVS notify you via email 
-  if someone else starts to <em>edit</em> this file. This mechanism is notification 
-  based only; the file is not locked in any way on the server, and several people 
-  are allowed to edit the same file at the same time.</p>
-<p class="Para">In addition to watch list notification, <em>edit</em> on its own 
-  is useful for discovering if others are also editing that file. This is because 
-  when you edit a file, you will be informed if someone else is already editing 
-  it. </p>
-<p class="Para">Normally with CVS clients, an explicit <em>edit</em> would need 
-  to be issued by the user. With Team CVS support however, an <em>edit</em> is 
-  automatically issued by the client when you start to modify a file. In addition, 
-  when <em>editing</em> a file, Team CVS provides you with the list of people 
-  already editing a file. This allows you to find out who is working on a file 
-  before you start to edit it.</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
- <br>
-  <a href="concepts-26.htm">Team programming with CVS</a> </p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27"> <a href="../tasks/tasks-cvs-watch.htm"><br>
-  Finding out who's working on what: watch/edit</a></p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br>
-  <a href="../reference/ref-47.htm">CVS</a> </p>
-   
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-     
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts-exttools.htm b/bundles/org.eclipse.platform.doc.user/concepts/concepts-exttools.htm
deleted file mode 100644
index c69d6a3..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts-exttools.htm
+++ /dev/null
@@ -1,226 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Style-Type" content="text/css">
-   <meta name="Author" content="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>External tools</title>
-<link REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body bgcolor="#FFFFFF">
-
-<h1>
-External tools</h1>
-
-<p>External tools allow you to configure and run programs,
-batch files, Ant buildfiles, and others using the Workbench. You can save
-these external tool configurations and run them at a later time.</p>
-
-<p>Output from external tools is displayed in the console
-view.</p>
-
-<p>You can add external tools as part of the build process
-for a project. These external tools will run in the specified order every
-time a project is built.</p>
-
-<p>The following variables are available when you configure
-an external tool. These variables are automatically expanded each time
-the external tool is run.</p>
-
-<blockquote>
-<p><b>${workspace_loc}</b> - The absolute path on the system's
-hard drive to Eclipse's workspace directory.</p>
-
-<p><b>${workspace_loc:<i>&lt;resource path></i>}</b> - The
-absolute path on the system's hard drive to the specified resource. The
-<i>&lt;resource
-path></i> is the full path of the resource relative to the workspace root.
-For example ${workspace_loc:/MyProject/MyFile.txt}. Note that the expanded
-result of this variable is not the same as ${workspace_loc}/MyProject/MyFile.txt
-if the project's contents directory for MyProject is outside the workspace
-directory.</p>
-
-<p><b>${project_loc}</b> - The absolute path on the system's
-hard drive to the currently selected resource's project or to the project
-being built if the external tool is run as part of a build.</p>
-
-<p><b>${project_loc:<i>&lt;resource path></i>}</b> - The
-absolute path on the system's hard drive to the specified resource's project.
-The
-<i>&lt;resource path></i> is the full path of the resource relative
-to the workspace root. For example ${workspace_loc:/MyProject/MyFile.txt}.
-Note that the expanded result of this variable is not the same as ${workspace_loc}/MyProject
-if the project's contents directory for MyProject is outside the workspace
-directory.</p>
-
-<p><b>${container_loc}</b> - The absolute path on the system's
-hard drive to the currently selected resource's parent (either a folder
-or project).</p>
-
-
-<p><b>${container_loc:<i>&lt;resource path></i>}</b> - The
-absolute path on the system's hard drive to the specified resource's parent
-(either a folder or project). The <i>&lt;resource path></i> is the full
-path of the resource relative to the workspace root. For example:${workspace_loc:/MyProject/MyFolder/MyFile.txt}.
-Note that the expanded result of this variable is not the same as ${workspace_loc}/MyProject/MyFolder
-if the project's contents directory for MyProject is outside the workspace
-directory.
-
-<p><b>${resource_loc}</b> - The absolute path on the system's
-hard drive to the currently selected resource.
-
-<p><b>${resource_loc:<i>&lt;resource path></i>}</b> - The
-absolute path on the system's hard drive to the specified resource. The
-<i>&lt;resource
-path></i> is the full path of the resource relative to the workspace root.
-For example ${workspace_loc:/MyProject/MyFile.txt}. Note that the expanded
-result of this variable is not the same as ${workspace_loc}/MyProject/MyFile.txt
-if the project's contents directory for MyProject is outside the workspace
-directory.
-
-<p><b>${project_path}</b> - The full path, relative to the
-workspace root, of the currently selected resource's project or of the
-project being built if the external tool is run as part of a build.
-
-<p><b>${container_path}</b> - The full path, relative to the
-workspace root, of the currently selected resource's parent (either a folder
-or project).
-
-<p><b>${resource_path}</b> - The full path, relative to the
-workspace root, of the currently selected resource.
-
-<p><b>${project_name}</b> - The name of the currently selected
-resource's project or of the project being built if the external tool is
-run as part of a build.
-
-<p><b>${container_name}</b> - The name of the currently selected
-resource's parent (either a folder or project).
-
-<p><b>${resource_name}</b> - The name of the currently selected
-resource.
-
-<p><b>${build_type}</b> - The kind of build when the external
-tool is run as part of a build. The value can be one of "full", "incremental",
-or "auto". If the external tool is run outside of a build, the value is
-then "none".</blockquote>
-
-<p>Lets assume your Eclipse workspace directory is c:\eclipse\workspace
-and you have two projects, MyProject1 and MyProject2. The first project,
-MyProject1, is located inside the workspace directory, the second project,
-MyProject2, is located outside the workspace directory at c:\projects\MyProject2.
-Lets look at how the variable examples below will be expanded when an
-external tool is run, if the resource /MyProject2/MyFolder/MyFile.txt is
-selected.
-<br>&nbsp;
-<br>&nbsp;
-<center><table BORDER WIDTH="80%" >
-<tr>
-<td>
-<center><b>Variable Examples</b></center>
-</td>
-
-<td>
-<center><b>Expanded Results</b></center>
-</td>
-</tr>
-
-<tr>
-<td>${workspace_loc}</td>
-
-<td>c:\eclipse\workspace</td>
-</tr>
-
-<tr>
-<td>${workspace_loc:/MyProject1/MyFile.txt}</td>
-
-<td>c:\eclipse\workspace\MyProject\MyFile.txt</td>
-</tr>
-
-<tr>
-<td>${workspace_loc:/MyProject2/MyFile.txt}</td>
-
-<td>c:\projects\MyProject2\MyFile.txt</td>
-</tr>
-
-<tr>
-<td>${project_loc}</td>
-
-<td>c:\projects\MyProject2</td>
-</tr>
-
-<tr>
-<td>${project_loc:/MyProject1/MyFile.txt}</td>
-
-<td>c:\eclipse\workspace\MyProject</td>
-</tr>
-
-<tr>
-<td>${container_loc}</td>
-
-<td>c:\projects\MyProject2\MyFolder</td>
-</tr>
-
-<tr>
-<td>${resource_loc}</td>
-
-<td>c:\projects\MyProject2\MyFile.txt</td>
-</tr>
-
-<tr>
-<td>${project_path}</td>
-
-<td>/MyProject2</td>
-</tr>
-
-<tr>
-<td>${container_path}</td>
-
-<td>/MyProject2/MyFolder</td>
-</tr>
-
-<tr>
-<td>${resource_path}</td>
-
-<td>/MyProject2/MyFolder/MyFile.txt</td>
-</tr>
-
-<tr>
-<td>${project_name}</td>
-
-<td>MyProject2</td>
-</tr>
-
-<tr>
-<td>${container_name}</td>
-
-<td>MyFolder</td>
-</tr>
-
-<tr>
-<td>${resource_name}</td>
-
-<td>MyFile.txt</td>
-</tr>
-
-<tr>
-<td>${build_type}</td>
-
-<td>none</td>
-</tr>
-</table></center>
-</p>
-
-<p><br><img src="../images/ngrelc.gif" alt="Related concepts" border="0" width="159" height="27">
-<br><a href="concepts-antsupport.htm">Ant support</a>
-<br><a href="concepts-22.htm">Builds</a>
-<p><img src="../images/ngrelr.gif" alt="Related reference" BORDER=0 width="159" height="27">
-<br><a href="../reference/ref-exttoolsprefs.htm">External Tools preferences</a><br>
-<a href="../reference/ref-anticons.htm">External Tools and Ant icons</a>
-<p><img src="../images/ngrelt.gif" alt="Related tasks" BORDER=0 width="159" height="27">
-<br><a href="../tasks/tasks-exttools-running.htm">Running external tools</a>
-<br><a href="../tasks/tasks-ant-running.htm">Running Ant buildfiles</a>
-<br>&nbsp;
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts.pdf b/bundles/org.eclipse.platform.doc.user/concepts/concepts.pdf
deleted file mode 100644
index 22d05db..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts.pdf
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/concepts_htmldoc_book.book b/bundles/org.eclipse.platform.doc.user/concepts/concepts_htmldoc_book.book
deleted file mode 100644
index e36845e..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/concepts_htmldoc_book.book
+++ /dev/null
@@ -1,38 +0,0 @@
-#HTMLDOC 1.8.23
--t pdf13 -f concepts.pdf --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --title --linkstyle underline --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --portrait --color --no-pscommands --no-xrxcomments --compression=1 --jpeg=0 --fontsize 11.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Times --headfootsize 11.0 --headfootfont Helvetica --charset iso-8859-1 --links --no-embedfonts --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all  --owner-password ""  --user-password "" --browserwidth 680
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-2.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-12.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-17.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-13.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/cpathvars.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/cworkset.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-22.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-17a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-4.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-6.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-6a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-5.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-21.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/cnav.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/ctskview.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/coutline.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/cpropview.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/csearchview.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-18.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-11.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/cbookmrk.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/cdecorations.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/chelpsys.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-exttools.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-antsupport.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-26.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-27.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-27b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-27c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-29.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-30.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-cvs-watch.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/accessibility/accessmain.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/accessibility/navigation.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/accessibility/fontsandcolors.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/concepts-25.htm
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/coutline.htm b/bundles/org.eclipse.platform.doc.user/concepts/coutline.htm
deleted file mode 100644
index 91b9b99..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/coutline.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Outline view</title>
-
-</HEAD>
-<BODY>
-<H1 CLASS="Head">
-Outline view</H1>
-
-<P>The Outline view displays an outline of a structured file
-that is currently open in the editor area, and&nbsp; lists structural
-elements.&nbsp;The contents of the Outline view are editor specific. In the
-example below, which is for a Java source file, the structural elements are classes,
-fields, and methods.
-The contents of the toolbar are also editor specific.
-</p>
-
-<P><img src="../images/ref-8.gif" alt="Picture of Outline view showing structure for a Java file" border="0" width="185" height="226">
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-5.htm">Views</a><br>
-<a href="concepts-4.htm">Perspectives</a><br>
-<a href="concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-3.htm">Opening views</a><br>
-<a href="../tasks/tasks-3e.htm">Moving and docking views</a><br>
-<a href="../tasks/tasks-9b.htm">Creating fast views</a>
-</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/cpathvars.htm b/bundles/org.eclipse.platform.doc.user/concepts/cpathvars.htm
deleted file mode 100644
index 7b2c079..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/cpathvars.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Path variables</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Path variables</H1>
-<p CLASS="Head">
-<p>
-Path variables specify locations on the file system. The location of linked resources
-may be specified relative to these path variables. They allow you to avoid references to 
-a fixed location on your file system.
-</p>
-<p>
-By using a path variable, you can share projects containing linked resources with
-team members without requiring the exact same directory structure as on your file 
-system.
-</p>
-<p>
-You can load a project that uses path variables even if you do not currently have all 
-the path variables defined in your workspace. A linked resource that uses a missing path
-variable is flagged using a special decorator icon. In addition, the <b>File > Properties > Info</b> 
-property page and the <b>Window > Show View > Other > Basic > Properties</b> view for a linked resource indicate the 
-variable and whether it is defined or not. A path variable can also specify a 
-location that does not currently exist on the file system. Linked resources that use such
-a path variable are indicated using the same decorator icon mentioned above.
-</p>
-<p>
-You can create new path variables and edit and remove existing path variables on the 
-<b>Window > Preferences > Workbench > Linked Resources</b> <a href="../reference/ref-14b.htm">preference page</a>.
-</p>
-<img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="concepts-13.htm">Linked resources</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-45.htm">Creating linked resources</a><br>
-<a href="../tasks/tasks-49.htm">Viewing resource properties</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br>
-  <a href="../reference/ref-14b.htm">Linked resources</a> </p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/cpropview.htm b/bundles/org.eclipse.platform.doc.user/concepts/cpropview.htm
deleted file mode 100644
index 126ceeb..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/cpropview.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Properties view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Properties view</H1>
-<P CLASS="Para">
-The properties view displays property names and values for a selected item such
-as a resource.
-Here is an example:</P>
-<P CLASS="Para">
-<img src="../images/Image240_props_view.gif" alt="Picture of a Properties sheet with 3 columns, including a column for property and a column for value." border="0" width="391" height="218"></P>
-<P CLASS="Para">Toolbar buttons allow you to toggle to display
-properties by category or to filter advanced properties. Another
-toolbar button allows you to restore the selected property to its default value.</P>
-<P>To see more detailed information about a resource than the Properties view
-gives you, right-click the resource name in the Navigator view and select
-Properties from the pop-up menu.
-</P>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/csearchview.htm b/bundles/org.eclipse.platform.doc.user/concepts/csearchview.htm
deleted file mode 100644
index ea9fc34..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/csearchview.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"><title>Search view</title></head><body>
-<h1>
-Search view</h1>
-
-<p>
-This view displays the results of a search.&nbsp;&nbsp;</p>
-
-<p>
-Text searches will only search for expressions in files with extensions (file
-types) specified in the search dialog.</p>
-
-<p>
-Here is what the Search view looks like:</p>
-<p>
-<img src="../images/Image237_search_view.gif" alt="Search View" border="0" width="431" height="139"></p>
-<h2>
-Toolbar</h2>
-<p>The toolbar in the Search view contains the following buttons:</p>
-<dl>
-	<dt>Show Next Match</dt>
-		<dd>This command highlights the next match of the search expression in the editor area, opening the file if required.</dd>
-	<dt>Show Previous Match</dt>
-		<dd>This command highlights the previous match of the search expression in the editor area, opening the file if required.</dd>
-	<dt>Remove Selected Matches</dt>
-		<dd>Removes all highlighted matches from the search results.</dd>
-	<dt>Search</dt>
-		<dd>This command opens the Search dialog.</dd>
-	<dt>Previous Search Results</dt>
-		<dd>This command allows you to browse previously conducted searches and repeat a previous search.&nbsp; You can select a previous search from the drop-down menu or clear the search history.</dd>
-</dl>
-
-<p><br>
-<img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<a href="concepts-12.htm"><br>Resources</a>&nbsp;
-<br>
-<a href="concepts-5.htm">Views</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-84.htm">Searching for text within a file</a><br>
-<a href="../tasks/tasks-84b.htm">Searching for files</a>
-<br>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br><a href="../reference/ref-26.htm">Search view</a><br><a href="../reference/ref-45.htm">File search</a><br></p>
-
-
-<p>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</p>
-
-</body></html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/ctskview.htm b/bundles/org.eclipse.platform.doc.user/concepts/ctskview.htm
deleted file mode 100644
index 271127e..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/ctskview.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Tasks view (concept)</title>
-</head>
-
-<body>
-
-<H1 CLASS="Head">
-Tasks view</H1>
-<P CLASS="Para">
-As you work with resources in the Workbench, various builders may automatically
-log problems, errors, or warnings in the Tasks view. For example, when you save
-a Java source file that contains syntax errors, those will be logged in the
-Tasks view. When you double-click the icon for a problem, error, or warning, the
-editor for the associated resource automatically opens to the relevant line of
-code.&nbsp;</P>
-<P CLASS="Para">You can also add items to the Tasks view manually. For example, if you would like  to
-record reminders to follow up on something later, add it to the tasks view. When you add a task manually, you have the option of
-associating it with a resource so that you can use the Tasks view to quickly
-open that resource for editing.</P>
-<p><img src="../images/Image243_tasks_view.gif" alt="Picture of the Tasks view with two dummy tasks added to it." border="0" width="502" height="138"></p>
-<p CLASS="Head">
-The first column of the Tasks view displays an icon that denotes the type of line
-item. You can sort and filter line items in the task view, to view only
-high-priority tasks or only warnings and errors associated with a particular
-resource or group of resources.&nbsp;</p>
-<p CLASS="Head">
-By default, the Tasks view is included in the Resources perspective. To add it
-to the current perspective, click <b>Window &gt; Show View &gt; Tasks</b>.
-</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="cbookmrk.htm">Bookmarks</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-3.htm">Opening views</a><br>
-<a href="../tasks/tasks-3e.htm">Moving and docking views</a><br>
-<a href="../tasks/tasks-77.htm">Adding line items in the Tasks view</a><br>
-<a href="../tasks/tasks-77b.htm">Associating a task with a resource</a><br>
-  <a href="../tasks/tasks-79.htm">Filtering the Tasks view</a><br>
-<a href="../tasks/tasks-81b.htm">Creating a bookmark for an entire file</a><br>
-<a href="../tasks/tasks-81.htm">Creating a bookmark within a file</a><br>
-<a href="../tasks/tquickfix.htm">Automatically fixing problems</a><br>
-<a href="../tasks/tasks-78.htm">Deleting tasks</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-31.htm">Tasks view</a>
-</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</p>
-
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/cworkset.htm b/bundles/org.eclipse.platform.doc.user/concepts/cworkset.htm
deleted file mode 100644
index 519915b..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/cworkset.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working sets</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Working sets</H1>
-<P CLASS="Para" Label=Type>
-Working sets group elements for display in views or for operations on a set 
-of elements. </P>
-
-<P CLASS="Para" Label=Type>
-The navigator view uses working sets to restrict the set of resources that are 
-displayed. If a working set is selected in the navigator, only resources, 
-children of resources, and parents of resources contained in the working set are 
-shown. </P>
-
-<P CLASS="Para" Label=Type>
-Working sets may be used in the task view to limit the display of tasks in a 
-similar fashion as the navigator view. </P>
-
-<P CLASS="Para" Label=Type>
-When using the Workbench search facility, working sets may be used to restrict 
-the set of elements that are searched. </P>
-
-<P CLASS="Para" Label=Type>
-Different views provide different means to specify a working set. However, they 
-typically use the following working set selection dialog to manage existing working 
-sets and to create new working sets.
-</P>
-
-<P CLASS="Para" Label=Type>
-&nbsp;
-<img src="../images/Image87_workset_sel.gif" alt="Picture of working set selection dialog" border="0" width="284" height="382">
-</P>
-
-<P CLASS="Para" Label=Type>
-&nbsp;
-</P>
-
-<P CLASS="Para" Label=Type>
-When you create a new working set you may be able to choose from different types
-of working sets. In the example below you can create a resource working set, a
-Java working set or a help working set.
-</P>
-
-<P CLASS="Para" Label=Type>
-&nbsp;
-<img src="../images/Image88_workset_new_type.gif" alt="Picture of type selection page of new working set wizard" border="0" width="355" height="448">
-</P>
-
-<P CLASS="Para" Label=Type>
-&nbsp;
-</P>
-
-<P CLASS="Para" Label=Type>
-If you create a new resource working set you will be able to select the working 
-set resources as shown below. The same wizard is used to edit an existing working
-set. Different types of working sets provide different kinds of working set 
-editing wizards.
-</P>
-
-<P CLASS="Para" Label=Type>
-&nbsp;
-<img src="../images/Image89_workset_new_res.gif" alt="Picture of edit page of working set wizard" border="0" width="355" height="491">
-</P>
-
-<P CLASS="Para" Label=Type>
-&nbsp;
-</P>
-
-<DIV CLASS="Note">
-<P CLASS="Para" Label=Type>
-Note:  Newly created resources are not automatically included in the active working 
-set. They are implicitly included in a working set if they are children of an 
-existing working set element.
-If you want to include other resources after you have created them you have to 
-explicitly add them to the working set. </P>
-</DIV>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="cnav.htm">Navigator view</a><br>
-<a href="ctskview.htm">Tasks view</a><br>
-</p>
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks." width="159" height="27"><br>
-<a href="../tasks/tasks-84.htm">Searching for text within a file</a><br>
-<a href="../tasks/tasks-48b.htm">Showing or hiding resources in the Navigator view</a><br>
-</p>
-<P CLASS="Para" Label=Type>
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a></p>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/concepts/no_help_exists.htm b/bundles/org.eclipse.platform.doc.user/concepts/no_help_exists.htm
deleted file mode 100644
index 1c73fa4..0000000
--- a/bundles/org.eclipse.platform.doc.user/concepts/no_help_exists.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE> No Help Exists</TITLE>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-No Help Exists</H1>
-<p CLASS="Head">There are no available help topics associated with this
-item.&nbsp;&nbsp;&nbsp;</p>
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_AntUI.xml b/bundles/org.eclipse.platform.doc.user/contexts_AntUI.xml
deleted file mode 100644
index 1538e44..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_AntUI.xml
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-  <context id="remove_all_action_context">
-    <description>This command removes all buildfiles from the Ant view.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="search_for_buildfiles_action_context">
-    <description>This command searches for buildfiles and adds them to the Ant view.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="edit_launch_configuration_action_context">
-    <description>This command opens a dialog to edit a launch configuration associated with the selected buildfile.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="run_target_action_context">
-    <description>This command executes the selected target or the default target of the selected buildfile.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="remove_project_action_context">
-    <description>This command removes the selected buildfiles from the Ant view.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-  <context id="refresh_buildfile_action_context">
- 	<description>This command refreshes the selected buildfiles in the Ant view. All buildfiles are refreshed if the Ant view has no selection.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-  <context id="add_buildfile_action_context">
-    <description>This command prompts you to select a buildfile in the workspace to be added to the view.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="add_task_dialog_context">
-    <description>This dialog allows you to define an Ant task for Ant builds. You must set the name, location and classfile.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-  <context id="edit_task_dialog_context">
-    <description>This dialog allows you to edit an exisitng Ant task defined for Ant builds.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-  <context id="add_type_dialog_context">
-    <description>This dialog allows you to define an Ant type for Ant builds. You must set the name, location and classfile.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-  <context id="edit_type_dialog_context">
-    <description>This dialog allows you to edit an existing Ant type defined for Ant builds.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="add_property_dialog_context">
-    <description>This dialog allows you to define an Ant property used in an Ant build.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-  <context id="edit_property_dialog_context">
-    <description>This dialog allows you to edit an existing Ant property.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="search_for_buildfiles_dialog_context">
-    <description>This dialog allows you to search for buildfiles within the workspace.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="status_dialog_context">
-    <description>This dialog has a status bar with ok/cancel buttons to display a status.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-  </context>
-
-  <context id="message_with_toggle_dialog_context">
-    <description>This dialog allows you to toggle showing this type a dialog that results from a particular action</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="target_order_dialog_context">
-    <description>This dialog allows you to specify the order in which the selected Ant targets will be run. This ordering does not override the dependencies specified in your buildfile.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_preference_page_context">
-    <description>On this page, you can configure Ant preferences.</description>
-   	<topic label="Preferences - Ant" href="reference/ref-antprefs.htm"/>    
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_runtime_preference_page_context">
-    <description>On this page, you can configure the runtime environment of Ant.</description>
-    <topic label="Preferences - Ant Runtime" href="reference/ref-antruntimeprefs.htm"/>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_editor_preference_page_context">
-    <description>On this page, you can configure Ant editor preferences.</description>
-    <topic label="Preferences - Ant Editor" href="reference/ref-anteditorprefs.htm"/>
-    <topic label="Ant Editor" href="reference/ref-anteditor.htm"/> 
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_types_page_context">
-    <description>On this page, you can add or edit custom Ant types, specified within a Java class file, to be used when running Ant buildfiles.</description>
-    <topic label="Preferences - Ant Runtime" href="reference/ref-antruntimeprefs.htm"/>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_classpath_page_context">
-    <description>On this page, you can configure the Ant runtime classpath.</description>
-    <topic label="Preferences - Ant Runtime" href="reference/ref-antruntimeprefs.htm"/>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_properties_page_context">
-    <description>On this page, you can configure the properties available to Ant.</description>
-    <topic label="Preferences - Ant Runtime" href="reference/ref-antruntimeprefs.htm"/>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_tasks_page_context">
-    <description>On this page, you can add or edit custom Ant tasks, specified within a Java class file, to be used when running Ant buildfiles.</description>
-    <topic label="Preferences - Ant Runtime" href="reference/ref-antruntimeprefs.htm"/>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_view_context">
-    <description>This view allows you to view your Ant buildfiles in one place and quickly execute a target or the default target of a buildfile.</description>
-    <topic label="Ant View" href="reference/ref-antview.htm"/>
-    <topic label="Ant Editor" href="reference/ref-anteditor.htm"/> 
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-  <context id="ant_editor_context">
-    <description>The Ant editor provides you with Ant buildfile specific text editing support.</description>
-    <topic label="Ant Editor" href="reference/ref-anteditor.htm"/> 
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_main_tab_context">
-    <description>This tab allows you to configure the buildfile location and other attributes of this launch configuration.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_targets_tab_context">
-    <description>This tab allows you to configure which targets will be executed by this launch configuration.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_properties_tab_context">
-    <description>This tab allows you to configure the properties that will be passed in to Ant when this launch configuration is executed.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="ant_classpath_tab_context">
-    <description>This tab allows you to configure the runtime classpath that will be used when this launch configuration is executed.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-  
-   <context id="ant_jre_tab_context">
-    <description>This tab allows you to configure the JRE used for the Ant build.  By default Ant runs in the same Java virtual machine (JVM) as Eclipse. If you designate an alternate JRE, the Ant build will occur in a separate JVM.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-</contexts>
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_Compare.xml b/bundles/org.eclipse.platform.doc.user/contexts_Compare.xml
deleted file mode 100644
index 435941b..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_Compare.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-<!-- Compare plugin -->
-
-	<context id="compare_editor_context">
-		<description>Compare and merge files and folders in a Compare Editor.</description>
- 		<topic label="Compare editor" href="reference/ref-25.htm"/>
- 		<topic label="Comparing Resources" href="tasks/tasks-68.htm"/>
- 		<topic label="Understanding the comparison" href="tasks/tasks-68bg.htm"/>
- 		<topic label="Merging changes in the Compare editor" href="tasks/tasks-68dg.htm"/>
- 		<topic label="Three way comparisons" href="concepts/concepts-29.htm"/>
-	</context>
-
-	<context id="patch_input_wizard_page_context">
-		<description>This wizard helps you applying a patch to files and folders in your workspace. On the first page you can select the file or folders on which to apply the patch and whether the patch is loaded from an external file or from the clipboard.</description>
- 		<topic label="Working with patches" href="tasks/tasks-68c.htm"/>
-	</context>
-
-	<context id="patch_preview_wizard_page_context">
-		<description>On this page you can see how well the patch matches with your workspace. You can adjust some parameters to influence the matching.</description>
- 		<topic label="Working with patches" href="tasks/tasks-68c.htm"/>
-	</context>
-
-	<context id="compare_dialog_context">
-		<description>A dialog displaying the results of comparing files.</description>
- 		<topic label="Comparing Resources" href="tasks/tasks-68.htm"/>
- 		<topic label="Understanding the comparison" href="tasks/tasks-68bg.htm"/>
-	</context>
-	
-	<context id="add_from_history_dialog_context">
-		<description>A dialog that lets you restore deleted files from the local history.</description>
- 		<topic label="Restoring deleted resources from the local history" href="tasks/tasks-87b.htm"/>
- 		<topic label="Local history" href="concepts/concepts-17a.htm"/>
- 		<topic label="Working with local history" href="tasks/tasks-1f.htm"/>
- 		<topic label="Local history" href="reference/ref-6a.htm"/>
-	</context>
-	
-	<context id="compare_with_edition_dialog_context">
-		<description>A dialog that lets you compare files with entries from the local history.</description>
- 		<topic label="Comparing resources with the local history" href="tasks/tasks-70.htm"/>
- 		<topic label="Local history" href="concepts/concepts-17a.htm"/>
- 		<topic label="Working with local history" href="tasks/tasks-1f.htm"/>
- 		<topic label="Local history" href="reference/ref-6a.htm"/>
-	</context>
-	
-	<context id="replace_with_edition_dialog_context">
-		<description>A dialog that lets you replace files with entries from the local history.</description>
- 		<topic label="Replacing a resource with local history" href="tasks/tasks-87.htm"/>
- 		<topic label="Local history" href="concepts/concepts-17a.htm"/>
- 		<topic label="Working with local history" href="tasks/tasks-1f.htm"/>
- 		<topic label="Local history" href="reference/ref-6a.htm"/>
-	</context>
-	
-	
-		
-	<context id="text_merge_view_context">
-		<description>This editor provides support for comparing and merging text files.</description>
-	</context>
-		
-	<context id="image_compare_view_context">
-		<description>This view shows two images side-by-side.</description>
-	</context>
-
-	<context id="binary_compare_view_context">
-		<description>This view shows the first position where two files differ.</description>
-	</context>
-		
-
-	<context id="global_next_diff_action_context">
-		<description>Goto next difference globally.</description>
-	</context>
-	
-	<context id="global_previous_diff_action_context">
-		<description>Goto previous difference globally.</description>
-	</context>
-	
-	<context id="next_diff_action_context">
-		<description>Goto next difference.</description>
-	</context>
-	
-	<context id="previous_diff_action_context">
-		<description>Goto previous difference.</description>
-	</context>
-	
-	<context id="ignore_whitespace_action_context">
-		<description>Ignore whitespace.</description>
-	</context>
-
-	
-  	<context id="compare_preference_page_context" >
-		<description>This preference page is used to set preferences for the compare, merge, and patch functionality in the workbench.</description>
- 		<topic label="Setting preferences for comparing files" href="tasks/tasks-68b.htm"/>
- 		<topic label="Preferences - Compare/Patch" href="reference/ref-11.htm"/>
-   		<topic label="Comparing Resources" href="reference/ref-25.htm"/>
-	</context>
-
-</contexts>
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_ExternalTools.xml b/bundles/org.eclipse.platform.doc.user/contexts_ExternalTools.xml
deleted file mode 100644
index 84f97f4..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_ExternalTools.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-  <context id="file_selection_dialog_context">
-    <description>This dialog allows you to select a file in the workspace.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="message_with_toggle_dialog_context">
-    <description>This dialog allows you to toggle showing this type a dialog that results from a particular action</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="preference_page_context">
-    <description>On this page, you can configure External Tool preferences.</description>
-   	<topic label="Preferences - External Tools" href="reference/ref-exttoolsprefs.htm"/>    
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="builder_property_page_context">
-    <description>On this page, you can configure the External Tool builders that are run when this project is built.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="builders_tab_context">
-    <description>This tab allows you to configure when this project builder will be executed.</description>
-    <topic label="Ant Support" href="concepts/concepts-antsupport.htm"/> 
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-
-  <context id="program_main_tab_context">
-    <description>This tab allows you to configure the program location and other attributes of this launch configuration.</description>
-    <topic label="External Tools" href="concepts/concepts-exttools.htm"/>
-  </context>
-</contexts>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_Search.xml b/bundles/org.eclipse.platform.doc.user/contexts_Search.xml
deleted file mode 100644
index df63762..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_Search.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-<!-- Search plugin -->
-   <context  id="search_dialog_context" >
-      <description>You can search the workbench for resources matching the indicated conditions.</description>
- 	<topic label="Text searching" href="tasks/tasks-84.htm"/>
- 	<topic label="File searching" href="tasks/tasks-84b.htm"/>
-   	<topic label="File search" href="reference/ref-45.htm"/>
-   </context>
-
-   <context  id="text_search_page_context" >
-      <description>Type a file pattern and/or expression for which you want to search the workbench. You can use the indicated wildcards and/or search only the specific file types as needed.</description>
- 	<topic label="Text searching" href="tasks/tasks-84.htm"/>
- 	<topic label="File searching" href="tasks/tasks-84b.htm"/>
-   	<topic label="File search" href="reference/ref-45.htm"/>
-   	<topic label="Available Regular Expressions" href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html" />
-   </context>
-
-   <context  id="search_view_context" >
-      <description>This view displays the results of recent searches.</description>
- 	<topic label="Search view" href="reference/ref-26.htm"/>
- 	<topic label="File search" href="reference/ref-45.htm"/>
-   </context>
-
-   <context  id="search_preference_page_context" >
-      <description>This page displays the search preferences.</description>
- 	<topic label="Search preferences" href="reference/ref-search.htm"/>
- 	<topic label="Search view" href="reference/ref-26.htm"/>
- 	<topic label="File search" href="reference/ref-45.htm"/>
-   </context>
-
-   <context  id="open_search_dialog_action_context" >
-      <description>This command opens the search dialog.</description>
-   </context>
-
-   <context  id="file_search_action_context" >
-      <description>This command opens the file search dialog.</description>
- 	<topic label="Text searching" href="tasks/tasks-84.htm"/>
- 	<topic label="File searching" href="tasks/tasks-84b.htm"/>
-   	<topic label="File search" href="reference/ref-45.htm"/>
-
-   </context>
-
-</contexts>
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_Team.xml b/bundles/org.eclipse.platform.doc.user/contexts_Team.xml
deleted file mode 100644
index abc5a4e..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_Team.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-	<!-- ********************************** -->
- 	<!-- Wizard Pages 						-->
- 	<!-- ********************************** -->
- 	
- 	<context id="share_project_page_context">
-      <description>This page helps you select what type of target site you wish to connect the project to.</description>
-   	</context>
-   	
-   	<context id="import_project_set_page_context">
-      <description>This page helps you import a project set from a file on the filesystem. A project set is a lightweight description of a set of shared projects. It can be used to reconstruct a lineup of shared projects that you have in your workspace.</description>
-   	</context>
-	
-	<context id="export_project_set_page_context">
-      <description>This page helps you export a project set to a file which can be shared with other team members. A project set is a lightweight description of a set of shared projects. It can be used to reconstruct a lineup of shared projects that you have in your workspace.</description>
-   	</context>
-	
-	<context id="target_new_site_page_context">
-      <description>This page helps you select a site to which your project should be connected. You may choose from the list of existing sites, or create a new site.</description>
-   	</context>
-	
-	<context id="target_mapping_selection_page_context">
-      <description>This page helps you choose the folder on the seected site where your project should be connected. You may choose an existing folder, or create a new folder.</description>
-   	</context>
-	
-	
- 	<!-- ********************************** -->
- 	<!-- Preference Pages 					-->
- 	<!-- ********************************** -->
- 	
- 	<context id="ignore_preference_page_context" >
-      <description>You may wish to exclude certain resources from version control. Resources whose names match any enabled pattern will not be released. The wildcard characters '*' and '?' are permitted. These settings will not affect resources already under version control.</description>
-      <topic label="Creating a global ignore pattern" href="tasks/tasks-100d1.htm"/>
-   	</context>
-
- 	<context id="team_preference_page_context" >
-      <description>This page allows you to set which mode in which the Synchronize view will open.</description>
-      <topic label="CVS Synchronize view" href="reference/ref-33.htm"/>
-   	</context>
-
- 	<context id="file_type_preference_page_context" >
-      <description>This page allows you to associate a file extension with its content type (ASCII or binary). These setting are used by repository providers, such as CVS</description>
-      <topic label="Setting the content type of a file extension" href="tasks/tasks-team-1.htm"/>
-   	</context>
-   	   	  	
-   	<!-- ********************************** -->
- 	<!-- TargetMenuActions 					-->
- 	<!-- ********************************** -->
-	
-	<context id="target_get_action_context">
-   		<description>Downloads the selected resources from the site into your workspace.</description>
-   	</context>
-
- 	<context id="target_put_action_context">
-   		<description>Uploads the selected resources from your workspace to the site.</description>
-   	</context>
-   	
-   	<context id="target_synchronize_action_context">
-   		<description>Show any differences between the local and remote site state of the selected resources in the Synchronize view.</description>
-   	</context>
-   	
-   	<context id="target_getas_action_context">
-   		<description>Downloads the selected resources from the site into your workspace. You may specify the local name of the resources.</description>
-   	</context>
-   	
-   	<context id="target_getasproject_action_context">
-   		<description>Downloads the selected resources from the site into your workspace. A project is created in the workspace for each of the selected items.</description>
-   	</context>
-   	
-   	<context id="target_disconnect_action_context">
-   		<description>Discards the selected target sites from the list of remembered sites.</description>
-   	</context>
-   	
-   	<!-- ********************************** -->
- 	<!-- TargetCatchupReleaseViewer			-->
- 	<!-- ********************************** -->
-	
-	<context id="target_catchup_release_viewer_context">
-   		<description>This view shows incoming, outgoing and conflicting changes.</description>
-   	</context>
-   	
-   	<!-- ********************************** -->
- 	<!-- TargetActions						-->
- 	<!-- ********************************** -->
-   	
-   	<context id="sync_get_action_context">
-   		<description>Downloads the selected resources from the site into your workspace.</description>
-   	</context>
-   	
-   	<context id="sync_put_action_context">
-   		<description>Uploads the selected resources from your workspace to the site.</description>
-   	</context>
-   	
-   	<!-- ********************************** -->
- 	<!-- Views					            -->
- 	<!-- ********************************** -->
- 	
- 	<context id="site_explorer_view_context">
-      <description>The Site Explorer view allows you to browse of the contents of known target sites and download remote resources into the local workspace.</description>
-   	</context>
-
- 	<context id="sync_view_context">
-      <description>The Synchronize view allows the synchronization of the local contents of the workspace with a remote repository or target.</description>
-      <topic label="CVS Synchronize view" href="reference/ref-33.htm"/>
-   	</context>
-   	   	
-   	<!-- ********************************** -->
- 	<!-- SiteExplorerViewActions		    -->
- 	<!-- ********************************** -->
- 	
- 	<context id="add_site_action_context">
-      <description>Creates a new target site to which you can upload or download resources.</description>
-   	</context>
-   	
-   	<context id="new_folder_action_context">
-      <description>Creates a new folder on the target site.</description>
-   	</context>
-   	
-   	<!-- ********************************** -->
- 	<!-- SyncViewActions				    -->
- 	<!-- ********************************** -->
- 	
- 	<context id="refresh_action_context">
-      <description>Refreshes the contents of the view.</description>
-   	</context>
-
-   	<context id="open_action_context">
-      <description>Show the comparison of the local and remote contents of the file in the comparison viewer.</description>
-   	</context>
-   	 	
-   	<context id="expandall_action_context">
-      <description>Fully expands all selected items.</description>
-   	</context>
-   	
-   	<context  id="remove_action_context">
-      <description>Removes the selected items from the Synchronize view.</description>
-   	</context>
-   	
-   	<context  id="navigator_show_action_context">
-      <description>Selects and reveals the selected items in the Navigator view.</description>
-   	</context>
- 
-</contexts>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_Team_CVS.xml b/bundles/org.eclipse.platform.doc.user/contexts_Team_CVS.xml
deleted file mode 100644
index 4b4ef6c..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_Team_CVS.xml
+++ /dev/null
@@ -1,607 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-   
-	<!-- ********************************** -->
- 	<!-- TagSelectionDialog 				-->
- 	<!-- ********************************** -->
-	
-	<context id="replace_tag_selection_dialog_context">
-   		<description>You have chosen to replace the selected resources with a branch or version tag. This dialog allows you to select the tag which is to be used for this operation. The selected resources will be replaced with those tagged with the selected tag. If the desired tag does not appear in the list of Versions or Branches, perform a "Refresh from Repository" or a "Configure Tags" to automatically or manually find the tags that exist in the repository. Disabling the "Recurse into sub-folders" option will restrict the operation to selected folders and their direct children and selected files only.</description>
-   	</context>
-   	
-   	<context id="compare_tag_selection_dialog_context">
-   		<description>You have chosen to compare the selected resources with a branch or version tag. This dialog allows you to select the tag which is to be used for this operation. The selected resources will be compared with those tagged with the selected tag. If the desired tag does not appear in the list of Versions or Branches, perform a "Refresh from Repository" or a "Configure Tags" to automatically or manually find the tags that exist in the repository.</description>
-   	</context>
-   	
-   	<context id="tag_remote_with_existing_dialog_context">
-   		<description>You have chosen to tag the selected resources with an existing branch or version tag. This dialog allows the user to select the tag which is to be used for this operation. If the tag already exists on another revision of any of the selected resources, it will be moved to the revision in the selection. If the desired tag does not appear in the list of Versions or Branches, perform a "Refresh from Repository" or a "Configure Tags" to automatically or manually find the tags that exist in the repository. Disabling the "Recurse into sub-folders" option will restrict the operation to selected folders and their direct children and selected files only.</description>
-   	</context>
-   	
-   	<context id="share_with_existing_tag_selection_dialog_context">
-   		<description>The project being shared already exists remotely. This dialog allows the user to select the branch with which the project is to be shared. If the desired tag is not HEAD and does not appear in the list of Branches, perform a "Refresh from Repository" or a "Configure Tags" to automatically or manually find the tags that exist in the repository.</description>
-   	</context>
-   	
-   	<!-- ********************************** -->
- 	<!-- TagAsVersionDialog 				-->
- 	<!-- ********************************** -->
- 	
- 	<context id="tag_as_version_dialog_context">
-   		<description>Enter the version name to be used to tag to the selected resources.</description>
-   	</context>
-   	
-   	<!-- ********************************** -->
- 	<!-- WizardPages 						-->
- 	<!-- ********************************** -->
- 	
- 	<context id="sharing_autoconnect_page_context">
-   		<description>The local project has CVS information assocated with it but is not registered as a CVS project. This page shows the CVS information associated with the local project. Clicking "Finish" will register this project as a CVS project and enable the use of CVS menu commands. If "Validate Connection on Finish" is enabled, a connection will be attempted to the server.</description>
-   	</context>
-   	
-   	<context id="sharing_select_repository_page_context">
-   		<description>Either choose the repository to share the project with from the list of existing repositories or indicate that a new repository location is to be created.</description>
-   	</context>
-
- 	<context id="sharing_new_repository_page_context">
-   		<description>Enter the information that identifies the repository you would like to share with and the user and connection information required to access this repository.</description>
-   		<topic label="New Repository Location Wizard" href="reference/ref-40.htm"/>
-		<topic label="CVS Repositories" href="concepts/concepts-27c.htm"/>
-		<topic label="Creating a CVS repository location" href="tasks/tasks-92.htm"/>
-	   	<topic label="Discarding a CVS repository location" href="tasks/tasks-94.htm"/>
-   	</context>
-
- 	<context id="sharing_module_page_context">
-   		<description>Specify the name of the remote module with which the local project is shared. You can either choose to use the project name as the name that will be given to the remote module or to specify a custom module path. In either case, the name is relative to the repository root directory and, if the remote module does not exist, it is created.</description>
-   	</context>
-
- 	<context id="sharing_finish_page_context">
-   		<description>The sharing wizard has all the information it needs to share the project with the repository. Click "Finish" to share the project.</description>
-   	</context>
-
- 	<context id="patch_selection_page_context">
-   		<description>Specify where you would like the patch output saved.</description>
-   	</context>
-
- 	<context id="patch_options_page_context">
-   		<description>Specify various options used to generate the patch.</description>
-   	</context>
-
- 	<context id="keyword_substituton_selection_page_context">
-   		<description>Select the mode to be applied to the selected files. Automatic will choose between Binary and the default ASCII mode specified in the CVS preferences depending on a file's type as determined using the Team file type registry.</description>
-   	</context>
-
- 	<context id="keyword_substituton_summary_page_context">
-   		<description>The files whose mode requires a change based on the wizard input are listed. Optionally, those whose mode do not require changes can be included in the list. This mode associated with a file in the list can be modified by clicking on the file's mode and selecting from the list.</description>
-   	</context>
-
- 	<context id="keyword_substituton_shared_page_context">
-   		<description>Select whether files that are already shared with the repository are to be considered for change. If include shared files is disabled, only new files that have already been added to CVS control will be considered.</description>
-   	</context>
-
- 	<context id="keyword_substituton_changed_page_context">
-   		<description>Select whether files that contain outgoing changes are to be considered for mode change.</description>
-   	</context>
-   	
-    <context id="keyword_substituton_commit_comment_page_context">
-   		<description>Any line terminator changes that resulted from converting files from binary to ASCII will be committed by this operation. Enter a comment to describe the contents of this commit.</description>
-   	</context>
-  
- 	<context id="merge_start_page_context">
-   		<description>From the list, select a version of the project that will be the starting (base) point of the merge operation. If the tag is not available try refreshing from the repository or configuring tags.</description>
-   		<topic label="Merge Wizard" href="reference/ref-41a.htm"/> 
-   	</context>
-   	
- 	<context id="merge_end_page_context">
-   		<description>From the list select either a version or branch that will act as the end point of the merge.</description>
-   		<topic label="Merge Wizard" href="reference/ref-41a.htm"/> 
-   	</context>
-   	
-   	<context id="checkout_into_resource_selection_page_context">
-   		<description>Enter the name for the target local folder and select the parent folder under which the local folder should be created.</description>
-   		<topic label="Checking out a folder into an existing project" href="tasks/tasks-96b.htm"/> 
-   	</context>
-   	
-   	<context id="restore_from_repository_file_selection_page_context">
-   		<description>Browse files that have been deleted from the repository and check the revision of each file to be restored to the local workspace.</description>
-   	</context>
-   	
-   	<context id="working_set_folder_selection_page_context">
-        <description>Select the folders you wish to add to the working set as projects.</description>
-    </context>
-    
-   	<!-- ********************************** -->
- 	<!-- TeamMenuActions 					-->
- 	<!-- ********************************** -->
-	
-	<context  id="manage_action_context" >
-      <description>These commands allow you to perform version/configuration management operations.</description>
-	</context>
-  
-	<context id="team_synchronize_action_context">
-   		<description>Shows any differences between the local and remote state of the selected resources in the Synchronize view.</description>
-   		<topic label="Sharing a new project using CVS" href="tasks/tasks-117.htm"/>
- 		<topic label="Synchronizing with the repository" href="tasks/tasks-115.htm"/>
-	 	<topic label="Updating" href="tasks/tasks-113.htm"/>
-	 	<topic label="Committing" href="tasks/tasks-114.htm"/>
-   	</context>
-   	
-   	<context id="team_synchronize_outgoing_action_context">
-  		<description>Shows any differences between the local and remote state of any selected resources that have outgoing changes in the Synchronize View.</description>
-		<topic label="Synchronizing with the repository" href="tasks/tasks-115.htm"/>
-	 	<topic label="Committing" href="tasks/tasks-114.htm"/>
-   	</context>
-
- 	<context id="team_commit_action_context">
-    		<description>Commits any outgoing changes in the selected resources to the server.</description>
-   		<topic label="Committing" href="tasks/tasks-114.htm"/>
-   	</context>
-
- 	<context id="team_update_action_context">
-   		<description>Updates the selected resources with any remote changes.</description>
-   		<topic label="Updating" href="tasks/tasks-113.htm"/>
-   	</context>
-
- 	<context id="team_create_patch_action_context">
-   		<description>Creates a patch that, when applied to the same base as the local resources, will duplicate the selected resources.</description>
-   		<topic label="Working with patches" href="tasks/tasks-68c.htm"/>
-   	</context>
-
- 	<context id="team_tag_as_version_action_context">
-   		<description>Tags the selected resources in the repository with a version name provided by the user.</description>
-   		<topic label="Creating a version of a project" href="tasks/tasks-100.htm"/>
-   		<topic label="Versioning projects in the repository" href="tasks/tasks-118.htm"/>
-   	</context>
-
- 	<context id="team_branch_action_context">
-   		<description>Creates a branch using the selected resources as the base and optionally updates the local resources to be on the new branch.</description>
-   		<topic label="CVS" href="reference/ref-47.htm"/>
- 		<topic label="Branching" href="tasks/tasks-100a.htm"/>
-   	</context>
-
- 	<context id="team_merge_action_context">
-   		<description>Merges the changes from one branch into another.</description>
-   		<topic label="CVS" href="reference/ref-47.htm"/>
-   	</context>
-
- 	<context id="team_set_keyword_mode_action_context">
-   		<description>Sets the keyword substitution mode of the selected resources.</description>
-   		<topic label="Setting the content type of a file extension" href="tasks/tasks-team-1.htm"/>
-   	</context>
-
- 	<context id="team_disconnect_action_context">
-   		<description>Disconnects the project from CVS control and optionally deletes the CVS folders.</description>
-		<topic label="Discarding a CVS repository location" href="tasks/tasks-94.htm"/>
-   	</context>
-
- 	<context id="team_add_action_context">
-   		<description>Adds the selected resources to CVS control so they can be committed and shared.</description>
-   	</context>
-
- 	<context id="team_ignore_action_context">
-   		<description>Ignores the selected resources so that they will not be considered for version control.</description>
-   	</context>
-
-   	<context id="team_restore_from_repository_action_context">
-   		<description>Load the contents of files that have been deleted from the repository so they can be restored.</description>
-   	</context>
-   		
-   	<!-- ********************************** -->
- 	<!-- Other Menu Actions 				-->
- 	<!-- ********************************** -->
-	
-	<context id="compare_with_tag_action_context">
-   		<description>Compares the selected resources with the corresponding remote resources tagged with a user specified version or branch tag.</description>
-   		<topic label="Comparing resources" href="tasks/tasks-68.htm"/>
-	 	<topic label="Comparing resources with repository versions" href="tasks/tasks-101.htm"/>
-   	</context>
-   	
-   	<context id="compare_with_latest_action_context">
-   		<description>Compares the selected resources with the corresponding remote resources with the same tag or on the same branch.</description>
-   	</context>
-
-   	<context id="compare_with_revision_action_context">
-   		<description>Compares the selected file with a user specified revision of the file.</description>
-   		<topic label="Comparing resources" href="tasks/tasks-68.htm"/>
-	 	<topic label="Comparing resources with repository versions" href="tasks/tasks-101.htm"/>
-   	</context>
-   	
- 	<context id="replace_with_tag_action_context">
-   		<description>Replaces the selected resources with the corresponding remote resources tagged with a user specified version or branch tag.</description>
-	 	<topic label="Replacing resources in the workbench" href="tasks/tasks-103.htm"/>
-   	</context>
-   	
-   	 <context id="replace_with_latest_action_context">
-   		<description>Replaces the selected resources with the corresponding remote resources with the same tag or on the same branch.</description>
-   	</context>
-    
-   	<context id="replace_with_revision_action_context">
-   		<description>Replaces the selected file with a user specified revision of the file.</description>
-   		<topic label="Navigator View" href="reference/ref-27.htm"/>
-	 	<topic label="Replacing resources in the workbench" href="tasks/tasks-103.htm"/>
-   	</context>
-   	
-   	<context id="checkout_into_action_context">
-   		<description>Checks out the selected folder into an existing project.</description>
-   		<topic label="Checking out a folder into an existing project" href="tasks/tasks-96b.htm"/>
-   	</context>
-   	
-   	<context id="checkout_as_action_context">
-   		<description>Checks out the selected folder into a user configured project. This new project can have a different name from the default one.</description>
-   	</context>
-   	
-   	<context id="checkout_as_project_action_context">
-   		<description>Checks out the selected folders into projects that corresponds to the name of each remote folder.</description>
-   		<topic label="Checking out a project from a CVS repository" href="tasks/tasks-96.htm"/>
-   	</context>
-
-   	<context id="checkout_module_action_context">
-   		<description>Checks out the selected modules into the local workspace.</description>
-   	</context>
-   	   	
-   	<context id="open_remote_file_action_context">
-   		<description>Opens the contents of the selected remote file in an editor.</description>
-   	</context>
-
- 	<context id="show_in_history_action_context">
-   		<description>Displays the revision history of the selected local or remote file in the history view.</description>
-   		<topic label="Viewing a File's Revision History" href="tasks/tasks-119.htm"/>
-   	</context>
-
-    <context id="confirm_merge_action_context">
-   		<description>Marked the selected resources as merged. This will change the base of the local resource to match that of the conflicting incoming change so the changes in the local resource can be committed. Only do this after you have manually accepted any incoming changes that should be preserved.</description>
-   		<topic label="Updating" href="tasks/tasks-113.htm"/>
-   	</context>
-   	
-    <context id="select_new_action_context">
-   		<description>Select all resources that are new and have not yet been added to CVS control.</description>
-   	</context>
-   	
- 	<context id="compare_remote_resources_action_context">
-   		<description>Compares the two selected remote resources with each other.</description>
-   		<topic label="Comparing resources" href="tasks/tasks-68.htm"/>
-	 	<topic label="Comparing resources with repository versions" href="tasks/tasks-101.htm"/>
-   	</context>
-   	
-   	<context id="compare_remote_with_tag_action_context">
-   		<description>Compares the selected resource with another branch or version of the same resource.</description>
-   	</context>
-   	
-   	<context id="copy_repository_name_action_context">
-   		<description>Copies the name of the selected repository location to the clipboard.</description>
-   	</context>
-   	
-   	<context id="remove_root_action_context">
-   		<description>Removes the selected repository locations from the Repositories View.</description>
-   	</context>
-   	
-   	<context id="add_to_branch_context">
-   		<description>Adds the selected project to the branch list in this view. This operation only adds the project to the branch in the view and does not affect the repository itself.</description>
-   	</context>
-   	
-   	<context id="move_remote_tag_action_context">
-   		<description>Tags the selected resources with an existing user specified tag, moving the tag if required.</description>
-   	</context>
-   	
-   	<context id="tag_remote_action_context">
-   		<description>Tags the selected resources with a user specified tag.</description>
-   	</context>
-
-   	<context id="show_comment_in_history_action_context">
-   		<description>Shows the complete multi-line comment of the selected entry in a separate text pane.</description>
-   		<topic label="CVS Resource History view " href="reference/ref-32a.htm"/>
-   	</context>
-   	
-   	<context id="show_tag_in_history_action_context">
-   		<description>Shows the complete list of tags for the selected entry in a separate list pane.</description>
-   		<topic label="CVS Resource History view " href="reference/ref-32a.htm"/>
-   	</context>
-   	
-   	<context id="tag_with_existing_action_context">
-   		<description>Tags the selected resources with an existing user specified tag, moving the tag if required.</description>
-   	</context>
-   	
-   	<context id="select_working_set_action_context">
-   		<description>This filter removes all root folders from the view whose name does not match a project in the selected working set.</description>
-   	</context>
-   	
-   	<context id="deselect_working_set_action_context">
-   		<description>This action removes the currently installed working set filter.</description>
-   	</context>
-   	
-    <context id="edit_working_set_action_context">
-   		<description>This action edits the currently installed working set filter.</description>
-   	</context>
-   	
- 	<!-- ********************************** -->
- 	<!-- TagConfiguration 					-->
- 	<!-- ********************************** -->
-	
-	<context id="refresh_tags_action_context">
-   		<description>Refresh the branch and version tags displayed in this view by contacting the server</description>
-   		<topic label="Discovering branch and version tags" href="tasks/tasks-110.htm"/>
-   	</context>
-   	
-	<context id="refresh_remote_project_selection_page_context">
-   		<description>Refresh the branch and version tags for the checked folders by contacting the server</description>
-   		<topic label="Discovering branch and version tags" href="tasks/tasks-110.htm"/>
-   	</context>
-   	
-	<context  id="tag_configuration_overview" >
-   		<description>Configure the branch and version tags that are shown in the workbench. By browsing remote CVS files for tags you can selectively choose, from the list of tags on each file, which tags should be remembered and which should not. You can also select the files that will be automatically examined for tags.</description>
-   		<topic label="Discovering branch and version tags" href="tasks/tasks-110.htm"/>
-   	</context>
-   
-    <context  id="tag_configuration_refreshlist" >
-      <description>This lists the files that are automatically examined for tags. By default, the .project file	is examined. But in some cases other files may have a more complete tag history and should be examined instead.</description>
-      <topic label="Discovering branch and version tags" href="tasks/tasks-110.htm"/>
-   	</context>
-   
-   	<context  id="tag_configuration_refreshaction" >
-      <description>This will fetch branch and version tags from the files that have been configured to be automatically searched for tags. If tags that you expected to see do not appear, try changing the list of files to examined via the tag configuration dialog.</description>
-      <topic label="Discovering branch and version tags" href="tasks/tasks-110.htm"/>
-   	</context>
-
- 	<!-- ********************************** -->
- 	<!-- Watch/Edit							-->
- 	<!-- ********************************** -->
- 	
- 	<context  id="team_edit_action_context" >
-      <description>Notify the server that you wish to edit this file.</description>
-   	</context>
-   	
-   	<context  id="team_unedit_action_context" >
-      <description>Notify the server that you are no longer editing this file and revert the contents to that of the base revision from which it was derived.</description>
-   	</context>
-   	
-   	<context  id="team_show_editors_action_context" >
-      <description>Show all editors of the selected resource and any of its children in the CVS Editors view.</description>
-   	</context>
-   	
-   	<context  id="cvs_editors_view_context" >
-      <description>This view shows all registered editors of one or more files.</description>
-   	</context>
-   	
-   	<context  id="editors_dialog_context" >
-      <description>This dialog shows all registered editors of the file that you are requesting to edit.</description>
-   	</context>
-   	
-   	<context  id="watch_edit_preference_page_context" >
-      <description>This page supports the configuration of CVS watch/edit. Enabling the use of watch/edit will result in all files being checked out read-only from the server. Editing a file will make the file writtable and send an edit notification to the server.</description>
-   	</context>
-   	
- 	<!-- ********************************** -->
- 	<!-- Dialogs					        -->
- 	<!-- ********************************** -->
- 	
- 	<context id="release_comment_dialog_context">
-       <description>Enter a comment to describe the contents of this commit.</description>
-    </context>
-   	<context id="user_validation_dialog_context">
-      <description>In this dialog, enter the appropriate information to log in to the repository.</description> 
-    </context>
-    <context id="tag_local_as_version_dialog_context">
-      <description>Enter the name of the version tag to be applied to the revisions that exist locally.</description>
-    </context>
-    <context id="branch_dialog_context">
-		<description>This dialog lets you specify the name of the branch you want to create and optionally lets you start working in the branch by updating the tag of the local resources to be the newly created branch tag.</description>
-    </context>
-    <context id="add_to_cvsignore_context">
-    	<description>In this dialog choose how to add the selected resources to the .cvsignore files. For each resource to be ignored, a .cvsignore file will created in its parent directory containing the pattern specified in the dialog. This will not affect resources already under version control.</description>
-    </context>
-    <context id="sychronize_projects_dialog_context">
-    	<description>Select the projects or working set to be synchronized with a CVS repository.</description>
-    </context>
-    <context id="add_to_version_control_dialog_context">
-    	<description>Select which new resources should be added to version control before the commit. Any resources listed in this dialog which are not added first will not be committed to the server.</description>
-    </context>
-    <context id="disconnect_action_context">
-    	<description>This dialog allows you to disconnect the project from CVS control. Keeping the CVS meta information allows the project to be easily re-shared or used with other CVS tools.</description>
-    </context>
-    <context id="history_filter_dialog_context">
-        <description>This dialog allows you to specify filters that reduce the number of entries displayed in the History View. </description>
-    </context>
-    
- 	<!-- ********************************** -->
- 	<!-- Preference Pages 					-->
- 	<!-- ********************************** -->
- 	
- 	<context  id="prune_empty_directories_pref" >
-      <description>Enables pruning of empty directories on update and in the synchronization view. Although pruned directories aren't shown in the workbench there is actually still an empty directory in the repository.</description>
-   	</context>
-   	
-   	<context  id="quietness_level_pref" >
-      <description>Sets the amount of status information CVS prints for a command. In "Somewhat quiet" mode the printing of unimportant informational messages is supressed. The consideration of what is important depends on each command. In "Very quiet" mode all output except what is absolutely necessary to complete the command is suppressed. In "Very Quiet" mode, some CVS servers may not communicate important information about errors that have occured. You may want to consider using "Somewhat quiet" mode instead.</description>
-   	</context>
-   	
-  	<context  id="compression_level_pref" >
-      <description>Sets the compression level on communications with the server if it is supported by the server. Level 1 is minimal compression (slower communication but less CPU needed) and level 9 is maximum compression (faster communication but more CPU needed).</description>
-   	</context>
-
-	<context  id="default_keywordmode_pref" >
-      <description>Sets the default keyword substitution mode to use for ASCII files.</description>
-      <topic label="Setting the CVS keyword substitution mode" href="tasks/tasks-cvs-11.htm"/>
-   	</context>
-   	
-	<context  id="comms_timeout_pref" >
-      <description>Sets the amount of time in seconds to wait before timing out from a connection to the CVS server.</description>
-   	</context>
-   	
-   	<context  id="consider_content_pref" >
-      <description>Sets the default compare method for comparing and synchronizing CVS resources. By default timestamps are used to compare CVS files, and this is by far the fastest method. However, in some cases a more accurate comparison can be achieved by comparing file content. This setting can be toggled from within a compare editor or the synchronization view.</description>
-   	</context>
-
-	<context  id="markers_enabled_pref" >
-      <description>Enables markers to be added to the task view for resources that have been locally removed but not committed.</description>
-   	</context>
-   	
-	<context  id="replace_deletion_of_unmanaged_pref" >
-      <description>Allows resources not under CVS control to be deleted when replacing with resources from the repository.</description>
-   	</context>
-   	
-    <context  id="save_dirty_editors_pref" >
-      <description>Configures what happens when there are open editors with unsaved changes when a CVS operation is performed.</description>
-   	</context>
-   	
-   	<context  id="treat_new_files_as_binary_pref" >
-      <description>Sets whether all new files are to be treated as binary. If disabled, the Team file content type preferences are used to determine the file type.</description>
-      <topic label="Setting the content type of a file extension" href="tasks/tasks-team-1.htm"/>
-   	</context>
-   	
-   	<context  id="determine_server_version" >
-      <description>Sets whether the server version should be queried on the first connection to determine compatibility.</description>
-   	</context>
-
-   	<context  id="confirm_move_tag" >
-      <description>Sets whether the user is prompted for confirmation when they perform a tag operation that requests an existing tag be moved.</description>
-   	</context>
-
-   	<context  id="console_preference_page_context" >
-      <description>This page supports the configuration of the CVS console. Properties that can be set are outpu colors and text font. The console can also be configured to open automatically when there is output.</description>
-   	</context>
-
-   	<context  id="ext_preference_page_context" >
-      <description>This page supports the configuration of the EXT connection parameters.</description>
-      <topic label="CVS" href="reference/ref-47.htm"/>
-   	</context>
-   	
-   	<context id="ext_preference_rsh_context">
-		<description>This program will be called to connect to the remote CVS server. The RSH command is invoked with following calling pattern: &lt;CVS_RSH&gt; &lt;Parameters&gt; &lt;CVS_SERVER&gt;</description> 
-	</context>
-	
-	<context id="ext_preference_param_context">
-		<description>The default parameter pattern is {host} -l {user}. It can be tailored using {host}, {user}, {password} and {port}.</description>
-	</context>
-	
-	<context id="ext_preference_server_context">
-		<description>This is the name of the remote CVS server program. Change this setting only if the remote CVS server name is different than the default</description>
-	</context>
-
-   	<context  id="decorators_preference_page_context" >
-      <description>This page supports the configuration of the CVS label and icons decorations.</description>
-      <topic label="Enabling the CVS resource decorations" href="tasks/tasks-107b.htm"/>
-   	</context>
-   	   	   	   	
-   	<!-- ********************************** -->
- 	<!-- Views					            -->
- 	<!-- ********************************** -->
- 	
- 	<context  id="console_view_context" >
-      <description>This view shows the output of CVS operations.</description>
-      <topic label="Team programming with CVS" href="concepts/concepts-26.htm"/>
-   	</context>
-   	<context  id="repositories_view_context" >
-      <description>This view allows the browsing of the contents of known CVS repositories and the checkout of modules into the local workspace as projects.</description>
-		<topic label="CVS Repositories View " href="reference/ref-32.htm"/>
-		<topic label="Refreshing the CVS Repositories view" href="tasks/tasks-93.htm"/>
-   	</context>
-   	<context  id="resource_history_view_context" >
-      <description>This view shows the revision history of a file under CVS control.</description>
-      <topic label="CVS Resource History view " href="reference/ref-32a.htm"/>
-      <topic label="Viewing a File's Revision History" href="tasks/tasks-119.htm"/>
-   	</context>
-   	<context  id="catchup_release_viewer_context" >
-      <description>This view shows the incoming, outgoing and conflicting changes.</description>
-      <topic label="CVS Synchronize view" href="reference/ref-33.htm"/>
-		<topic label="Synchronizing with the repository" href="tasks/tasks-115.htm"/>
-   	</context>
-   	<context  id="compare_revision_view_context" >
-      <description>This view allows the comparision of the local copy of a file with the revisions from the respoitory. Actions available for a revision are "Get Contents" and "Get Revision". Although both replace the local file with the contents of the remote rvision, "Get Revision" will make the local file "sticky". This means that changes to the file cannot be committed back to the repository.</description>
-   	</context>
-    <context  id="annotate_view_context" >
-      <description>This view shows the user and revision annotations for a file in the CVS repository.</description>
-   	</context>
-   	
-   	
-   	<!-- ********************************** -->
- 	<!-- Actions					        -->
- 	<!-- ********************************** -->
- 	
- 	<context  id="get_file_revision_action_context" >
-      <description>Loads the revision of the file into the workspace. The file will be "sticky" and the user will be unable to commit changes to the repository.</description>
-   	</context>
- 	<context  id="get_file_contents_action_context" >
-      <description>Loads the contents of the file into the workspace. The base revision of the local file will not change and the file will become dirty. Perform this action if you wish to revert to the contents of an older revision of the file.</description>
-   	</context>
-   	<context  id="get_annotate_action_context" >
-      <description>Perform the CVS annotate command on the selected resource.  This command displays the resource with the contributor and revision noted for each line.</description>
-   	</context>
-   	<context  id="new_repository_location_action_context" >
-      <description>Creates a new CVS repository location and adds it to the CVS Repositories view.</description>
-      <topic label="Create a Repository Location" href="tasks/tasks-92.htm"/>
-   	</context>
-   	<context  id="new_dev_eclipse repository_location_action_context" >
-      <description>Creates a new CVS repository location for dev.eclipse.org and adds it to the CVS Repositories view.</description>
-      <topic label="Create a Repository Location" href="tasks/tasks-92.htm"/>
-   	</context>
-   	<context  id="show_remote_folders_action_context" >
-      <description>Toggles the CVS Repositories view to show folders.</description>
-      <topic label="CVS Repositories View " href="reference/ref-32.htm"/>
-   	</context>
-   	<context  id="show_remote_modules_action_context" >
-      <description>Toggles the CVS Repositories view to show modules defined in the CVSROOT/modules file.</description>
-      <topic label="CVS Repositories View " href="reference/ref-32.htm"/>
-   	</context>
-   		
-   	<!-- ********************************** -->
- 	<!-- Sync Actions					    -->
- 	<!-- ********************************** -->
- 	
-   	<context id="sync_commit_action_context" >
-      <description>Commits the selected outgoing changes to the CVS repository. Conflicting changes are not committed; to commit them you must use the "Override and Commit" action.</description>
-   	</context>
-   	
-   	<context id="sync_forced_commit_action_context">
-      <description>Commits the selected conflicting and incoming changes to the CVS repository. Non-conflicting outgoing changes are not committed; to commit them you must use the "Commit" action.</description>
-   	</context>
-	
-	<context id="sync_update_action_context">
-      <description>Gets the selected incoming changes from the CVS repository. Conflicting changes are not updated; to update them you must use the "Override and Update" action.</description>
-   	</context>
-	
-	<context id="sync_forced_update_action_context">
-      <description>Gets the selected conflicting and outgoing changes from the CVS repository. Non-conflicting incoming changes are not updated; to update them you must use the "Update" action. If some of the selected resources are auto-mergeable (i.e. they have no line-based conflicts) then you have the option of either performing an auto-merge or replacing with the remote content.</description>
-   	</context>
-	
-	<context id="sync_add_action_context">
-      <description>Adds the selected resources to CVS control.</description>
-   	</context>
-	
-	<context id="sync_ignore_action_context">
-      <description>Adds the selected resources to the appropriate .cvsignore file. These resources will no longer be considered for repository operations.</description>
-   	</context>
-	
-	<context id="merge_update_action_context">
-      <description>Gets the selected incoming changes from the CVS repository. Conflicting changes are not updated; to update them you must use the "Override and Update" action.</description>
-   	</context>
-	
-	<context id="merge_forced_update_action_context">
-      <description>Gets the selected conflicting changes from the CVS repository. Non-conflicting incoming changes are not updated; to update them you must use the "Update" action. If some of the selected resources are auto-mergeable (i.e. they have no line-based conflicts) then you have the option of either performing an auto-merge or replacing with the remote content.</description>
-   	</context>
-	
-	<context id="merge_update_with_joinaction_context">
-      <description>Gets the selected conflicting changes from the CVS repository. Non-conflicting incoming changes are not updated; to update them you must use the "Update" action. When performing a merge, it is difficult to detect if conflicts are auto-mergeable (i.e. they have no line-based conflicts). If you believe the file is auto-mergeable, you may use this action. You will then have the option of either performing an auto-merge or replacing with the remote content.</description>
-   	</context>
-
-   	<!-- ********************************** -->
- 	<!-- Properties pages				    -->
- 	<!-- ********************************** -->
- 	
-   	<context id="repository_location_property_page_context" >
-      <description>This page shows the properties of a repository location and allows the modification of the connection method, user name and password. If properties are changed on this page, they are changed for all projects shared with this location.</description>
-      <topic label="Changing the properties of a CVS Repository Location" href="tasks/tasks-95.htm"/>
-   	</context>
-
-   	<context id="project_property_page_context" >
-      <description>This page shows the CVS properties of the project. The project's CVS sharing information can be changed to another compatible repository location.</description>
-      <topic label="Changing the sharing of a Project" href="tasks/tasks-117b.htm"/>
-   	</context>
-   	
-   	<context id="folder_property_page_context" >
-      <description>This page shows the CVS properties of the folder.</description>
-   	</context>
-   	
-   	<context id="file_property_page_context" >
-      <description>This page shows the CVS properties of the file.</description>
-   	</context>
-   		
-</contexts>
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_Update.xml b/bundles/org.eclipse.platform.doc.user/contexts_Update.xml
deleted file mode 100644
index 98f83a3..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_Update.xml
+++ /dev/null
@@ -1,294 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-
-<contexts>
-
-   <!-- Context IDs added in plugin.xml -->
-   
-   <context  id="newUpdates" >
-      <description>This action will search for available updates to installed features.</description>   
-      <topic label="Updating features with the update manager" href="tasks/tasks-36.htm"/>   
-   </context>
-   
-   <context  id="pendingChanges" >
-      <description>This action displays any pending changes that have not been processed (accepted, or removed).</description>
-      <topic label="Picking up pending changes" href="tasks/tasks-35.htm"/>   
-   </context>
-   
-   <context  id="updateManager" >
-      <description>This action opens the Update Manager.</description>
-      <topic label="Installing new features with the update manager" href="tasks/tasks-34.htm"/>   
-   </context>
-   
-   <!-- Context IDs added in the  code, ID is class name, where context ID is set -->
-   
-   <context  id="ConfigurationView" >
-      <description>The Install Configuration view can be used to work with installed features. <b>Current Configuration</b> shows all features that are currently enabled. <b>Configuration History</b> shows a history of changes made to your application. <b>Saved Configurations</b> show any configurations that were previously saved.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Install Configuration view" href="reference/ref-35umb.htm"/>
-   </context>
-   
-   <context  id="UpdatesView" >
-      <description>The Feature Updates view can be used to locate new features and feature updates. You can browse predefined site locations, search for updates, browse for updates on your local system, or define your own site bookmarks.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Feature Updates view" href="reference/ref-35umc.htm"/>      
-   </context>
-   
-   <context  id="DetailsView" >
-      <description>This view is used to present selection details. Its content depends on the current selection.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>      
-   </context>
-   
-   <context  id="SearchResultView" >
-      <description>Results of the feature searches are shown in this view.</description>
-   </context>
-   
-   <context  id="SelectedUpdatesView" >
-      <description>This view is used to show the currently selected updates when group updates are used. Several features can be
- installed or updated at once.</description>
-   </context>
-   
-   <context  id="BaseTreeViewer_showDetailsAction" >
-      <description>Show details for the selection.</description>
-   </context>
-   
-   <context  id="CofigurationView_showUnconfFeaturesAction" >
-      <description>Show disabled features.</description>
-   </context>
-   
-   <context  id="CofigurationView_revertAction" >
-      <description>Restore your configuration to match the selected history.</description>
-   </context>
-   
-   <context  id="CofigurationView_showStatusAction" >
-      <description>Show the current configuration status for the selected feature.</description>
-   </context>
-   
-   <context  id="CofigurationView_preserveAction" >
-      <description>Save the selected configuration in the <b>Saved Configurations</b> folder.</description>
-   </context>
-   
-   <context  id="CofigurationView_removePreservedAction" >
-      <description>Delete the selected configuration from the <b>Saved Configurations</b> folder.</description>
-   </context>
-   
-   <context  id="CofigurationView_unlinkAction" >
-      <description>Unlink the selected site from the configuration.</description>
-   </context>
-   
-   <context  id="CofigurationView_propertiesAction" >
-      <description>Display properties for the selection.</description>
-   </context>
-   
-   <context  id="UpdatesView_newAction" >
-      <description>Create a new site bookmark.</description>
-   </context>
-   
-   <context  id="UpdatesView_newFolderAction" >
-      <description>Create a new folder in the Feature Updates View. Folders can be used to organize site bookmarks and search queries.</description>
-   </context>
-   
-   <context  id="UpdatesView_newSearchAction" >
-      <description>Create a new search query.</description>
-   </context>
-   
-   <context  id="UpdatesView_newLocalAction" >
-      <description>Create a site bookmark for the selected local site.</description>
-   </context>
-   
-   <context  id="UpdatesView_deleteAction" >
-      <description>Delete the selected item.</description>
-   </context>
-   
-   <context  id="UpdatesView_refreshAction" >
-      <description>Refresh the selected item.</description>
-   </context>
-   
-   <context  id="UpdatesView_fileFilterAction" >
-      <description>Select to show individual files in <b>My Computer</b>. Deselect to show only local sites and directories.</description>
-   </context>
-   
-   <context  id="UpdatesView_filterEnvironmentAction" >
-      <description>Select to show only features matching current environment. Deselect to show all available features (features not matching current environment cannot be installed).</description>
-   </context>
-   
-   <context  id="UpdatesView_showCategoriesAction" >
-      <description>Select to see features organized into site categories. Deselect to see all features as a list.</description>
-   </context>
-   
-   <context  id="UpdatesView_linkExtensionAction" >
-      <description>Link the selected site into the configuration.</description>
-   </context>
-   
-   <context  id="DetailsView_homeAction" >
-      <description>Display the Update Manager Welcome page.</description>
-   </context>
-   
-   <context  id="DetailsView_backAction" >
-      <description>Go back to the previous details page.</description>
-   </context>
-   
-   <context  id="DetailsView_forwardAction" >
-      <description>Go forward to the next details page.</description>
-   </context>
-   
-   <context  id="MainPreferencePage" >
-      <description>Set Update Manager preferences - <b>number of histories</b> to maintain before deleting; <b>browser</b> to use; scoping of <b>new updates</b> search to service updates only, or compatible minor release updates; <b>color</b> to use for preview section titles.</description>
-   </context>
-   
-   <context  id="AppServerPreferencePage" >
-      <description>Set preferences related to updates triggered from web pages. For this to work, Update Manager must be able to accept connections from web pages.</description>
-   </context>
-   
-   <context  id="InstallDeltaWizardPage" >
-      <description>Select pending changes to process. Changes can be accepted (configured) or removed. Only changes that are not in error can be accepted.</description>
-   </context>
-   
-   <context  id="LicensePage" >
-      <description>You must view the presented license agreement(s) and either accept or reject.</description>
-   </context>
-   
-   <context  id="NewFolderWizardPage" >
-      <description>Enter information to create a new folder. If you are creating a nested folder, specify which folder will be the parent.</description>
-   </context>
-   
-   <context  id="NewSearchWizardPage" >
-      <description>Enter information to create a search query. <b>Available Updates</b> query searches for updates based on current configuration. <b>Regular Expressions</b> query searches for features matching specific criteria. <b>Plug-Ins in Features</b> query searches for features containing specified plug-ins.</description>
-      <topic label="Searching for features" href="tasks/tasks-36a.htm"/>       
-   </context>
-   
-   <context  id="NewSiteBookmarkWizardPage" >
-      <description>Enter information to create a new site bookmark.</description>
-   </context>
-   
-   <context  id="NewUpdatesWizardPage" >
-      <description>Select one or more of the available updates to install.</description>
-   </context>
-   
-   <context  id="TargetPage" >
-      <description>Select an installation location for the feature from the presented choices, or add a new one.</description>
-   </context>
-   
-   <context  id="MultiTargetPage" >
-      <description>Select an installation location for the selected feature from the presented choices, or add a new one.</description>
-   </context>
-   
-   <context id="OptionalFeaturesPage">
-   	  <description>Choose which optional features that are included in the main feature will be installed.</description>
-   </context>
-   
-   <context id="MultiOptionalFeaturesPage">
-   	  <description>Choose which optional features that are included in the main features will be installed.</description>
-   </context>
-   
-   <context  id="JarVerificationPage" >
-      <description>JarVerificationPage</description>
-   </context>
-   
-   <context  id="UserValidationDialog" >
-      <description>Enter user information.</description>
-   </context>
-   
-   <context id="MultiReviewPage">
-      <description>Shows features selected for joint processing (installation, update, enabling or disabling).</description>
-   </context>
-   
-   <context  id="CategoryForm" >
-      <description>Displays details about the selected update site category.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="DetailsForm" >
-      <description>Displays details about features.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="DiscoveryFolderForm" >
-      <description>Displays details about the &quot;Sites to Visit&quot; folder.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="ExtensionRootForm" >
-      <description>Displays details about a local site that can be linked into the configuration.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="InstallableSiteForm" >
-      <description>Displays details about local site that is part of the configuration.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="InstallConfigurationForm" >
-      <description>Displays details about a specific configuration. The most recent configuration (show at the top) is the current configuration. Other configurations represent change history.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="LocalSiteForm" >
-      <description>Displays details about the currently configured primary feature.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="MainForm" >
-      <description>Displays overview about the Update Manager.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="MyComputerForm" >
-      <description>Displays details about the local file system.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="SearchForm" >
-      <description>Displays search details. You can modify query settings and search scope. The &quot;Search Now&quot; button triggers the search. Searches run asynchronously.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>   
-      <topic label="Searching for features" href="tasks/tasks-36a.htm"/> 
-   </context>
-   
-   <context  id="SiteForm" >
-      <description>Displays details about an update site. Update sites can optionally provide a link to their home page.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="Preview view" href="reference/ref-35umd.htm"/>            
-   </context>
-   
-   <context  id="UnknownObjectForm" >
-      <description>Displays when an unknown object or no object has been selected in the active part.</description>
-   </context>
-   
-   <context  id="WebBrowserView" >
-      <description>Allows browsing of update site information.</description>
-      <topic label="Update Manager views" href="reference/ref-35uma.htm"/>
-      <topic label="External Preview view" href="reference/ref-35ume.htm"/>      
-   </context>
-   
-   <context  id="MyComputerSearchDialog" >
-      <description>Select root paths to include in the search.</description>
-   </context>
-   
-   <context  id="NewPluginEntryDialog" >
-      <description>Enter the identifier and version of a plugin to search for.</description>
-   </context>
-   
-   <context id ="SiteBookmarkPropertyPage">
-      <description>Change properties of the bookmark object.</description>
-   </context>
-   
-   <context id ="NamedObjectPropertyPage">
-      <description>Change the name of the selected object.</description>
-   </context>
-   
-   <context id ="ConfigurationPropertyPage">
-      <description>Change the name of the selected configuration.</description>
-   </context>
-   
-</contexts>
diff --git a/bundles/org.eclipse.platform.doc.user/contexts_Workbench.xml b/bundles/org.eclipse.platform.doc.user/contexts_Workbench.xml
deleted file mode 100644
index 7be9260..0000000
--- a/bundles/org.eclipse.platform.doc.user/contexts_Workbench.xml
+++ /dev/null
@@ -1,1122 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-    <!-- Actions -->
-    <context id="add_bookmark_action_context">
-        <description><b>Bookmarks</b> place an &quot;anchor&quot; at a specific line in a workbench resource.</description>
-        <topic label="Adding a Bookmark" href="tasks/tasks-81.htm"/>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="add_task_action_context">
-        <description><b>Tasks</b> place an &quot;anchor&quot; at a specific line in a workbench resource.</description>
-        <topic label="Adding a Task" href="tasks/tasks-77b.htm"/>
-        <topic label="Tasks View" href="concepts/ctskview.htm"/>
-    </context>
-    <context id="incremental_build_action_context">
-        <description>An <b>incremental build</b> compiles only the resources in the selected project that have been modified since the last build.</description>
-        <topic label="Navigator View - Rebuild All" href="reference/ref-27.htm"/>
-        <topic label="Builds" href="concepts/concepts-22.htm"/>
-        <topic label="Building Resources" href="tasks/tasks-73.htm"/>
-    </context>
-    <context id="full_build_action_context">
-        <description>A <b>full build</b> compiles the resources in the selected project from scratch. This kind of build is only performed when a manual build is done.</description>
-        <topic label="Navigator View - Rebuild All" href="reference/ref-27.htm"/>
-        <topic label="Builds" href="concepts/concepts-22.htm"/>
-        <topic label="Building Resources" href="tasks/tasks-73.htm"/>
-    </context>
-    <context id="global_incremental_build_action_context">
-        <description>An incremental build compiles only the resources that have been modified since the last build.</description>
-        <topic label="Builds" href="concepts/concepts-22.htm"/>
-        <topic label="Building Resources" href="tasks/tasks-73.htm"/>
-    </context>
-    <context id="global_full_build_action_context">
-        <description>A <b>full build</b> compiles the entire workbench from scratch. This kind of build is only performed when a manual build is done.</description>
-        <topic label="Builds" href="concepts/concepts-22.htm"/>
-        <topic label="Building Resources" href="tasks/tasks-73.htm"/>
-    </context>
-    <context id="close_resource_action_context">
-        <description>This closes the selected resource.</description>
-        <topic label="Closing Resources" href="tasks/tasks-47.htm"/>
-        <topic label="Navigator View - Close" href="reference/ref-27.htm"/>
-    </context>
-    <context id="open_resource_action_context">
-        <description>This opens the selected resource.</description>
-        <topic label="Opening Resources" href="tasks/tasks-46.htm"/>
-        <topic label="Navigator View - Open" href="reference/ref-27.htm"/>
-    </context>
-    <context id="open_file_action_context">
-        <description>This causes the selected resource to open in the editor area or in the specified external editor.</description>
-        <topic label="Navigator View - Open With..." href="reference/ref-27.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="open_system_editor_action_context">
-        <description>This causes the selected resource to open in the default system editor for this file type.</description>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-        <topic label="Editing a File Externally" href="tasks/tasks-52.htm"/>
-    </context>
-    <context id="refresh_action_context">
-        <description>This refreshes the contents and display of the view.</description>
-        <topic label="Navigator View - Refresh" href="reference/ref-27.htm"/>
-    </context>
-    <context id="move_resource_action_context">
-        <description>This command allows you to move a resource from one location to another.</description>
-        <topic label="Moving Resources" href="tasks/tasks-63.htm"/>
-        <topic label="Navigator View - Move" href="reference/ref-27.htm"/>
-    </context>
-    <context id="copy_resource_action_context">
-        <description>This command allows you to copy a resource from one location to another.</description>
-        <topic label="Navigator View - Copy" href="reference/ref-27.htm"/>
-    </context>
-    <context id="move_project_action_context">
-        <description>This command allows you to move a project from one location to another.</description>
-        <topic label="Moving Resources" href="tasks/tasks-63.htm"/>
-        <topic label="Navigator View - Move" href="reference/ref-27.htm"/>
-    </context>
-    <context id="copy_project_action_context">
-        <description>This command allows you to copy a project from one location to another.</description>
-        <topic label="Navigator View - Copy" href="reference/ref-27.htm"/>
-    </context>
-    <context id="rename_resource_action_context">
-        <description>This command allows you to supply a new name for the selected resource.</description>
-        <topic label="Renaming Resources" href="tasks/tasks-66.htm"/>
-        <topic label="Navigator View - Rename" href="reference/ref-27.htm"/>
-    </context>
-    <context id="delete_resource_action_context">
-        <description>This command allows you to delete the selected resource.</description>
-        <topic label="Deleting Resources" href="tasks/tasks-67.htm"/>
-        <topic label="Navigator View - Delete" href="reference/ref-27.htm"/>
-    </context>
-    <context id="delete_retarget_action_context">
-        <description>This command deletes the selected resource or element.</description>
-        <topic label="Deleting Resources" href="tasks/tasks-67.htm"/>
-        <topic label="Navigator View - Delete" href="reference/ref-27.htm"/>
-    </context>
-    <context id="property_dialog_action_context">
-        <description>This command displays the various properties of the selected resource.</description>
-        <topic label="Viewing Resource Properties" href="tasks/tasks-49.htm"/>
-        <topic label="Navigator View - Properties" href="reference/ref-27.htm"/>
-    </context>
-    <context id="project_property_dialog_action_context">
-        <description>This command displays the various properties of the project for the selected resource.</description>
-        <topic label="Project Menu - Properties" href="reference/ref-59.htm"/>
-        <topic label="Viewing Resource Properties" href="tasks/tasks-49.htm"/>
-    </context>
-    <context id="create_folder_action_context">
-        <description>This command allows you to create a new folder container.</description>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Folders" href="tasks/tasks-43.htm"/>
-        <topic label="New Folder Wizard" href="reference/ref-38.htm"/>
-    </context>
-    <context id="create_file_action_context">
-        <description>This command allows you to create a new file.</description>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Files" href="tasks/tasks-44.htm"/>
-        <topic label="New File Wizard" href="reference/ref-39.htm"/>
-    </context>
-    <context id="new_action_context">
-        <description>This command allows you to create a new item such as a resource.</description>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Workbench New Wizards" href="reference/ref-37.htm"/>
-    </context>
-    <context id="import_action_context">
-        <description>This command allows you to import resources.</description>
-        <topic label="Importing" href="tasks/tasks-53.htm"/>
-        <topic label="Importing from a Directory" href="tasks/tasks-55.htm"/>
-        <topic label="Importing from a Zip File" href="tasks/tasks-55bg.htm"/>
-        <topic label="File Menu - Import" href="reference/ref-56.htm"/>
-    </context>
-    <context id="export_action_context">
-        <description>This command allows you to export resources.</description>
-        <topic label="Exporting" href="tasks/tasks-57.htm"/>
-        <topic label="Exporting to the File System" href="tasks/tasks-59.htm"/>
-        <topic label="Exporting to a Zip File" href="tasks/tasks-59ag.htm"/>
-        <topic label="File Menu - Export" href="reference/ref-56.htm"/>
-    </context>
-    <context id="scrub_local_action_context">
-        <description>The workbench is preparing for a build.</description>
-        <topic label="Builds" href="concepts/concepts-22.htm"/>
-    </context>
-    <context id="set_page_action_context">
-        <description>This command refreshes the workbench display.</description>
-        <topic label="Navigator View - Refresh" href="reference/ref-27.htm"/>
-    </context>
-    <context id="save_perspective_action_context">
-        <description>This menu option allows you to save the current perspective as a defined perspective.</description>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-        <topic label="Saving Perspectives" href="tasks/tasks-9i.htm"/>
-        <topic label="Window Menu - Save Perspective As" href="reference/ref-60.htm"/>
-    </context>
-    <context id="save_as_action_context">
-        <description>This command allows you to save the resource being edited to another workbench location.</description>
-        <topic label="File Menu - Save As" href="reference/ref-56.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="save_all_action_context">
-        <description>This command allows you to save all open resources in the editor area at once.</description>
-        <topic label="File Menu - Save All" href="reference/ref-56.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="save_action_context">
-        <description>This command saves the resource that is currently active in the editor area.</description>
-        <topic label="File Menu - Save" href="reference/ref-56.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="about_action_context">
-        <description>This command displays product information.</description>
-        <topic label="Help Menu - About" href="reference/ref-61.htm"/>
-    </context>
-    <context id="close_all_action_context">
-        <description>This command closes all editors that are currently open in the editor area.</description>
-        <topic label="File Menu - Close All" href="reference/ref-56.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="close_page_action_context">
-        <description>This command closes the active perspective.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="Window Menu - Close Perspective" href="reference/ref-60.htm"/>
-        <topic label="Perspectives - Reference" href="reference/ref-6.htm"/>
-    </context>
-    <context id="close_part_action_context">
-        <description>This command closes the currently-active editor.</description>
-        <topic label="File Menu - Close" href="reference/ref-56.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="edit_action_sets_action_context">
-        <description>This command allows you to customize the action sets available in the workbench menu bar and toolbar.</description>
-        <topic label="Configuring Perspectives" href="tasks/tasks-9k.htm"/>
-        <topic label="Window Menu - Customize Perspective" href="reference/ref-60.htm"/>
-    </context>
-    <context id="edit_perspectives_action_context">
-        <description>This command allows you to delete or reset defined perspectives or to define the default perspective.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="Changing Where Perspectives Open" href="tasks/tasks-24.htm"/>
-        <topic label="Perspectives - Reference" href="reference/ref-6.htm"/>
-    </context>
-    <context id="close_all_pages_action_context">
-        <description>This closes all the perspectives that are currently open.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="Window Menu - Close All Perspectives" href="reference/ref-60.htm"/>
-    </context>
-    <context id="open_new_page_action_context">
-        <description>This opens a new page.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="New Perspectives" href="tasks/tasks-9f.htm"/>
-        <topic label="Window Menu - Open Perspective" href="reference/ref-60.htm"/>
-    </context>
-    <context id="open_preferences_action_context">
-        <description>This opens the preferences dialog.</description>
-        <topic label="Workbench - Preferences" href="reference/ref-10.htm"/>
-    </context>
-    <context id="open_new_window_action_context">
-        <description>This opens a new window.</description>
-        <topic label="Opening perspectives" href="tasks/tasks-9f.htm"/>
-        <topic label="Changing Where Perspectives Open" href="tasks/tasks-24.htm"/>
-        <topic label="Workbench" href="concepts/concepts-2.htm"/>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-    </context>
-    <context id="open_new_action_context">
-        <description>This opens a new perspective.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="Opening New Perspectives" href="tasks/tasks-24.htm"/>
-        <topic label="Window Menu - Open Perspective" href="reference/ref-60.htm"/>
-    </context>
-    <context id="next_page_action_context">
-        <description>This will show the next open perspective.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="Changing Where Perspectives Open" href="tasks/tasks-24.htm"/>
-    </context>
-    <context id="quick_start_action_context">
-        <description>This will open the welcome editor.</description>
-        <topic label="Help Menu - Welcome" href="reference/ref-61.htm"/>
-    </context>
-    <context id="tips_and_tricks_action_context">
-        <description>This will open the tips and tricks help page.</description>
-        <topic label="Help Menu - Tips and Tricks" href="reference/ref-61.htm"/>
-    </context>
-    <context id="quit_action_context">
-        <description>This will save the workspace and exit.</description>
-        <topic label="File Menu - Exit" href="reference/ref-56.htm"/>
-    </context>
-    <context id="reset_perspective_action_context">
-        <description>This will reset the perspective to its original (default) layout.</description>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-        <topic label="Reset Perspectives" href="tasks/tasks-9j.htm"/>
-        <topic label="Window Menu - Reset Perspective" href="reference/ref-60.htm"/>
-    </context>
-    <context id="target_editors_visibility_action_context">
-        <description>This allows you to hide or show the editor area.  You can increase the area other views have to display themselves when you hide the editor area.</description>
-        <topic label="Window Menu - Show/Hide Editors" href="reference/ref-60.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="switch_to_perspective_action_context">
-        <description>This opens a new perspective, to be selected by the user.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="Switching Between Perspectives" href="tasks/tasks-28.htm"/>
-        <topic label="Window Menu - Open Perspective" href="reference/ref-60.htm"/>
-        <topic label="Perspectives - Reference" href="reference/ref-6.htm"/>
-    </context>
-    <context id="show_view_action_context">
-        <description>This will show a view, to be selected by the user.</description>
-        <topic label="Displaying Views" href="tasks/tasks-3.htm"/>
-        <topic label="Window Menu - Show View" href="reference/ref-60.htm"/>
-    </context>
-    <context id="show_view_other_action_context">
-        <description>Opens a dialog to select a view to show.</description>
-        <topic label="Displaying Views" href="tasks/tasks-3.htm"/>
-        <topic label="Window Menu - Show View" href="reference/ref-60.htm"/>
-    </context>
-    <context id="open_perspective_action_context">
-        <description>Opens the selected perspective.</description>
-        <topic label="Opening Perspectives" href="tasks/tasks-9f.htm"/>
-        <topic label="Window Menu - Open Perspective" href="reference/ref-60.htm"/>
-    </context>
-    <context id="open_perspective_other_action_context">
-        <description>Opens a dialog to select a perspective to open.</description>
-        <topic label="Opening Perspectives" href="tasks/tasks-9f.htm"/>
-        <topic label="Window Menu - Open Perspective" href="reference/ref-60.htm"/>
-    </context>
-    <context id="remove_bookmark_action_context">
-        <description>Remove a bookmark.</description>
-        <topic label="Deleting a Bookmark" href="tasks/tasks-82.htm"/>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="open_bookmark_action_context">
-        <description>Open resource in which a bookmark resides.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="select_all_bookmark_action_context">
-        <description>Select all bookmarks.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="filter_selection_action_context">
-        <description>This command allows filtering of the types shown in the resource navigator.</description>
-        <topic label="Navigator View - Filters" href="reference/ref-27.htm"/>
-    </context>
-    <context id="goto_resource_action_context">
-        <description>Go to the selected resource.</description>
-        <topic label="Navigator View - Go To" href="reference/ref-27.htm"/>
-    </context>
-    <context id="resource_navigator_move_action_context">
-        <description>Move the selected resource to another location.</description>
-        <topic label="Moving Resources" href="tasks/tasks-63.htm"/>
-        <topic label="Navigator View - Move" href="reference/ref-27.htm"/>
-    </context>
-    <context id="resource_navigator_rename_action_context">
-        <description>Rename the selected resource.</description>
-        <topic label="Renaming Resources" href="tasks/tasks-66.htm"/>
-        <topic label="Navigator View - Rename" href="reference/ref-27.htm"/>
-    </context>
-    <context id="show_in_navigator_action_context">
-        <description>Show the selected resource in the Navigator view.</description>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Navigator View" href="reference/ref-27.htm"/>
-    </context>
-    <context id="sort_view_action_context">
-        <description>This command changes the sort order of the types shown in the resource navigator.</description>
-        <topic label="Sorting Resources" href="tasks/tasks-48.htm"/>
-        <topic label="Navigator View - Sort" href="reference/ref-27.htm"/>
-    </context>
-    <context id="properties_categories_action_context">
-        <description>Show property values grouped according to category.</description>
-        <topic label="Properties View" href="concepts/cpropview.htm"/>
-    </context>
-    <context id="properties_defaults_action_context">
-        <description>Sets the value of the selected property to its default value.</description>
-        <topic label="Properties View" href="concepts/cpropview.htm"/>
-    </context>
-    <context id="properties_filter_action_context">
-        <description>Filter properties.</description>
-        <topic label="Properties View" href="concepts/cpropview.htm"/>
-    </context>
-    <context id="purge_completed_task_action_context">
-        <description>Remove all completed tasks from the list.</description>
-        <topic label="Deleting Tasks" href="tasks/tasks-78.htm"/>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="new_task_action_context">
-        <description>Create a new task.</description>
-        <topic label="Adding an Unassociated Task" href="tasks/tasks-77.htm"/>
-        <topic label="Adding an Associated Task" href="tasks/tasks-77b.htm"/>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="remove_task_action_context">
-        <description>Remove a task from this list.</description>
-        <topic label="Deleting Tasks" href="tasks/tasks-78.htm"/>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="goto_task_action_context">
-        <description>Opens the resource associated with a task.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="undo_action_context">
-        <description>Undo the previous edit.</description>
-        <topic label="Edit Menu - Undo" href="reference/ref-57.htm"/>
-    </context>
-    <context id="redo_action_context">
-        <description>Redo the previous edit.</description>
-        <topic label="Edit Menu - Redo" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cut_action_context">
-        <description>Cut the selected text to the clipboard.</description>
-        <topic label="Edit Menu - Cut" href="reference/ref-57.htm"/>
-    </context>
-    <context id="copy_action_context">
-        <description>Copy the selection to the clipboard.</description>
-        <topic label="Edit Menu - Copy" href="reference/ref-57.htm"/>
-    </context>
-    <context id="paste_action_context">
-        <description>Paste the contents of the clipboard at the current cursor position.</description>
-        <topic label="Edit Menu - Paste" href="reference/ref-57.htm"/>
-    </context>
-    <context id="delete_action_context">
-        <description>Delete the selection.</description>
-        <topic label="Edit Menu - Delete" href="reference/ref-57.htm"/>
-    </context>
-    <context id="selectAll_action_context">
-        <description>Select all contents of the file.</description>
-        <topic label="Edit Menu - Select All" href="reference/ref-57.htm"/>
-    </context>
-    <context id="ShiftLeft_action_context">
-        <description>Shift selected text to the left, reducing the indentation.</description>
-    </context>
-    <context id="ShiftRight_action_context">
-        <description>Shift selected text to the right, increasing the indentation.</description>
-    </context>
-    <context id="find_action_context">
-        <description>This will bring up a dialog to specify text to search for in the editor.</description>
-        <topic label="Edit Menu - Find/Replace" href="reference/ref-57.htm"/>
-    </context>
-    <context id="bookmark_action_context">
-        <description>Add a bookmark on this resource.</description>
-        <topic label="Edit Menu - Add Bookmark" href="reference/ref-57.htm"/>
-    </context>
-    <context id="addTask_action_context">
-        <description>Add a task associated with this resource.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="revert_action_context">
-        <description>Revert to saved contents.</description>
-    </context>
-    <context id="GotoLine_action_context">
-        <description>Place cursor position at beginning of a specified line.</description>
-    </context>
-    <context id="open_workspace_file_action_context">
-        <description>Opens an editor on a specified resource.</description>
-        <topic label="Navigate Menu - Open Resource" href="reference/ref-58.htm"/>
-    </context>
-    <context id="print_action_context">
-        <description>This command prints the resource that is currently active in the editor area.</description>
-    </context>
-    <context id="select_working_set_action_context">
-        <description>Selects a working set from the list to be the active one.</description>
-    </context>
-    <context id="clear_working_set_action_context">
-        <description>Deselects the active working set.</description>
-    </context>
-    <context id="edit_working_set_action_context">
-        <description>Edits the contents of the active working set.</description>
-    </context>
-    <context id="show_in_action_context">
-        <description>Shows the current selection in the specified view.</description>
-    </context>
-    <context id="navigation_history_forward">
-        <description>Moves forward in the navigation history.</description>
-        <topic label="Navigate Menu - Forward" href="reference/ref-58.htm"/>
-    </context>
-    <context id="navigation_history_backward">
-        <description>Moves backward in the navigation history.</description>
-        <topic label="Navigate Menu - Back" href="reference/ref-58.htm"/>
-    </context>
-    <!-- Dialogs -->
-    <context id="about_dialog_context">
-        <description>This dialog displays product information.</description>
-        <topic label="Help Menu - About" href="reference/ref-61.htm"/>
-    </context>
-    <context id="action_set_selection_dialog_context">
-        <description>Each perspective includes a predefined set of actions that are accessible from the menu bar and workbench toolbar. Related actions are grouped into action sets.</description>
-        <topic label="Configuring Perspectives" href="tasks/tasks-9k.htm"/>
-        <topic label="Window Menu - Customize Perspective" href="reference/ref-60.htm"/>
-    </context>
-    <context id="editor_selection_dialog_context">
-        <description>In this dialog, you can associate various embedded and external editors with the various types of workbench resources.</description>
-        <topic label="Preferences - File Associations" href="reference/ref-13.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="file_extension_dialog_context">
-        <description>In this dialog, indicate the extension for the file type you wish to identify.</description>
-        <topic label="Preferences - File Associations" href="reference/ref-13.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="preference_dialog_context">
-        <description>This dialog allows you to set your workbench preferences.</description>
-        <topic label="Preferences Dialog" href="reference/ref-72.htm"/>
-    </context>
-    <context id="property_dialog_context">
-        <description>This dialog allows you to view or change the properties of the selected resource.</description>
-        <topic label="Navigator View - Properties Page" href="reference/ref-27.htm"/>
-        <topic label="Resource Properties" href="tasks/tasks-49.htm"/>
-    </context>
-    <context id="save_perspective_dialog_context">
-        <description>Dialog to save a perspective specified by the user.</description>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-        <topic label="Saving Perspectives" href="tasks/tasks-9i.htm"/>
-    </context>
-    <context id="select_perspective_dialog_context">
-        <description>Dialog to select a perspective.</description>
-        <topic label="Perspectives - Concept" href="concepts/concepts-4.htm"/>
-        <topic label="Saving Perspectives" href="tasks/tasks-9i.htm"/>
-        <topic label="Window Menu" href="reference/ref-60.htm"/>
-    </context>
-    <context id="project_location_selection_dialog_context">
-        <description>Dialog to select the location of a project.</description>
-    </context>
-    <context id="show_view_dialog_context">
-        <description>Dialog to select a view to show.</description>
-        <topic label="Displaying Views" href="tasks/tasks-3.htm"/>
-    </context>
-    <context id="save_as_dialog_context">
-        <description>Dialog to specify the name and location of the a resource to save.</description>
-    </context>
-    <context id="type_filtering_dialog_context">
-        <description>Use this dialog to filter file types.</description>
-        <topic label="Export Wizard" href="reference/ref-71.htm"/>
-        <topic label="Import Wizard" href="reference/ref-70.htm"/>
-    </context>
-    <context id="container_selection_dialog_context">
-        <description>Dialog to select a folder.</description>
-    </context>
-    <context id="file_selection_dialog_context">
-        <description>Dialog to select a file.</description>
-    </context>
-    <context id="list_selection_dialog_context">
-        <description>Dialog to select an item from a list.</description>
-    </context>
-    <context id="yes_no_cancel_list_selection_dialog_context">
-        <description>Dialog to accept, reject, or cancel a selection from a list.</description>
-    </context>
-    <context id="resource_selection_dialog_context">
-        <description>Dialog to select a resource.</description>
-    </context>
-    <context id="goto_resource_dialog_context">
-        <description>Dialog to select a resource to find in the workspace.</description>
-    </context>
-    <context id="task_filters_dialog_context">
-        <description>Dialog that allows you to show or hide tasks based on certain criteria.</description>
-        <topic label="Filtering Your Task List" href="tasks/tasks-79.htm"/>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="find_replace_dialog_context">
-        <description>Dialog to find and replace specified text.</description>
-		<topic label="Available Regular Expressions" href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html" />
-    </context>
-    <context id="goto_line_dialog_context">
-        <description>Dialog to specify a line at which to place the cursor.</description>
-    </context>
-    <!-- Editors -->
-    <context id="welcome_editor_context">
-        <description>A quick, simple guide to introduce new users to some basic tasks.</description>
-        <topic label="Help Menu" href="reference/ref-61.htm"/>
-    </context>
-    <context id="text_editor_context">
-        <description>A text editor is used to edit files.</description>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="system_summary_editor_context">
-        <description>Shows the product configuration details.</description>
-    </context>
-    <!-- Preference pages -->
-    <context id="file_editors_preference_page_context">
-        <description>On this preferences page, you can associate various embedded and external editors with the various types of workbench resources.</description>
-        <topic label="Preferences - File Associations" href="reference/ref-13.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="build_order_preference_page_context">
-        <description>Allows you to change the order that projects in the workspace are built.</description>
-        <topic label="Changing the Build Order" href="tasks/tasks-14.htm"/>
-    </context>
-    <context id="file_states_preference_page_context">
-        <description>This preference page is used to configure the local file history for the workbench.</description>
-        <topic label="Local History" href="concepts/concepts-17a.htm"/>
-        <topic label="Preferences - Local History" href="reference/ref-14.htm"/>
-        <topic label="Navigator - Local History" href="reference/ref-27.htm"/>
-    </context>
-    <context id="perspectives_preference_page_context">
-        <description>Allows you to set the state of existing perspectives.</description>
-        <topic label="Preferences - Perspectives" href="reference/ref-15.htm"/>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-    </context>
-    <context id="views_preference_page_context">
-        <description>This preference page is used to set preferences for the look and layout of views in the workbench.</description>
-        <topic label="Preferences - Appearance" href="reference/ref-16.htm"/>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-    </context>
-    <context id="workbench_preference_page_context">
-        <description>Allows you to set general workbench preferences.</description>
-        <topic label="Preferences - Workbench" href="reference/ref-10.htm"/>
-    </context>
-    <context id="font_preference_page_context">
-        <description>This preference page is used to set the fonts used within the workbench.</description>
-        <topic label="Preferences - Fonts" href="reference/ref-fonts.htm"/>
-    </context>
-    <context id="workbench_editor_preference_page_context">
-        <description>This preference page is used to set preferences for the editor area in the workbench.</description>
-        <topic label="Preferences - Editors" href="reference/ref-texteditorprefs.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="compare_viewers_preference_page_context">
-        <description>This preference page is used to set preferences for compare viewers in the workbench.</description>
-        <topic label="Preferences - Compare" href="reference/ref-11.htm"/>
-        <topic label="Comparing Resources" href="reference/ref-25.htm"/>
-    </context>
-    <!-- Property pages -->
-    <context id="project_reference_property_page_context">
-        <description>Allows you to set referenced projects.</description>
-        <topic label="Navigator View - Properties Page" href="reference/ref-27.htm"/>
-        <topic label="Viewing Resource Properties" href="tasks/tasks-49.htm"/>
-    </context>
-    <context id="resource_info_property_page_context">
-        <description>Allows you to view information about the selected resource.</description>
-        <topic label="Navigator View - Properties Page" href="reference/ref-27.htm"/>
-        <topic label="Viewing Resource Properties" href="tasks/tasks-49.htm"/>
-    </context>
-    <!-- Views -->
-    <context id="bookmark_view_context">
-        <description>View to show all bookmarks.</description>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-        <topic label="Bookmarks View" href="reference/ref-28.htm"/>
-    </context>
-    <context id="content_outline_context">
-        <description>View to show the outline (if applicable) of a resource being edited.</description>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-        <topic label="Outline View" href="concepts/coutline.htm"/>
-    </context>
-    <context id="resource_view_context">
-        <description>This view shows all resources in the workspace.</description>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-        <topic label="Navigator View" href="reference/ref-27.htm"/>
-    </context>
-    <context id="property_sheet_view_context">
-        <description>This view shows the properties of a selected resource.</description>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-        <topic label="Properties View" href="concepts/cpropview.htm"/>
-    </context>
-    <context id="task_list_view_context">
-        <description>This view shows build problems and tasks (reminders) that are either user-created or are automatically generated during building.</description>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <!-- Property sheet -->
-    <context id="property_sheet_page_help_context">
-        <description>The Properties view displays the properties of the selected resource.</description>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-        <topic label="Properties View" href="concepts/cpropview.htm"/>
-    </context>
-    <!-- Windows -->
-    <context id="detached_window_context">
-        <description>Views can be undocked from a workbench window and can exist in floating windows on the desktop.</description>
-        <topic label="Docking Views" href="tasks/tasks-3e.htm"/>
-        <topic label="Workbench Window Layout" href="reference/ref-23.htm"/>
-        <topic label="Views" href="concepts/concepts-5.htm"/>
-    </context>
-    <context id="workbench_window_context">
-        <description>Each workbench window contains one or more perspectives, which are made up of various views and editors.</description>
-        <topic label="Workbench" href="concepts/concepts-2.htm"/>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-        <topic label="Workbench Management" href="tasks/tasks-1.htm"/>
-    </context>
-    <!-- Wizard pages -->
-    <context id="new_project_wizard_page_context">
-        <description>This wizard helps you create a new project in the workbench.</description>
-        <topic label="New Project Wizard" href="reference/ref-37.htm"/>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Projects" href="tasks/tasks-42.htm"/>
-    </context>
-    <context id="new_project_reference_wizard_page_context">
-        <description>This wizard page allows you to select other projects which this project will reference.</description>
-        <topic label="Select Referenced Projects Page" href="reference/ref-37.htm"/>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-    </context>
-    <context id="new_folder_wizard_page_context">
-        <description>Wizard to guide you through creation of a new folder resource.</description>
-        <topic label="New Folder Wizard" href="reference/ref-38.htm"/>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Folders" href="tasks/tasks-43.htm"/>
-    </context>
-    <context id="new_file_wizard_page_context">
-        <description>Wizard to guide you through creation of a new file resource.</description>
-        <topic label="New File Wizard" href="reference/ref-39.htm"/>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Files" href="tasks/tasks-44.htm"/>
-    </context>
-    <context id="new_wizard_selection_wizard_page_context">
-        <description>Choose the type of resource you would like to create.</description>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-    </context>
-    <context id="export_wizard_selection_wizard_page_context">
-        <description>Choose the type of export you would like to do.</description>
-        <topic label="Exporting files" href="tasks/tasks-57.htm"/>
-        <topic label="Exporting to the File System" href="tasks/tasks-59.htm"/>
-        <topic label="Exporting to a Zip File" href="tasks/tasks-59ag.htm"/>
-    </context>
-    <context id="import_wizard_selection_wizard_page_context">
-        <description>Choose the type of import you would like to do.</description>
-        <topic label="Using the Import Wizard" href="tasks/tasks-55.htm"/>
-    </context>
-    <context id="file_system_export_wizard_page">
-        <description>This page helps you provide all the information required to export resources to the file system.</description>
-        <topic label="Using the Export Wizard" href="tasks/tasks-59.htm"/>
-        <topic label="Export Wizard" href="reference/ref-71.htm"/>
-    </context>
-    <context id="file_system_import_wizard_page">
-        <description>This page helps you provide all the information required to import files from the file system.</description>
-        <topic label="Importing from File System" href="tasks/tasks-55.htm"/>
-        <topic label="Import Wizard" href="reference/ref-70.htm"/>
-    </context>
-    <context id="zip_file_export_wizard_page">
-        <description>This page helps you provide all the information required to export resources from the workspace to an archive file.</description>
-        <topic label="Exporting to a Zip File" href="tasks/tasks-59ag.htm"/>
-        <topic label="Export Wizard" href="reference/ref-71.htm"/>
-    </context>
-    <context id="zip_file_import_wizard_page">
-        <description>This page helps you provide all the information required to import files from an archive file into the workspace.</description>
-        <topic label="Importing from a Zip File" href="tasks/tasks-55bg.htm"/>
-        <topic label="Import Wizard" href="reference/ref-70.htm"/>
-    </context>
-    <!-- Wizards -->
-    <context id="new_wizard_context">
-        <description>These wizards allow you to create new resources and/or elements</description>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-    </context>
-    <context id="new_wizard_shortcut_context">
-        <description>Opens a creation wizard.</description>
-    </context>
-    <context id="new_file_wizard_context">
-        <description>Wizard to assist in creating a new file resource.</description>
-        <topic label="New File Wizard" href="reference/ref-39.htm"/>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Files" href="tasks/tasks-44.htm"/>
-    </context>
-    <context id="new_folder_wizard_context">
-        <description>Wizard to assist in creating a new folder resource.</description>
-        <topic label="New Folder Wizard" href="reference/ref-38.htm"/>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Folders" href="tasks/tasks-43.htm"/>
-    </context>
-    <context id="new_project_wizard_context">
-        <description>Wizard to assist in creating a new project.</description>
-        <topic label="New Project Wizard" href="reference/ref-37.htm"/>
-        <topic label="Resources" href="concepts/concepts-12.htm"/>
-        <topic label="Creating Resources - Projects" href="tasks/tasks-42.htm"/>
-    </context>
-    <context id="import_wizard_context">
-        <description>Wizard to assist in importing resources.</description>
-        <topic label="Using the Import Wizard" href="tasks/tasks-55.htm"/>
-    </context>
-    <context id="export_wizard_context">
-        <description>Wizard to assist in exporting resources.</description>
-        <topic label="Exporting files" href="tasks/tasks-57.htm"/>
-        <topic label="Exporting to the File System" href="tasks/tasks-59.htm"/>
-        <topic label="Exporting to a Zip File" href="tasks/tasks-59ag.htm"/>
-        <topic label="Export Wizard" href="reference/ref-71.htm"/>
-    </context>
-    <!-- terminal reference commented out in org.eclipse.ui.internal.WorkbenchActionBuilder, line 301 
-  <context id="close_all_saved_action_context">
-    <description></description>
-  </context>
-  -->
-    <context id="show_view_menu_action_context">
-        <description>Displays the menu for the active view.</description>
-    </context>
-    <context id="workbench_editors_action_context">
-        <description>Displays the Switch to Editors dialog.</description>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <!-- terminal reference in org.eclipse.ui.internal.IHelpContextIds, line 77
-  <context id="new_wizard_shortcut_action_context">
-    <description></description>
-  </context>
-  -->
-    <context id="text_cut_action_context">
-        <description>Cut the selected text to the clipboard.</description>
-        <topic label="Edit Menu - Cut" href="reference/ref-57.htm"/>
-    </context>
-    <context id="text_copy_action_context">
-        <description>Copy the selection to the clipboard.</description>
-        <topic label="Edit Menu - Copy" href="reference/ref-57.htm"/>
-    </context>
-    <context id="text_paste_action_context">
-        <description>Paste the contents of the clipboard at the current cursor position.</description>
-        <topic label="Edit Menu - Paste" href="reference/ref-57.htm"/>
-    </context>
-    <context id="text_select_all_action_context">
-        <description>Select all contents.</description>
-        <topic label="Edit Menu - Select All" href="reference/ref-57.htm"/>
-    </context>
-    <context id="text_delete_action_context">
-        <description>Delete the selection.</description>
-        <topic label="Edit Menu - Delete" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_cut_action_context">
-        <description>Cut the selected text to the clipboard.</description>
-        <topic label="Edit Menu - Cut" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_copy_action_context">
-        <description>Copy the selection to the clipboard.</description>
-        <topic label="Edit Menu - Copy" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_paste_action_context">
-        <description>Paste the contents of the clipboard at the current cursor position.</description>
-        <topic label="Edit Menu - Paste" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_delete_action_context">
-        <description>Delete the selection.</description>
-        <topic label="Edit Menu - Delete" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_find_action_context">
-        <description>This will bring up a dialog to specify text to search for in the editor.</description>
-        <topic label="Edit Menu - Find/Replace" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_select_all_action_context">
-        <description>Select all contents.</description>
-        <topic label="Edit Menu - Select All" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_undo_action_context">
-        <description>Undo the previous edit.</description>
-        <topic label="Edit Menu - Undo" href="reference/ref-57.htm"/>
-    </context>
-    <context id="cell_redo_action_context">
-        <description>Redo the previous edit.</description>
-        <topic label="Edit Menu - Redo" href="reference/ref-57.htm"/>
-    </context>
-    <context id="working_set_selection_dialog_context">
-        <description>This dialog allows you to add, remove, or configure working sets for use within the workbench.  A working set is a subset of the workspace.</description>
-    </context>
-    <context id="delete_project_dialog_context">
-        <description>This dialog asks you to confirm whether or not you wish to delete the selected project, and if so, whether you wish to also delete the underlying project files on the local file system corresponding to your project.</description>
-    </context>
-    <context id="filter_dialog_context">
-        <description>This dialog allows you to select filters to isolate specific elements of the workspace only.</description>
-    </context>
-    <context id="marker_resolution_selection_dialog_context">
-        <description>This dialog allows you to select from a list of possible resolutions.</description>
-    </context>
-    <context id="workbench_editors_dialog">
-        <description>This dialog displays all open editors, allowing you to conveniently choose those you wish to close or save.</description>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="welcome_page_selection_dialog">
-        <description>This dialog allows you to one of the set of available welcome pages. Welcome pages can help you get started using particular parts of the workbench.</description>
-    </context>
-    <context id="decorators_preference_page_context">
-        <description>This page allows you to specify which decorators you would like to be displayed on items within the workbench. Decorators give you more information about an item, at the expense of visual clutter.</description>
-        <topic label="Preferences - Label decorations" href="reference/ref-decorations.htm"/>
-    </context>
-    <context id="startup_preference_page_context">
-        <description>This page shows you all of the plug-ins that are activated when the workbench starts.</description>
-        <topic label="Preferences - Startup" href="reference/ref-startup.htm"/>
-    </context>
-    <context id="working_set_new_wizard_context">
-        <description>This wizard will guide you through the process of creating a working set.</description>
-    </context>
-    <context id="working_set_edit_wizard_context">
-        <description>This wizard will guide you through the process of editing a working set.</description>
-    </context>
-    <context id="filters_action_context">
-        <description>Displays a dialog to allow you to select filters to isolate specific elements of the workspace only.</description>
-    </context>
-    <context id="mark_completed_action_context">
-        <description>Marks the currently selected task as &apos;complete&apos;.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="resolve_marker_action_context">
-        <description>Displays a dialog to allow you to select from a list of possible resolutions.</description>
-    </context>
-    <context id="select_all_tasks_action_context">
-        <description>Selects all tasks in the task view.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_properties_action_context">
-        <description>Displays a dialog to allow you to set properties for the selected task.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="back_action_context">
-        <description>Move back one frame.</description>
-        <topic label="Navigator View" href="concepts/cnav.htm"/>
-    </context>
-    <context id="forward_action_context">
-        <description>Move forward one frame.</description>
-        <topic label="Navigator View" href="concepts/cnav.htm"/>
-    </context>
-    <context id="go_into_action_context">
-        <description>Drill down into selected element</description>
-        <topic label="Navigator View" href="concepts/cnav.htm"/>
-    </context>
-    <context id="up_action_context">
-        <description>Move up one frame.</description>
-        <topic label="Navigator View" href="concepts/cnav.htm"/>
-    </context>
-    <context id="lock_toolbar_action_context">
-        <description>Locks the toolbars within the workbench.</description>
-    </context>
-    <context id="about_plugins_dialog_context">
-        <description>This dialog shows details about all installed plug-ins.</description>
-    </context>
-    <context id="about_features_plugins_dialog_context">
-        <description>This dialog shows details about all plug-ins within a particular feature.</description>
-    </context>
-    <context id="about_features_dialog_context">
-        <description>This dialog shows details about all installed features.</description>
-    </context>
-    <context id="working_set_resource_page">
-        <description>This page allows you to choose the resources that will be part of your working set.</description>
-    </context>
-    <context id="working_set_type_page">
-        <description>This page allows you to select the type of working set you want to create.</description>
-    </context>
-    <context id="copy_bookmark_action_context">
-        <description>Copies the selected bookmark to the clipboard.</description>
-        <topic label="Edit Menu - Copy" href="reference/ref-57.htm"/>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="paste_bookmark_action_context">
-        <description>Pastes the bookmark(s) on the clipboard.</description>
-        <topic label="Edit Menu - Paste" href="reference/ref-57.htm"/>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_properties_action_context">
-        <description>Displays a dialog to allow you to set properties for the selected bookmark.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_sort_ascending_action_context">
-        <description>Sorts bookmarks in ascending order.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_sort_descending_action_context">
-        <description>Sorts bookmarks in descending order.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_sort_description_action_context">
-        <description>Sorts bookmarks by description.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_sort_resource_action_context">
-        <description>Sorts bookmarks by resource.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_sort_folder_action_context">
-        <description>Sorts bookmarks by folder.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_sort_location_action_context">
-        <description>Sorts bookmarks by location.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="bookmark_sort_creation_time_action_context">
-        <description>Sorts bookmarks by creation time.</description>
-        <topic label="Bookmarks" href="concepts/cbookmrk.htm"/>
-    </context>
-    <context id="resource_navigator_copy_action_context">
-        <description>Copies the selected resource to the clipboard.</description>
-        <topic label="Edit Menu - Copy" href="reference/ref-57.htm"/>
-        <topic label="Navigator View" href="concepts/cnav.htm"/>
-    </context>
-    <context id="resource_navigator_paste_action_context">
-        <description>Pastes the resource on the clipboard to the location of the currently selected resource.</description>
-        <topic label="Edit Menu - Paste" href="reference/ref-57.htm"/>
-        <topic label="Navigator View" href="concepts/cnav.htm"/>
-    </context>
-    <context id="properties_copy_action_context">
-        <description>Copies the selected property to the clipboard.</description>
-        <topic label="Edit Menu - Copy" href="reference/ref-57.htm"/>
-    </context>
-    <context id="copy_task_action_context">
-        <description>Copies the selected task to the clipboard.</description>
-        <topic label="Edit Menu - Copy" href="reference/ref-57.htm"/>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="paste_task_action_context">
-        <description>Paste the contents of the clipboard at the current cursor position.</description>
-        <topic label="Edit Menu - Paste" href="reference/ref-57.htm"/>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_properties_dialog_context">
-        <description>This dialog allows you to set properties for the selected task.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_type_action_context">
-        <description>Sorts tasks by type.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_completed_action_context">
-        <description>Sorts tasks by completion.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_priority_action_context">
-        <description>Sorts tasks by priority.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_description_action_context">
-        <description>Sorts tasks by description.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_resource_action_context">
-        <description>Sorts tasks by resource.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_folder_action_context">
-        <description>Sorts tasks by folder.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_location_action_context">
-        <description>Sorts tasks by location.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_creation_time_action_context">
-        <description> Sorts tasks by creation time.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_ascending_action_context">
-        <description>Sorts tasks in ascending order.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="task_sort_descending_action_context">
-        <description>Sorts tasks in descending order.</description>
-        <topic label="Tasks View" href="reference/ref-31.htm"/>
-    </context>
-    <context id="show_part_pane_menu_action_context">
-        <description>Opens the system menu of the active view or editor.</description>
-    </context>
-    <context id="cycle_part_forward_action_context">
-        <description>Displays a menu which allows you navigate forward through the currently open views.</description>
-    </context>
-    <context id="cycle_part_backward_action_context">
-        <description>Displays a menu which allows you navigate backward through the currently open views.</description>
-    </context>
-    <context id="cycle_editor_forward_action_context">
-        <description>Displays a menu which allows you navigate forward through the currently open editors.</description>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="cycle_editor_backward_action_context">
-        <description>Displays a menu which allows you navigate backward through the currently open editors.</description>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <context id="cycle_perspective_forward_action_context">
-        <description>Displays a menu which allows you navigate forward through the currently open perspectives.</description>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-    </context>
-    <context id="cycle_perspective_backward_action_context">
-        <description>Displays a menu which allows you navigate backward through the currently open perspectives.</description>
-        <topic label="Perspectives" href="concepts/concepts-4.htm"/>
-    </context>
-    <context id="activate_editor_action_context">
-        <description>Activates the editor pane.</description>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-    <!-- part of project capability support. currently unused.
-  <context id="project_capability_property_page_context">
-    <description></description>
-  </context>
-
-  <context id="new_project_capability_wizard_page_context">
-    <description></description>
-  </context>
-
-  <context id="new_project_review_wizard_page_context">
-    <description></description>
-  </context>
-
-  <context id="new_project_configure_wizard_page_context">
-    <description></description>
-  </context>
-
-  <context id="show_project_perspective_dialog_context">
-    <description></description>
-  </context>
-
-  <context id="update_capability_wizard_context">
-    <description></description>
-  </context>
-  -->
-
-    <!--new context ids-->
-    <context id="goto_last_edit_position_action_context">
-        <description>This command navigates back to the last edit location.</description>
-    </context>
-    <context id="ConvertLineDelimitersToMAC_action_context">
-        <description>This command converts the file to use classic MacOS line delimiters (CR).</description>
-    </context>
-    <context id="ConvertLineDelimitersToUNIX_action_context">
-        <description>This command converts the file to use Unix/MacOS X line delimiters (LF).</description>
-    </context>
-    <context id="ConvertLineDelimitersToWindows_action_context">
-        <description>This command converts the file to use Windows line delimiters (CRLF).</description>
-    </context>
-    <context id="FindIncrementalReverse_action_context">
-        <description>This command enters the incremental find previous mode or goes to the previous match if already in incremental mode. Esc quits the incremental find mode.</description>
-    </context>
-    <context id="DeleteLineToBeginning_action_context">
-        <description>This command deletes the text form the current caret position to the beginning of the line.</description>
-    </context>
-    <context id="DeleteLineToEnd_action_context">
-        <description>This command deletes the text from the current caret position to the end of the line.</description>
-    </context>
-    <context id="SetMark_action_context">
-        <description>This command sets a mark in the editor.</description>
-    </context>
-    <context id="FindNext_action_context">
-        <description>This command finds the next match in the editor.</description>
-    </context>
-    <context id="CutLine_action_context">
-        <description>This command cuts the whole line to the clipboard.</description>
-    </context>
-    <context id="DeleteLine_action_context">
-        <description>This command deletes the whole line.</description>
-    </context>
-    <context id="CutLineToEnd_action_context">
-        <description>This command cuts the text from the current caret position to the end of the line to the clipboard.</description>
-    </context>
-    <context id="ClearMark_action_context">
-        <description>This command clears the previously set mark in the editor.</description>
-    </context>
-    <context id="SwapMark_action_context">
-        <description>Swaps the current curet position with the previously set mark.</description>
-    </context>
-    <context id="FindIncremental_action_context">
-        <description>This command enters the incremental find mode or goes to the next match if already in incremental mode. Esc quits the incremental find mode.</description>
-    </context>
-    <context id="FindPrevious_action_context">
-        <description>This command finds the previous match in the editor.</description>
-    </context>
-    <context id="CutLineToBeginning_action_context">
-        <description>This command cuts the text from the current caret position to the beginning of the line to the clipboard.</description>
-    </context>
-    <context id="US-ASCII_action_context">
-        <description>This command sets the encoding to US-ASCII.</description>
-    </context>
-    <context id="ISO-8859-1_action_context">
-        <description>This command sets the encoding to ISO-8859-1.</description>
-    </context>
-    <context id="UTF-8_action_context">
-        <description>This command sets the encoding to UTF-8.</description>
-    </context>
-    <context id="UTF-16BE_action_context">
-        <description>This command sets the encoding to UTF-16 (big-endian).</description>
-    </context>
-    <context id="UTF-16LE_action_context">
-        <description>This command sets the encoding to UTF-16 (little-endian).</description>
-    </context>
-    <context id="UTF-16_action_context">
-        <description>This command sets the encoding to UTF-16.</description>
-    </context>
-    <context id="System_action_context">
-        <description>This command sets the encoding to the current system encoding.</description>
-    </context>
-    <context id="Custom_action_context">
-        <description>This command allows to set a custom encoding.</description>
-    </context>
-    <context id="text_editor_preference_page_context">
-        <description>This preference page is used to set preferences for the text editor.</description>
-        <topic label="Preferences - Text Editor" href="reference/ref-texteditorprefs.htm"/>
-        <topic label="Editors" href="concepts/concepts-6.htm"/>
-    </context>
-</contexts>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/gettingstarted.pdf b/bundles/org.eclipse.platform.doc.user/gettingStarted/gettingstarted.pdf
deleted file mode 100644
index 24db836..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/gettingstarted.pdf
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/gs_htmldoc_book.book b/bundles/org.eclipse.platform.doc.user/gettingStarted/gs_htmldoc_book.book
deleted file mode 100644
index 8087a73..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/gs_htmldoc_book.book
+++ /dev/null
@@ -1,101 +0,0 @@
-#HTMLDOC 1.8.23
--t pdf13 -f test.pdf --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --no-title --linkstyle underline --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --portrait --color --no-pscommands --no-xrxcomments --compression=5 --jpeg=0 --fontsize 11.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Times --headfootsize 11.0 --headfootfont Helvetica --charset iso-8859-1 --links --no-embedfonts --pagemode outline --pagelayout single --firstpage p1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all  --owner-password ""  --user-password "" --browserwidth 680
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-01.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-02a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-02b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-02d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-02e.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-07a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-07b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-07c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-07d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-10b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-12.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-12b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-12c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-12d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-13.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-24a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-24b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-24c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-31a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-31b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-31c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-32.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-34a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-34b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-34c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-34d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-35.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-35b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-35c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-35d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-36.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-36a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-36b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-2b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d2.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-2f.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-3b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-3c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-3e.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-37-3f.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-39.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-39c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-39d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-39e.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-39f.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-39g.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-40.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-40a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-40b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-43.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-43b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-43c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-43e.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-43f.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-52.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-52c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-52d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-52e.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-55.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-55b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-60_team.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-60a_setup.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-61c_offline.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repoloca.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repolocb.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-61e_whatisloc.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-61f_syncproject.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-62b_sync.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-62c_releasing.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-64a_another.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredadd.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredmod.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_mod.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync2.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync3_rel.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync_view.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-70_replace.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-74_review.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-74_version.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-80_ant.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-81_basics.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-82_create.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-83_edit.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-84_run_ant.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-85_ant_configs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-85a_ant_view.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-86_use_cases.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-87_plugin_deploy.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-88_create_plugin.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-89_generate_buildxml.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-90_build_jar.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-91_build_options.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-92_project_builders.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-94_run_pj.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-95_external_tools.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-96_non_ant_pjs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/gettingStarted/qs-97_standalone_ets.htm
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/no_help_exists.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/no_help_exists.htm
deleted file mode 100644
index 3657fa8..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/no_help_exists.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE> No Help Exists</TITLE>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-No Help Exists</H1>
-<p CLASS="Head">There are no available help topics associated with this
-item.&nbsp;&nbsp;&nbsp;</p>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-01.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-01.htm
deleted file mode 100644
index 3db0f0f..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-01.htm
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Basic tutorial</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Basic tutorial</H1>
-<P>This tutorial provides a step by step walk-through of the
-Workbench.&nbsp;<br>
-</P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02a.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02a.htm
deleted file mode 100644
index 8e4ba14..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02a.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>The Workbench</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-The Workbench</h2>
-<P CLASS="Para"> When the Workbench is launched a single window is displayed. 
-  The Workbench window offers one or more1 perspectives. A perspective contains 
-  editors and views, such as the Navigator. Multiple Workbench windows can be 
-  opened simultaneously. Initially, the Resource perspective is displayed.</P>
-<p>A shortcut bar appears at the far left of the window, this allows the user 
-  to open new perspectives and switch between ones already open. The name of the 
-  active perspective is shown in the title of the window and its icon in the shortcut 
-  bar is a pushed-in icon. </p>
-<p>The title bar of the Workbench window indicates which perspective is active. 
-  In this example, the Resource perspective is in use. The Navigator, Tasks, and 
-  Outline views are open, along with an editor on the welcome page. The welcome 
-  page provides a quick overview explaining how to customize the Workbench and 
-  provides information about other features.<br>
-</p>
-<P CLASS="Para"><img src="../images/Image1.gif" alt="Workbench" border="0" width="579" height="414"></P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02b.htm
deleted file mode 100644
index 3a951a2..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02b.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editors and views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Editors and views</h2>
-<P CLASS="Intro">Prior to commencing the Workbench tutorials found in this section, 
-  it is important to first be familiar with the various elements of the Workbench. 
-  A Workbench consists of: 
-<ul>
-  <li>
-    perspectives</li>
-  <li>
-    views</li>
-  <li>
-    editors</li>
-</ul>
-<p CLASS="Intro">A perspective is a group of views and editors in 
-the Workbench window. One or more perspectives can exist in a single Workbench 
-window. Each perspective contains one or more views and editors. Within a
-window, each perspective may have a different set of views but all perspectives
-share the same set of editors.</p>
-<p CLASS="Intro">A view is a visual component within the Workbench. It is typically 
-  used to navigate a hierarchy of information (such as the resources in the Workbench), 
-  open an editor, or display properties for the active editor. Modifications made 
-  in a view are saved immediately. Only one instance of a particular view type 
-  may exist within a Workbench window.&nbsp; </p>
-<p CLASS="Intro">An editor is also a visual component within the Workbench. It is typically used to edit or browse a
-resource.  Modifications made in an editor follow an open-save-close lifecycle model.
-Multiple instances of an editor type may exist within a Workbench window.&nbsp;
-</p>
-<p CLASS="Intro">Editors and views can be active or inactive, but only one view or editor can be active at any one time.&nbsp;
-The active editor or view is the one whose title bar is highlighted. The active part is the
-target for common operations like cut, copy and paste. The active part also
-determines the contents of the status line. If an editor tab
-is white it indicates the editor is not active, however views may show
-information based on the last active editor.&nbsp;&nbsp;<br>
-</p>
-<p CLASS="Intro">The Navigator view becomes active when the view is clicked. </p>
-<p CLASS="Intro"><img src="../images/Image2_active_view.gif" alt="Workbench" border="0" width="578" height="413"></p>
-<P CLASS="Intro">The editor's tab turns blue, when the welcome page is clicked 
-  (editor) and the Navigator's title bar is no longer blue. The welcome page is 
-  now the active editor.
-<P CLASS="Intro"><img src="../images/Image2_active_editor.gif" alt="Welcome page selected" border="0" width="579" height="413">
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02d.htm
deleted file mode 100644
index e9fa5e1..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02d.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Editors</h3>
-<P CLASS="Para"> Depending on the type of file that is being editing, the appropriate 
-  editor is displayed in the editor area. For example, if a .TXT file is being 
-  edited, a text editor is displayed in the editor area. The figure below shows 
-  an editor open on the file sample.txt. The name of the file appears in the tab 
-  of the editor. If an asterisk (*) appears at the left side of the tab this indicates 
-  that the editor has unsaved changes. If an attempt is made to close the editor 
-  or exit the Workbench with unsaved changes a prompt to save the editor's changes 
-  will appear.</P>
-<P><img src="../images/Image5_text_editor.gif" alt="Eclipse Workbench, one editor" border="0" width="712" height="503">&nbsp;
-</P>
-
-
-<p class="Para">When an editor is active the Workbench menu bar and toolbar contain 
-  operations applicable to the editor. When a view becomes active, the editor 
-  operations are disabled. However, certain operations may be appropriate 
-  in the context of a view and will remain enabled.</p>
-
-
-<P CLASS="Para"> The editors can be stacked in the editor area and individual 
-  editors can be activated by clicking the tab for the editor. Editors can also 
-  be tiled side-by-side in the editor area so their content can be viewed simultaneously. 
-  In the figure below, editors for sample.txt and otherFile.txt have been placed 
-  one above the other. Instructions will be given later in this tutorial explaining 
-  how to rearrange views and editors.</P>
-<P><img src="../images/Image6_two_editors.gif" alt="Eclipse Workbench, two editors" border="0" width="593" height="550">
-</P>
-
-
-<P>If a resource that does not have an associated editor is opened, the Workbench 
-  will attempt to launch an external editor registered with the platform. These 
-  external editors are not tightly integrated with the Workbench and are not embedded 
-  into the Workbench's editor area. </P>
-<P>Also, the editors can be cycled through using the back and forward arrow buttons 
-  in the toolbar and by using the Ctrl+F6 accelerator. The arrow buttons move 
-  through the last mouse selection points and permits moving through several points 
-  in a file before moving to another one. Ctrl+F6 pops up a list of currently 
-  selected editors, by default, the editor used before the current one is selected.</P>
-<P><img src="../images/win_only.gif" alt="Windows only" border="0" width="51" height="13">On 
-  Windows the Workbench will also attempt to launch the editor in-place as an 
-  OLE document editor. For example, editing a DOC file will cause Microsoft Word 
-  to be opened in-place within the Workbench if Microsoft Word is installed on 
-  the machine. If Microsoft Word has not been installed, Word Pad will open instead.</P>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02e.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02e.htm
deleted file mode 100644
index a72b6437..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-02e.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Views</h3>
-<P CLASS="Para">Views support editors and provide alternative presentations or 
-  navigations of the information in the Workbench.&nbsp; For example:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-The Bookmarks view displays all bookmarks in the Workbench along with the names
-of the files with which the bookmarks are associated.</LI>
-  <LI CLASS="Item"> The Navigator view displays the projects and other resources.</LI>
-</UL>
-<P CLASS="Para">
-A view might appear by itself or stacked with other views in a tabbed notebook.&nbsp;&nbsp;</P>
-<blockquote>
-  <blockquote>
-<P CLASS="Para" align="center">
-<img src="../images/Image3_single.gif" alt="Task View" border="0" width="501" height="182"></P>
-  </blockquote>
-</blockquote>
-<P CLASS="Para"> To activate a view that is part of a tabbed notebook simply click 
-  its tab. The Workbench provides a number of quick and easy ways to configure 
-  an environment, including whether the tabs are at the bottom or top of the notebooks.&nbsp;</P>
-<P CLASS="Para" align="center">
-<img src="../images/Image3_tabbed.gif" alt="Two views with tabs, navigator view active" border="0" width="215" height="188"></P>
-<P CLASS="Para">Views have two menus, the first is a menu associated with the 
-  top left area of the view which allows the view to be manipulated in much the 
-  same manner as the menu associated with the Workbench window.</P>
-<P CLASS="Para" align="center"><img src="../images/Image8_view.gif" alt="Navigator view menu, top left" border="0" width="281" height="191"></P>
-<P CLASS="Para">The second menu is accessed by clicking the down arrow <img src="../images/Image9_viewdownarrow.gif" alt="View down arrow" border="0" width="23" height="19">. 
-  The view pull-down menu typically contains operations that apply to the entire 
-  contents of the view, but not to a specific item shown in the view. Operations 
-  for sorting and filtering are commonly found on the view pull-down.&nbsp;</P>
-<P CLASS="Para" align="center"><img src="../images/Image7_view_pulldown.gif" alt="Navigator view menu, arrow pulldown" border="0" width="280" height="154"></P>
-<P CLASS="Para">&nbsp;</P>
-<P CLASS="Para"> Customizing the Workbench is a good opportunity to use the <b>Window 
-  &gt; Reset Perspective</b> menu operation. The reset operation restores the 
-  layout to its original state.</P>
-<P CLASS="Para"> A view can be displayed by selecting it from the <b>Window &gt; 
-  Show View</b> menu. A perspective determines which views may be required and 
-  displays these on the <b>Show View</b> submenu. Additional views are available 
-  by choosing <b>Other...</b> at the bottom of the <b>Show View</b> submenu. This 
-  is just one of the many features that provide for the creation of a custom work 
-  environment. </P>
-<P CLASS="Para">&nbsp;</P>
-<P CLASS="Para" align="center">
-<img src="../images/Image4_showview.gif" alt="Show View menu" border="0" width="602" height="471"></P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07a.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07a.htm
deleted file mode 100644
index d303205..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07a.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>A simple project</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2> A simple project</h2>
-<P CLASS="Para"> Now that the basic elements of the Workbench have been explained, 
-  here are some instructions for creating a simple project. New projects, folders, 
-  and files can be created using several different approaches. In this section 
-  resources will be created using three different approaches:</P>
-<ol>
-  <li><b>File</b> menu</li>
-  <li>Navigator context menu</li>
-  <li>New Wizard button</li>
-</ol>
-<P>A project can be created using the <b>File</b> menu. Once the project has been 
-  created a folder and file can be created as well. </P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07b.htm
deleted file mode 100644
index aaaa7df..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07b.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using the File menu</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Using the File menu</h3>
-<P CLASS="Para">
-You can create new resources by using the <b>File &gt; New</b> menu on the Workbench menubar.
-Start by creating a simple project as follows:</P>
-<ol>
-  <li>
-<P CLASS="Para">
-From the menubar, select <b>File &gt; New &gt; Project...</b></P>
-<P CLASS="Para">
-<img src="../images/Image11_new_wizard.gif" alt="New Project Wizard" border="0" width="500" height="500"></P>
-  </li>
-  <li>
-<P CLASS="Para">
-In the left pane, select <b>Simple</b>, and on the right, select <b>Project</b>; then click <b>Next</b>.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-In the <b> Project name </b> field, type your name as the name of your new project. Do not use spaces or special characters in the project name (e.g., &quot;JaneQuser&quot;).</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Leave the box checked to use the default location for your new project. Click
-<b>Finish</b> when you are done.</P>
-<P CLASS="Para">
-<img src="../images/Image12_new_project_wizard.gif" alt="New Project Wizard" border="0" width="500" height="500"></P>
-<P CLASS="Para">
-&nbsp;</P>
-  </li>
-</ol>
-<P>If you sneak a peak at the Navigator view, you will see that it now contains
-the simple project we just created.&nbsp;
-</P>
-
-
-<P align="center"><img src="../images/Image13_project_in_nav.gif" alt="Navigator view" border="0" width="139" height="152">
-</P>
-
-
-<P>Create a second project called JaneQuser2 using the same steps, but instead of
-clicking <b>Finish</b>, click <b>Next</b>. At this point you can specify other projects that project JaneQuser2
-depends on. Since we want to create two independent projects we will not select
-any of the projects in the <b>Referenced projects</b> table. Click <b>Finish</b> to
-create your second simple project.
-</P>
-
-
-<P align="center"><img src="../images/Image15_project_depend.gif" alt="New Project Wizard" border="0" width="500" height="500">
-</P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07c.htm
deleted file mode 100644
index 4efe9f9..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07c.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using the popup</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Using the popup</h3>
-<P CLASS="Para">
-Now that we have our project we will create a folder. We will create
-our folder using the Navigator view's popup menu.</P>
-<ol>
-  <li> 
-    <P CLASS="Para"> Activate the Navigator view and select the project JaneQuser 
-      (the first project we created in the Navigator view). From the view's popup 
-      menu choose <b>New &gt; Folder</b>.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the New Folder wizard, your project name appears by default 
-      in the <b>Enter or select the parent folder </b> field. This is because 
-      we chose to create the new folder from your project's context menu.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b> Folder name</b> field, type a unique name for 
-      your new folder (e.g., using your first and last names in the title). Do 
-      not use spaces or special characters in the folder name (e.g., &quot;JanesFolder&quot;).</P>
-    <P CLASS="Para"> <img src="../images/Image14_new_folder_wizard.gif" alt="New Folder Wizard" border="0" width="438" height="649"></P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Click <b>Finish</b> when you are done. The Navigator view will update 
-      to show your newly created folder.</P>
-  </li>
-</ol>
-<P>Note that there is now also an <b>Advanced</b> button. This button when selected allows 
-  you to enter a location outside of a projects hierarchy as the location for 
-  one of its folders. This is called a linked folder.</P>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a> 
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07d.htm
deleted file mode 100644
index cb90117..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-07d.htm
+++ /dev/null
@@ -1,119 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using the New button</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Using the New button</h3>
-<P CLASS="Para">We have seen how to create resources using <b>File &gt; New</b> and <b>New</b>
-from the Navigator's context menu. We will now create a file for our project using
-the third alternative, the toolbar <b>New</b> button.</P>
-<ol>
-  <li>
-<P CLASS="Para">Select the folder JanesFolder in the Navigator view.</P>
-  </li>
-  <li>
-<P CLASS="Para">In the Workbench window's toolbar, activate the drop-down menu on the New Wizard button <img src="../images/Image15_new_button.gif" alt="New Wizard Button" border="0" width="45" height="24">
- and select <b>File</b>. To activate the drop-down menu simply click on the down arrow.</P>
-<P CLASS="Para">
-<img src="../images/Image16_new_pulldown.gif" alt="New Wizard Pulldown" border="0" width="109" height="111"></P>
-  </li>
-  <li>
-    <P CLASS="Para"> In the New File wizard, your folder's name and path already
-      appear by default in the <b> Enter or select the parent folder </b> field. 
-      This is because you chose to create the new file while this folder was selected 
-      in the Navigator view and the view was active.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-In the <b> File name</b> field, type a unique name for a new text file, including the .txt file extension. Do not use spaces or special characters in this file name (e.g., &quot;JanesFile.txt&quot;).</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Click <b>Finish</b> when you are done.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-The Workbench has an editor capable of editing text files. A text
-editor is automatically opened on the newly created file.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-In the text editor, type in the following five lines:</P>
-<blockquote>
-  <P CLASS="Para"><i>This is a sample text file.<br>
-  There is not much else<br>
-  we can really say about it other<br>
-  than it has five lines of<br>
-  text that are rather dull.</i></P>
-</blockquote>
-<P CLASS="Para">Notice that the editor tab has an asterisk (*) at the left of
-the filename. The asterisk indicates that the editor has unsaved changes.</P>
-<blockquote>
-  <P CLASS="Para"><img src="../images/Image17b_unsaved_changes.gif" alt="Editor Unsaved Changes" border="0" width="296" height="125"></P>
-</blockquote>
-  </li>
-  <li>
-<P CLASS="Para">
-In the Workbench window's toolbar, click the Save button <img src="../images/Image17_save_button.gif" alt="Save Button" border="0" width="24" height="23"> to save
-your work.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-In the Navigator view ensure your folder is still selected and the Navigator
-view is active.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Click the New Wizard button in the Workbench toolbar. Previously we clicked on
-the drop-down arrow of the New button. Here we clicked on the button itself
-which has the same effect as choosing <b>File &gt; New &gt; Other...</b></P>
-  </li>
-  <li>
-<P CLASS="Para">
-In the New wizard, click <b>Simple</b> in the left pane, and in the right pane, click <b>File</b>. Then click <b>Next</b>.&nbsp;</P>
-  </li>
-  <li>Once again, your folder's name and path appears by default in the <b> Enter or select the parent folder
-</b> field.</li>
-  <li>
-<P CLASS="Para">
-In the <b>File name</b> field, type a unique name for an .ini file. Do not use any spaces or special characters in the file name (e.g., &quot;JanesINIFile.ini&quot;). Click Finish when you are done.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Since the Workbench does not have any editors registered for .ini files, it may
-launch an external editor on the file if one is registered with the operating
-system. For the moment, close the editor. </P>
-  </li>
-</ol>
-<P>Now that we have created our resources, the Navigator view shows our two
-projects, the folder and its two files. To the right of the Navigator view is the
-text editor open on the first file we created (JanesFile.txt). If you look
-closely you can also see a second, inactive editor tab, &quot;Welcome&quot;.&nbsp;
-</P>
-
-
-<P><img src="../images/Image18_created_resources.gif" alt="Eclipse Workbench" border="0" width="579" height="414">
-</P>
-
-
-<P>Click on the Welcome editor tab. Now select the file JanesINIFile.ini in the 
-  Navigator view. Then select the <b>Link with Editor</b> button on the Navigator view. 
-  Lastly, click on the editor tab for JanesFile.txt. Notice how the Navigator 
-  updated itself to select the file you are currently editing (JanesFile.txt). 
-  If you don't like this automatic update you can easily turn it off by deselecting 
-  the <b>Link with Editor</b> button.</P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-10b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-10b.htm
deleted file mode 100644
index a5b3351..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-10b.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Closing an editor</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Closing an editor</h2>
-<P CLASS="Para"> Now that there are a couple of editors open, here's how to close 
-  them.&nbsp;</P>
-<ol>
-  <li>
-<P CLASS="Para">
-Select the JanesFile.txt editor tab.&nbsp;</P>
-  </li>
-  <li>
-<p CLASS="Para">
-In the text area add a 6th line of text:
-<blockquote>
-  <p CLASS="Para">This is a 6th line</p>
-</blockquote>
-  </li>
-  <li>
-    <P CLASS="Para"> To close the editor, choose one of the following options:</P>
-<ul>
-  <li>
-    <p CLASS="Para">
-    Click the close button (&quot;X&quot;)
-    <img src="../images/Image19_close_on_tab.gif" alt="Editor Tab" border="0" width="111" height="23">
-    in the tab of any open editor.&nbsp;
-  </li>
-  <li>
-        <p CLASS="Para"> Select <b>File &gt; Close</b> from the menubar. </li>
-</ul>
-  </li>
-  <li>
-    <P CLASS="Para"> Note the prompt to save the file before the editor is closed.</P>
-  </li>
-  <li>
-    <P CLASS="Para"> Click OK to save any changes and close the editor.</P>
-  </li>
-</ol>
-<P>If the editor was closed using <b>File &gt; Close</b>, notice that the option 
-  <b>File &gt; Close All</b> was also displayed. This is a quick way to close 
-  all of the open editors. If <b>File &gt; Close All</b> is chosen, a prompt will 
-  appear to choose which editors with unsaved changes should be saved. </P>
-
-<P>The preference to close editors automatically can be found in <b>Window &gt; 
-  Preferences</b> then <b>Workbench &gt; Editors</b>. The number of editors that 
-  can be opened prior to editors being reused and what should occur when all editors 
-  have unsaved changes can be configured there.</P>
-
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12.htm
deleted file mode 100644
index 5b6f7d2..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Navigating resources</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Navigating resources </h2>
-<P CLASS="Para"> This section will work with the Navigator and Tasks views.&nbsp; 
-  These views are initially part of the resource perspective. To experiment with 
-  other views, they can be displayed by using the <b>Window &gt; Show View</b> 
-  menu.</P>
-<P CLASS="Para">
-One important view to become familiar with is the Navigator view, which displays information 
-about the contents of the Workbench and how the resources relate to each other in a hierarchy.</P>
-<P CLASS="Para">
-In the Workbench, all resources reside in projects. Projects can contain folders and/or individual
-files.&nbsp;&nbsp;</P>
-<blockquote>
-  <blockquote>
-<P CLASS="Para" align="center">
-<img src="../images/Image20_nav_with_resources.gif" alt="Navigator View" border="0" width="162" height="188"></P>
-  </blockquote>
-</blockquote>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12b.htm
deleted file mode 100644
index 78c1f03..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12b.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Opening resources in the Navigator</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Opening resources in the Navigator </h3>
-<P CLASS="Para">Using the Navigator there are several ways to open an
-editor.&nbsp;</P>
-<ol>
-  <li>
-<P CLASS="Para">In the Navigator select the file JanesFile.txt</P>
-  </li>
-  <li>
-<P CLASS="Para">
-To open an editor on the file choose one of the following approaches:</P>
-<ul>
-      <li> To edit a resource using the default editor for that resource, either 
-        double click on the resource (in the Navigator), or select the resource 
-        and choose <b>Open</b> from its popup menu.&nbsp; 
-        <p>
-  </li>
-      <li> To use a specific editor to edit the resource, start by selecting the resource 
-        in the Navigator, and choose the <b>Open With</b> option from the popup 
-        menu.
-<p>
-  </li>
-</ul>
-    <p CLASS="Para">The Workbench remembers the last editor that was used for 
-      editing a specific file. This makes it easier to use the same editor down 
-      the road.</p>
-  </li>
-</ol>
-<P CLASS="Para"> The default editors can be configured using <b>Window &gt; Preferences 
-  &gt; Workbench &gt; File Associations</b>.</P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12c.htm
deleted file mode 100644
index 214e7d5..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12c.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Go To</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Go
-To</h3>
-<P CLASS="Para">
-The Navigator's Go To operation makes it easy to jump to a
-specific resource in the Navigator.&nbsp;</P>
-<ol>
-  <li>
-    <P CLASS="Para"> Select the Navigator view. Its title bar will be highlighted 
-      (according to the operating system's color scheme).</P>
-  </li>
-  <li>
-    <P CLASS="Para">From the pull-down menu choose <b>Navigate &gt; Go To &gt; Resource...</b>.</P>
-  </li>
-  <li>
-<P CLASS="Para">In the Go To Resource dialog type &quot;JanesF&quot; into
-the <b>Pattern </b>field at the top of the dialog.</P>
-    <P CLASS="Para">As the filename is typed, the dialog filters the set of possible 
-      matches based on what has been entered so far.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Select JanesFile.txt from the <b>Matching Resources</b>
-field and click OK or simply press Enter. </P>
-  </li>
-  <li>
-<p CLASS="Para">
-The Navigator will select the file JanesFile.txt.</p>
-  </li>
-</ol>
-<P align="center"><img src="../images/Image30_goto_resource.gif" alt="Goto Resource popup" border="0" width="347" height="481">
-</P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12d.htm
deleted file mode 100644
index d2f4bd6..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-12d.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Go Into</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3> Go Into&nbsp;</h3>
-<P CLASS="Para"> The Navigator shows all of the resources in the Workbench. Select 
-  a project or folder, choose to &quot;Go Into it&quot; and hide all other resources 
-  as demonstrated with the JaneQuser project.</P>
-<ol>
-  <li>
-    <P CLASS="Para"> Select the Navigator view. Its title bar will be highlighted 
-      (according to the operating system's color scheme).</P>
-  </li>
-  <li>
-<p CLASS="Para">
-Select the JaneQuser project.</p>
-  </li>
-  <li>
-<P CLASS="Para">
-Choose <b>Go Into</b> from the popup menu.</P>
-  </li>
-  <li>
-    <p CLASS="Para">The Navigator now shows only the contents of the JaneQuser 
-      project. The title of the Navigator shows the name of the resource that 
-      is currently displayed.</p>
-<p CLASS="Para"><img src="../images/Image31_go_into.gif" alt="Navigator view" border="0" width="214" height="187"></li>
-  <li>
-    <P CLASS="Para">The back, forward and up buttons <img src="../images/Image33_into_buttons.gif" alt="into buttons" border="0" width="74" height="24"> 
-      can be used to move between showing all resources and showing only the JaneQuser 
-      project. </P>
-<P CLASS="Para">Click the back button to show all of the
-resources.&nbsp; </P>
-  </li>
-</ol>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-13.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-13.htm
deleted file mode 100644
index fe7964b..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-13.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Show me the files</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2> Files </h2>
-<p CLASS="Para">Here are directions to locate where files are stored.</p>
-<ol>
-  <li> 
-    <p CLASS="Para">Start by opening the operating system's file system explorer.</p>
-  </li>
-  <li> 
-    <p CLASS="Para">Navigate to the location of where the Workbench was installed. 
-      Select a sub-directory called &quot;workspace&quot;.&nbsp;</p>
-  </li>
-  <li> 
-    <p CLASS="Para">The projects, folders and files that were created can be found 
-      in the workspace sub-directory. </p>
-  </li>
-</ol>
-<p CLASS="Para">All of the resources are stored as normal files and folders on 
-  the machine. This allows the use of other tools when working with the files. 
-  Those tools can be completely oblivious to the Workbench. A later section will 
-  look at how to work with external editors that are not integrated into the Workbench.</p>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24a.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24a.htm
deleted file mode 100644
index f1877d4..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24a.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Exporting files</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Exporting files </h2>
-<P CLASS="Para"> &nbsp;Files can be exported from the Workbench either by:</P>
-<ul>
-  <li>
-    <img align="texttop" border="0" src="../images/win_only.gif" alt="Windows only" width="51" height="13">dragging and dropping
-    to the file system,
-    or</li>
-  <li>
-    <img align="texttop" border="0" src="../images/win_only.gif" alt="Windows only" width="51" height="13">copying
-    and pasting to the file system,
-    or</li>
-  <li>
-    using the Export wizard.</li>
-</ul>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24b.htm
deleted file mode 100644
index 4ea0b86..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24b.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Drag and drop</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Drag and drop or copy and paste</h3>
-<P CLASS="Para"> <img align="texttop" border="0" src="../images/win_only.gif" alt="Windows only" width="51" height="13"> 
-  The operating system's file system explorer can be used to export a copy of 
-  a folder or file from the Workbench to the file system.</P>
-<ol>
-  <li>
-    <P CLASS="Para"> Open the operating system's file system explorer.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Drag the file JanesFile.txt from the Navigator to the file system explorer.</P>
-  </li>
-  <li>
-    <P CLASS="Para">Hold down the Ctrl key while dragging to ensure the file is 
-      copied. Otherwise, depending on the operating system, the file may be removed 
-      from the workspace. </P>
-  </li>
-  <li>
-<p CLASS="Para">
-The export can also be achieved by selecting the file in the Navigator and
-choosing <b>Edit &gt; Copy</b>, then
-<p CLASS="Para">pasting it in the file system explorer.
-  </li>
-</ol>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24c.htm
deleted file mode 100644
index 54456b1..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-24c.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Export wizard</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
- Export wizard</h3>
-<P CLASS="Para"> The Export wizard can be used to export from the Workbench to 
-  the file system.</P>
-<ol>
-  <li> 
-    <P CLASS="Para"> Select the project JaneQuser in the Navigator. </P>
-  </li>
-  <li> 
-    <P CLASS="Para"> From the popup menu, select <b>Export</b>.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the Export wizard, select <b>File system</b>, then click 
-      <b>Next</b>.</P>
-    <P CLASS="Para"> <img src="../images/Image42_export.gif" alt="Export Wizard" border="0" width="470" height="550"></P>
-  </li>
-  <li> 
-    <p class="Para">Expand JaneQuser project, and click on JanesFolder. In the 
-      right pane ensure that only JanesINIFile.ini is selected.&nbsp; Notice the 
-      folder and project in the left pane now have a grayed checkbox indicating 
-      that some, but not all, of their contents will be exported.</p>
-    <p class="Para">The <b>Select Types</b> button can be used to filter the types 
-      of resources to export.</p>
-    <p class="Para"><strong>Note:</strong> To export JanesINIFile.ini only, simply 
-      select it in the Navigator and choose <b>File &gt; Export</b>. The Export 
-      wizard will automatically ensure it is the only file selected for export. 
-    </p>
-	<p class="Para"> <img src="../images/Image43_export_tree.gif" alt="Export Wizard" border="0" width="573" height="563"></p>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b> To directory</b> field, type or browse to select 
-      a location in the file system for the exported resources to reside.</P>
-    <P CLASS="Para"> If the name of a directory that does not exist is entered 
-      the Export wizard will offer to create it once <b>Finish</b> is selected.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b>Options</b> area, options are given to:</P>
-    <UL CLASS="UnorderedList">
-      <LI CLASS="Item"> Overwrite existing resources without warning </LI>
-      <LI CLASS="Item"> Create directory structure for files or Create only selected 
-        directories</LI>
-    </UL>
-  </li>
-  <li> 
-    <P CLASS="Para"> Click <b>Finish</b> when done.</P>
-  </li>
-</ol>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31a.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31a.htm
deleted file mode 100644
index de142a9..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31a.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Importing files</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Importing files </h2>
-<P CLASS="Para"> Files can be imported into the Workbench either by :</P>
-<ul>
-  <li>
-    <img align="texttop" border="0" src="../images/win_only.gif" alt="Windows only" width="51" height="13"> dragging and dropping from the file system, or</li>
-  <li> <img align="texttop" border="0" src="../images/win_only.gif" alt="Windows only" width="51" height="13"> 
-    copying and pasting from the file system, or</li>
-  <li>
-     Using the Import wizard.&nbsp;</li>
-</ul>
-<p CLASS="Para"> In this section the two files that were just exported will be 
-  imported and placed into the second project JaneQuser2. <br>
-</p>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31b.htm
deleted file mode 100644
index 994eb9a..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31b.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Drag and drop</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Drag and drop or copy and paste</h3>
-<P CLASS="Para"> <img align="texttop" border="0" src="../images/win_only.gif" alt="Windows only" width="51" height="13"> 
-  The operating system's file system browser can be used to copy folders and files 
-  from the file system into the Workbench.</P>
-<P CLASS="Para"> <strong>Note: </strong>The resource(s) must be dragged to the 
-  exact location in the Navigator view hierarchy where the resources are to reside; 
-  they cannot be simply dragged and dropped onto a blank area in the Navigator 
-  view.</P>
-<ol>
-  <li>
-    <P CLASS="Para"> Open the operating system's file system explorer.</P>
-  </li>
-  <li>
-    <P CLASS="Para"> Locate the file JanesFile.txt that was recently exported 
-      and drag it to a specific location in the Navigator view in the Workbench.&nbsp;&nbsp;</P>
-    <P CLASS="Para">When dragging resources into the Navigator, the project/folder 
-      that the resource is being dropped into will be selected.</P>
-<blockquote>
-  <blockquote>
-<P CLASS="Para">
-<img src="../images/Image37drop.gif" alt="Navigator view" border="0" width="256" height="163"></P>
-  </blockquote>
-</blockquote>
-<P CLASS="Para">
-Drag the file over JaneQuser2 and release the mouse button.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Notice that the file is copied into the Workbench and placed into JaneQuser2.</P>
-  </li>
-  <li>This can also be achieved by copying the file in the file system explorer,
-then selecting the destination in the Navigator and choosing <b>Edit &gt; Paste</b>.
-  </li>
-</ol>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31c.htm
deleted file mode 100644
index 94fedd8..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-31c.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Import wizard</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Import wizard</h3>
-<P CLASS="Para"> The Import wizard can be used to copy resources into the Workbench.</P>
-<ol>
-  <li> 
-    <p CLASS="Para"> Select the project JaneQuser.</p>
-  </li>
-  <li> 
-    <P CLASS="Para"> Select <b>Import</b> from the popup.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the Import wizard, select <b>File system</b>, then click 
-      <b>Next</b>.</P>
-    <P CLASS="Para"> <img src="../images/Image38_import.gif" alt="Import Wizard" border="0" width="470" height="550"></P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b>From directory</b> field, type or browse to select 
-      the directory containing the file JanesINIFile.ini that was recently exported.</P>
-    <P CLASS="Para">Recent directories that have been imported from are shown 
-      on the <b>From directory</b> field's combo box.</P>
-    <blockquote> 
-      <P CLASS="Para">&nbsp;<img src="../images/Image41_import_combo.gif" alt="Import Wizard" border="0" width="535" height="42"></P>
-    </blockquote>
-  </li>
-  <li> 
-    <P CLASS="Para">In the right pane check the file JanesINIFile.ini&nbsp;&nbsp;</P>
-    <P CLASS="Para"> Checking a folder in the left pane will import its entire 
-      contents into the Workbench. A grayed checkbox (as shown below) indicates 
-      that only some of the files in the folder will be imported into the Workbench.</P>
-    <P CLASS="Para">The <b>Filter Types</b> button can be used to filter the types 
-      of files that will be imported.</P>
-    <P CLASS="Para"><img src="../images/Image39_import_tree.gif" alt="Import Wizard" border="0" width="543" height="583"></P>
-  </li>
-  <li> 
-    <P CLASS="Para"> The <b>Into folder</b> field should already be filled in 
-      with the name of the project (JaneQuser).&nbsp; </P>
-  </li>
-  <li> 
-    <P CLASS="Para">The destination project or folder can be changed by clicking 
-      <b>Browse</b>; </P>
-    <P CLASS="Para">Click the <b>Browse</b> button and choose the second project 
-      JaneQuser2.&nbsp; </P>
-    <blockquote> 
-      <blockquote> 
-        <P CLASS="Para"> <img src="../images/Image40_import_target.gif" alt="Import Wizard" border="0" width="350" height="471"></P>
-      </blockquote>
-    </blockquote>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b>Options</b> area, options are given to: </P>
-    <UL CLASS="UnorderedList">
-      <LI CLASS="Item"> Overwrite existing resources without warning </LI>
-      <LI CLASS="Item"> Create complete folder structure or Create selected folders 
-        only</LI>
-    </UL>
-  </li>
-  <li> 
-    <P CLASS="Para"> Click <b>Finish</b> when done. The file JaneINIFile.ini is 
-      now shown in the Navigator in the project JaneQuser2.</P>
-  </li>
-</ol>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-32.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-32.htm
deleted file mode 100644
index 80e16e4..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-32.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Deleting resources</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Deleting resources</h2>
-<P CLASS="Para">Now that a few files have been imported into the second project 
-  (JaneQuser2), here are instructions on how to delete the project.&nbsp;</P>
-<ol>
-  <li> 
-    <P CLASS="Para">Select project JaneQuser2 in the Navigator view.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> To delete the project do one of the following:</P>
-    <ul>
-      <li> From the project's pop-up menu choose <b>Delete</b> </li>
-      <li> 
-        <p> Press the DEL key </li>
-      <li> 
-        <p>Choose <b>Edit &gt; Delete</b> from the pull-down menu</li>
-    </ul>
-  </li>
-  <li> 
-    <P CLASS="Para"> A prompt will ask for confirmation of the deletion and also 
-      what type of deletion should be performed.</P>
-    <P CLASS="Para"> It is possible to:</P>
-    <ul>
-      <li> 
-        <p CLASS="Para">Delete the contents of the project from the file system</p>
-      </li>
-      <li> 
-        <p CLASS="Para">Delete the project from the workspace but keep its contents 
-          in the file system</p>
-      </li>
-      <li>Accept the default (do not delete contents) and click <b>Yes</b>.</li>
-    </ul>
-  </li>
-</ol>
-<p><strong>Note:</strong> This is only an option for projects. Files and folders 
-  are always deleted from the file system when deleted.</p>
-<P> The same steps work for any resource shown in the Navigator.
-<br>
-</P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34a.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34a.htm
deleted file mode 100644
index 478fad3..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34a.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with other editors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Working with other editors</h2>
-<P CLASS="Para"> Instructions have been given explaining how to import and export 
-  resources from the Workbench. This section will look at how to edit Workbench 
-  resources using the following three approaches:</P>
-<ul>
-  <li>
-    External editors launched by the Workbench</li>
-  <li>
-    Embedded OLE documents <img src="../images/win_only.gif" alt="Windows only" border="0" width="51" height="13"></li>
-  <li>
-    External editors launched without the Workbench's knowledge</li>
-</ul>
-<p CLASS="Para">Before continuing, take a moment and confirm that the Navigator 
-  contains the following resources:</p>
-<blockquote>
-  <blockquote>
-    <p CLASS="Para" align="center"><img src="../images/Image44_confirm_state.gif" alt="Navigator view" border="0" width="180" height="177"></p>
-  </blockquote>
-</blockquote>
-
-
-<P>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34b.htm
deleted file mode 100644
index 4cd7914..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34b.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>External editors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-External editors</h3>
-<P CLASS="Para">When opening a resource the Workbench first consults its list 
-  of registered editors. If no registered editors are found for the resource the 
-  Workbench checks with the underlying operating system to determine if it has 
-  any editors registered for the particular file type. If an editor is located, 
-  the Workbench will automatically launch that editor. This type of editor is 
-  referred to as an external editor because it does not show up as an editor tab 
-  in the Workbench.&nbsp;&nbsp;</P>
-<ol>
-  <li>
-<p CLASS="Para">Select the file JanesINIFile.ini.
-  </li>
-  <li>
-<P CLASS="Para">
-Double-click the file in the Navigator view to launch the external editor.</P>
-    <P CLASS="Para"> If an editor for INI files is not registered with the underlying 
-      operating system the Workbench will attempt to use its own default text 
-      editor. If this happens, to see an external editor, import another file 
-      (see previous sections) that is associated with a third party editor. Double 
-      click again on this new file and the selected editor will open in its own 
-      window.</P>
-<P CLASS="Para"><img src="../images/win_only.gif" alt="Windows only" border="0" width="51" height="13"><br>
-      The Workbench supports OLE document editors, and some editors provide OLE 
-      document support allowing it to be opened in its own window, or embedded 
-      inside another window like the Workbench. This will be discussed in more 
-      detail in the next section.</P>
-  </li>
-</ol>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34c.htm
deleted file mode 100644
index 4f91c00..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34c.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Embedded editors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Embedded editors</h3>
-<P CLASS="Para"> <img src="../images/win_only.gif" alt="Windows only" border="0" width="51" height="13">&nbsp;The 
-  Workbench supports OLE document editors.</P>
-<P CLASS="Para"><img src="../images/Image619_ole.gif" alt="" border="0" width="580" height="238"></P>
-<ol>
-  <li>
-<P CLASS="Para">
-Select JanesFolder in the navigator.&nbsp;</P>
-  </li>
-  <li>Create the file JanesWordDoc.doc. </li>
-  <li>
-    <P CLASS="Para">Notice how the Workbench automatically opens the OLE document 
-      editor in place and integrates its pull-down menu options into the menu 
-      bar. There should also be an editor tab for JanesWordDoc.doc.&nbsp;</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Make a change to the file.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Close the editor by clicking the X on the editor tab; when prompted, save its
-contents.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Reopen the file by
-double-clicking it in the Navigator view.</P>
-  </li>
-</ol>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34d.htm
deleted file mode 100644
index 6def74a..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-34d.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editing files outside the Workbench</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Editing files outside the Workbench</h3>
-<P CLASS="Para"> In a previous section an external editor was launched on the 
-  file JanesINIFile.ini by double clicking on it in the Navigator. The same external 
-  editor can also be used by launching it outside of the Workbench.&nbsp;</P>
-<ol>
-  <li> 
-    <P CLASS="Para"> Close any editors that are open on JanesINIFile.ini.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the file system explorer, navigate to the directory where 
-      the Workbench was installed and go into the workspace sub-directory.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Edit the file JanesINIFile.ini and save it . Do not use the 
-      Workbench's Navigator to open the editor.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Return to the Workbench and in the Navigator view, select 
-      the project JaneQuser.&nbsp;</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Choose <b>Refresh</b> from the project's context menu. This 
-      instructs the Workbench to look for any changes to the project that have 
-      been made in the local file system by external tools.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Select the file JanesINIFile.ini.</P>
-  </li>
-  <li> 
-    <p CLASS="Para"> For a little variety choose <b>Open With &gt; Text Editor</b> 
-      from the file's popup menu.</p>
-  </li>
-  <li> 
-    <P CLASS="Para"> Observe that the Workbench's own default text editor is opened.&nbsp;</P>
-    <P CLASS="Para"> In the default text editor verify that the externally made 
-      changes are reflected in the Workbench.</P>
-  </li>
-</ol>
-<P>The Workbench stores all of its resources in the local file system. This means 
-  the system file explorer can be used to copy files from the Workbench's workspace 
-  area even when the Workbench is not running. Resources can also be copied into 
-  the workspace directory. Use Refresh to update the Workbench with any changes 
-  made outside the Workbench.&nbsp; &nbsp; </P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35.htm
deleted file mode 100644
index abb6464..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Copying, renaming and moving</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Copying, renaming and moving</h2>
-<P CLASS="Para">Workbench resources can be copied, moved and renamed using popup 
-  menu operations in the Navigator. In this section several of the files that 
-  have been created will be copied and renamed.&nbsp;</P>
-<P CLASS="Para">Prior to copying files, some setup is required:</P>
-<p CLASS="Head"><b><a name="Setup">Setup</a></b></p>
-<ol>
-  <li>
-    <p CLASS="Head">In the Navigator view, delete the file JanesWordDoc.doc. The 
-      Navigator should look like this:</p>
-        <blockquote>
-        <P CLASS="Para">
-        <img src="../images/Image44_confirm_state.gif" alt="Navigator view" border="0" width="180" height="177"></P>
-        </blockquote>
-<p CLASS="Head">&nbsp;</p>
-  </li>
-  <li><P CLASS="Para">Double
-        click on JanesFile.txt and ensure that it contains the following text.</P>
-        <blockquote>
-          <P><i>This is a sample text file<br>
-          There is not much else<br>
-          we can really say about it other<br>
-          than it has five lines of<br>
-          text that are rather dull.</i></P>
-        </blockquote>
-      </li>
-  <li>
-<p CLASS="Head">Close the editor on JanesFile.txt.</p>
-  </li>
-  <li>
-        <p CLASS="Para">
-        Select the project JaneQuser. Using the project's pop-up menu create a folder named
-        JanesOtherFolder.&nbsp;
-        <blockquote>
-          <p CLASS="Para"><img src="../images/Image45_setup.gif" alt="Navigator view" border="0" width="180" height="177"></p>
-        </blockquote>
-      </li>
-</ol>
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-
-</p>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35b.htm
deleted file mode 100644
index f1c9f54..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35b.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Copying</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Copying</h3>
-<p CLASS="Head"> Commence by copying JanesFile.txt to the new folder (JanesOtherFolder). 
-  Once the file has been copied it can be renamed.</p>
-<ol>
-  <li> 
-    <p CLASS="Head"> Ensure that the setup described in the introduction to this 
-      <a href="qs-35.htm#setup">section</a> has been performed.</p>
-  </li>
-  <li> 
-    <p CLASS="Para"> In the Navigator view, select JanesFile.txt.</p>
-  </li>
-  <li> 
-    <P CLASS="Para"> From the file's context menu, select <b>Copy</b> (or Ctrl+C)</P>
-  </li>
-  <li>In the Navigator view, select JanesOtherFolder as the destination.</li>
-  <li> 
-    <p CLASS="Head"> From the folder's context menu, select <b>Paste</b> (or Ctrl+V).</p>
-  </li>
-</ol>
-<P>As an alternative to copying files using the copy operation, it is also possible 
-  to copy files by holding down the Ctrl key while dragging a file from one folder 
-  to another folder. </P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35c.htm
deleted file mode 100644
index dbd2b0c..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35c.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Renaming</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Renaming</h3>
-<p CLASS="Head">Now that JanesFile.txt has been copied from JanesFolder to JanesOtherFolder 
-  it is ready to be renamed as something else.&nbsp;</p>
-<ol>
-  <li>
-<p CLASS="Head">In the Navigator view, select JanesFile.txt in JanesOtherFolder.</p>
-  </li>
-  <li>
-<P CLASS="Para">
-From the file's context menu, select <b>Rename</b>.</P>
-  </li>
-  <li>
-<p CLASS="Para">The Navigator overlays the file's name with a text field.&nbsp;&nbsp;Type in JanesText.txt and press Enter.</p>
-<DIV CLASS="Note">
-<P CLASS="Para">&nbsp;
-</P>
-<blockquote>
-  <P CLASS="Para">
-<img src="../images/Image48_rename.gif" alt="Navigator view" border="0" width="180" height="177"></P>
-</blockquote>
-      <P CLASS="Para">To halt the renaming of a resource, Escape can be pressed 
-        to dismiss the text field.</P>
-</DIV>
-  </li>
-</ol>
-<P>Copy and rename works on folders as well.&nbsp; </P>
-
-
-<ol>
-  <li>
-<P CLASS="Para">
-In the Navigator view, select the folder JanesOtherFolder.</P>
-  </li>
-  <li>
-<p CLASS="Para">
-From the folder's context menu choose <b>Rename</b>.</p>
-  </li>
-  <li>Once again the Navigator overlays the folder name with an entry field to 
-    allow the typing in of a new name. Change the folder name to be JanesSecondFolder.</li>
-  <li>Rename the folder back to its original name (JanesOtherFolder).</li>
-</ol>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35d.htm
deleted file mode 100644
index bf5e266..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-35d.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Moving</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Moving</h3>
-<p CLASS="Head">Having copied and renamed several of the resources, now it's time 
-  to move some resources around. JanesOtherFolder and its file will be moved to 
-  be a sub-folder of the original folder JanesFolder.</p>
-<ol>
-  <li>In the Navigator view, select JanesOtherFolder. </li>
-  <li>
-<P CLASS="Para">
-From the file's context menu, select <b>Move</b>.</P>
-  </li>
-  <li>
-<p CLASS="Para">In the Folder Selection dialog choose JanesFolder and click <b>OK</b>.</p>
-<blockquote>
-<p CLASS="Para"><img src="../images/Image48_move.gif" alt="Folder dialog" border="0" width="350" height="471"></p>
-</blockquote>
-  </li>
-  <li>In the Navigator JanesFolder now contains JanesOtherFolder. Expand
-JanesOtherFolder and confirm that it contains JanesText.txt.
-<blockquote>
-  <p><img src="../images/Image48_rename_done.gif" alt="Navigator view" border="0" width="180" height="177"></p>
-</blockquote>
-  </li>
-</ol>
-
-
-<P>As an alternative to moving files using the move operation, it is also possible 
-  to move files by dragging a file from one folder to another folder. Remember 
-  that to copy files from one folder to the other, Ctrl needs to be held down 
-  while performing the drag and drop operation. </P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36.htm
deleted file mode 100644
index 8341b46..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"><title>Searching</title></head>
-<body>
-
-<h2>Searching</h2>
-
-<p>Text strings and files can be searched for in the Workbench.&nbsp;In this section, 
-  the Search button <img src="../images/Image50_search.gif" alt="Search button" border="0" width="26" height="22"> 
-  will be used to perform a text search across the resources that are shown in 
-  the Navigator. Instruction will also be given on how to use the Search view 
-  to work with the results.</p>
-
-
-<p>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</p>
-
-</body></html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36a.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36a.htm
deleted file mode 100644
index 0e9710e..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36a.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Starting a search</title>
-
-</HEAD>
-<body>
-<h3>Starting a search</h3>
-
-<p>Text strings can be searched for in the Workbench as follows:</p>
-
-<ol>
-  <li>In the Workbench toolbar, click the search button <img src="../images/Image50_search.gif" alt="Search button" border="0" width="26" height="22">.</li>
-  <li>In the <b>Containing text</b> field, type in: <i>it</i> <br>
-    The combo box for the <b>Containing text</b> field also displays a list of 
-    recently performed searches to select from.<br>
-    <img src="../images/Image51_search_it.gif" alt="Search dialog" border="0" width="490" height="388"></li>
-  <li> The <b>Case sensitive</b> check box can be selected or deselected depending 
-    on whether or not a case sensitive or insensitive search is to be performed. 
-    <br>
-    For this example, check the <b>Case sensitive</b> box to search for lowercase 
-    &quot;<i>it</i>&quot;.</li>
-  <li> The kinds of files to include in the search can be specified in the <b>File 
-    name patterns</b> field. Click <b>Browse...</b> to open the Select Types dialog. 
-    This dialog provides a quick way to select from a list of registered extensions. 
-    <blockquote><img src="../images/Image51_choose_ext.gif" alt="Type Selection Dialog" border="0" width="347" height="469"></blockquote>
-    For the moment, the search will be confined to .txt files. Ensure *.txt is 
-    checked and click <b>OK</b>.</li>
-  <li>In the <b>Scope</b> field, specify the files and folders to include in the 
-    search. The choices are: the entire workspace, the currently selected resources 
-    in the Workbench, or a working set which is a named, customized group of files 
-    and folders. Leave the scope as workspace.</li>
-  <li> Use the <b>Customize</b> button to choose what kinds of searches are available 
-    in the dialog. This setting may be left unchanged.</li>
-  <li>Click <b>Search</b>. <br>
-    <strong>Note: </strong><b>Cancel</b> can be clicked to cancel the search while 
-    it is in progress and the Search dialog will show the progress of the search. 
-    <p><img src="../images/Image51_search_progress.gif" alt="Search Dialog" border="0" width="488" height="386"></p></li>
-  <li>Observe that the Search view displays: 
-    <blockquote> <img src="../images/Image51_search_view.gif" alt="Search view" border="0" width="306" height="100"></blockquote>
-  </li>
-</ol>
-
-<p> The next section will describe how to work with the Search view.</p>
-
-
-<p>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</p>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36b.htm
deleted file mode 100644
index 3b33031..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-36b.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>
-<head>
-	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-	<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-	<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-
-	<title>The Search view</title>
-</head>
-
-<body>
-
-<h3>The Search view&nbsp;</h3>
-
-<p>Now that the search for &quot;it&quot; has been completed, the Search view 
-  is visible. The title of the Search view shows that four matches were found.&nbsp;</p>
-<blockquote>
-  <p> <img src="../images/Image51_search_view.gif" alt="Search view" border="0" width="306" height="100">&nbsp;&nbsp;</p>
-</blockquote>
-<p CLASS="Head"> Within the Search view two files are shown and within each file 
-  there were 2 matches found.&nbsp; </p>
-
-<ol>
-  <li>The title of the Search view provides a description of the search just performed. 
-    If the view is too narrow to display the full description, hover over the 
-    title of the Search view. Observe that hover help appears and provides the 
-    full description. 
-    <blockquote><img src="../images/Image51_search_hover.gif" alt="Search view" border="0" width="353" height="88"></blockquote>
-  </li>
-  <li>Click the Show Next Match button <img src="../images/Image51_search_next.gif" alt="Show next match button" border="0" width="21" height="19"> 
-    to navigate to the first match of the search expression (&quot;it&quot;). 
-    <br>
-    Notice that the file JanesFile.txt is automatically selected and opened in 
-    the editor area. <br>
-    Click Show Next Match button two more times. Once again the Search view automatically 
-    opens the file (JanesText.txt).</li>
-  <li>It is sometimes useful to remove uninteresting matches from the search results. 
-    The Search view's popup menu provides two ways to remove matches: 
-    <ul>
-      <li><b>Remove Current Match</b> - Removes the actual match that is currently 
-        displayed. If a file contains multiple matches, as in this case, only 
-        the current match is removed.</li>
-      <li><b>Remove Selected Matches</b> - Removes the file entry and all matches 
-        in it.</li>
-    </ul>
-  </li>
-  <li>Choose <b>Remove Current Match</b> from the popup. Notice how JanesText.txt 
-    only has one match left.</li>
-  <li>Select JanesFile.txt in the Search view.</li>
-  <li>Choose <b>Remove Selected Matches</b> from the popup menu. <br>
-    The Search view now shows only one match for JanesText.txt 
-    <blockquote><img src="../images/Image51_search_reduced.gif" alt="Search view" border="0" width="253" height="154"></blockquote>
-  </li>
-  <li>Perform a second search for &quot;that&quot; by clicking on the Search button 
-    <img src="../images/Image50_search.gif" alt="Search button" border="0" width="26" height="22"> 
-    in the Workbench's toolbar.</li>
-  <li>The Search view updates to show the results of the new search. <br>
-    Use the drop down button on the Search view's toolbar to move back and forth 
-    between the two search results. 
-    <blockquote><img src="../images/Image51_search_switching.gif" alt="Search view" border="0" width="356" height="154"></p></blockquote>
-  </li>
-  <li>In the drop down button choose &quot;it&quot; - 1 Occurrence. The Search 
-    view switches back to show the original search. On the context menu choose 
-    <b>Search Again</b> to repeat the initial search. Notice that once again there 
-    are four matches.</li>
-</ol>
-
-
-<p>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2b.htm
deleted file mode 100644
index 7a161d1..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2b.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Tasks and markers</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Tasks and markers</h2>
-<P CLASS="Para"> There are various types of markers including bookmarks, task 
-  markers, debugging breakpoints and problems. This section will focus on tasks 
-  and the Tasks view.</P>
-<P CLASS="Para"> The Tasks view displays all the tasks and problems in the Workbench. 
-  The view displays those associated with specific files, specific lines in specific 
-  files, as well as generic tasks that are not associated with any specific file.</P>
-<P CLASS="Para">
-In the figure below &quot;sample task&quot; is a generic task not associated
-with any specific resource. The second task (&quot;add sixth line to the
-text&quot;) is associated with the file JanesFile.txt.</P>
-<P>&nbsp;<img src="../images/Image21_task_view.gif" alt="Task view" border="0" width="495" height="109">
-</P>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d.htm
deleted file mode 100644
index 21bb317..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Unassociated tasks</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Unassociated
-tasks</h3>
-<P CLASS="Para">
-Unassociated tasks are not associated with any specific resource. To create an 
-unassociated task: </P>
-<ol>
-  <li> 
-    <P CLASS="Para"> In the Tasks view, click the New Task button <img src="../images/Image52_new_task.gif" alt="New task button" border="0" width="23" height="22">. 
-      A new task dialog appears. </P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Type a brief description for the task and press Enter. To 
-      cancel the dialog while entering the description press Escape . The new 
-      task appears in the Tasks view.</P>
-    <p CLASS="Para"><img src="../images/Image53_newtask.gif" alt="Tasks view" border="0" width="425" height="150"></li>
-</ol>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d2.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d2.htm
deleted file mode 100644
index 5abe6d1..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2d2.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Associated tasks</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Associated tasks</h3>
-<P CLASS="Para"> Associated tasks are associated with a specific location in a 
-  resource. To associate a task with the&nbsp;JanesFile.txt:</P>
-<ol>
-  <li> 
-    <P CLASS="Para"> Open a text file (JanesFile.txt) by double clicking on it 
-      in the Navigator view.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the editor area directly to the left of any line in the 
-      text editor, access the context menu from the marker bar. The marker bar 
-      is the vertical bar to the left of the main text area.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> From the marker bar's context menu, select <b>Add Task</b>.</P>
-    <P CLASS="Para"> The marker bar displays any marker including bookmarks, task 
-      markers (for associated tasks), and/or debugging breakpoints. Various markers 
-      can be associated with specific lines in a file by accessing the context 
-      menu from the marker bar directly to the left of that line.</P>
-    <P CLASS="Para"> <img src="../images/Image53_marker1.gif" alt="Marker bar menu" border="0" width="299" height="153"></P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b>Description</b> field, type a brief description 
-      for the task that will be associated with that line in the text file.</P>
-    <blockquote> 
-      <P CLASS="Para"> <img src="../images/Image53_add_task_dlg.gif" alt="Add Task dialog" border="0" width="611" height="256"></P>
-    </blockquote>
-  </li>
-  <li> 
-    <P CLASS="Para"> Click <b>OK</b> when done.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Notice that a new task marker appears in the marker bar, 
-      directly to the left of the line where the task was added. Also, notice 
-      that the new task appears in the Tasks view.</P>
-    <P CLASS="Para"> <img src="../images/Image53_task_updated.gif" alt="Tasks view" border="0" width="425" height="312"></P>
-  </li>
-  <li> 
-    <P CLASS="Para"> After the new task has been added, click in the editor on 
-      the first line or any other line above the line with which the new task 
-      is associated.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Add several lines of text to the file at this point.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Notice that as lines of text are added above it, the task 
-      marker moves down in the marker bar in order to remain with the associated 
-      line in the file. The line number in the Tasks view is updated when the 
-      file is saved.&nbsp;</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the Tasks view, access the context menu for the task that 
-      was just created.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Select <b>Mark Completed</b>. </P>
-  </li>
-  <li>Now select <b>Delete Completed Tasks</b> from the marker's context menu.</li>
-  <li> 
-    <P CLASS="Para"> Notice that the task marker disappears from the marker bar 
-      and the task is removed from the Tasks view.</P>
-  </li>
-</ol>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2f.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2f.htm
deleted file mode 100644
index fdf5a46..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-2f.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Opening files</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Opening
-files</h3>
-<P CLASS="Para">
-The Tasks view provides two approaches for opening the file associated with a
-task:</P>
-<ul>
-  <li> Select the task, and from the context menu choose <b>Go To</b></li>
-  <li>
-    Double click on the task</li>
-</ul>
-<p CLASS="Para">In both cases the file's editor is opened and the line with which the selected task is associated is highlighted.
-<br>
-</p>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3b.htm
deleted file mode 100644
index 006841c..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3b.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Bookmarks</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Bookmarks</h2>
-<P CLASS="Para"> Bookmarks are a simple way to navigate to resources that are 
-  used frequently. This section will look at setting and removing bookmarks and 
-  viewing them in the Bookmarks view.</P>
-<P CLASS="Para"> The Bookmarks&nbsp;view displays all bookmarks&nbsp;in the Workbench. 
-  To show the Bookmarks view select <b>Window &gt; Show View &gt; Bookmarks</b> 
-  while in the Resource perspective.</P>
-<blockquote>
-  <P>&nbsp;<img src="../images/Image54_bookmark1.gif" alt="Bookmarks view" border="0" width="308" height="153">
-</P>
-
-
-</blockquote>
-
-
-<P>&nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3c.htm
deleted file mode 100644
index 2a3c978..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3c.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Adding bookmarks</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h3>Adding and viewing bookmarks</h3>
-<p CLASS="Head">The Workbench allows the bookmarking of individual files or locations 
-  within a file. This section will demonstrate how to set several bookmarks and 
-  how to view them using the Bookmarks view.</p>
-<ol>
-  <li>
-<p CLASS="Head">From the menubar, select <b>Window &gt; Show View &gt; Bookmarks</b>. The
-Bookmarks view appears in the Workbench.&nbsp;</p>
-  </li>
-  <li>
-    <P CLASS="Para"> Edit the file JanesFile.txt.</P>
-  </li>
-  <li>
-    <P CLASS="Para"> Position the cursor over the editor's marker bar next to 
-      any line in the file. Then, from the context menu on the marker bar, select 
-      <b>Add Bookmark</b>.</P>
-<blockquote>
-<P CLASS="Para">
-<img src="../images/Image54_bookmark_menu.gif" alt="Bookmark Menu" border="0" width="277" height="110"></P>
-</blockquote>
-<P CLASS="Para">When the Add Bookmark dialog opens type in a description for 
-this bookmark. Type in &quot;My Bookmark&quot;.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Notice that a new bookmark appears in the marker bar.</P>
-<blockquote>
-<P CLASS="Para">
-<img src="../images/Image54_bookmark_added.gif" alt="Editor with bookmark" border="0" width="424" height="153">&nbsp;</P>
-</blockquote>
-<P CLASS="Para">
-The new bookmark also appears in the Bookmarks view.</P>
-<blockquote>
-<P CLASS="Para">
-<img src="../images/Image54_bookmark_added2.gif" alt="Bookmark view" border="0" width="309" height="153"></P>
-</blockquote>
-  </li>
-  <li>
-<P CLASS="Para">
-In the Navigator view select the file JanesText.txt. From the file's popup menu
-choose <b>Add Bookmark</b></P>
-<P CLASS="Para">
-This will bookmark the file using the filename to describe the bookmark. Observe the Bookmarks view now contains two
-bookmarks.</P>
-<blockquote>
-<P CLASS="Para">
-<img src="../images/Image54_bookmark_two.gif" alt="Bookmark view" border="0" width="308" height="153"></P>
-</blockquote>
-  </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3e.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3e.htm
deleted file mode 100644
index 737ef76..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3e.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using bookmarks</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Using bookmarks</h3>
-<p CLASS="Head"> Now that some bookmarks have been created, instructions will 
-  be given on how to get to the files associated with the bookmarks.</p>
-<ol>
-  <li>
-<P CLASS="Para">
-Close all of the files in the editor area.</P>
-  </li>
-  <li>
-    <P CLASS="Para"> In the Bookmarks view, double-click on the first bookmark 
-      that was created (My Bookmark).</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Notice that a file editor opens displaying the file with which the bookmark is associated and that the line associated with the bookmark is highlighted.</P>
-  </li>
-</ol>
-<p CLASS="Head">
-The Bookmarks view
-supports two additional ways to open the file associated with a selected bookmark:</p>
-
-
-<ol>
-  <li>From the bookmark's context menu choose <b>Go To</b></li>
-  <li>From the view's toolbar click on the Go To toolbar button <img src="../images/Image54_bookmark_goto.gif" alt="Bookmark Go to button" border="0" width="29" height="22"></li>
-</ol>
-<P>In the Bookmarks view, select the associated file in the Navigator. </P>
-
-
-<ol>
-  <li>In the Bookmarks view, select My Bookmark.</li>
-  <li>From the bookmark's context menu choose <b>Show in Navigator</b>. </li>
-  <li>
-    <P CLASS="Para"> Notice that the Navigator view is now visible and the file 
-      JanesFile.txt is automatically selected. JanesFile.txt is the file My Bookmark 
-      was associated with.</P>
-  </li>
-</ol>
-
-
-<P> <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3f.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3f.htm
deleted file mode 100644
index 1f2f817..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-37-3f.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Removing bookmarks</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Removing bookmarks</h3>
-<p CLASS="Head">This section will demonstrate how to remove the bookmarks that 
-  have been created.</p>
-<ol>
-  <li> 
-    <P CLASS="Para"> In the Bookmarks view, select JanesFile.txt (the second bookmark 
-      we created) and do one of the following:</P>
-    <ul>
-      <li> Click the Delete button <img src="../images/Image54_bookmark_del1.gif" alt="Bookmark delete button" border="0" width="27" height="22"> 
-        on the view's toolbar. </li>
-      <li> From the bookmark's context menu choose delete.</li>
-      <li> Hit the Delete key on the keyboard.</li>
-    </ul>
-    <P CLASS="Para"> Notice that the bookmark is removed from the Bookmarks view.</P>
-    <blockquote> 
-      <P CLASS="Para"> <img src="../images/Image54_bookmark_oneleft.gif" alt="Bookmark view" border="0" width="309" height="152"></P>
-    </blockquote>
-  </li>
-  <li>There should be one remaining bookmark. This bookmark is associated with 
-    a line in the file JanesFile.txt. There are two other approaches to removing 
-    this bookmark. 
-    <ul>
-      <li>Use <b>Remove Bookmark</b> in the marker bar of the JanesFile.txt editor. 
-        Remember, <b>Add Bookmark</b> was used <b></b>in the marker bar when the 
-        bookmark was first created.<br>
-        <img src="../images/Image54_bookmark_remove2.gif" alt="Bookmark menu" border="0" width="267" height="154"></li>
-      <li>Delete the bookmark (as was done above) by using <b>Delete</b> from 
-        the bookmark's popup menu in the Bookmarks view.</li>
-    </ul>
-    <p>Here is the second approach.&nbsp;</p>
-  </li>
-  <li> 
-    <P CLASS="Para">Ensure there is an editor open on JanesFile.txt.&nbsp;</P>
-    <P CLASS="Para">Although the editor doesn't actually need to be open, the 
-      editor update will be viewable as the bookmark is deleted.</P>
-  </li>
-  <li> 
-    <p CLASS="Head">In the Bookmarks view, select JanesFile.txt (the remaining 
-      bookmark). Click the Delete button <img src="../images/Image54_bookmark_del1.gif" alt="Bookmark delete button" border="0" width="27" height="22"> 
-      on the view's toolbar. Notice that the bookmark is removed from the Bookmarks 
-      view and the JanesFile.txt editor.&nbsp; </p>
-  </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39.htm
deleted file mode 100644
index 52e5dcf..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Rearranging views and editors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Rearranging views and editors</h2>
-<P CLASS="Para">This section will explain how to rearrange editors and views to 
-  customize the layout of the Workbench.</P>
-<P CLASS="Para"><b>Setup</b></P>
-<P CLASS="Para">Before rearranging the Workbench, a little housekeeping is required.</P>
-<ol>
-  <li>
-<P CLASS="Para">Start by choosing <b>Window &gt; Reset Perspective</b> and selecting <b>OK</b>. This will reset the
-current perspective to its original views and layout.</P>
-  </li>
-  <li>
-    <P CLASS="Para"> Ensure there are editors open for JanesFile.txt and JanesText.txt. 
-      Close any other editors including the Welcome Page. If necessary, the welcome 
-      page can be returned to by choosing <b>Help &gt; Welcome...</b> and selecting 
-      <b>Eclipse Platform</b>.</P>
-  </li>
-</ol>
-<P>The Workbench should now look like this:&nbsp;&nbsp;&nbsp; </P>
-
-
-<P>&nbsp;<img src="../images/Image55_reset.gif" alt="Workbench after reset" border="0" width="566" height="425">
-</P>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39c.htm
deleted file mode 100644
index 971e2a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39c.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Drop cursors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Drop cursors</h3>
-<P CLASS="Para"> Drop cursors indicate where it is possible to dock views in the 
-  Workbench window. Several different drop cursors may be displayed when rearranging 
-  views.</P>
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-</THEAD>
-<TBODY>
-<TR>
-<TD height="38" valign="top" align="left">
-<P CLASS="Para">
-<img src="../images/drop_top_source.gif" alt="Up arrow" border="0" width="16" height="19">
-</P>
-</TD>
-      <TD height="38" valign="top" align="left"> <P CLASS="Para"> Dock above: 
-          If the mouse button is released when a dock above cursor is displayed, 
-          the view will appear above the view underneath the cursor.</P>
-</TD>
-</TR>
-<TR>
-<TD height="38" valign="top" align="left">
-<P CLASS="Para">
-<img src="../images/drop_bottom_source.gif" alt="Down arrow" border="0" width="19" height="19">
-</P>
-</TD>
-      <TD height="38" valign="top" align="left"> <p CLASS="Para"> Dock below: 
-          If the mouse button is released when a dock below cursor is displayed, 
-          the view will appear below the view underneath the cursor. </TD>
-</TR>
-<TR>
-<TD height="38" valign="top" align="left">
-<P CLASS="Para"><img src="../images/drop_right_source.gif" alt="Right arrow" border="0" width="20" height="20">
-</P>
-</TD>
-      <TD height="38" valign="top" align="left"> <p CLASS="Para"> Dock to the right: 
-          If the mouse button is released when a dock to the right cursor is displayed, 
-          the view will appear to the right of the view underneath the cursor. 
-      </TD>
-</TR>
-<TR>
-<TD height="38" valign="top" align="left">
-<img src="../images/drop_left_source.gif" alt="Left arrow" border="0" width="20" height="20">
-</TD>
-      <TD height="38" valign="top" align="left"> Dock to the left: If the mouse button 
-        is released when a dock to the left cursor is displayed, the view will 
-        appear to the left of the view underneath the cursor. </TD>
-</TR>
-<TR>
-<TD height="38" valign="top" align="left">
-<img src="../images/drop_stack.gif" alt="Stack icon" border="0" width="20" height="20">
-</TD>
-      <TD height="38" valign="top" align="left"> Stack: If the mouse button is 
-        released when a stack cursor is displayed, the view will appear as a tab 
-        in the same pane as the view underneath the cursor. </TD>
-</TR>
-<TR>
-<TD height="38" valign="top" align="left">
-<img src="../images/drop_invalid_source.gif" alt="Restricted icon" border="0" width="21" height="21">
-</TD>
-      <TD height="38" valign="top" align="left"> Restricted: If the mouse button 
-        is released when a restricted cursor is displayed, the view will not dock 
-        there. For example, a view cannot be docked in the editor area. </TD>
-</TR>
-</TBODY>
-</TABLE>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39d.htm
deleted file mode 100644
index 477c7d0..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39d.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Rearranging views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Rearranging views</h3>
-<p CLASS="Head"> The position of the Navigator view in the Workbench window can 
-  be changed.</p>
-<ol>
-  <li> 
-    <p CLASS="Head"> Click in the title bar of the Navigator view and drag the 
-      view across the Workbench window. Do not release the mouse button yet.</p>
-  </li>
-  <li> 
-    <p CLASS="Head"> While still dragging the view around on top of the Workbench 
-      window, note that various drop cursors appear. These drop cursors (see previous 
-      section) indicate where the view will dock in relation to the view or editor 
-      area underneath the cursor when the mouse button is released. </p>
-  </li>
-  <li> 
-    <P CLASS="Para"> Dock the view in any position in the Workbench window, and 
-      view the results of this action. </P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Click and drag the view's title bar to re-dock the view in 
-      another position in the Workbench window. Observe the results of this action. 
-    </P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Finally, drag the Navigator view over the Outline view. A 
-      stack cursor will be displayed. If the mouse button is released the Navigator 
-      will be stacked with the Outline view into a tabbed notebook.&nbsp;&nbsp; 
-    </P>
-  </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39e.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39e.htm
deleted file mode 100644
index fb53f5f..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39e.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Tiling editors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Tiling editors</h3>
-<P CLASS="Para"> The Workbench allows for the creation of two or more sets of 
-  editors in the editor area. The editor area can also be resized but views cannot 
-  be dragged into the editor area.</P>
-<ol>
-  <li> 
-    <P CLASS="Para"> Open at least two editors in the editor area by double-clicking 
-      editable files in the Navigator view.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Click and drag one of the editor's tabs out of the editor 
-      area. Do not release the mouse button.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Notice that the restricted cursor displays if an attempt 
-      is made to drop the editor either on top of any view or outside the Workbench 
-      window.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Still holding down the mouse button, drag the editor over 
-      the editor area and move the cursor along all four edges as well as in the 
-      middle of the editor area, on top of another open editor. Notice that along 
-      the edges of the editor area the directional arrow drop cursors appear, 
-      and in the middle of the editor area the stack drop cursor appears.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Dock the editor on a directional arrow drop cursor so that 
-      two editors appear in the editor area.&nbsp;</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Notice that each editor can also be resized as well as the 
-      entire editor area to accommodate the editors and views as necessary.</P>
-  </li>
-  <li> 
-    <p CLASS="Para"> It is important to observe the color of an editor tab (in 
-      the figure below there are two groups, one above the other) 
-    <p CLASS="Para"><b>blue</b> - indicates that the editor is currently active</p>
-    <p CLASS="Para"><b>default </b>(gray on Windows XP) - indicates that the editor 
-      was the last active editor. If there is an active view, it will be the editor 
-      that the active view is currently working with. This is important when working 
-      with views like the Outline and Properties that work closely with the editor.</li>
-  <li> 
-    <P CLASS="Para"> Drag and dock the editor somewhere else in the editor area, 
-      noting the behavior that results from docking on each kind of drop cursor. 
-      Continue to experiment with docking and resizing editors and views until 
-      the Workbench has been arranged to satisfaction. The figure below illustrates 
-      the layout if one editor is dragged and dropped below another.</P>
-  </li>
-</ol>
-<P>&nbsp;<img src="../images/Image57_two_editors.gif" alt="Two editors" border="0" width="593" height="550"><br>
-</P>
-
-
-<P>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39f.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39f.htm
deleted file mode 100644
index 4c050a9..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39f.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Rearranging tabbed views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Rearranging tabbed views</h3>
-<P CLASS="Para">In addition to dragging and dropping views on the Workbench the 
-  order of views can also be rearranged within a tabbed notebook.</P>
-<ol>
-  <li>
-<P CLASS="Para">
-Choose <b>Window &gt; Reset Perspective</b> to reset the Resource perspective back to its
-original layout.&nbsp;</P>
-  </li>
-  <li>
-<P CLASS="Para">Click on the Outline title bar and drag it on top of the
-Navigator view. The Outline will now be stacked on top of the Navigator.&nbsp;</P>
-  </li>
-  <li>
-<P CLASS="Para">
-Click on the Navigator tab and drag it to the right of the Outline tab.</P>
-<P CLASS="Para"><img src="../images/Image60_tabs.gif" alt="tabs" border="0" width="99" height="20"></P>
-  </li>
-  <li>
-    <P CLASS="Para"> Once the cursor is to the right of the Outline tab and the 
-      cursor is a stack cursor release the mouse button.</P>
-<P CLASS="Para">Observe the Navigator tab is now to the right of the Outline tab.</P>
-<P CLASS="Para"><img src="../images/Image60_tabs2.gif" alt="tabs" border="0" width="98" height="19"></P>
-  </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39g.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39g.htm
deleted file mode 100644
index 01cf1d9..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-39g.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Maximizing</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Maximizing</h3>
-<P CLASS="Para">Sometimes it is useful to be able to maximize a view or editor. Maximizing both views and editors is easy.</P>
-<ul>
-  <li> To maximize a view, either double click on its title bar or choose <b>Maximize</b> 
-    from the popup menu available from the top left corner of the view.</li>
-  <li>
-    To maximize an editor double click on the editor tab or choose <b>Maximize</b> from the popup menu available from the
-    editor tab.</li>
-</ul>
-<p CLASS="Para">Restoring a view to its original size is done in a similar
-manner (double click or choose <b>Restore</b> from the menu).</p>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40.htm
deleted file mode 100644
index 1eb95cd..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fast views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Fast views</h2>
-<p CLASS="Head">Fast views are hidden views, which can be quickly made visible. 
-  They work the same as normal views, only when they are hidden they do not take 
-  up screen space on the Workbench window.&nbsp;</p>
-
-
-<P> This section we will explain how to convert the Navigator view into a fast 
-  view. </P>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40a.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40a.htm
deleted file mode 100644
index 253c44b..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40a.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating fast views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Creating fast views</h3>
-<p CLASS="Head">Fast views are hidden views, which can be quickly made visible. 
-  These instructions commence by creating a fast view from the Navigator view 
-  and then explain how to use the view once it is a fast view.&nbsp;</p>
-<p CLASS="Head">There are two ways to create a fast view</p>
-<ul>
-  <li> Using drag and drop.</li>
-  <li> Using a menu operation available from the view System menu.</li>
-</ul>
-<p CLASS="Head">Create a fast view using drag and drop as follows.</p>
-<ol>
-  <li>
-<P CLASS="Para">
-In the Navigator view click on the title bar and drag it to the
-shortcut bar at the far left of the window.&nbsp;</P>
-  </li>
-  <li>
-    <P CLASS="Para"> Once over the shortcut bar, the cursor will change to a stack 
-      cursor. Release the mouse button to drop the Navigator onto the shortcut 
-      bar. </P>
-<P CLASS="Para">The shortcut bar now includes a button for the Navigator fast view </P>
-<blockquote>
-<P CLASS="Para"><img src="../images/Image60_fast_view1.gif" alt="Fast view" border="0" width="92" height="165"></P>
-</blockquote>
-  </li>
-</ol>
-<P>To create a fast view using the second approach, start by popping up the context 
-  menu over icon in the top left corner of the Navigator view. From this menu, 
-  select <b>Fast View</b>. </P>
-
-
-<blockquote>
-<P><img src="../images/Image61_fast_options.gif" alt="Navigator view menu" border="0" width="161" height="226">
-</P>
-
-
-</blockquote>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40b.htm
deleted file mode 100644
index 72d81a2..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-40b.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with fast views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Working with fast views</h3>
-<p CLASS="Head">The navigator has now been converted into a fast view. This section 
-  will demonstrate what can now be done with it.</p>
-<p CLASS="Head">Confirm that the shortcut bar at the far left of the window still 
-  has the Navigator view and looks like this:</p>
-<blockquote>
-  <p CLASS="Head"><img src="../images/Image60_fast_view1.gif" alt="Fast view on shortcut bar" border="0" width="92" height="165"></p>
-</blockquote>
-<ol>
-  <li> 
-    <P CLASS="Para">In the shortcut bar click on the Navigator fast view button.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Observe the Navigator view slides out from the shortcut bar.&nbsp; 
-    </P>
-    <P CLASS="Para"> <img src="../images/Image61_nav_fast.gif" alt="Navigator view" border="0" width="353" height="324"></P>
-  </li>
-  <li> 
-    <p CLASS="Head">The Navigator fast view can be used as it would be normally.&nbsp;&nbsp;To 
-      resize a fast view, move the mouse to the right edge of the fast view where 
-      the cursor will change to a double-headed arrow. Then hold the left mouse 
-      button down as the mouse is moved. </p>
-  </li>
-  <li> 
-    <P CLASS="Para"> To hide the fast view simply click on another view or editor 
-      or click on the <b>Minimize</b> button on the fast view's toolbar </P>
-    <P CLASS="Para"> <img src="../images/Image61_fast_minimize.gif" alt="Minimize fast icon" border="0" width="242" height="94"> 
-    </P>
-    <P CLASS="Para">&nbsp; </P>
-    <P CLASS="Para"><b>Note:</b> If a file is opened from the Navigator fast view, 
-      the fast view will automatically hide itself to allow the file to be worked 
-      with.</P>
-  </li>
-</ol>
-<P>To convert a fast view back to a regular view either: </P>
-
-
-<ul>
-  <li>Click the Fast View button on the fast view's toolbar <br>
-    <img src="../images/Image61_fast_restore.gif" alt="Restore fast icon" border="0" width="241" height="102"><br>
-  </li>
-  <li>Choose <b>Fast View</b> from the context menu of the icon in the top left corner of
-    the view. </li>
-  <li>Drag the fast view icon from the tool bar, and drop it somewhere in the Workbench
-  window.
-  </li>
-  
-</ul>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43.htm
deleted file mode 100644
index 985c2f0..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Perspectives</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Perspectives</h2>
-<p class="Para" Type Label>A perspective defines the initial set and layout of
-views in the Workbench window. One or more perspectives can exist in a single
-Workbench window.&nbsp;&nbsp;</p>
-<p class="Para" Type Label>Perspectives can be opened in one of two ways:</p>
-<ul>
-  <li> In the same (existing) Workbench window.</p> 
-  <li> In a new Workbench window.</p> 
-</ul>
-<p class="Para" Type Label>Perspectives define visible action sets, which can 
-  be changed to customize a perspective. A perspective that is built in this manner 
-  can be saved, creating a custom perspective that can be opened again later.&nbsp;&nbsp;&nbsp;</p>
-<P CLASS="Para"> The Workbench window displays one or more perspectives. Initially 
-  one perspective, the Resource perspective, is displayed. A perspective consists 
-  of views such as the Navigator as well as editors for working with resources. 
-  More than one Workbench window can be open at any given time.&nbsp; </P>
-<P CLASS="Para"> So far, only the Resource perspective (shown below) has been 
-  used in this tutorial. This section will explore how to open and work with other 
-  perspectives. </P>
-<P CLASS="Para"> A perspective provides a set of capabilities aimed at accomplishing 
-  a specific type of task, or working with a specific type of resource.&nbsp;&nbsp; 
-</P>
-<P CLASS="Para">
-<img src="../images/Image1.gif" alt="Eclipse Workbench" border="0" width="579" height="414"> </P>
-<P>&nbsp;</P>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43b.htm
deleted file mode 100644
index 54d5ed7..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43b.htm
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>New perspectives</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-New perspectives</h3>
-<p CLASS="Head">There are several ways to open a new perspective within
-this Workbench window:</p>
-<ul>
-  <li>
-    Using the Open Perspective button 
-    <img src="../images/Image70_shortcut2.gif" alt="Open Perspectives" border="0" width="22" height="24">
-    on the shortcut bar.</li>
-  <li>
-    Choosing a perspective from the <b>Window &gt; Open Perspective</b> menu.&nbsp;</li>
-</ul>
-<p>To open one by using the shortcut bar button:</p>
-<ol>
-  <li>
-        <p CLASS="Para">Click on the Open Perspective button 
-        <img src="../images/Image70_shortcut2.gif" alt="Open Perspectives" border="0" width="22" height="24">.&nbsp;</p>
-      </li>
-  <li>
-        <p CLASS="Head">A menu appears showing the same choices as shown on the
-        <b>Window &gt; Open Perspective</b> menu. Choose <b>Other</b> from the menu.</p>
-        <blockquote>
-          <p CLASS="Head">
-          <img src="../images/Image70_shortcut3.gif" alt="Open Perspective Menu" border="0" width="184" height="184"></p>
-        </blockquote>
-      </li>
-  <li>
-        <p CLASS="Para">In the Select Perspective dialog
-        choose <b>Debug</b> and click <b>OK</b>.&nbsp;
-        <blockquote>
-        <p CLASS="Para">
-        <img src="../images/Image70_select_pers.gif" alt="Select Perspective" border="0" width="247" height="322"></blockquote>
-        <p CLASS="Para">The Debug perspective is displayed.&nbsp;&nbsp;</p>
-      </li>
-  <li>
-        <p CLASS="Para">There are several other
-        interesting things to take note of.&nbsp;
-        <ul>
-          <li>
-            
-        <p CLASS="Para">The title of the window now indicates that the Debug perspective 
-          is in use.&nbsp;</li>
-          <li>
-            <p CLASS="Para">The shortcut bar now contains two perspectives, the original
-            Resource perspective and the new Debug perspective.&nbsp;The Debug perspective button is pressed in, indicating that it is the
-            current perspective.<br>
-            <img src="../images/Image70_shortcut4.gif" alt="Debug Perspective" border="0" width="105" height="179"></li>
-        </ul>
-      </li>
-  <li>
-        
-    <p CLASS="Para">In the shortcut bar, click on the Resource perspective button. 
-      The Resource perspective is once again the current perspective. Notice that 
-      the set of views is different for each of the perspectives.&nbsp;</p>
-      </li>
-</ol>
-<p CLASS="Head">Earlier in this tutorial a Navigator fast view was created by 
-  dragging the Navigator view onto the shortcut bar. If this is done again, observe 
-  that the shortcut bar now has three areas:</p>
-<ol>
-  <li>
-    The Open Perspective button.</li>
-  <li> The list of open perspectives. In the figure below the Resource and Debug 
-    perspectives are open and the Resource perspective is the current perspective.</li>
-  <li>
-    The list of fast views. In the figure below there is one
-    fast view, the Navigator.&nbsp;&nbsp;</li>
-</ol>
-<blockquote>
-  <p CLASS="Head">
-<img src="../images/Image70_shortcut1.gif" alt="Resource Perspective" border="0" width="203" height="234">&nbsp;</p>
-</blockquote>
-<p CLASS="Head">In step 5 above, it was observed that the set of views are different 
-  between the open perspectives. Similarly each perspective has its own list of 
-  fast views.&nbsp;</p>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43c.htm
deleted file mode 100644
index 08cacdc..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43c.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>New windows</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-New windows</h3>
-<p CLASS="Head">As well as opening a perspective inside the current Workbench 
-  window, new perspectives can also be opened in their own window.</p>
-<p CLASS="Head">By default, new perspectives are opened in the current window. 
-  This default behavior can be configured using <b>Window &gt; Preferences &gt; 
-  Workbench &gt; Perspectives</b>.</p>
-<blockquote>
-<P>&nbsp;<img src="../images/Image71_pers_pref.gif" alt="Perspective preferences" border="0" width="503" height="284">
-</P>
-
-
-</blockquote>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43e.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43e.htm
deleted file mode 100644
index 9ff8ff2..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43e.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Saving perspectives</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Saving
-perspectives</h3>
-<P CLASS="Para">This tutorial has demonstrated how to add new views to the perspective, 
-  rearrange the views and convert views into fast views. The Workbench also allows 
-  this layout to be savefor future use.</P>
-<ol>
-  <li> 
-    <p CLASS="Para">In the shortcut bar click on the Resource perspective.&nbsp;The 
-      Resource perspective is now active.</p>
-  </li>
-  <li> 
-    <p CLASS="Para">Drag the Outline view and stack it with the Navigator view.</li>
-  <li> 
-    <p CLASS="Para">Choose <b>Window &gt; Save Perspective As...</b></p>
-  </li>
-  <li> 
-    <p CLASS="Para">The Save Perspective As dialog allows for an existing perspective 
-      to be redefined or for a new perspective to be created. 
-    <p CLASS="Para">Click <b>OK</b> to update the Resource perspective and <b>Yes</b> 
-      to the subsequent confirmation dialog. The new perspective layout will be 
-      used if the perspective is reset or if a new one is opened.</p>
-    <blockquote> 
-      <p CLASS="Para"><img src="../images/Image71_pers_save.gif" alt="Saving Perspective" border="0" width="275" height="411"></p>
-    </blockquote>
-  </li>
-  <li> 
-    <P CLASS="Para">In the Resource perspective move the Outline view so that 
-      it is now stacked with the Tasks view.</P>
-  </li>
-  <li> 
-    <p CLASS="Para">Choose <b>Window &gt; Reset Perspective</b>. Notice the Outline 
-      view is stacked with the Navigator. Originally when the Workbench was first 
-      started it was below the Navigator, but because the perspective was saved 
-      with Repositories and Outline stacked, it now considers this its initial 
-      layout.&nbsp;&nbsp;</p>
-  </li>
-  <li> 
-    <P CLASS="Para">Choose <b>Window &gt; New Window</b> to open a second window 
-      showing the resource perspective. Observe that it uses the newly saved layout.&nbsp;</P>
-  </li>
-  <li> 
-    <P CLASS="Para">Close the second window.</P>
-  </li>
-</ol>
-<p CLASS="Para">While the Resource perspective has been changed, there is a way 
-  to get back the original layout. To reset the Resource perspective to its original 
-  layout:</p>
-<ol>
-  <li> 
-    <p CLASS="Para">Choose <b>Window &gt; Preferences</b>.</p>
-  </li>
-  <li> 
-    <p CLASS="Para">Expand <b>Workbench</b> and choose <b>Perspectives</b>.</p>
-  </li>
-  <li> 
-    <p CLASS="Para">Select the <b>Resource</b> perspective and click the <b>Reset</b> 
-      button and then Click <b>OK</b>. 
-    <blockquote> 
-      <p CLASS="Para"><img src="../images/Image71_pers_reset.gif" alt="Reset Perspective" border="0" width="607" height="541"></blockquote>
-  </li>
-  <li> 
-    <p CLASS="Para">Any changes to the saved state of the perspective has now 
-      been undone . To update the current copy of the Resource perspective that 
-      is being worked with, also choose <b>Window &gt; Reset Perspective</b> from 
-      the Workbench's menubar.&nbsp;</p>
-  </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43f.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43f.htm
deleted file mode 100644
index 2f47b3a..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-43f.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Configuring perspectives</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Configuring
-perspectives</h3>
-<p CLASS="Para">In addition to configuring the layout of a perspective you can 
-  also control several other key aspects of a perspective. These include:</p>
-<ul>
-  <li> The <b>New</b> menu.</li>
-  <li> The <b>Window &gt; Open Perspective</b> menu.</li>
-  <li> The <b>Window &gt; Show View</b> menu.</li>
-  <li> Action sets that show up on the toolbar.</li>
-</ul>
-<p CLASS="Para">Try customizing one of these items.&nbsp;</p>
-<ol>
-  <li>
-        <p CLASS="Para">In the shortcut bar click on the Resource perspective.&nbsp;</p>
-      </li>
-  <li>
-        <p CLASS="Para">Select <b>Window &gt; Customize Perspective...</b></li>
-  <li>
-        <p CLASS="Para">Expand <b>Other</b>.&nbsp;</p>
-      </li>
-  <li>Check <b>Launch</b> and click <b>OK</b>.
-        <blockquote>
-          <p>
-          <img src="../images/Image71_pers_customize.gif" alt="Customizing Perspective" border="0" width="417" height="479"></p>
-        </blockquote>
-      </li>
-  <li>Observe that the toolbar now
-        includes buttons for debug/run launching.
-        <blockquote>
-          <p>
-          <img src="../images/Image71_pers_rundebug.gif" alt="Customized Perspective" border="0" width="523" height="276"></p>
-        </blockquote>
-      </li>
-  <li>
-        
-    <p CLASS="Para">After experimenting with the other options on the Customize 
-      Perspective dialog, choose <b>Window &gt; Reset Perspective</b> to return 
-      the perspective to its original state.&nbsp; </p>
-      </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52.htm
deleted file mode 100644
index a610f38..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Comparing</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Comparing</h2>
-<P CLASS="Para"> The Workbench allows for the comparison of multiple resources 
-  and for the presentation of the results in a special compare editor. </P>
-<P CLASS="Para"><b>Setup</b> </P>
-<P CLASS="Para">Before commencing with compare a few files must be created. This 
-  will also be a good time to recap some of the basic features that have already 
-  been introduced.</P>
-<ol>
-  <li>
-        <p CLASS="Para">Start by selecting all of the projects in the Navigator
-        and deleting them by using <b>Delete</b> on the pop-up menu.</p>
-      </li>
-  <li>
-        
-    <p CLASS="Para">Create a new simple project using <b>File &gt; New &gt; Project</b>. 
-      Be sure to give the project a distinct name by typing unique name as the 
-      name of the new project (for example, &quot;JaneQUserCompare&quot;). Do 
-      not use spaces or special characters in the project name.</li>
-  <li>
-        <p CLASS="Para">Use the project's pop-up menu to create a file called
-        file1.txt.</p>
-        <p CLASS="Para">In the editor for file1.txt type the following lines of
-        text and save the file:</p>
-        <blockquote>
-          <p CLASS="Para"><i>This is line 1.<br>
-          This is line 2.<br>
-          This is line 3.<br>
-          This is line 4.<br>
-          This is line 5.</i></p>
-        </blockquote>
-      </li>
-  <li>
-        <p CLASS="Para">In the Navigator select
-        file1.txt and use Ctrl+C to copy the file.</li>
-  <li>
-        <p CLASS="Para">Use Ctrl+V (Paste) to create the copy. In the name
-        conflict dialog which appears, rename the file to file2.txt.</li>
-</ol>
-<P>There are now two identical files, file1.txt and file2.txt. </P>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52c.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52c.htm
deleted file mode 100644
index 25d341b..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52c.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Simple compare</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Simple compare</h3>
-<p CLASS="Head"> In the Navigator select file1.txt and file2.txt choose <b>Compare 
-  With &gt; Each Other</b> from the context menu.&nbsp;</p>
-<p CLASS="Head"> A dialog will appear indicating that the two files are the same.&nbsp;</p>
-<p CLASS="Head"><img src="../images/Image80_compare.gif" alt="Compare popup" border="0" width="443" height="148"></p>
-<p CLASS="Head">Edit file1.txt as follows:</p>
-<ul>
-  <li>
-    delete&nbsp; line 1&nbsp; &quot;<i>This is line 1.&quot;</i></li>
-  <li>
-    change line 3 to be &quot;This is a much better line
-    3.&quot;</li>
-  <li>
-    insert a line 4a (before line 5) that reads &quot;This is
-    line 4a and it is new&quot; </li>
-</ul>
-<p CLASS="Head">The file (file1.txt) should now read as follows:&nbsp; </p>
-<blockquote>
-  <p><i>This is line 2.<br>
-  This is a much better line 3.<br>
-  This is line 4.<br>
-  This is line 4a and it is new<br>
-  This is line 5.</i></p>
-</blockquote>
-<p>Save the contents of the file by choosing <b>File &gt; Save</b> (or pressing
-Ctrl+S).</p>
-<p>To compare the files, once again select file1.txt and file2.txt and choose 
-  <b>Compare With &gt; Each Other</b> in the Navigator's context menu.</p>
-<p>A special compare editor opens. The next section will explain how to use this 
-  compare editor.</p>
-<blockquote>
-<P><img src="../images/Image80_compare_editor.gif" alt="Compare Editor" border="0" width="631" height="236">
-</P>
-
-
-</blockquote>
-
-
-<p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</p>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52d.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52d.htm
deleted file mode 100644
index c051b22..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52d.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Understanding the comparison</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Understanding the comparison</h3>
-<p CLASS="Head">Comparing file1.txt and file2.txt resulted in the following
-compare editor. The left side shows the contents of file1.txt and the right side
-shows the contents of file2.txt. The lines connecting the left and right panes
-indicate the differences between the files.</p>
-<p CLASS="Head">If more room is needed to look at the comparison, the editor tab 
-  can be double clicked to maximize the editor.&nbsp;</p>
-<p CLASS="Head">
-<img src="../images/Image80_compare_editor2.gif" alt="Compare editor" border="0" width="545" height="235">&nbsp;&nbsp;</p>
-<p CLASS="Head"> The numbered changes on the left side of the difference editor 
-  are as follows:</p>
-<ul>
-  <li> Starting with the top line (in the left pane) the difference bar (in the 
-    area of the blue circle) indicates something is missing from the very top 
-    of the left file. Follow the difference band (see #1) to the right file. It 
-    contains &quot;This is line 1&quot; .</li>
-  <li> The next line &quot;This is line 2.&quot; is white indicating it matches 
-    the right file.</li>
-  <li> Moving onto the next line (colored in the background color), see that the 
-    left file and right file have different contents for this line (see #2).</li>
-  <li> The next line (This is line 4) is once again in white, so it can be skipped.</li>
-  <li> The next line exists in the left file&nbsp; but since it is in the background 
-    color its difference bar can be followed to the right (see #3) and notice 
-    that the right file does not contain the line (see red circle).</li>
-</ul>
-<p CLASS="Head">Initially the compare editor might seem a bit daunting but when 
-  simply working down the left side and focusing on the items marked as gray, 
-  and those items missing from the left side, it turns out not to be as tricky 
-  as it first seems. 
-<p CLASS="Head">
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52e.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52e.htm
deleted file mode 100644
index a28ea13..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-52e.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with the comparison</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Working with the comparison</h3>
-<p CLASS="Head">Comparing file1.txt and file2.txt resulted in the following compare 
-  editor. This section demonstrates how to use the compare editor to resolve the 
-  differences between the two files.</p>
-<p>
-<img src="../images/Image80_compare_editor.gif" alt="Compare editor" border="0" width="631" height="236"></p>
-<p>There are two parts to the compare editor's local toolbar. Move to the next 
-  or previous change using the right group of local toolbar buttons (#1).&nbsp;</p>
-<blockquote>
-<p>
-<img src="../images/Image80_compare_editor3.gif" alt="Compare buttons" border="0" width="162" height="51"></p>
-</blockquote>
-<ol>
-  <li>Click the Select Next Change button&nbsp; 
-  <img src="../images/Image80_compare_editor_next.gif" alt="Compare editor next button" border="0" width="23" height="23">.
-        Observe how it selects the next difference.</li>
-  <li>
-        <p CLASS="Para">Click Select Next
-        Change button a second time to go to the next change.&nbsp;</p>
-      </li>
-  <li>
-        <p CLASS="Para">Click the Select Previous Change
-        button.</p>
-      </li>
-</ol>
-<p>To merge changes from the left file to the right file and vice versa use the 
-  left group of local toolbar buttons (see #2). There are four types of merges 
-  that can be performed:</p>
-<ul>
-  <li>Copy whole document from left to right.&nbsp;</li>
-  <li>Copy whole document from right to left.</li>
-  <li>Copy current change from left to right.</li>
-  <li>Copy current change from right to left.</li>
-</ul>
-<p> Typically the copy whole document actions are used when the entire file on 
-  either the left or right can just be replaced by the contents of the other file.</p>
-<p> The Copy current change buttons allow a single change to be merged.&nbsp;&nbsp;</p>
-<ol>
-  <li>
-        <p CLASS="Para">Ensure that the second difference is selected (as shown
-        below):</p>
-        <p CLASS="Para">
-        <img src="../images/Image80_compare_change2.gif" alt="Compare editor" border="0" width="533" height="236"></p>
-        </li>
-  <li>
-        <p CLASS="Para">Click&nbsp;Copy
-        current change from right to
-        left 
-        <img src="../images/Image80_compare_rl.gif" alt="Compare editor right to left button" border="0" width="29" height="22">
-        button. Observe
-        that the selected text from the right file is copied to the left file.
-        <p CLASS="Para"><img src="../images/Image80_compare_after.gif" alt="Compare editor" border="0" width="544" height="235"></p>
-      </li>
-  <li>
-        
-    <p CLASS="Para">Close the compare editor and choose <b>Yes</b> to save the 
-      changes. Alternatively, save the changes by choosing <b>File &gt; Save</b> 
-      (Ctrl+S).&nbsp;</p>
-      </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-55.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-55.htm
deleted file mode 100644
index f6c819f..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-55.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Local history</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Local history</h2>
-<P CLASS="Para"> Every time an editable file is saved in the Workbench, the Workbench 
-  updates the local history of that file and logs the changes that have been made. 
-  The local history of a file can then be accessed and a previously saved copy 
-  of the file can be reverted to, as long as the desired state is recent enough 
-  in the save history.</P>
-<ol>
-  <li>
-<P CLASS="Para">
-Create a new file named sampleFile.txt.</P>
-  </li>
-  <li>
-<P CLASS="Para">
-In the editor for sampleFile.txt modify the resource by adding the line
-&quot;change1&quot; and saving the file.</P>
-  </li>
-  <li>Repeat this by entering a new line &quot;change2&quot; and saving it again.
-  </li>
-  <li>Add
-a third line &quot;change3&quot; and save it again. </li>
-  <li>
-<P CLASS="Para">
-From the resource's context menu in the Navigator view, select <b>Replace With &gt; Local History</b>.</P>
-  </li>
-  <li>
-<P CLASS="Para">The Replace from Local History dialog opens and shows the 
-previous local history&nbsp; of the file.</P>
-<P CLASS="Para">&nbsp;<img src="../images/Image81_local.gif" alt="Local history" border="0" width="482" height="404"></P>
-    <P CLASS="Para">The left pane of the dialog contains the Workbench's copy 
-      of the file. The figure above shows that the Workbench contains the copy 
-      with all 3 lines - the same copy that is currently shown in the editor area 
-      of the Workbench.&nbsp;<br>
-&nbsp;</P>
-<P CLASS="Para">The first item in the local history (see above) contains the
-last saved copy of the file. This is the one with only two lines of text. The
-final entry in the tree is the first copy of the file.<br>
-&nbsp;</P>
-    <P CLASS="Para">The bottom area of the dialog displays the differences between 
-      the Workbench file and the specific copy of the file selected in the local 
-      history.&nbsp;&nbsp;</P>
-  </li>
-  <li>Select the first item (shown above) in the local history. The right pane should
-show one line of text.&nbsp; </li>
-  <li>
-<P CLASS="Para">Click <b>Replace</b>. This replaces the Workbench's copy of
-sampleFile.txt with the chosen local history item.</P>
-  </li>
-  <li>
-<P CLASS="Para">Observe that the sampleFile.txt editor now contains two
-lines.&nbsp;</P>
-  </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-55b.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-55b.htm
deleted file mode 100644
index ec76918..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-55b.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Exiting the Workbench</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Exiting the Workbench</h2>
-<P CLASS="Para"> Each time the Workbench is exited, the Workbench is automatically 
-  saved, including all open perspectives and windows. The next time the Workbench 
-  is reopened, it will appear exactly as it was when it was last closed.</P>
-<p> To exit the Workbench, select <b>File &gt; Exit</b> from the menu bar. A prompt 
-  will ask if the user really wishes to exit the workbench. </p>
-<p><strong>Note: </strong>This dialog also has an option to turn off the prompting.</p>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-60_team.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-60_team.htm
deleted file mode 100644
index b592c29..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-60_team.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Team CVS tutorial</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> Team CVS tutorial</H1>
-<P>This chapter will explain how to use the CVS team capabilities built into the 
-  Workbench. The steps in this chapter are team oriented; it will be difficult 
-  to complete these tutorials if others are not simultaneously working through 
-  this chapter. </P>
-
-
-<P>Instructions will be given explaining how to work on a project and then commit 
-  changes to the repository for others on the team to use. By continuing to work 
-  on the project alongside other users, this section will demonstrate how to commit 
-  resources that other users may be simultaneously working on, and how to update 
-  a workspace with changes others make in the project. </P>
-<P>Remember, before getting started, entice at least one coworker into working 
-  through these steps as well. </P>
-
-
-<UL CLASS="UnorderedList">
-
-</UL>
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-60a_setup.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-60a_setup.htm
deleted file mode 100644
index 5920750..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-60a_setup.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting up a repository</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2> Setting up a CVS repository</h2>
-<P CLASS="Para">
-A repository is a persistent store that coordinates multi-user access to the
-resources being developed by a team. The Workbench comes with CVS support
-built-in. The CVS server is available at <a href="http://www.cvshome.org" target="_blank">http://www.cvshome.org</a>.&nbsp;</P>
-<P CLASS="Para"> Refer to this site for information on how to install and configure 
-  a CVS repository including user access and passwords.</P>
-<p>In order to continue with this tutorial, access to a CVS repository is required.</p>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61c_offline.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61c_offline.htm
deleted file mode 100644
index ac0ec52..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61c_offline.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Starting offline</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h2>Starting offline</h2>
-  
-<P CLASS="Para">The team CVS tutorial will start by working offline and creating 
-  a simple project. Once the project is created, instructions will be given explaining 
-  how to commit it to the repository.&nbsp;</P>
-<ol>
-  <li>
-    <P CLASS="Para">Create a new &quot;Simple&quot; project using <b>File &gt; 
-      New &gt; Project</b>. Use a unique name as the project name (e.g. JanesTeamProject).&nbsp; 
-    </P>
-  </li>
-  <li>Create a folder named folder1. </li>
-  <li>Create two text files (.txt) in folder1 called&nbsp; file1.txt and file2.txt.
-Their contents should be as follows:
-<p>file1.txt</p>
-<blockquote>
-  <p><i>This is the contents<br>
-  of file 1.</i></p>
-</blockquote>
-<p>file2.txt</p>
-<blockquote>
-  <p><i>File2 is a small file&nbsp;&nbsp;<br>
-  with simple text.</i></p>
-</blockquote>
-<p>The Navigator should now appear as follows:</p>
-<blockquote>
-  <p>
-  <img src="../images/Image82_nav.gif" alt="Navigator view" border="0" width="129" height="141"></p>
-</blockquote>
-  </li>
-</ol>
-
-
-<P>The project can be continued with in this mode but unless the project is committed 
-  into the repository, others on the team will be unable to work on the project 
-  as well. </P>
-
-
-<P><br>
-  <a href="../hglegal2003.htm"> <img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a> 
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repoloca.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repoloca.htm
deleted file mode 100644
index ce6132c..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repoloca.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Sharing the project</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2> Sharing the project</h2>
-<DIV CLASS="Subtopic"> The project has been created in offline mode. To make this 
-  project available to other team members two things must be done: 
-  <ol>
-    <li> Specify the location of the team's CVS repository.</li>
-    <li> Commit the work into that repository.&nbsp;</li>
-</ol>
-</DIV>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repolocb.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repolocb.htm
deleted file mode 100644
index f64dc89..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61d_repolocb.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Specifying a repository location</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Specifying a repository location</h3>
-<p CLASS="Head">Before it is possible to share the project with other users an 
-  available repository must first be specified.</p>
-<ol>
-  <li>Open the CVS Repository Exploring perspective. The top left view shows all 
-    of the CVS repositories that are currently being worked with. As can be seen, 
-    the view is empty, meaning a repository still needs to be specified. </li>
-  <li>In the context menu of the CVS Repositories view choose <b>New &gt;&nbsp;Repository 
-    Location</b>. 
-    <blockquote> 
-      <blockquote> 
-        <p> <img src="../images/Image82_repo_new.gif" alt="CVS Repositories view" border="0" width="308" height="110"></p>
-      </blockquote>
-    </blockquote>
-  </li>
-  <li>In the CVS Repository Location wizard, the location of the repository and 
-    the login information needs to be filled in. Assistance from a repository 
-    administrator may be required in order to fill in the necessary information. 
-    <blockquote> 
-      <p> <img src="../images/Image82_repo_new3.gif" alt="Add CVS Repository dialog" border="0" width="438" height="478"></p>
-    </blockquote>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b> Host </b> field, type the address of the host 
-      (for example, &quot;teamsamples.com&quot;).</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b> Repository path </b> field, type the path for 
-      the repository at the host address (for example, &quot;/home/cvsroot/repositoryName&quot;).</P>
-  </li>
-  <li> 
-    <P CLASS="Para">In the <b> User </b> field, type the user name under which 
-      to connect.</P>
-  </li>
-  <li> 
-    <P CLASS="Para">In the <b>Password</b> field, type the password.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the <b> Connection type </b> field, select the type of 
-      CVS connection for the repository (The default is pserver). </P>
-  </li>
-  <li> 
-    <P CLASS="Para"> Leave<b> Use Default Port</b> enabled.&nbsp;</P>
-  </li>
-  <li>By default the <b>Validate Connection on Finish<b> option </b></b>is checked.&nbsp; 
-  </li>
-  <li> 
-    <P CLASS="Para"> Click <b>Finish</b> when done.</P>
-    <P CLASS="Para"> Since <b>Validate location on finish </b>was checked,<b> 
-      </b>the wizard will now attempt to validate the information by connecting 
-      to the repository. In doing so it may prompt for a password. <strong>Note: 
-      </strong>The repository connection is only used to validate the information.</P>
-  </li>
-  <li> 
-    <P CLASS="Para">Observe that the CVS Repositories view now shows the new repository 
-      location.</P>
-    <P CLASS="Para"> <img src="../images/Image82_repo_view1.gif" alt="CVS Repositories view" border="0" width="295" height="50"></P>
-  </li>
-</ol>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61e_whatisloc.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61e_whatisloc.htm
deleted file mode 100644
index dbf0017..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61e_whatisloc.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>What is a repository location?</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Repository locations</h3>
-<DIV CLASS="Subtopic">
-
-  <p CLASS="Para">Now that a new repository location has been added to the CVS 
-    Repositories view, the following will explain what a repository location is 
-    or, more importantly, what it isn't.</p>
-  <p CLASS="Para">A repository location is not an actual live connection. Instead, 
-    it is a description of where the repository is located. At a later time, when 
-    instructions are given explaining how to commit work to the repository or 
-    update with work done by others, the Workbench will create a connection based 
-    on this location information. Connections will be opened and closed as required 
-    when performing CVS team operations, and those connections will be based on 
-    the information provided in the repository location. </p>
-  <p CLASS="Para">When disconnected from the network the CVS Repositories view 
-    continues to display the list of known repository locations. In addition, 
-    the projects themselves will still know the repository location they are associated 
-    with. 
-</DIV>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61f_syncproject.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61f_syncproject.htm
deleted file mode 100644
index 2efadb5..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-61f_syncproject.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Synchronizing our project</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3> Synchronizing a project</h3>
-<P CLASS="Para"> Now that a project has been created and a repository location 
-  has been specified, the project can be made available to other team members.</P>
-<ol>
-  <li> 
-    <P CLASS="Para"> In the Navigator view select the project JanesTeamProject.</P>
-  </li>
-  <li> 
-    <P CLASS="Para">From the project's context menu choose <b>Team &gt; Share 
-      Project</b>. If more than one repository provider is installed, select <strong>CVS 
-      </strong>and select <strong>Next</strong>.</P>
-  </li>
-  <li> 
-    <P CLASS="Para"> In the sharing wizard page, select the location that was 
-      previously created.</P>
-    <blockquote> 
-      <p><img src="../images/Image82_repo_sync1.gif" alt="Set Project Sharing" border="0" width="438" height="457"></p>
-    </blockquote>
-  </li>
-  <li> 
-    <P CLASS="Para"> Click <b>Finish</b> when done.</P>
-  </li>
-  <li>Observe that the Synchronize view automatically opens. The next section 
-    will show how to use this view to commit work to the repository. 
-    <blockquote> 
-      <p><img src="../images/Image82_repo_team.gif" alt="Team Perspective" border="0" width="503" height="420"></p>
-    </blockquote>
-  </li>
-</ol>
-
-
-<P><br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-62b_sync.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-62b_sync.htm
deleted file mode 100644
index 4c05afa..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-62b_sync.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Synchronize view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Synchronize view</h3>
-<P>The Synchronize view provides a single place where both the changes that have 
-  been made locally, and changes others have made and committed to the repository 
-  can be viewed. In addition to providing a combined <i>local + remote</i> resource 
-  tree, it allows changes to be made in the repository (commit), and allows the 
-  user to access the changes others have made (update). </P>
-
-<P>When looking at the Synchronize view in more detail the first thing to notice 
-  is that the title of the view indicates that the &quot;Outgoing Mode&quot; is 
-  active and the Outgoing Mode button (see A) is pressed in. Changes that have 
-  been made locally can be committed to the repository using Outgoing Mode. By 
-  default, if the Repository is synchronized with and the repository has no changes, 
-  outgoing mode is automatically displayed to allow the user to quickly commit 
-  changes. </P>
-<blockquote>
-  <P><img src="../images/Image82_repo_syncview.gif" alt="Synchronize - Release Mode" border="0" width="503" height="420"> 
-  </P>
-
-
-</blockquote>
-<P CLASS="Para">&nbsp;</P>
-
-<P>In &quot;Outgoing Mode&quot; the top area (#1) shows all of the resources that
-need to be committed.
-</P>
-
-
-<P>The bottom area (#2 and #3) is the text compare area that was introduced in 
-  the basic tutorial. By double-clicking on a resource in the <b>Structured Compare</b> 
-  list the lower area displays the differences between what is in the Workbench 
-  (#2) versus what is currently in the repository (#3). </P>
-
-
-<P>Switch between outgoing mode and other synchronization modes with Toolbar buttons 
-  (A). </P>
-
-
-<p>Merge changes between a file and the repository copy of the file with the lower 
-  toolbar (B).</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-62c_releasing.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-62c_releasing.htm
deleted file mode 100644
index 14ddb67..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-62c_releasing.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Committing</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Committing</h3>
-<P>Now that we have a better understanding of the Synchronize view let's go
-ahead and commit the work we have done.
-</P>
-
-
-<ol>
-  <li>
-<P CLASS="Para">
-In the <b>Structure Compare</b> list select file1.txt</P>.
-<blockquote>
-      <P CLASS="Para"> <img src="../images/Image82_repo_release.gif" alt="Structure Compare" border="0" width="348" height="148"></P>
-</blockquote>
-  </li>
-  <li>
-    <P CLASS="Para"> Pop-up the menu and choose <b>Commit</b>. Click <b>OK</b> when asked to 
-      add and to supply a commit comment.</P>
-  </li>
-  <li>Observe that file1.txt is no longer in the list.
-<blockquote>
-      <p><img src="../images/Image82_repo_release2.gif" alt="Structure Compare" border="0" width="339" height="147"></p>
-</blockquote>
-  <p>In addition to committing individual resources we can also select
-the project and commit all of the changes in the project.</p>
-  </li>
-  <li>Select JanesTeamProject. </li>
-  <li>Choose <b>Commit</b> from the project's context menu and type in &quot;my first
-project&quot; when prompted for a commit comment.
-<p>Observe that the remaining resources in the project are committed and the
-structure compare list is now empty.&nbsp;</p>
-  </li>
-  <li>Click on the Resource perspective button in the shortcut bar (at the far left of
-the window).
-<blockquote>
-  <blockquote>
-        <p><img src="../images/Image82_repo_res.gif" alt="Resource Perspective" border="0" width="324" height="79"></p>
-  </blockquote>
-</blockquote>
-  </li>
-  <li>In the navigator create a third file called file3.txt with the following
-contents:
-<blockquote>
-  <p><i>This is the brief contents<br>
-  of file 3.</i></p>
-</blockquote>
-  </li>
-  <li>Select the project (JanesTeamProject) and choose <b>Team &gt; Synchronize with
-Repository</b> again from the context menu.
-<p>When the
-Synchronize view opens, there is only one change, the new file3.txt.</p>
-<blockquote>
-      <p><img src="../images/Image82_repo_rel5.gif" alt="Outgoing mode" border="0" width="339" height="108"></p>
-</blockquote>
-  </li>
-  <li>Select file3.txt, and choose <b>Commit</b> from the context menu. </li>
-</ol>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64a_another.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64a_another.htm
deleted file mode 100644
index 9952250..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64a_another.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with another user</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>
-Working with another user</h2>
-<P>We have seen how to create a project and commit it to the repository. We
-first specified our repository location. Next we shared our project with that location and
-the HEAD branch.  Then we synchronized our project to open the Synchronize view.  Finally
-we committed the resources using the Synchronize view.
-</P>
-
-
-<P>The repository currently contains our project and the three files that we
-committed (file1.txt, file2.txt and file3.txt).
-</P>
-
-
-<P>It's time to find that coworker (let's call him Fred) to work through some
-steps with you. In this section we will learn how two people can work on the
-same project and simultaneously commit changes to the repository.  Specifically
-we will do the following:
-</P>
-
-<ul>
-  <li>Fred will add the project to his Workbench</li>
-  <li>Fred will make changes to file1.txt and file2.txt</li>
-  <li>You will simultaneously make changes to file2.txt and file3.txt</li>
-  <li>Fred will synchronize and commit his (outgoing) changes to the two files.</li>
-  <li>You will synchronize to commit your changes at which time you
-    will discover there are outgoing (file3.txt), incoming (file1.txt) and
-    conflicts (file2.txt).&nbsp;</li>
-</ul>
-<TABLE BORDER="0" cellspacing="0" cellpadding="3" width="568">
-<TR>
-<TD valign="top" width="71" align="left">
-<b>incoming</b>
-</TD>
-<TD valign="top" width="481" align="left">
-Changes that are in the repository, which you have not yet updated to.
-</TD>
-</TR>
-<TR>
-<TD valign="top" width="71" align="left">
-<b>outgoing</b>
-</TD>
-<TD valign="top" width="481" align="left">
-Changes that you are committing.
-</TD>
-</TR>
-<TR>
-<TD valign="top" width="71" align="left">
-<b>conflict</b>
-</TD>
-<TD valign="top" width="481" align="left">
-Both you and the repository have modifications to the same resource.
-</TD>
-</TR>
-</TABLE>
-
-
-<P><br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredadd.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredadd.htm
deleted file mode 100644
index adf7970..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredadd.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Checking out a project</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3> Checking out a project</h3>
-<P CLASS="Para">Coworker Fred has several tasks in front of him:&nbsp;</P>
-<ul>
-  <li>Fred will add the project to his Workbench</li>
-  <li>Fred will make changes to file1.txt and file2.txt</li>
-  <li>Fred will synchronize and commit his outgoing changes to the two files.</li>
-</ul>
-<p>Fred's first step is to add the project to his workspace as follows:</p>
-<ol>
-  <li>In the CVS Repositories view context menu choose 
-      <b>New &gt;&nbsp; Repository Location</b>
-      <blockquote>
-  <blockquote>
-    <p><img src="../images/Image82_repo_new.gif" alt="Context menu" border="0" width="308" height="110"></p>
-  </blockquote>
-</blockquote>
-  </li>
-  <li>
-<p CLASS="Para">
-In the CVS Repository Location wizard fill in the same repository location that
-Jane filled in.
-  </li>
-  <li>
-      
-    <P CLASS="Para">In the CVS Repositories view expand the repository location, 
-      then expand HEAD.</P>
-<P CLASS="Para">Under HEAD you should see the project (JanesTeamProject) that
-Jane created.</P>
-<blockquote>
-  <blockquote>
-        <P CLASS="Para"><img src="../images/Image83_fred1.gif" alt="Repositories View" border="0" width="294" height="170"></P>
-  </blockquote>
-</blockquote>
-  </li>
-  <li>Expand folder1 and you should see the three files that Jane created.
-<blockquote>
-      <p><img src="../images/Image83_fred2.gif" alt="Repositories View" border="0" width="295" height="203"></p>
-</blockquote>
-  </li>
-  <li>Select the project and choose <b>Checkout as Project</b>
-      from the context menu. 
-      <blockquote>
-      <p><img src="../images/Image83_fred3_add.gif" alt="Add to Workspace" border="0" width="395" height="333"></p>
-</blockquote>
-  </li>
-  <li>Select the Navigator view and observe&nbsp;that it now includes the project
-    JanesTeamProject. </li>
-</ol>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredmod.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredmod.htm
deleted file mode 100644
index 4672cb1..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64b_fredmod.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Another user making changes</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Another user making changes</h3>
-<p CLASS="Para">Now that Fred has the project in his Workbench he needs to modify 
-  several of the files and synchronize with the repository in order to commit 
-  them.</p>
-<ul>
-  <li>Fred will make changes to file1.txt and file2.txt</li>
-  <li>You will simultaneously make changes&nbsp; to file2.txt and file3.txt</li>
-  <li>Fred will synchronize and commit his outgoing changes to the two files.</li>
-</ul>
-<p CLASS="Para">Fred should proceed as follows:</p>
-<ol>
-  <li>Modify file1.txt as follows
-<p>Original contents:</p>
-<blockquote>
-  <p><i>This is the contents<br>
-  of file 1.</i></p>
-</blockquote>
-<p>New contents (changes shown in bold):</p>
-<blockquote>
-    <p><i>This is the contents<br>
-    <b>Fred-update&nbsp; </b><br>
-    of file 1.</i></p>
-</blockquote>
-  </li>
-  <li>Modify file2.txt as follows
-<p>Original contents:</p>
-<blockquote>
-  <p><i>File2 is a small file<br>
-  with simple text.</i></p>
-</blockquote>
-<p>New contents (changes shown in bold):</p>
-<blockquote>
-  <p><i>File2 is a (<b>Fred was here) </b>small file<br>
-  with simple text.&nbsp;</i></p>
-</blockquote>
-  </li>
-  <li>
-      <P CLASS="Para">Open the preferences (<b>Window &gt; Preferences</b>) and turn on 
-      the CVS label decorations (on page <b>Workbench &gt; Label Decorations</b> check off 
-      <b>CVS</b>).</P>
-<blockquote>
-  <P CLASS="Para"><img src="../images/Image84_decorator_preference.gif" alt="Navigator View" border="0" width="531" height="440"></P>
-</blockquote>
-      <P CLASS="Para">Observe that the Navigator updates the CVS state 
-      of a resource. Notice that the two files which Fred has changed are 
-      preceded by &quot;&gt;&quot;.</P>
-<blockquote>
-      <P CLASS="Para"><img src="../images/Image83_fred_verson.gif" alt="Navigator View" border="0" width="272" height="159">&nbsp;</P>
-</blockquote>
-  </li>
-  <li>To commit his changes to the repository Fred 
-      can either: 
-      <ul>
-        <li>Select the two files and choose <b>Team &gt; Synchronize with Repository</b> 
-          or,</li>
-        <li>Select the project and choose <b>Team &gt; Synchronize with Repository</b></li>
-      </ul>
-      <p>Often choosing the project is the easiest thing to do. Let's do that. 
-        Select the project and choose <b>Team &gt; Synchronize with Repository</b> from 
-        its context menu.&nbsp;</p>
-  </li>
-  <li>When the Synchronize view opens Fred should 
-      commit his changes to file1.txt and file2.txt. </li>
-</ol>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_mod.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_mod.htm
deleted file mode 100644
index 8eff481..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_mod.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Making our own changes</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Making our own changes</h3>
-<p CLASS="Para">Fred has made several changes to file1.txt and file2.txt and committed 
-  them to the repository. We now need to make some changes for ourselves and&nbsp; then synchronize with the repository. When we synchronize we expect to see the 
-  changes we have made along with changes that have been made by Fred.</p>
-<ol>
-  <li>Start by modifying file2.txt as follows
-<p>Original contents:</p>
-<blockquote>
-  <p><i>File2 is a <b>Jane-update </b>small file<br>
-  with simple text.</i></p>
-</blockquote>
-<p>New contents: (changes shown in bold)</p>
-<blockquote>
-    <p><i>This is the <b>Jane-update </b>contents<br>
-    of file 2.&nbsp;</i></p>
-</blockquote>
-  </li>
-  <li>Modify file3.txt as follows
-<p>Original contents:</p>
-<blockquote>
-  <p><i>This is the brief contents<br>
-  of file 3</i></p>
-</blockquote>
-<p>New contents:(changes shown in bold)</p>
-<blockquote>
-  <p><i>This is the brief contents<br>
-  of file <b>(Jane was here) </b>3</i></p>
-</blockquote>
-  </li>
-  <li> 
-      <P CLASS="Para">Open the preferences (<b>Window &gt; Preferences</b>) and turn on 
-      the CVS label decorations (on page <b>Workbench &gt; Label Decorations</b> and 
-      ensure <b>CVS</b> is checked).</P>
-<blockquote>
-  <P CLASS="Para"><img src="../images/Image84_decorator_preference.gif" alt="Navigator View" border="0" width="531" height="440"></P>
-</blockquote>
-      <P CLASS="Para">Observe that the Navigator updates the CVS state 
-      of a resource. Notice that the two files which Fred has changed are 
-      preceded by &quot;&gt;&quot;.</P>
-<blockquote>
-      <P CLASS="Para"><img src="../images/Image83_jane1.gif" alt="Navigator View" border="0" width="272" height="151"></P>
-</blockquote>
-  </li>
-  <li>
-<P CLASS="Para">
-Select the project (JanesTeamProject)</P>
-  </li>
-  <li>
-      <P CLASS="Para"> From the project's context menu, select <b>Team &gt; Synchronize 
-        with Repository</b>.</P>
-  </li>
-  <li>There are a couple of other things worth observing. First, the icon next 
-        to file1.txt (in the structured compare area) indicates that file1.txt 
-        has an incoming change. This means a change was released to the server 
-        which you need to take. Looking at file2.txt we can see a red icon. This indicates that both yourself and the repository have changes 
-        to the same file. This means that someone else (namely Fred) made changes 
-        to the same resource as the one you want to commit.<p>The second thing worth noting is that the status bar has red text indicating
-what changes need to be considered.</p>
-<p><img src="../images/Image83_jane3_status.gif" alt="Status line" border="0" width="369" height="19"></li>
-  <li>Select file1.txt (the incoming change). The comparison viewer shows:&nbsp;
-    <p><img src="../images/Image83_jane4.gif" alt="Compare View" border="0" width="469" height="113"> 
-  </li>
-</ol>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync2.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync2.htm
deleted file mode 100644
index 2841e7e..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync2.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Updating</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3> Updating</h3>
-<p CLASS="Para"> We will now use the Synchronize view to update our local resource 
-  to the latest contents in the repository and to commit our changes.&nbsp;</p>
-<ol>
-  <li>Confirm that the Synchronize view is in Incoming 
-      Mode (#1). If it is not then press the Incoming Mode button on the local toolbar 
-      (#2). 
-      
-    <p><img src="../images/Image83_jane5a.gif" alt="Incoming mode" border="0" width="503" height="457"></p>
-  </li>
-  <li>Open file1.txt (the incoming change) by double-clicking. The comparison 
-    viewer shows that&nbsp;the repository copy of file1.txt has a new line inserted 
-    (Fred-update). 
-    <p><img src="../images/Image83_jane4.gif" alt="Text Compare" border="0" width="469" height="113"></li>
-  <li>
-<p CLASS="Para"> From the context menu of file1.txt choose <b>Update</b>. 
-      This will cause your Workbench to be updated with the repository copy of 
-      file1.txt. </p>
-  </li>
-  <li>Select file2.txt. The comparison viewer shows that&nbsp;the repository copy of
-file1.txt and our copy of file1.txt have both had the exact same line
-modified.&nbsp;
-    <p><img src="../images/Image83_jane6a.gif" alt="Text Compare" border="0" width="467" height="96"></li>
-  <li>If you are suspicious of the change you may want to find out some more information
-about it. To do this you first need to figure out who made the change
-and why.
-<p>In the Structure compare pane of the Synchronize view select file2.txt and choose <b>Show in Resource
-History</b> from the context menu.</p>
-    <p><img src="../images/Image84_reshist.gif" alt="Resource History" border="0" width="474" height="178"></p>
-  </li>
-  <li>In the Resource History view (see above) we can see there is a * next to 
-    version 1.1. This indicates 1.1 is currently in our Workbench. We can also 
-    see the repository contains 1.2 of file2.txt.&nbsp;The author of 1.2 is Fred. 
-    Looks like it's time to ask Fred why he was changing file2.txt.&nbsp; 
-    <p>If Fred had entered a meaningful description when releasing his changes,
-these descriptions would have appeared in the comment field of the Resource
-History view thereby providing us with some insight into the intent of the change.
-  </li>
-  <li>You can use the four copy buttons to help you 
-      merge in conflicting changes made to the repository. 
-      <p>
-For now we will assume that Fred's change turns out to be the right one.
-      <p>Select file2.txt and choose <b>Override and Update</b> from the context menu. 
-        When asked to confirm the replacement choose <b>Yes</b>. 
-      </li>
-  <li>The Update mode no longer has any remaining 
-      incoming or conflicting changes.&nbsp; 
-      <p>Looking at the status bar we can see there is still one remaining outgoing
-change to deal with.</p>
-<blockquote>
-  <p><img src="../images/Image84_status.gif" alt="Status bar" border="0" width="387" height="17"></p>
-</blockquote>
-  </li>
-</ol>
-
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync3_rel.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync3_rel.htm
deleted file mode 100644
index dcf2cd8..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync3_rel.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Committing</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3> Committing</h3>
-<p CLASS="Para"> We will now use the Outgoing Mode of the Synchronize view to 
-  commit the one remaining outgoing change.&nbsp;</p>
-<ol>
-  <li>Place the Synchronize view into outgoing mode 
-      by clicking on the Outgoing Mode button (#1) and confirming that the title 
-      of the view now indicates we are in Outgoing Mode (#2). 
-      
-    <p><img src="../images/Image84_relmode.gif" alt="Outgoing mode" border="0" width="475" height="138"></p>
-      </li>
-  <li>Open file3.txt (the outgoing change) by double-clicking.&nbsp; </li>
-  <li>The comparison viewer shows that&nbsp;our copy 
-      of file3.txt has a change to the second line.&nbsp; The repository copy 
-      is shown in the right pane. 
-      
-    <p><img src="../images/Image84_jane.gif" alt="Text compare" border="0" width="474" height="110"></li>
-  <li>From the context menu of file3.txt choose <b>Commit</b>. 
-      Be sure to enter a meaningful description when prompted for one.&nbsp; <p>Your Workbench copy is now committed into the repository.</p>
-    </li>
-  <li>
-<p CLASS="Para"> At this point Fred may want to synchronize 
-      with the repository to update his workspace with the changes you just committed.</p>
-  </li>
-</ol>
-<P>We have successfully collaborated with Fred by making simultaneous changes 
-  to the same project. The Synchronize view and CVS Resource History 
-  view allowed us to determine the specific changes each user was making and to 
-  quickly stay on top of the ongoing changes being committed into the repository. 
-</P>
-
-
-<P><br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync_view.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync_view.htm
deleted file mode 100644
index 2c59863..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-64c_catch_sync_view.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Synchronize view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Synchronize view</h3>
-<p CLASS="Para"> If you look closely at the title of the Synchronize view you 
-  will see that we have started in Incoming Mode (see #1). This is because there 
-  are changes in the repository that we should first integrate before committing 
-  our own changes.</p>
-<p CLASS="Para"><img src="../images/Image83_jane2b.gif" alt="Incoming mode" border="0" width="503" height="457"></p>
-<p CLASS="Para">It is important to first update changes made to the repository, 
-  retest with those changes loaded locally with your soon to be committed changes 
-  and then commit your changes.&nbsp; By first taking the latest repository changes, 
-  and retesting, it helps to ensure that the changes you are about to commit will 
-  actually work with the current state of the repository.</p>
-
-
-<P CLASS="para">&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-70_replace.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-70_replace.htm
deleted file mode 100644
index 23b17b1..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-70_replace.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Replacing</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Replacing</h3>
-<p CLASS="Head"> Suppose after further reflection we realize that the revision 
-of file1.txt that we just received is incorrect and in fact we want an earlier 
-revision. You can replace a Workbench resource with an earlier revision of the 
-resource from the repository. To roll back to an earlier revision:</p>
-<ol>
-  <li>
-<p CLASS="Head"> In the Navigator view select the file1.txt</p>
-  </li>
-  <li>
-      <P CLASS="Para"> From the file's context menu, select <b>Replace With &gt; 
-        Revision</b></P>
-  </li>
-  <li>
-      <P CLASS="Para"> In the replace with revision Compare editor that opens, 
-        choose the original (bottom) revision and, from the pop-up menu choose 
-        <b>Get Contents</b>.</P>
-  </li>
-  <li>Open the preferences (<b>Window &gt; Preferences</b>) and turn on the CVS label 
-  decorations (on page <b>Workbench &gt; Label Decorations</b> and ensure <b>CVS</b> is checked).
-<p><img src="../images/Image84_decorator_preference.gif" alt="Decorator Preference" border="0" width="531" height="440"></p>
-      <p>Observe that the Navigator updates to show the CVS state of a resource. 
-        Notice that the modified file is preceded by &quot;&gt; (see #1) indicating 
-        that we have changed file1.txt (by replacing it with the earlier version).&nbsp;</p>
-      <p><img src="../images/Image84_replace2.gif" alt="File selection" border="0" width="227" height="151"></li>
-  <li>Now that we have finished our coffee we realize 
-      that this older revision is not as good as it initially seemed and in fact 
-      the revision in the repository is better after all.&nbsp; <p>Instead of choosing <b>Team &gt; Synchronize with Repository</b>, let's choose 
-        <b>Replace With &gt; Latest from Repository.</b></p> <p>Observe that file1.txt is updated to be the contents from the repository, 
-        and that the leading indicator &quot;&gt;&quot; has been removed since 
-        we now have the same revision as the repository. 
-    </li>
-</ol>
-<P>We have seen how to synchronize with the repository, replace with revision 
-  or replace with the latest from the repository. You can also compare with these 
-  revisions/versions in a similar manner by choosing the <b>Compare With</b> menu 
-  operation from a resource's context menu in the Navigator. </P>
-
-
-<P>&nbsp;&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14" ></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-74_review.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-74_review.htm
deleted file mode 100644
index 7455dd5..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-74_review.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>A quick review</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-A quick review</h3>
-<p CLASS="Para"> Now that we have experienced the fun of working in a repository 
-  it's time to step back and take note of some of the more important but subtle 
-  issues.
-<ul>
-  <li>When we versioned the project we did so by versioning the project as it 
-    appeared in our Workbench. For this reason it is important to synchronize 
-    the project with the repository (i.e. HEAD or the branch we are working in) 
-    prior to versioning it. Otherwise another user may have committed interesting 
-    changes to the project which you have yet to update to. If you proceed to 
-    version the project without updating, you will version it without these changes.&nbsp;</li>
-  <li>The repository contains all projects in the repository. Individual users 
-    pick which projects they are interested in and check them out into the workspace. 
-    From that point on they are synchronizing those projects (only) with respect 
-    to the repository.</li>
-  <li>The repository represents a large in-progress collection of all known projects. 
-    From the repository's perspective, everything in HEAD or on a branch is always 
-    open for change.</li>
-  <li>The act of versioning a project effectively snapshots it and places it into 
-    the Versions section of the repository, however the repository branches are 
-    still open for change.</li>
-  <li>It is important to first update to changes made to the repository, retest 
-    with those changes and your soon to be committed changes and then commit your 
-    changes.&nbsp; By first taking the latest changes in the branch, and retesting, 
-    it helps to ensure that the changes you are about to commit will actually 
-    work with the current state of the branch.</li>
-  <li>Each project is associated with a specific repository. Different projects 
-    can be associated with different repositories that may be on completely 
-    different servers.&nbsp; </li>
-</ul>
-
-
-<P><br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-74_version.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-74_version.htm
deleted file mode 100644
index be1445b..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-74_version.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Versioning your project</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>
-Versioning your project</h3>
-<P CLASS="Para"> Now that our project is complete it is time to version it. If 
-  you were paying close attention while we were committing our file resources 
-  you probably noticed that the repository automatically assigned them version 
-  numbers, or to be more accurate &quot;revision numbers&quot;. As we committed 
-  our files the only information we needed to supply was a commit comment.&nbsp;</P>
-<P CLASS="Para">To version our
-project proceed as follows:</P>
-<ol>
-  <li>
-<P CLASS="Para">Select the project JanesTeamProject.</P>
-  </li>
-  <li>In the Navigator view select <b>Team &gt; Tag as Version...</b></li>
-  <li>When the Tag Resources dialog opens enter the version name A1 and click 
-        <b>OK</b>.</li>
-  <li>Select the CVS Repositories view.</li>
-  <li>Expand <b>Versions</b>, and JanesTeamProject. Observe that under JaneTeamProject there 
-        is now a version of this project whose version number is A1. Looking closely 
-        at the contents of folder1 you can also see that the version numbers of 
-        the individual files match the version numbers in our Workbench.
-    <p>&nbsp;</p>
-    <blockquote> 
-      <p><img src="../images/Image85_version2.gif" alt="Repositories View and Navigator View" border="0" width="275" height="324"></p>
-</blockquote>
-  </li>
-</ol>
-
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-80_ant.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-80_ant.htm
deleted file mode 100644
index ca95dfa..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-80_ant.htm
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ant &amp; external tools tutorial</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Ant &amp; external tools tutorial</H1>
-<P CLASS="Para">This chapter covers Eclipse's external tools framework, and its 
-  integration with <a href="http://ant.apache.org/">Ant</a>, the build tool from 
-  the <a href="http://www.apache.org/">Apache Software Foundation</a>. If you 
-  are not familiar with Ant, please look the <a href="http://ant.apache.org/manual/index.html">Apache Ant manual</a> 
-  for documentation. This chapter assumes you have a basic knowledge of Ant.</P>
-
-
-<P CLASS="Para">This chapter is split into three main sections. First, we cover 
-  the basics of working with Ant buildfiles in Eclipse. Next, we work through 
-  several Eclipse use cases in which Ant buildfiles can make life a little easier. 
-  Finally, we consider the entire external tools framework and how to use non-Ant 
-  tools.</P>
-
-
-<UL CLASS="UnorderedList">
-
-</UL>
-
-<P>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-81_basics.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-81_basics.htm
deleted file mode 100644
index 5ab9237..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-81_basics.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Eclipse Ant basics</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Eclipse Ant basics</h2>
-  
-<P CLASS="Para">This section covers the basics of working with Ant buildfiles 
-  in Eclipse. Creating, editing, configuring and reusing Ant buildfiles will all 
-  be discussed in this section.</P>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-82_create.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-82_create.htm
deleted file mode 100644
index c5f2785..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-82_create.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating Ant buildfiles</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Creating Ant buildfiles</h3>
-  
-<P CLASS="Para"> Ant buildfiles are just text files, so the most straightforward 
-  way to create an Ant buildfile in Eclipse is:</P>
-<ol>
-  <li><b>File &gt; New &gt; File</b>.</li>
-  <li>Enter any name for the file, but make sure it has a .xml extension.</li>
-  <li>Click <b>Finish</b>.</li>
-</ol>
-<p>As long as the file has a .xml extension, Eclipse will consider it to be a 
-  possible Ant buildfile, and will enable Ant-related actions when it is selected.</p>
-<p>As we will see in a later section, you can create an Ant buildfile for an Eclipse 
-  plug-in that contains predefined targets related useful for deploying the plug-in.</p>
-
-
-<P>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-83_edit.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-83_edit.htm
deleted file mode 100644
index 09b063a..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-83_edit.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editing Ant buildfiles</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Editing Ant buildfiles</h3>
-<P CLASS="Para">Because Ant buildfiles are simple text files, you can use any text 
-  editor to edit them. But there are several advantages to using the Eclipse Ant 
-  editor, including syntax coloring, content assist and an outline view. To get 
-  familiar with the Eclipse Ant editor, we will create a simple Ant buildfile using 
-  this editor.</P>
-<ol>
-  <li>Create an Ant buildfile called HelloWorld.xml (see the previous page if necessary).</li>
-  <li>Open the Ant editor on the file by selecting <b>Open With&gt;Ant Editor</b> from 
-    the file's context menu. Note that the default editor for a .xml file is a 
-    simple text editor, but this can be changed in the <b>Window &gt; Preferences &gt; Workbench &gt; File 
-    Associations</b>. </li>
-  <li>Enter the following content in the editor.
-    <p><img src="../images/Image600_editor_first_target.gif" alt="HelloWorld file content" border="0" width="487" height="270"></p></li>
-  <li>Notice the syntax coloring for property values.</li>
-  <li>Begin to enter a second target by typing '&lt;tar', then hit Ctrl-Space 
-    to activate content assist. You are presented with a list of valid completions. 
-    In this case there is only one, the &lt;target&gt; tag. Select this completion 
-    and notice that the editor inserts both the opening and closing tags and leaves 
-    the cursor positioned for you to enter properties for this tag.</li>
-  <li>Name this target 'World'.</li>
-  <li>Enter an 'echo' task for this target similar to that for the Hello target, 
-    but change the text to 'World'.</li>
-  <li>Save the changes to HelloWorld.xml.</li>
-  <li>Make the Outline view visible and notice that there are entries for each 
-    property and each target. In addition, each task under a target has an entry.<br>
-    <img src="../images/Image601_outline_hello.gif" alt="Outline view for an Ant buildfile" border="0" width="169" height="148"></li>
-  <li>Clicking on an entry in the Outline view will scroll the editor to that 
-    entry. In addition, when the Outline view has focus, typing a character will 
-    move the selection in the Outline view to the next visible entry beginning 
-    with that character.</li>
-  <li>Position the cursor just past the end of one of the '&lt;target&gt;' tags, 
-    type '&lt;tar', then hit Ctrl-Space to activate content assist. Notice that 
-    now the only valid completion is the 'tar' tag. This is because the Ant editor 
-    knows that nested targets are not allowed. Previously, when we used content 
-    assist to create a target tag, the editor knew that a tar task was not allowed 
-    outside of a target.<br>
-    <img src="../images/Image602_tar_assist.gif" alt="Code assist in Ant editor" border="0" width="583" height="194"> 
-  </li>
-  <li>Close the editor and do not save changes.</li>
-</ol>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-84_run_ant.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-84_run_ant.htm
deleted file mode 100644
index 622e647..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-84_run_ant.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running Ant buildfiles</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Running Ant buildfiles</h3>
-  
-<P CLASS="Para">Any file with a .xml extension can be run as an Ant buildfile. Of 
-  course, not all such files really are Ant buildfiles, but no harm is done if you 
-  mistakenly attempt to run a non-Ant .xml file as an Ant buildfile.</P>
-<P CLASS="Para">In this section, we will cover the basic mechanisms for running 
-  Ant buildfiles in Eclipse, using the HelloWorld.xml file created in the last section.</P>
-<ol>
-  <li>Select HelloWorld.xml in the Navigator and choose <b>Run Ant...</b> from its 
-    context menu.</li>
-  <li>The Run Ant dialog appears.
-    <p><img src="../images/Image603_run_dialog.gif" alt="Run Ant dialog" border="0" width="474" height="631"></p>
-  </li>
-  <li>This dialog allows you to configure many aspects of the way your Ant buildfile 
-    is run, but for now we will concentrate on the <b>Targets</b> tab which allows you 
-    to select the Ant targets to run and their order. Select both targets and 
-    leave the order as the default. </li>
-  <li>Click <b>Run</b>.</li>
-  <li>The Ant buildfile is run, and the output is sent to the Console view.</li>
-</ol>
-<p>But what if you sometimes want to run the buildfile so the Hello target executed 
-  first, and other times so the World target was first? Would you have to bring 
-  up the dialog each time and change the ordering? Fortunately, as we'll see in 
-  the next section, the answer is no.</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-85_ant_configs.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-85_ant_configs.htm
deleted file mode 100644
index f0d96c4..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-85_ant_configs.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Saving &amp; Reusing Ant options</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Saving &amp; Reusing Ant options</h3>
-  
-<P CLASS="Para">When we ran the HelloWorld.xml Ant buildfile in the last section, 
-  the choice of targets, along with all other options in the Run Ant dialog were 
-  saved in an entity called a 'launch configuration'. Launch configurations contain 
-  all details necessary to run a single Ant buildfile in a particular way. It is 
-  perfectly valid to have multiple launch configurations associated with a single 
-  Ant buildfile. So, in addition to the launch configuration that was created in 
-  the last step, specifying that our HelloWorld.xml buildfile should execute the 
-  targets Hello &amp; World in that order, we could create a second launch configuration 
-  for this same buildfile specifying the same targets but in the reverse order. So 
-  far so good. But the really nice thing about launch configurations is that now 
-  you can quickly run your Ant buildfile in either configuration by simply specifying 
-  the corresponding launch configuration.</P>
-<ol>
-  <li>From the External Tools drop down on the Workbench toolbar, select <b>External 
-    Tools...</b>.</li>
-  <li>The External Tools dialog opens. This should look a lot like the Run Ant 
-    dialog we saw previously. In fact, it's identical except that in the External 
-    Tools dialog, you have a choice of which launch configuration you wish to 
-    view and edit. The launch configuration we created when we ran the build.xml 
-    buildfile is selected in the tree at the left, and the tabs on the right show 
-    the options for this launch configuration.<br>
-    <img src="../images/Image604_et_dialog.gif" alt="External tools dialog" border="0" width="677" height="586"> </li>
-  <li>At the top of the dialog, change the Name to 'Hello World' and <b>Apply</b> the 
-    change.</li>
-  <li>In the tree at left, bring up on the context menu on the selected launch 
-    configuration and choose <b>Duplicate</b>. A copy of the launch configuration for 
-    the Hello World buildfile is created, '(1)' is appended to the name, and the 
-    new launch configuration is selected in the tree.</li>
-  <li>Rename the new configuration to 'World Hello'.</li>
-  <li>In the <b>Targets</b> tab, click the <b>Order...</b> button, change the order of the 
-    targets so that the World target executes first, and <b>Apply</b> the change.</li>
-  <li>Click <b>Run</b>.</li>
-  <li>As before, the HelloWorld.xml buildfile runs and sends its output to the Console 
-    view. This time however, because the targets were reversed, the output is 
-    reversed as well.</li>
-  <li>Go back to the External Tools drop down in the toolbar. <br>
-    <img src="../images/Image605_et_dropdown.gif" alt="External tools drop-down menu" border="0" width="144" height="118"><br>
-    Notice now that there are two entries in the history, one for Hello World 
-    and one for World Hello. In order to rerun the Ant buildfile so that it outputs 
-    Hello World, just select this launch configuration in the history. To rerun 
-    the launch configuration that outputs World Hello, select this configuration 
-    in the history. Note that the history is ordered so that the most frequently 
-    run configurations are at the top of the dropdown.</li>
-</ol>
-<p>This concludes our quick look at the basics of Ant integration in Eclipse. 
-  In the next chapters, we consider several real-world use cases for running Ant 
-  buildfiles inside Eclipse.</p>
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-85a_ant_view.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-85a_ant_view.htm
deleted file mode 100644
index 0e77165..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-85a_ant_view.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using the Ant view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Using the Ant view</h3>
-  
-<P CLASS="Para">Eclipse provides a standard view, the Ant view, that lets you 
-  work with your Ant buildfiles. This view is tree-structured, showing Ant buildfiles 
-  as top-level entries and targets &amp; internal targets as children. The main advantage 
-  of this view is that you can work with all of your Ant buildfiles in one place, 
-  as opposed to hunting them down in the Navigator.</P>
-<ol>
-  <li>Open the Ant view from the workbench menu by selecting <b>Window &gt; Show View &gt; Other... &gt; Ant &gt; Ant</b>.</li>
-  <li>By default, the Ant view is empty. There are two ways to add Ant buildfiles to 
-    this view: 
-    <ul>
-      <li>Click the 'Add Buildfile' button. This brings up a dialog in which 
-        you explicitly select those Ant buildfiles you want to add</li>
-      <li>Click the 'Add Buildfiles with Search' button. This brings up a search 
-        dialog in which you can specify a filename pattern for your Ant buildfiles 
-        and search within the entire workspace or a specified working set</li>
-    </ul>
-  </li>
-  <li>Once added to the Ant view, Ant buildfile entries remain in the view across 
-    workbench invocations until explicitly removed.</li>
-  <li>Click the Add Buildfiles with Search button. Suppose you only remember 
-    that the buildfile you want to work with starts with 'H'. Enter 'H*.xml' for 
-    the buildfile name. Make sure Workspace is selected for the scope, then click 
-    Search. The HelloWorld.xml file is found and placed in the Ant view.</li>
-  <li>Expand the top-level entry to see the default target Hello, and the internal target 
-    World.<br>
-    <img src="../images/Image618_ant_view.gif" alt="Ant view" border="0" width="146" height="152"> </li>
-  <li>Select the World internal target and click the Play button. Notice that just the 
-    World target gets executed. </li>
-  <li>Select the top-level HelloWorld buildfile and click Play. Notice that just 
-    the default target, Hello, gets executed.</li>
-  <li>To edit your buildfile, bring up the context menu on the HelloWorld file and 
-    select <b>Open With &gt; Ant Editor</b>.</li>
-  <li>To edit the default launch configuration, select Properties... from the 
-    context menu.</li>
-  <li>The Run Ant dialog appears. Here you can modify the way in which the buildfile 
-    is run from the Ant view. Note that the choice and order of targets is ignored 
-    when running from the Ant view. If the top-level file is selected, just the 
-    default target is run and if one of the targets or internal targets is selected, 
-    just that target is run. It is not possible to run multiple targets from the 
-    Ant view.</li>
-  <li>Select the HelloWorld file, then click the Remove button. The buildfile is 
-    removed from the view. Note that this does not delete the file from the workspace.</li>
-</ol>
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-86_use_cases.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-86_use_cases.htm
deleted file mode 100644
index 6cbcb39..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-86_use_cases.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Use cases for Ant in Eclipse</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>Use cases for Ant in Eclipse</h2>
-  
-<P CLASS="Para">Now that we've seen how to work with Ant buildfiles in Eclipse, 
-  let's look at two ways that Ant buildfiles can be useful in Eclipse.</P>
-<ul>
-  <li>Deploying Eclipse plug-ins</li>
-  <li>Building projects</li>
-</ul>
-<p>We'll start by using an Ant buildfile to handle various aspects of deploying 
-  Eclipse plug-ins.</p>
-<p></p>
-<P><br>
-  <a href="../hglegal2003.htm"> <img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a> 
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-87_plugin_deploy.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-87_plugin_deploy.htm
deleted file mode 100644
index b59ff71..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-87_plugin_deploy.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Deploying Eclipse plug-ins</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Deploying Eclipse plug-ins</h3>
-  
-<P CLASS="Para">The first use of Ant within Eclipse discussed here will be as 
-  a plug-in deployment tool. When developing Eclipse plug-ins, it's frequently 
-  handy to build the jar files for your plug-in and test them as part of an Eclipse 
-  install. The Ant buildfile we'll look at in the next section will do this and 
-  much more.</P>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-88_create_plugin.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-88_create_plugin.htm
deleted file mode 100644
index e0eb581..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-88_create_plugin.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a HelloWorld plug-in</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>Creating a HelloWorld plug-in</h4>
-<P CLASS="Para">To work through this example, we need to create a simple 'Hello 
-  World' Eclipse plug-in. Creating Eclipse plug-ins is covered in more detail elsewhere 
-  in this documentation, so we will just create a simple HelloWorld plug-in as 
-  follows:</P>
-<ol>
-  <li> 
-    <P CLASS="Para">Create a new plug-in project by menuing to <b>File &gt; New &gt; Other...</b></P>
-  </li>
-  <li>Select <b>Plug-in Development</b> in the left pane, and <b>Plug-in Project</b> in 
-    the right and click <b>Next</b>.</li>
-  <li>Enter a name for your project, then click <b>Next</b>. </li>
-  <li>On the next page, accept all defaults and click <b>Next</b>.</li>
-  <li>Make sure <b>Create a plug-in project using a code generation wizard</b> is selected, 
-    then select <b>Hello, World</b> from the list below and click <b>Next</b>.</li>
-  <li>Accept all the defaults on this page and click <b>Finish</b>.</li>
-</ol>
-<p>Now that we have a plug-in project, we can create a build.xml file for it to 
-  manage plug-in deployment.</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-89_generate_buildxml.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-89_generate_buildxml.htm
deleted file mode 100644
index 9be3371..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-89_generate_buildxml.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Generating the build.xml file</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>Generating the build.xml file</h4>
-  
-<P CLASS="Para">Open a Navigator view and locate your new plug-in project.</P>
-<ol>
-  <li>Select the file 'plugin.xml' underneath your new project and right-click 
-    <b>Create Ant Buildfile</b>.</li>
-  <li>A new file, 'build.xml' will be created underneath your project.</li>
-  <li>Open the Ant editor on the build.xml file by double clicking it in the Navigator. 
-    Notice that for this file, the Ant editor is the default editor. This is because 
-    by default, there is a file association in the workbench preferences associating 
-    files named 'build.xml' with the Ant editor. <br>
-    <img src="../images/Image607_buildxml.gif" alt="default build.xml file" border="0" width="634" height="525"></li>
-</ol>
-<p>The build.xml file is a default Ant buildfile with many targets useful for deploying 
-  your plug-in. For example, there are individual targets to build all necessary 
-  jars for your plug-in, create a .zip file containing everything in your plug-in, 
-  cleanup any .zip files that may have been created and so on. </p>
-<p>Now that we have the build.xml file, we will use it to build a .jar file for 
-  our plug-in.</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-90_build_jar.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-90_build_jar.htm
deleted file mode 100644
index b63ea6c..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-90_build_jar.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Building a .jar file for the plug-in</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>Building a .jar file for the plug-in</h4>
-  
-<P CLASS="Para">Now we are ready to use the build.xml Ant buildfile that was created 
-  in the last section:</P>
-<ol>
-  <li>Select the build.xml file in the Navigator and choose <b>Run Ant...</b> from 
-    the context menu.</li>
-  <li>In the Run Ant dialog, the Targets tab should be visible. Make sure that 
-    'build.jars' is the only item in the list selected.</li>
-  <li>Switch to the <b>Refresh</b> tab. The options on this tab control if and how the 
-    workspace looks for new, changed and deleted resources after the buildfile finishes 
-    execution. Because refreshing can be an expensive operation, you should refresh 
-    the smallest subset of the workspace necessary for your buildfile.</li>
-  <li>Check <b>Refresh resources after running tool</b>, then select <b>${project}</b> in 
-    the list.<br>
-    <img src="../images/Image606_refresh_tab.gif" alt="Refresh tab in Run Ant dialog" border="0" width="474" height="498"> 
-  </li>
-  <li>Click <b>Run</b>.</li>
-  <li>The Ant buildfile runs, executing the build.jars target. Output from the buildfile 
-    is visible in the Console view.</li>
-  <li>When the buildfile finishes, notice that there is a new .jar file under your 
-    project containing the two class files that comprise your plug-in. If we had 
-    chosen not to refresh the project, the .jar file would still have been created, 
-    but we would not see it in the Navigator.</li>
-</ol>
-<p>We've run the default target for the build.xml Ant buildfile, but there are many 
-  other targets and options to be explored.</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-91_build_options.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-91_build_options.htm
deleted file mode 100644
index 45a52d2..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-91_build_options.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>More plug-in deployment options</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>More plug-in deployment options</h4>
-  
-<P CLASS="Para">Now that we've run the default target for our build.xml buildfile, 
-  it's time to explore some more options. </P>
-<P CLASS="Para">As can be seen in the Outline view, the default build.xml Ant 
-  buildfile has a number of targets.<br>
-  <img src="../images/Image608_buildxml_outline.gif" alt="Outline view of default build.xml file" border="0" width="217" height="405"> 
-</P>
-<P CLASS="Para">Solid green arrows denote targets, while internal targets are represented 
-  by hollow green arrows. The following are the useful top-level targets:</P>
-<ul>
-  <li><b>build.update.jar</b> This target builds jars for the plug-in, then zips 
-    them into a form suitable for use with the Eclipse Update Manager.</li>
-  <li><b>HelloWorldPlugin.jar</b> This target does the work of the building jars 
-    for the plug-in.</li>
-  <li><b>build.jars</b> This is the default target we ran in the last section. 
-    It defers to the HelloWorldPlugin.jar target to do its work.</li>
-  <li><b>clean</b> This target deletes all zips, jars and temporary directories 
-    that may have been created by other targets in this buildfile.</li>
-  <li><b>zip.plugin</b> This target builds executable and source jars, then zips 
-    everything into a single archive.</li>
-</ul>
-<p>Remember that this build.xml file is simply the <i>default</i> deployment buildfile 
-  for an Eclipse plug-in. There will be times when you will want/have to modify 
-  this buildfile to handle your particular projects. For example, if you have a directory 
-  that contains resources necessary for your plug-in, you will want to update 
-  the build.xml file to include this directory in the jars and zips it creates.</p>
-<p>This completes our look at using Ant buildfiles to deploy Eclipse plug-ins. The 
-  key points to remember are that you can easily create a default deployment buildfile 
-  for a plug-in that contains many useful targets, and that while this default 
-  buildfile is useful, you may have to modify it to suit your needs.</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-92_project_builders.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-92_project_builders.htm
deleted file mode 100644
index 099b624..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-92_project_builders.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ant buildfiles as project builders</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Ant buildfiles as project builders</h3>
-  
-<P CLASS="Para">Our second practical example of using Ant buildfiles in Eclipse 
-  is a 'project builder'. This is an Ant buildfile that has been designated to 
-  run whenever a project is built. The uses for such a buildfile are many:</P>
-<ul>
-  <li>Generate a .jar file containing class files from your project</li>
-  <li>Perform some type of pre or post build processing on source or binary files 
-    in your project. For example: 
-    <ul>
-      <li>Pre-processing source files to instrument them for performance analysis</li>
-      <li>Obfuscating binary files to prevent reverse engineering</li>
-    </ul>
-  </li>
-  <li>Copy class files to some location (for instance, on a network)</li>
-</ul>
-<p>For this example, we will create an Ant buildfile that creates a .jar archive 
-  of the class files in a project. Note that this is similar to the example in 
-  the last chapter, in which we used an Ant buildfile to generate .jar files for 
-  an Eclipse plug-in. This example differs in that it works for any Eclipse project, 
-  whether or not it is also an Eclipse plug-in. </p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm
deleted file mode 100644
index 9013721..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a project builder Ant buildfile</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>Creating a project builder Ant buildfile</h4>
-<P CLASS="Para">To see how project builders work, we will create a simple project 
-  with a single source file and an Ant buildfile that jars up the single class file. 
-  Though this example uses Java, it should be noted that project builders are 
-  available for all projects, Java or otherwise.</P>
-<ol>
-  <li>Create a Java project named 'HW'.</li>
-  <li>Create a Java source file named 'HelloWorld' with a main method.</li>
-  <li>Put a single 'System.out.println()' statement in the main method, and make 
-    it print a greeting of your choice.</li>
-  <li>Save changes.</li>
-  <li>Create a file named 'projectBuilder.xml', open the Ant editor on it, enter 
-    the following content, and save changes.<br>
-      </li>
-  <p><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
-  &lt;project name="HW.makejar" default="makejar" basedir="."&gt; 
-  <blockquote>&lt;target name ="makejar" description="Create a jar for the HW 
-    project"&gt;</blockquote>
-  <blockquote> 
-    <blockquote>&lt;jar jarfile="HelloWorld.jar" includes="*.class" basedir="."/&gt;</blockquote>
-  </blockquote>
-  <blockquote>&lt;/target&gt;</blockquote>
-  &lt;/project&gt; </code></p> 
-  <li>In the Navigator, select the HW project and choose <b>Properties</b> from 
-    its context menu.</li>
-  <li>In the project properties dialog, select <b>External Tools Builders</b>, 
-    then click <b>New...</b>. </li>
-  <li>In the 'Choose configuration type' dialog, make sure 'Ant build' is selected, 
-    and click <b>OK</b>. </li>
-  <li>The External Tools dialog appears.Set the name to 'Makejar'. In the Main 
-    tab, use the first <b>Browse Workspace...</b> button to set the <b>Location</b> 
-    to be the projectBuilder.xml buildfile created above. Then use the second 
-    <b>Browse Workspace...</b> button to set the Base Directory to be the HW project.<br>
-    <img src="../images/Image611_et_main_tab.gif" alt="Main tab of External tools dialog" border="0" width="470" height="576"> 
-  </li>
-  <li>In the <b>Refresh</b> tab, we want to be sure that when our HelloWorld.jar 
-    is created, we see it in Eclipse. By default, no refreshing is done when a 
-    project builder finishes running, so check <b>Refresh resource after running 
-    tool</b>, then select <b>${project}</b> in the list of scope variables. Because 
-    refreshing can be expensive, you should in general refresh the smallest entity 
-    that contains all resources that will be affected by your buildfile. <br>
-    <img src="../images/Image612_et_refresh_tab.gif" alt="Refresh tab of External tools dialog" border="0" width="422" height="485"> 
-  </li>
-  <li>In the <b>Targets</b> tab, the default target should be selected.</li>
-  <li>In the <b>Build Options</b> tab, you can specify when this project builder 
-    is executed. By default, this is set to full builds and incremental builds. 
-    Running your project builder during auto builds is possible, though not recommended 
-    because of performance concerns.<br>
-    <img src="../images/Image610_et_options_tab.gif" alt="Build options tab of External tools dialog" border="0" width="422" height="485"> 
-  </li>
-  <li>Apply the changes and click <b>OK</b>.</li>
-  <li>Back in the project properties dialog, you will now see a project builder 
-    named 'Makejar' that is set to run after the default Java Builder. Note that 
-    you can change the order so that your Ant buildfile runs before the Java builder, 
-    though that wouldn't make sense in this example. Click <b>OK</b> to save the 
-    project builder and close the dialog.<br>
-    <img src="../images/Image613_project_properties.gif" alt="Project properties dialog" border="0" width="548" height="415"> 
-  </li>
-</ol>
-<p>For a Java project, the default Java Builder will always be run and cannot 
-  be removed. The Java Builder runs the internal Eclipse Java compiler which in 
-  turn is responsible for indexing your source so that searching, refactoring and 
-  many other features are available. Thus it is not possible to replace the internal 
-  Eclipse Java compiler by using a project builder. Your only option with the 
-  Java Builder is when it runs with respect to the project builders that you define.</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-94_run_pj.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-94_run_pj.htm
deleted file mode 100644
index 9cdcf81..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-94_run_pj.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Executing project builders</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h4>Executing project builders</h4>
-  
-<P CLASS="Para">The whole point of project builders is that they are not explicitly 
-  run by the user, but instead are run any time a qualifying build takes place 
-  for the project that owns the buildfile. Remember that the types of builds that 
-  trigger project builders are defined in the External Tools dialog and can be 
-  any combination of full, incremental or auto builds. Let's see how this works.</P>
-<ol>
-  <li>Select the HW project in the Navigator. In the workbench menu bar, choose 
-    <b>Project &gt; Rebuild Project</b> </li>
-  <li>The project is rebuilt and the projectBuilder.xml buildfile is run. Notice 
-    the output from this buildfile in the Console view. </li>
-  <li>Make sure the Autobuild preference is turned on, them make some trivial 
-    change to HelloWorld.java and save the change. The save triggers an auto build, 
-    but the auto build does not trigger the project builder. </li>
-  <li>Suppose we don't want to see the buildfile output every time it runs. Go back 
-    to the External Tools Builders page of the project properties dialog on HW. 
-    Select the Makejar entry and click <b>Edit...</b>. On the <b>Main</b> tab, uncheck the 
-    <b>Capture Output</b> option, apply the change and exit back to the workbench. 
-  </li>
-</ol>
-<P CLASS="Para">This concludes our look at Ant buildfiles as project builders 
-  in Eclipse. It's worth repeating that though this example used a Java project, 
-  project builders are not tied to Java, and may be used for any type of project. 
-</P>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-95_external_tools.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-95_external_tools.htm
deleted file mode 100644
index 545bd5a..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-95_external_tools.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>External tools</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h2>External tools</h2>
-  
-<P CLASS="Para">Up to this point in the tutorial, we've discussed Ant as if it 
-  were the only type of external tool available for use in Eclipse. The fact is 
-  that Eclipse's external tools framework handles two broad classes of external 
-  tools:</P>
-<ul>
-  <li>Ant buildfiles</li>
-  <li>Everything else</li>
-</ul>
-<P CLASS="Para"> In this section, we look at ways to set up and use non-Ant external 
-  tools. </P>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-96_non_ant_pjs.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-96_non_ant_pjs.htm
deleted file mode 100644
index af3b85b..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-96_non_ant_pjs.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Non-Ant project builders</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Non-Ant project builders</h3>
-  
-<P CLASS="Para"> When we worked through our project builder example, you may have 
-  noticed that when we created our project builder Ant buildfile, we had a choice 
-  of external tool type:<br>
-  <img src="../images/Image614_et_type_dialog.gif" alt="Choice of external tool type dialog" border="0" width="326" height="220"> </P>
-<P CLASS="Para">The <b>Program</b> option is essentially a catch-all, allowing you 
-  to define an external tool for any executable file that is accessible on your 
-  local or network file system. Suppose that instead of Ant, you prefer to use 
-  your own shell scripts or Windows .bat files to jar up and deploy your Eclipse 
-  projects. You would then create a Program external tool that specified where 
-  and how to execute your script. </P>
-<ol>
-  <li>Create a script that performs your preferred deployment steps.</li>
-  <li>Select the project that you wish to build in the Navigator, and choose <b>Properties</b> 
-    from the context menu.</li>
-  <li>Select <b>External Tools Builders</b>, click <b>New...</b>, select <b>Program</b> and click 
-    <b>OK</b>.</li>
-  <li>The External Tools dialog appears, configured for Program type tools.</li>
-  <li>Enter the location of your script, its working directory, and any required 
-    arguments. <br>
-    <img src="../images/Image615_program_builder.gif" alt="External tools dialog for program type tools" border="0" width="422" height="572"> 
-  </li>
-  <li>In this case, the script is a Windows .bat file, but it could be a Linux 
-    shell script, a Perl script or just about anything else that can be executed 
-    on your system. </li>
-  <li>The <b>Refresh</b> and <b>Build Options</b> tabs are identical to the tabs we saw for 
-    Ant project builders. In particular, the <b>Build Options</b> tab allows us to control 
-    what types of builds trigger our project builder buildfile.</li>
-  <li>Apply the changes, and click <b>OK</b>.</li>
-  <li>As with Ant project builders, we can control the ordering of this project 
-    builder with respect to other project builders (such as the default Java Builder 
-    for Java projects).</li>
-  <li>Rebuild your project. This will trigger your script to execute. Any output 
-    it generates will be sent to the Console view.</li>
-</ol>
-<p>Ant is a popular tool for configuring and deploying projects. But if you prefer 
-  some other tool, or prefer to do it yourself, you can set up a Program external 
-  tool project builder. This allows you customize the deployment of your project 
-  as you see fit, while keeping the convenience of automatically running your 
-  script every time your project is built.</p>
-
-
-<P><br>
-<a href="../hglegal2003.htm">
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-97_standalone_ets.htm b/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-97_standalone_ets.htm
deleted file mode 100644
index 9113f29..0000000
--- a/bundles/org.eclipse.platform.doc.user/gettingStarted/qs-97_standalone_ets.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Stand-alone external tools</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h3>Stand-alone external tools</h3>
-  
-<P CLASS="Para">For the ultimate in external tool flexibility, create a 'stand-alone' 
-  external tool launch configuration. This is similar to the project builder launch 
-  configurations discussed in the last section, except that it need have nothing 
-  to do with project building, and you can explicitly run it whenever you choose. 
-  Suppose you wanted to have a way to quickly see the contents of a .jar file 
-  in your workspace using the jar utility. </P>
-<ol>
-  <li>Select some .jar file in your workspace.</li>
-  <li>Select <b>External Tools...</b> from the External Tools workbench toolbar drop 
-    down.<br>
-    <img src="../images/Image616_et_dropdown.gif" alt="External tools drop-down menu" border="0" width="142" height="67"> 
-  </li>
-  <li>Select <b>Program</b> in the tree, then click <b>New</b>.<br>
-    <img src="../images/Image617_jar_inspector.gif" alt="External tools dialog for jar inspector script" border="0" width="625" height="567"> 
-  </li>
-  <li>Name the launch configuration 'jar inspector'.</li>
-  <li>Use the first <b>Browse File System...</b> button to locate the jar executable.</li>
-  <li>In the <b>Arguments</b> field, type '-tvf' and a space, then click <b>Variables...</b>.</li>
-  <li>In the Select Variable dialog, you will see a number of variables you can 
-    pass as arguments to the program specified in Location. Select <b>${resource_loc}</b> 
-    and click <b>OK</b>. </li>
-  <li>When this buildfile is run, the absolute path of the resource selected in the 
-    workbench will be passed to the jar utility in the position specified. </li>
-  <li>Click <b>Run</b>.</li>
-  <li>Notice that the buildfile sends the jar utility output to the Console view.</li>
-  <li>Select a different .jar file in your workspace.</li>
-  <li>Click the External Tools button in the toolbar. Notice the contents of this 
-    jar are sent to the Console view as well. Now you have a quick and easy way 
-    to see the output of the jar utility for any .jar file in your workspace.</li>
-</ol>
-<p>This example has only scratched the surface of what you can do with external 
-  tools. The important things to remember are that you can create an external 
-  tool for anything you can run on your system, and that you can pass arguments 
-  to the external tool related to the current workbench selection. In many cases, 
-  this allows you to loosely integrate tools that do not have corresponding Eclipse 
-  plug-ins. </p>
-
-
-<P><br>
-  <a href="../hglegal2003.htm"> <img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a> 
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/hglegal.htm b/bundles/org.eclipse.platform.doc.user/hglegal.htm
deleted file mode 100644
index 615a643..0000000
--- a/bundles/org.eclipse.platform.doc.user/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/hglegal2002.htm b/bundles/org.eclipse.platform.doc.user/hglegal2002.htm
deleted file mode 100644
index 19c4fa7..0000000
--- a/bundles/org.eclipse.platform.doc.user/hglegal2002.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. and others 2000, 2002. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/hglegal2003.htm b/bundles/org.eclipse.platform.doc.user/hglegal2003.htm
deleted file mode 100644
index 47c8540..0000000
--- a/bundles/org.eclipse.platform.doc.user/hglegal2003.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image1.gif b/bundles/org.eclipse.platform.doc.user/images/Image1.gif
deleted file mode 100644
index 59a1320..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image11_new_wizard.gif b/bundles/org.eclipse.platform.doc.user/images/Image11_new_wizard.gif
deleted file mode 100644
index b8eea74..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image11_new_wizard.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image12_new_project_wizard.gif b/bundles/org.eclipse.platform.doc.user/images/Image12_new_project_wizard.gif
deleted file mode 100644
index 91928fb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image12_new_project_wizard.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image13_project_in_nav.gif b/bundles/org.eclipse.platform.doc.user/images/Image13_project_in_nav.gif
deleted file mode 100644
index 1c634d3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image13_project_in_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image14_new_folder_wizard.gif b/bundles/org.eclipse.platform.doc.user/images/Image14_new_folder_wizard.gif
deleted file mode 100644
index 0441891..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image14_new_folder_wizard.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image15_new_button.gif b/bundles/org.eclipse.platform.doc.user/images/Image15_new_button.gif
deleted file mode 100644
index 7994366..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image15_new_button.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image15_project_depend.gif b/bundles/org.eclipse.platform.doc.user/images/Image15_project_depend.gif
deleted file mode 100644
index 3074a14..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image15_project_depend.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image16_new_pulldown.gif b/bundles/org.eclipse.platform.doc.user/images/Image16_new_pulldown.gif
deleted file mode 100644
index 94fe826..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image16_new_pulldown.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image17_save_button.gif b/bundles/org.eclipse.platform.doc.user/images/Image17_save_button.gif
deleted file mode 100644
index 4133525..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image17_save_button.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image17b_unsaved_changes.gif b/bundles/org.eclipse.platform.doc.user/images/Image17b_unsaved_changes.gif
deleted file mode 100644
index 8b768cb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image17b_unsaved_changes.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image18_created_resources.gif b/bundles/org.eclipse.platform.doc.user/images/Image18_created_resources.gif
deleted file mode 100644
index dd371c1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image18_created_resources.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image19_close_on_tab.gif b/bundles/org.eclipse.platform.doc.user/images/Image19_close_on_tab.gif
deleted file mode 100644
index a098f67..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image19_close_on_tab.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image201_filetype.gif b/bundles/org.eclipse.platform.doc.user/images/Image201_filetype.gif
deleted file mode 100644
index bf6dfc1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image201_filetype.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image202_editorsel.gif b/bundles/org.eclipse.platform.doc.user/images/Image202_editorsel.gif
deleted file mode 100644
index 33d2815..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image202_editorsel.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image203_actionset.gif b/bundles/org.eclipse.platform.doc.user/images/Image203_actionset.gif
deleted file mode 100644
index c4eefbe..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image203_actionset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image206_persp_saveas.gif b/bundles/org.eclipse.platform.doc.user/images/Image206_persp_saveas.gif
deleted file mode 100644
index 33425a6..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image206_persp_saveas.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image207_persp_sel.gif b/bundles/org.eclipse.platform.doc.user/images/Image207_persp_sel.gif
deleted file mode 100644
index acb5077..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image207_persp_sel.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image208_view_sel.gif b/bundles/org.eclipse.platform.doc.user/images/Image208_view_sel.gif
deleted file mode 100644
index c2ee2e9..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image208_view_sel.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image20_nav_with_resources.gif b/bundles/org.eclipse.platform.doc.user/images/Image20_nav_with_resources.gif
deleted file mode 100644
index e23eb30..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image20_nav_with_resources.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image210_filefilter.gif b/bundles/org.eclipse.platform.doc.user/images/Image210_filefilter.gif
deleted file mode 100644
index 39e215c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image210_filefilter.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image211_shortcutbar.gif b/bundles/org.eclipse.platform.doc.user/images/Image211_shortcutbar.gif
deleted file mode 100644
index 0999784..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image211_shortcutbar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image214_toobar_rsrc.gif b/bundles/org.eclipse.platform.doc.user/images/Image214_toobar_rsrc.gif
deleted file mode 100644
index 8d35ad1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image214_toobar_rsrc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image215_toolbar_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image215_toolbar_view.gif
deleted file mode 100644
index 19e3d5c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image215_toolbar_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image216_history_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image216_history_view.gif
deleted file mode 100644
index 27c611d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image216_history_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image217_pref_wb.gif b/bundles/org.eclipse.platform.doc.user/images/Image217_pref_wb.gif
deleted file mode 100644
index 79346a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image217_pref_wb.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image218_pref_app.gif b/bundles/org.eclipse.platform.doc.user/images/Image218_pref_app.gif
deleted file mode 100644
index 3166da0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image218_pref_app.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image219_pref_cv.gif b/bundles/org.eclipse.platform.doc.user/images/Image219_pref_cv.gif
deleted file mode 100644
index 44c1449..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image219_pref_cv.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image21_task_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image21_task_view.gif
deleted file mode 100644
index d3e7598..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image21_task_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image220_pref_dte.gif b/bundles/org.eclipse.platform.doc.user/images/Image220_pref_dte.gif
deleted file mode 100644
index b4376b5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image220_pref_dte.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image221_pref_fe.gif b/bundles/org.eclipse.platform.doc.user/images/Image221_pref_fe.gif
deleted file mode 100644
index 6e85f92..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image221_pref_fe.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image222_pref_lh.gif b/bundles/org.eclipse.platform.doc.user/images/Image222_pref_lh.gif
deleted file mode 100644
index 6fbc841..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image222_pref_lh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image223_pref_persp.gif b/bundles/org.eclipse.platform.doc.user/images/Image223_pref_persp.gif
deleted file mode 100644
index b437e74..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image223_pref_persp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image224_pref_build.gif b/bundles/org.eclipse.platform.doc.user/images/Image224_pref_build.gif
deleted file mode 100644
index 3c3f78a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image224_pref_build.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image225_pref_help.gif b/bundles/org.eclipse.platform.doc.user/images/Image225_pref_help.gif
deleted file mode 100644
index 108ec54..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image225_pref_help.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image226_pref_softup.gif b/bundles/org.eclipse.platform.doc.user/images/Image226_pref_softup.gif
deleted file mode 100644
index 59b787d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image226_pref_softup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image226a_pref_softup.gif b/bundles/org.eclipse.platform.doc.user/images/Image226a_pref_softup.gif
deleted file mode 100644
index 53f5859..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image226a_pref_softup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image227_pref_team.gif b/bundles/org.eclipse.platform.doc.user/images/Image227_pref_team.gif
deleted file mode 100644
index 3da93a9..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image227_pref_team.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image228_pref_ignore.gif b/bundles/org.eclipse.platform.doc.user/images/Image228_pref_ignore.gif
deleted file mode 100644
index 8e46f41..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image228_pref_ignore.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image229_view_popup.gif b/bundles/org.eclipse.platform.doc.user/images/Image229_view_popup.gif
deleted file mode 100644
index da6eb3b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image229_view_popup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image230_editor_area.gif b/bundles/org.eclipse.platform.doc.user/images/Image230_editor_area.gif
deleted file mode 100644
index 2f5cd90..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image230_editor_area.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image231_marker_bar.gif b/bundles/org.eclipse.platform.doc.user/images/Image231_marker_bar.gif
deleted file mode 100644
index e381ca6..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image231_marker_bar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image232_marker_context.gif b/bundles/org.eclipse.platform.doc.user/images/Image232_marker_context.gif
deleted file mode 100644
index a3cf658..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image232_marker_context.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image237_search_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image237_search_view.gif
deleted file mode 100644
index d982a2d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image237_search_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image239_help_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image239_help_view.gif
deleted file mode 100644
index bf1feda..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image239_help_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image240_props_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image240_props_view.gif
deleted file mode 100644
index 77c0864..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image240_props_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image241_nav_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image241_nav_view.gif
deleted file mode 100644
index dcdfae0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image241_nav_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image242_repo_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image242_repo_view.gif
deleted file mode 100644
index 90d785a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image242_repo_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image243_tasks_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image243_tasks_view.gif
deleted file mode 100644
index ea751f5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image243_tasks_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image244_bmark_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image244_bmark_view.gif
deleted file mode 100644
index 5be8ffc..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image244_bmark_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image245_sync_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image245_sync_view.gif
deleted file mode 100644
index dc93969..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image245_sync_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image246_file_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/Image246_file_wiz.gif
deleted file mode 100644
index 34b1f31..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image246_file_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image247_projsel_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/Image247_projsel_wiz.gif
deleted file mode 100644
index 5d2a582..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image247_projsel_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image248_folder_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/Image248_folder_wiz.gif
deleted file mode 100644
index 9ec17bf..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image248_folder_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image249_repo_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/Image249_repo_wiz.gif
deleted file mode 100644
index 9aa781b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image249_repo_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image251_proj_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/Image251_proj_wiz.gif
deleted file mode 100644
index 74ca487..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image251_proj_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image252_projref_page.gif b/bundles/org.eclipse.platform.doc.user/images/Image252_projref_page.gif
deleted file mode 100644
index 1abd4e1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image252_projref_page.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image258_perps_custom.gif b/bundles/org.eclipse.platform.doc.user/images/Image258_perps_custom.gif
deleted file mode 100644
index e2de040..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image258_perps_custom.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image261_import_sel.gif b/bundles/org.eclipse.platform.doc.user/images/Image261_import_sel.gif
deleted file mode 100644
index 1044c81..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image261_import_sel.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image262_import_file.gif b/bundles/org.eclipse.platform.doc.user/images/Image262_import_file.gif
deleted file mode 100644
index 2848581..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image262_import_file.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image263_import_zip.gif b/bundles/org.eclipse.platform.doc.user/images/Image263_import_zip.gif
deleted file mode 100644
index c0543b3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image263_import_zip.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image264_existing_project.gif b/bundles/org.eclipse.platform.doc.user/images/Image264_existing_project.gif
deleted file mode 100644
index 7e1230c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image264_existing_project.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image264_export_sel.gif b/bundles/org.eclipse.platform.doc.user/images/Image264_export_sel.gif
deleted file mode 100644
index 15d9175..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image264_export_sel.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image265_export_file.gif b/bundles/org.eclipse.platform.doc.user/images/Image265_export_file.gif
deleted file mode 100644
index 7e338d1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image265_export_file.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image265_team_project.gif b/bundles/org.eclipse.platform.doc.user/images/Image265_team_project.gif
deleted file mode 100644
index bf2d2a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image265_team_project.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image266_export_zip.gif b/bundles/org.eclipse.platform.doc.user/images/Image266_export_zip.gif
deleted file mode 100644
index 4795340..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image266_export_zip.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image267_export_jar.gif b/bundles/org.eclipse.platform.doc.user/images/Image267_export_jar.gif
deleted file mode 100644
index 0d9a840..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image267_export_jar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image268_export_team.gif b/bundles/org.eclipse.platform.doc.user/images/Image268_export_team.gif
deleted file mode 100644
index e06fa17..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image268_export_team.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image269_merge_init.gif b/bundles/org.eclipse.platform.doc.user/images/Image269_merge_init.gif
deleted file mode 100644
index 00872a4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image269_merge_init.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image270_merge_end.gif b/bundles/org.eclipse.platform.doc.user/images/Image270_merge_end.gif
deleted file mode 100644
index 75ee8d0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image270_merge_end.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image273_local_hist.gif b/bundles/org.eclipse.platform.doc.user/images/Image273_local_hist.gif
deleted file mode 100644
index 2ff3a98..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image273_local_hist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image273_nav-decorators.gif b/bundles/org.eclipse.platform.doc.user/images/Image273_nav-decorators.gif
deleted file mode 100644
index ad1fa17..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image273_nav-decorators.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image274_fonts_preference.gif b/bundles/org.eclipse.platform.doc.user/images/Image274_fonts_preference.gif
deleted file mode 100644
index 434c78a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image274_fonts_preference.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image275_startup_preference.gif b/bundles/org.eclipse.platform.doc.user/images/Image275_startup_preference.gif
deleted file mode 100644
index b02aa39..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image275_startup_preference.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image276_search_preference.gif b/bundles/org.eclipse.platform.doc.user/images/Image276_search_preference.gif
deleted file mode 100644
index 9722f52..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image276_search_preference.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image2_active_editor.gif b/bundles/org.eclipse.platform.doc.user/images/Image2_active_editor.gif
deleted file mode 100644
index 9f80ca1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image2_active_editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image2_active_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image2_active_view.gif
deleted file mode 100644
index babd754..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image2_active_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image30_goto_resource.gif b/bundles/org.eclipse.platform.doc.user/images/Image30_goto_resource.gif
deleted file mode 100644
index da4c528..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image30_goto_resource.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image31_go_into.gif b/bundles/org.eclipse.platform.doc.user/images/Image31_go_into.gif
deleted file mode 100644
index 34dc4b4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image31_go_into.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image33_into_buttons.gif b/bundles/org.eclipse.platform.doc.user/images/Image33_into_buttons.gif
deleted file mode 100644
index d8c40bf..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image33_into_buttons.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umb_installconfig.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umb_installconfig.gif
deleted file mode 100644
index 5a9d301..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umb_installconfig.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umc_featureupdate.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umc_featureupdate.gif
deleted file mode 100644
index 64ab20c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umc_featureupdate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umd_extprevu.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umd_extprevu.gif
deleted file mode 100644
index 97df1a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umd_extprevu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevucurrent.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevucurrent.gif
deleted file mode 100644
index 7cd1e58..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevucurrent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevufeature.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevufeature.gif
deleted file mode 100644
index 23b3ef0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevufeature.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevuhistory.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevuhistory.gif
deleted file mode 100644
index a7256dc..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevuhistory.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchnew.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchnew.gif
deleted file mode 100644
index 91326da..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchnew.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchplugin.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchplugin.gif
deleted file mode 100644
index 41b983a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchplugin.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchrx.gif b/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchrx.gif
deleted file mode 100644
index fda6001..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image35umd_prevusearchrx.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image36_linkedresources.gif b/bundles/org.eclipse.platform.doc.user/images/Image36_linkedresources.gif
deleted file mode 100644
index 4635d73..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image36_linkedresources.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image37drop.gif b/bundles/org.eclipse.platform.doc.user/images/Image37drop.gif
deleted file mode 100644
index e7509f7..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image37drop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image38_import.gif b/bundles/org.eclipse.platform.doc.user/images/Image38_import.gif
deleted file mode 100644
index 55471c8..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image38_import.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image39_import_tree.gif b/bundles/org.eclipse.platform.doc.user/images/Image39_import_tree.gif
deleted file mode 100644
index 9969a41..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image39_import_tree.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image3_single.gif b/bundles/org.eclipse.platform.doc.user/images/Image3_single.gif
deleted file mode 100644
index 6a6f1eb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image3_single.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image3_tabbed.gif b/bundles/org.eclipse.platform.doc.user/images/Image3_tabbed.gif
deleted file mode 100644
index 257f6bb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image3_tabbed.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image400_filterbutton.gif b/bundles/org.eclipse.platform.doc.user/images/Image400_filterbutton.gif
deleted file mode 100644
index 5fde436..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image400_filterbutton.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image40_import_target.gif b/bundles/org.eclipse.platform.doc.user/images/Image40_import_target.gif
deleted file mode 100644
index 89ab604..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image40_import_target.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image41_import_combo.gif b/bundles/org.eclipse.platform.doc.user/images/Image41_import_combo.gif
deleted file mode 100644
index 44754e4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image41_import_combo.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image42_export.gif b/bundles/org.eclipse.platform.doc.user/images/Image42_export.gif
deleted file mode 100644
index 15d9175..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image42_export.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image43_export_tree.gif b/bundles/org.eclipse.platform.doc.user/images/Image43_export_tree.gif
deleted file mode 100644
index 20c2475..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image43_export_tree.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image44_confirm_state.gif b/bundles/org.eclipse.platform.doc.user/images/Image44_confirm_state.gif
deleted file mode 100644
index 57c4a47..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image44_confirm_state.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image45_file_search.gif b/bundles/org.eclipse.platform.doc.user/images/Image45_file_search.gif
deleted file mode 100644
index f5ac506..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image45_file_search.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image45_setup.gif b/bundles/org.eclipse.platform.doc.user/images/Image45_setup.gif
deleted file mode 100644
index e29a343..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image45_setup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image48_move.gif b/bundles/org.eclipse.platform.doc.user/images/Image48_move.gif
deleted file mode 100644
index 44db5b7..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image48_move.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image48_rename.gif b/bundles/org.eclipse.platform.doc.user/images/Image48_rename.gif
deleted file mode 100644
index 8858111..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image48_rename.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image48_rename_done.gif b/bundles/org.eclipse.platform.doc.user/images/Image48_rename_done.gif
deleted file mode 100644
index 89005c0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image48_rename_done.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image49_3_way_compare.gif b/bundles/org.eclipse.platform.doc.user/images/Image49_3_way_compare.gif
deleted file mode 100644
index 92d3c50..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image49_3_way_compare.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image4_showview.gif b/bundles/org.eclipse.platform.doc.user/images/Image4_showview.gif
deleted file mode 100644
index 2dbf1cb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image4_showview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image50_search.gif b/bundles/org.eclipse.platform.doc.user/images/Image50_search.gif
deleted file mode 100644
index f87e776..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image50_search.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_choose_ext.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_choose_ext.gif
deleted file mode 100644
index 2a2640a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_choose_ext.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_search_hover.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_search_hover.gif
deleted file mode 100644
index bf67e27..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_search_hover.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_search_it.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_search_it.gif
deleted file mode 100644
index 2cbc009..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_search_it.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_search_next.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_search_next.gif
deleted file mode 100644
index 0b1358f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_search_next.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_search_progress.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_search_progress.gif
deleted file mode 100644
index fb5b755..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_search_progress.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_search_reduced.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_search_reduced.gif
deleted file mode 100644
index 2b1ad80..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_search_reduced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_search_switching.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_search_switching.gif
deleted file mode 100644
index ffd47ba..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_search_switching.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image51_search_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image51_search_view.gif
deleted file mode 100644
index 597ecad..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image51_search_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image52_new_task.gif b/bundles/org.eclipse.platform.doc.user/images/Image52_new_task.gif
deleted file mode 100644
index de57b52..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image52_new_task.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image53_add_task_dlg.gif b/bundles/org.eclipse.platform.doc.user/images/Image53_add_task_dlg.gif
deleted file mode 100644
index a1b16a0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image53_add_task_dlg.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image53_marker1.gif b/bundles/org.eclipse.platform.doc.user/images/Image53_marker1.gif
deleted file mode 100644
index 00c7aea..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image53_marker1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image53_newtask.gif b/bundles/org.eclipse.platform.doc.user/images/Image53_newtask.gif
deleted file mode 100644
index 1e8c0d8..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image53_newtask.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image53_task_updated.gif b/bundles/org.eclipse.platform.doc.user/images/Image53_task_updated.gif
deleted file mode 100644
index e9e2034..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image53_task_updated.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark1.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark1.gif
deleted file mode 100644
index 403063d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_added.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_added.gif
deleted file mode 100644
index 1f88992..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_added.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_added2.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_added2.gif
deleted file mode 100644
index 1dd7513..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_added2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_del1.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_del1.gif
deleted file mode 100644
index a33a641..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_del1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_goto.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_goto.gif
deleted file mode 100644
index 64537bc..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_goto.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_menu.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_menu.gif
deleted file mode 100644
index 1260893..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_menu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_oneleft.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_oneleft.gif
deleted file mode 100644
index f498f0e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_oneleft.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_remove2.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_remove2.gif
deleted file mode 100644
index 7047575..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_remove2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_two.gif b/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_two.gif
deleted file mode 100644
index 403063d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image54_bookmark_two.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image55_reset.gif b/bundles/org.eclipse.platform.doc.user/images/Image55_reset.gif
deleted file mode 100644
index ec87bd5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image55_reset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image57_two_editors.gif b/bundles/org.eclipse.platform.doc.user/images/Image57_two_editors.gif
deleted file mode 100644
index 22db234..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image57_two_editors.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image5_text_editor.gif b/bundles/org.eclipse.platform.doc.user/images/Image5_text_editor.gif
deleted file mode 100644
index 07ad8c6..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image5_text_editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image600_editor_first_target.gif b/bundles/org.eclipse.platform.doc.user/images/Image600_editor_first_target.gif
deleted file mode 100644
index d2ac3cb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image600_editor_first_target.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image601_outline_hello.gif b/bundles/org.eclipse.platform.doc.user/images/Image601_outline_hello.gif
deleted file mode 100644
index eac7372..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image601_outline_hello.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image602_tar_assist.gif b/bundles/org.eclipse.platform.doc.user/images/Image602_tar_assist.gif
deleted file mode 100644
index 4c187c5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image602_tar_assist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image603_run_dialog.gif b/bundles/org.eclipse.platform.doc.user/images/Image603_run_dialog.gif
deleted file mode 100644
index cae822b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image603_run_dialog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image604_et_dialog.gif b/bundles/org.eclipse.platform.doc.user/images/Image604_et_dialog.gif
deleted file mode 100644
index 7ba2a68..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image604_et_dialog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image605_et_dropdown.gif b/bundles/org.eclipse.platform.doc.user/images/Image605_et_dropdown.gif
deleted file mode 100644
index 2dd9aa0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image605_et_dropdown.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image606_refresh_tab.gif b/bundles/org.eclipse.platform.doc.user/images/Image606_refresh_tab.gif
deleted file mode 100644
index 0b76347..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image606_refresh_tab.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image607_buildxml.gif b/bundles/org.eclipse.platform.doc.user/images/Image607_buildxml.gif
deleted file mode 100644
index d024a87..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image607_buildxml.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image608_buildxml_outline.gif b/bundles/org.eclipse.platform.doc.user/images/Image608_buildxml_outline.gif
deleted file mode 100644
index e4247eb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image608_buildxml_outline.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image609_project_builder.gif b/bundles/org.eclipse.platform.doc.user/images/Image609_project_builder.gif
deleted file mode 100644
index 05de54d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image609_project_builder.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image60_fast_view1.gif b/bundles/org.eclipse.platform.doc.user/images/Image60_fast_view1.gif
deleted file mode 100644
index f8d2e68..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image60_fast_view1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image60_switch_editor.gif b/bundles/org.eclipse.platform.doc.user/images/Image60_switch_editor.gif
deleted file mode 100644
index c8d1a19..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image60_switch_editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image60_tabs.gif b/bundles/org.eclipse.platform.doc.user/images/Image60_tabs.gif
deleted file mode 100644
index 0d78243..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image60_tabs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image60_tabs2.gif b/bundles/org.eclipse.platform.doc.user/images/Image60_tabs2.gif
deleted file mode 100644
index 3666625..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image60_tabs2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image610_et_options_tab.gif b/bundles/org.eclipse.platform.doc.user/images/Image610_et_options_tab.gif
deleted file mode 100644
index 161c136..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image610_et_options_tab.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image611_et_main_tab.gif b/bundles/org.eclipse.platform.doc.user/images/Image611_et_main_tab.gif
deleted file mode 100644
index 7bb12b0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image611_et_main_tab.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image612_et_refresh_tab.gif b/bundles/org.eclipse.platform.doc.user/images/Image612_et_refresh_tab.gif
deleted file mode 100644
index 6ce335b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image612_et_refresh_tab.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image613_project_properties.gif b/bundles/org.eclipse.platform.doc.user/images/Image613_project_properties.gif
deleted file mode 100644
index 91aa18d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image613_project_properties.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image614_et_type_dialog.gif b/bundles/org.eclipse.platform.doc.user/images/Image614_et_type_dialog.gif
deleted file mode 100644
index 6382794..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image614_et_type_dialog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image615_program_builder.gif b/bundles/org.eclipse.platform.doc.user/images/Image615_program_builder.gif
deleted file mode 100644
index 5214b4f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image615_program_builder.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image616_et_dropdown.gif b/bundles/org.eclipse.platform.doc.user/images/Image616_et_dropdown.gif
deleted file mode 100644
index e1a1dcf..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image616_et_dropdown.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image617_jar_inspector.gif b/bundles/org.eclipse.platform.doc.user/images/Image617_jar_inspector.gif
deleted file mode 100644
index d21a08c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image617_jar_inspector.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image618_ant_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image618_ant_view.gif
deleted file mode 100644
index 1acba1b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image618_ant_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image619_ole.gif b/bundles/org.eclipse.platform.doc.user/images/Image619_ole.gif
deleted file mode 100644
index d34f37a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image619_ole.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image61_fast_minimize.gif b/bundles/org.eclipse.platform.doc.user/images/Image61_fast_minimize.gif
deleted file mode 100644
index daa7fa0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image61_fast_minimize.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image61_fast_options.gif b/bundles/org.eclipse.platform.doc.user/images/Image61_fast_options.gif
deleted file mode 100644
index bf7d18e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image61_fast_options.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image61_fast_restore.gif b/bundles/org.eclipse.platform.doc.user/images/Image61_fast_restore.gif
deleted file mode 100644
index 3a6dece..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image61_fast_restore.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image61_nav_fast.gif b/bundles/org.eclipse.platform.doc.user/images/Image61_nav_fast.gif
deleted file mode 100644
index a473127..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image61_nav_fast.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image6_two_editors.gif b/bundles/org.eclipse.platform.doc.user/images/Image6_two_editors.gif
deleted file mode 100644
index 64b4f35..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image6_two_editors.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image70_select_pers.gif b/bundles/org.eclipse.platform.doc.user/images/Image70_select_pers.gif
deleted file mode 100644
index d63cd97..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image70_select_pers.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut1.gif b/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut1.gif
deleted file mode 100644
index 2657c87..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut2.gif b/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut2.gif
deleted file mode 100644
index 3e473f3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut3.gif b/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut3.gif
deleted file mode 100644
index cdc9abe..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut4.gif b/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut4.gif
deleted file mode 100644
index c996a85..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image70_shortcut4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_customize.gif b/bundles/org.eclipse.platform.doc.user/images/Image71_pers_customize.gif
deleted file mode 100644
index c0ef5bd..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_customize.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_pref.gif b/bundles/org.eclipse.platform.doc.user/images/Image71_pers_pref.gif
deleted file mode 100644
index 1d69b75..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_pref.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_reset.gif b/bundles/org.eclipse.platform.doc.user/images/Image71_pers_reset.gif
deleted file mode 100644
index f06795e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_reset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_rundebug.gif b/bundles/org.eclipse.platform.doc.user/images/Image71_pers_rundebug.gif
deleted file mode 100644
index 66192fe..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_rundebug.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_save.gif b/bundles/org.eclipse.platform.doc.user/images/Image71_pers_save.gif
deleted file mode 100644
index b3c945b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image71_pers_save.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image7_view_pulldown.gif b/bundles/org.eclipse.platform.doc.user/images/Image7_view_pulldown.gif
deleted file mode 100644
index f21c46b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image7_view_pulldown.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare.gif
deleted file mode 100644
index 5a8c26a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_after.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare_after.gif
deleted file mode 100644
index dccb6b3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_after.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_change2.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare_change2.gif
deleted file mode 100644
index 553b16f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_change2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor.gif
deleted file mode 100644
index af2dfdc..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor2.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor2.gif
deleted file mode 100644
index a7369ab..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor3.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor3.gif
deleted file mode 100644
index 1717db4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor_next.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor_next.gif
deleted file mode 100644
index bb770ed..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_editor_next.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_rl.gif b/bundles/org.eclipse.platform.doc.user/images/Image80_compare_rl.gif
deleted file mode 100644
index 071b420..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image80_compare_rl.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image81_local.gif b/bundles/org.eclipse.platform.doc.user/images/Image81_local.gif
deleted file mode 100644
index 63eadba..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image81_local.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_nav.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_nav.gif
deleted file mode 100644
index bc398a0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_new.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_new.gif
deleted file mode 100644
index 932d78a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_new.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_new3.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_new3.gif
deleted file mode 100644
index e4ad0c2..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_new3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_rel5.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_rel5.gif
deleted file mode 100644
index f244a06..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_rel5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_release.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_release.gif
deleted file mode 100644
index b065b25..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_release.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_release2.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_release2.gif
deleted file mode 100644
index 35e4c56..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_release2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_res.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_res.gif
deleted file mode 100644
index 70667b5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_res.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_sync1.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_sync1.gif
deleted file mode 100644
index 6d6c0cb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_sync1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_syncview.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_syncview.gif
deleted file mode 100644
index 2eed545..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_syncview.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_team.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_team.gif
deleted file mode 100644
index 072b68c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_team.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_view1.gif b/bundles/org.eclipse.platform.doc.user/images/Image82_repo_view1.gif
deleted file mode 100644
index 98d9ecb..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image82_repo_view1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_fred1.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_fred1.gif
deleted file mode 100644
index 5aee192..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_fred1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_fred2.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_fred2.gif
deleted file mode 100644
index e4fbd58..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_fred2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_fred3_add.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_fred3_add.gif
deleted file mode 100644
index 3e3a466..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_fred3_add.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_fred_verson.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_fred_verson.gif
deleted file mode 100644
index 2985c29..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_fred_verson.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_jane1.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_jane1.gif
deleted file mode 100644
index 3d2ecbc..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_jane1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_jane2b.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_jane2b.gif
deleted file mode 100644
index 4a75f3d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_jane2b.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_jane3_status.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_jane3_status.gif
deleted file mode 100644
index d1f4df2..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_jane3_status.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_jane4.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_jane4.gif
deleted file mode 100644
index 9aa1252..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_jane4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_jane5a.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_jane5a.gif
deleted file mode 100644
index 0c827b4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_jane5a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image83_jane6a.gif b/bundles/org.eclipse.platform.doc.user/images/Image83_jane6a.gif
deleted file mode 100644
index ac429e2..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image83_jane6a.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image84_decorator_preference.gif b/bundles/org.eclipse.platform.doc.user/images/Image84_decorator_preference.gif
deleted file mode 100644
index bee83e0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image84_decorator_preference.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image84_jane.gif b/bundles/org.eclipse.platform.doc.user/images/Image84_jane.gif
deleted file mode 100644
index 95b7094..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image84_jane.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image84_relmode.gif b/bundles/org.eclipse.platform.doc.user/images/Image84_relmode.gif
deleted file mode 100644
index fc53dd1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image84_relmode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image84_replace2.gif b/bundles/org.eclipse.platform.doc.user/images/Image84_replace2.gif
deleted file mode 100644
index 810d378..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image84_replace2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image84_reshist.gif b/bundles/org.eclipse.platform.doc.user/images/Image84_reshist.gif
deleted file mode 100644
index 91a4c31..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image84_reshist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image84_status.gif b/bundles/org.eclipse.platform.doc.user/images/Image84_status.gif
deleted file mode 100644
index 4e239a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image84_status.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image85_version2.gif b/bundles/org.eclipse.platform.doc.user/images/Image85_version2.gif
deleted file mode 100644
index f50e401..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image85_version2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image87_workset_sel.gif b/bundles/org.eclipse.platform.doc.user/images/Image87_workset_sel.gif
deleted file mode 100644
index 005633e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image87_workset_sel.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image88_workset_new_type.gif b/bundles/org.eclipse.platform.doc.user/images/Image88_workset_new_type.gif
deleted file mode 100644
index 8f00ad6..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image88_workset_new_type.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image89_workset_new_res.gif b/bundles/org.eclipse.platform.doc.user/images/Image89_workset_new_res.gif
deleted file mode 100644
index d05a960..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image89_workset_new_res.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image8_view.gif b/bundles/org.eclipse.platform.doc.user/images/Image8_view.gif
deleted file mode 100644
index 9860847..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image8_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image90_locked_toolbar.gif b/bundles/org.eclipse.platform.doc.user/images/Image90_locked_toolbar.gif
deleted file mode 100644
index 0bafca1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image90_locked_toolbar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image90_unlocked_toolbar.gif b/bundles/org.eclipse.platform.doc.user/images/Image90_unlocked_toolbar.gif
deleted file mode 100644
index ecd6c5c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image90_unlocked_toolbar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_1.gif b/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_1.gif
deleted file mode 100644
index 8be6f15..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_2.gif b/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_2.gif
deleted file mode 100644
index b514929..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_3.gif b/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_3.gif
deleted file mode 100644
index ff811b1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image91_ant_prefs_3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/Image9_viewdownarrow.gif b/bundles/org.eclipse.platform.doc.user/images/Image9_viewdownarrow.gif
deleted file mode 100644
index ed09fb1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/Image9_viewdownarrow.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/accessibility_new_project.gif b/bundles/org.eclipse.platform.doc.user/images/accessibility_new_project.gif
deleted file mode 100644
index b0da365..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/accessibility_new_project.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/addbkmrk_tsk.gif b/bundles/org.eclipse.platform.doc.user/images/addbkmrk_tsk.gif
deleted file mode 100644
index dad7260..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/addbkmrk_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/alpha_mode.gif b/bundles/org.eclipse.platform.doc.user/images/alpha_mode.gif
deleted file mode 100644
index 6d77244..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/alpha_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ant-view.gif b/bundles/org.eclipse.platform.doc.user/images/ant-view.gif
deleted file mode 100644
index 64f0648..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ant-view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ant_editor_annotations.gif b/bundles/org.eclipse.platform.doc.user/images/ant_editor_annotations.gif
deleted file mode 100644
index 318579c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ant_editor_annotations.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ant_editor_appearance.gif b/bundles/org.eclipse.platform.doc.user/images/ant_editor_appearance.gif
deleted file mode 100644
index 3cdba3d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ant_editor_appearance.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ant_prefs.gif b/bundles/org.eclipse.platform.doc.user/images/ant_prefs.gif
deleted file mode 100644
index a22ae12..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ant_prefs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ant_runtime_properties.gif b/bundles/org.eclipse.platform.doc.user/images/ant_runtime_properties.gif
deleted file mode 100644
index eca573f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ant_runtime_properties.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/backward_nav.gif b/bundles/org.eclipse.platform.doc.user/images/backward_nav.gif
deleted file mode 100644
index 740419b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/build_exec.gif b/bundles/org.eclipse.platform.doc.user/images/build_exec.gif
deleted file mode 100644
index 20e7bae..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/build_exec.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/change.gif b/bundles/org.eclipse.platform.doc.user/images/change.gif
deleted file mode 100644
index 526aeac..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/change.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/close_view.gif b/bundles/org.eclipse.platform.doc.user/images/close_view.gif
deleted file mode 100644
index 1aca259..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/close_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/confadd_ov.gif b/bundles/org.eclipse.platform.doc.user/images/confadd_ov.gif
deleted file mode 100644
index e049755..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/confadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/confauto_ov.gif b/bundles/org.eclipse.platform.doc.user/images/confauto_ov.gif
deleted file mode 100644
index 65d335d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/confauto_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/confchg_ov.gif b/bundles/org.eclipse.platform.doc.user/images/confchg_ov.gif
deleted file mode 100644
index 020fc54..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/confchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/confdel_ov.gif b/bundles/org.eclipse.platform.doc.user/images/confdel_ov.gif
deleted file mode 100644
index 39ed511..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/confdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/copy_edit.gif b/bundles/org.eclipse.platform.doc.user/images/copy_edit.gif
deleted file mode 100644
index 4274b07..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/copy_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/cut_edit.gif b/bundles/org.eclipse.platform.doc.user/images/cut_edit.gif
deleted file mode 100644
index eb948b9..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/cut_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/cvs-console.gif b/bundles/org.eclipse.platform.doc.user/images/cvs-console.gif
deleted file mode 100644
index 21dc325..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/cvs-console.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/cvs_synch.gif b/bundles/org.eclipse.platform.doc.user/images/cvs_synch.gif
deleted file mode 100644
index c4a11c3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/cvs_synch.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/debug_exec.gif b/bundles/org.eclipse.platform.doc.user/images/debug_exec.gif
deleted file mode 100644
index 8b4f234..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/debug_exec.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/defaults_ps.gif b/bundles/org.eclipse.platform.doc.user/images/defaults_ps.gif
deleted file mode 100644
index 5e1e78a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/defaults_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/delete_edit.gif b/bundles/org.eclipse.platform.doc.user/images/delete_edit.gif
deleted file mode 100644
index 6f64766..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/delete_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/dirty_ov.gif b/bundles/org.eclipse.platform.doc.user/images/dirty_ov.gif
deleted file mode 100644
index 07a8c35..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/dirty_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/drop_bottom_source.gif b/bundles/org.eclipse.platform.doc.user/images/drop_bottom_source.gif
deleted file mode 100644
index 0a07df0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/drop_bottom_source.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/drop_invalid_source.gif b/bundles/org.eclipse.platform.doc.user/images/drop_invalid_source.gif
deleted file mode 100644
index 804f1b5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/drop_invalid_source.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/drop_left_source.gif b/bundles/org.eclipse.platform.doc.user/images/drop_left_source.gif
deleted file mode 100644
index d77c71e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/drop_left_source.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/drop_offscreen.gif b/bundles/org.eclipse.platform.doc.user/images/drop_offscreen.gif
deleted file mode 100644
index e144ece..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/drop_offscreen.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/drop_right_source.gif b/bundles/org.eclipse.platform.doc.user/images/drop_right_source.gif
deleted file mode 100644
index 32a7b39..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/drop_right_source.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/drop_stack.gif b/bundles/org.eclipse.platform.doc.user/images/drop_stack.gif
deleted file mode 100644
index 327d48a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/drop_stack.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/drop_top_source.gif b/bundles/org.eclipse.platform.doc.user/images/drop_top_source.gif
deleted file mode 100644
index 989deee..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/drop_top_source.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/edited_ov.gif b/bundles/org.eclipse.platform.doc.user/images/edited_ov.gif
deleted file mode 100644
index e750fd5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/edited_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/export_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/export_wiz.gif
deleted file mode 100644
index 5a01b75..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/export_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/external_tools.gif b/bundles/org.eclipse.platform.doc.user/images/external_tools.gif
deleted file mode 100644
index 2133b45..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/external_tools_prefs.gif b/bundles/org.eclipse.platform.doc.user/images/external_tools_prefs.gif
deleted file mode 100644
index 9b93afa..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/external_tools_prefs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/filter_ps.gif b/bundles/org.eclipse.platform.doc.user/images/filter_ps.gif
deleted file mode 100644
index 1492b4e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/forward_nav.gif b/bundles/org.eclipse.platform.doc.user/images/forward_nav.gif
deleted file mode 100644
index 7a1511d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/forward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/gotoobj_tsk.gif b/bundles/org.eclipse.platform.doc.user/images/gotoobj_tsk.gif
deleted file mode 100644
index 082e49f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/gotoobj_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/help_search_w.gif b/bundles/org.eclipse.platform.doc.user/images/help_search_w.gif
deleted file mode 100644
index d43211e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/help_search_w.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/home_nav.gif b/bundles/org.eclipse.platform.doc.user/images/home_nav.gif
deleted file mode 100644
index 949c2db..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/import_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/import_wiz.gif
deleted file mode 100644
index 6152fd7..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/import_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/keys1.gif b/bundles/org.eclipse.platform.doc.user/images/keys1.gif
deleted file mode 100644
index 0a493e8..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/keys1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/keys2.gif b/bundles/org.eclipse.platform.doc.user/images/keys2.gif
deleted file mode 100644
index fd36bde..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/keys2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/keys3.gif b/bundles/org.eclipse.platform.doc.user/images/keys3.gif
deleted file mode 100644
index 1b31c3d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/keys3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/keys4.gif b/bundles/org.eclipse.platform.doc.user/images/keys4.gif
deleted file mode 100644
index e5df8bc..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/keys4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/keys5.gif b/bundles/org.eclipse.platform.doc.user/images/keys5.gif
deleted file mode 100644
index 12e6eae..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/keys5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/keys6.gif b/bundles/org.eclipse.platform.doc.user/images/keys6.gif
deleted file mode 100644
index 5b0d2b7..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/keys6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/merged_ov.gif b/bundles/org.eclipse.platform.doc.user/images/merged_ov.gif
deleted file mode 100644
index 2616852..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/merged_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/minus.gif b/bundles/org.eclipse.platform.doc.user/images/minus.gif
deleted file mode 100644
index a81eba1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/minus.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/new_persp.gif b/bundles/org.eclipse.platform.doc.user/images/new_persp.gif
deleted file mode 100644
index ccc29c5..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/new_persp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/new_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/new_wiz.gif
deleted file mode 100644
index bf683ca..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/new_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/newfile_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/newfile_wiz.gif
deleted file mode 100644
index 6baa037..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/newfile_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/newfolder_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/newfolder_wiz.gif
deleted file mode 100644
index a0b98ff..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/newfolder_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/newprj_wiz.gif b/bundles/org.eclipse.platform.doc.user/images/newprj_wiz.gif
deleted file mode 100644
index ca7ef1b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/newprj_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/next_nav.gif b/bundles/org.eclipse.platform.doc.user/images/next_nav.gif
deleted file mode 100644
index 8392f33..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ngback.gif b/bundles/org.eclipse.platform.doc.user/images/ngback.gif
deleted file mode 100644
index 465276f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ngback.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ngibmcpy2003.gif b/bundles/org.eclipse.platform.doc.user/images/ngibmcpy2003.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ngnext.gif b/bundles/org.eclipse.platform.doc.user/images/ngnext.gif
deleted file mode 100644
index 75d22e4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ngnext.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ngrelc.gif b/bundles/org.eclipse.platform.doc.user/images/ngrelc.gif
deleted file mode 100644
index c2bb76c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ngrelc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ngrelr.gif b/bundles/org.eclipse.platform.doc.user/images/ngrelr.gif
deleted file mode 100644
index d187c3f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ngrelr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ngrelt.gif b/bundles/org.eclipse.platform.doc.user/images/ngrelt.gif
deleted file mode 100644
index 3b2eed7..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ngrelt.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/no_remotedir_ov.gif b/bundles/org.eclipse.platform.doc.user/images/no_remotedir_ov.gif
deleted file mode 100644
index 0a63808..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/no_remotedir_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/add_co.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/add_co.gif
deleted file mode 100644
index dad7260..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/add_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/ant_targets.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/ant_targets.gif
deleted file mode 100644
index 5996823..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/ant_targets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/properties.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/properties.gif
deleted file mode 100644
index ec0cba1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/properties.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/refresh.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/refresh.gif
deleted file mode 100644
index a063c23..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/removeAll_co.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/removeAll_co.gif
deleted file mode 100644
index 2c069ab..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/removeAll_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/remove_co.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/remove_co.gif
deleted file mode 100644
index 12a9167..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/remove_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/run_tool.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/run_tool.gif
deleted file mode 100644
index 2088548..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/run_tool.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/search.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/search.gif
deleted file mode 100644
index 6dc3ebe..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/clcl16/search.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/ctool16/external_tools.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/ctool16/external_tools.gif
deleted file mode 100644
index 2133b45..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/ctool16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/cview16/ant_view.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/cview16/ant_view.gif
deleted file mode 100644
index 6da365c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/cview16/ant_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant.gif
deleted file mode 100644
index f3e45a4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant_buildfile.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant_buildfile.gif
deleted file mode 100644
index 1aa3ae0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant_buildfile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant_target_err.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant_target_err.gif
deleted file mode 100644
index c2bfdd6..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ant_target_err.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/builder.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/builder.gif
deleted file mode 100644
index 20e7bae..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/builder.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/classpath.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/classpath.gif
deleted file mode 100644
index f966fc3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/classpath.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/defaulttarget_obj.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/defaulttarget_obj.gif
deleted file mode 100644
index 9e80502..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/defaulttarget_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/invalid_build_tool.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/invalid_build_tool.gif
deleted file mode 100644
index b04020b..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/invalid_build_tool.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/jar_l_obj.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/jar_l_obj.gif
deleted file mode 100644
index 11e04e2..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/jar_l_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/main_tab.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/main_tab.gif
deleted file mode 100644
index f9fb6b0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/main_tab.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/prop_ps.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/prop_ps.gif
deleted file mode 100644
index ec0cba1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/prop_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/property_obj.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/property_obj.gif
deleted file mode 100644
index 836e65c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/property_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetprivate_obj.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetprivate_obj.gif
deleted file mode 100644
index 194a159..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetprivate_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetpublic_obj.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetpublic_obj.gif
deleted file mode 100644
index 9bc6c91..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/targetpublic_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/task_obj.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/task_obj.gif
deleted file mode 100644
index dcf0083..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/task_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ttype_program.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ttype_program.gif
deleted file mode 100644
index 2133b45..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/ttype_program.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/type.gif b/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/type.gif
deleted file mode 100644
index 2db7604..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/org.eclipse.ui.externaltools/obj16/type.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/paste_edit.gif b/bundles/org.eclipse.platform.doc.user/images/paste_edit.gif
deleted file mode 100644
index 75e0ab2..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/paste_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/pin_editor.gif b/bundles/org.eclipse.platform.doc.user/images/pin_editor.gif
deleted file mode 100644
index 9997124..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/pin_editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/pin_view.gif b/bundles/org.eclipse.platform.doc.user/images/pin_view.gif
deleted file mode 100644
index 1b80441..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/pin_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/plus.gif b/bundles/org.eclipse.platform.doc.user/images/plus.gif
deleted file mode 100644
index c123ba7..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/plus.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/pref_helpserver.gif b/bundles/org.eclipse.platform.doc.user/images/pref_helpserver.gif
deleted file mode 100644
index c59e93c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/pref_helpserver.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/prev_nav.gif b/bundles/org.eclipse.platform.doc.user/images/prev_nav.gif
deleted file mode 100644
index 9b278e6..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/print_edit.gif b/bundles/org.eclipse.platform.doc.user/images/print_edit.gif
deleted file mode 100644
index 4dfa8cd..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/print_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/printer.gif b/bundles/org.eclipse.platform.doc.user/images/printer.gif
deleted file mode 100644
index 4dfa8cd..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/printer.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/question_ov.gif b/bundles/org.eclipse.platform.doc.user/images/question_ov.gif
deleted file mode 100644
index 62903bf..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/question_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/r_inadd_ov.gif b/bundles/org.eclipse.platform.doc.user/images/r_inadd_ov.gif
deleted file mode 100644
index 14ba011..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/r_inadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/r_inchg_ov.gif b/bundles/org.eclipse.platform.doc.user/images/r_inchg_ov.gif
deleted file mode 100644
index 0aca3c4..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/r_inchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/r_indel_ov.gif b/bundles/org.eclipse.platform.doc.user/images/r_indel_ov.gif
deleted file mode 100644
index c377537..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/r_indel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/r_outadd_ov.gif b/bundles/org.eclipse.platform.doc.user/images/r_outadd_ov.gif
deleted file mode 100644
index 11c2d5d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/r_outadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/r_outchg_ov.gif b/bundles/org.eclipse.platform.doc.user/images/r_outchg_ov.gif
deleted file mode 100644
index 704d706..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/r_outchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/r_outdel_ov.gif b/bundles/org.eclipse.platform.doc.user/images/r_outdel_ov.gif
deleted file mode 100644
index 95ec301..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/r_outdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/redo_edit.gif b/bundles/org.eclipse.platform.doc.user/images/redo_edit.gif
deleted file mode 100644
index 01ce578..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/redo_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-1.gif b/bundles/org.eclipse.platform.doc.user/images/ref-1.gif
deleted file mode 100644
index 2d1cdd3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-10.gif b/bundles/org.eclipse.platform.doc.user/images/ref-10.gif
deleted file mode 100644
index 7b2b633..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-10.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-11.gif b/bundles/org.eclipse.platform.doc.user/images/ref-11.gif
deleted file mode 100644
index 04e530e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-11.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-12.gif b/bundles/org.eclipse.platform.doc.user/images/ref-12.gif
deleted file mode 100644
index a9c7773..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-12.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-15.gif b/bundles/org.eclipse.platform.doc.user/images/ref-15.gif
deleted file mode 100644
index 6b86d07..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-15.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-16.gif b/bundles/org.eclipse.platform.doc.user/images/ref-16.gif
deleted file mode 100644
index 9b5a68a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-16.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-17.gif b/bundles/org.eclipse.platform.doc.user/images/ref-17.gif
deleted file mode 100644
index 06d0079..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-17.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-18.gif b/bundles/org.eclipse.platform.doc.user/images/ref-18.gif
deleted file mode 100644
index 3f188a0..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-18.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-19.gif b/bundles/org.eclipse.platform.doc.user/images/ref-19.gif
deleted file mode 100644
index a461626..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-19.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-2.gif b/bundles/org.eclipse.platform.doc.user/images/ref-2.gif
deleted file mode 100644
index 666f3ea..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-20.gif b/bundles/org.eclipse.platform.doc.user/images/ref-20.gif
deleted file mode 100644
index 26c7477..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-20.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-21.gif b/bundles/org.eclipse.platform.doc.user/images/ref-21.gif
deleted file mode 100644
index b0b2a16..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-21.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-22.gif b/bundles/org.eclipse.platform.doc.user/images/ref-22.gif
deleted file mode 100644
index 0eab1c9..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-22.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-23.gif b/bundles/org.eclipse.platform.doc.user/images/ref-23.gif
deleted file mode 100644
index 31d6e1e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-23.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-24.gif b/bundles/org.eclipse.platform.doc.user/images/ref-24.gif
deleted file mode 100644
index fcb99dc..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-24.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-25.gif b/bundles/org.eclipse.platform.doc.user/images/ref-25.gif
deleted file mode 100644
index 00da14e..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-25.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-26.gif b/bundles/org.eclipse.platform.doc.user/images/ref-26.gif
deleted file mode 100644
index 7fa2a88..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-26.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-27.gif b/bundles/org.eclipse.platform.doc.user/images/ref-27.gif
deleted file mode 100644
index 7a1511d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-27.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-3.gif b/bundles/org.eclipse.platform.doc.user/images/ref-3.gif
deleted file mode 100644
index c0f467d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-4.gif b/bundles/org.eclipse.platform.doc.user/images/ref-4.gif
deleted file mode 100644
index 8038fd1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-5.gif b/bundles/org.eclipse.platform.doc.user/images/ref-5.gif
deleted file mode 100644
index 8c53826..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-50.gif b/bundles/org.eclipse.platform.doc.user/images/ref-50.gif
deleted file mode 100644
index 5a1eb1c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-50.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-52.gif b/bundles/org.eclipse.platform.doc.user/images/ref-52.gif
deleted file mode 100644
index 712b48f..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-52.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-7.gif b/bundles/org.eclipse.platform.doc.user/images/ref-7.gif
deleted file mode 100644
index c06fbaf..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-79.gif b/bundles/org.eclipse.platform.doc.user/images/ref-79.gif
deleted file mode 100644
index 7ef1a62..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-79.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-8.gif b/bundles/org.eclipse.platform.doc.user/images/ref-8.gif
deleted file mode 100644
index 269e154..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-81.gif b/bundles/org.eclipse.platform.doc.user/images/ref-81.gif
deleted file mode 100644
index 8b39ab3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-81.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-9.gif b/bundles/org.eclipse.platform.doc.user/images/ref-9.gif
deleted file mode 100644
index 9ea7ba6..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-9.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/ref-texteditorpref.gif b/bundles/org.eclipse.platform.doc.user/images/ref-texteditorpref.gif
deleted file mode 100644
index dc1cc58..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/ref-texteditorpref.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/refresh_nav.gif b/bundles/org.eclipse.platform.doc.user/images/refresh_nav.gif
deleted file mode 100644
index a063c23..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/refresh_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/run_exec.gif b/bundles/org.eclipse.platform.doc.user/images/run_exec.gif
deleted file mode 100644
index 9a4db0d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/run_exec.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/save_edit.gif b/bundles/org.eclipse.platform.doc.user/images/save_edit.gif
deleted file mode 100644
index 698d9a2..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/save_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/saveall_edit.gif b/bundles/org.eclipse.platform.doc.user/images/saveall_edit.gif
deleted file mode 100644
index b77773a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/saveall_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/saveas_edit.gif b/bundles/org.eclipse.platform.doc.user/images/saveas_edit.gif
deleted file mode 100644
index 76549a1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/saveas_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/search_src.gif b/bundles/org.eclipse.platform.doc.user/images/search_src.gif
deleted file mode 100644
index 6dc3ebe..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/search_src.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/stop_nav.gif b/bundles/org.eclipse.platform.doc.user/images/stop_nav.gif
deleted file mode 100644
index 4eb53ec..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/stop_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/synced.gif b/bundles/org.eclipse.platform.doc.user/images/synced.gif
deleted file mode 100644
index f865f3a..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/synch_toc_nav.gif b/bundles/org.eclipse.platform.doc.user/images/synch_toc_nav.gif
deleted file mode 100644
index ce5b77d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/synch_toc_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/tasks-1.gif b/bundles/org.eclipse.platform.doc.user/images/tasks-1.gif
deleted file mode 100644
index 2d1cdd3..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/tasks-1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/tasks-3.gif b/bundles/org.eclipse.platform.doc.user/images/tasks-3.gif
deleted file mode 100644
index c0f467d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/tasks-3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/tasks-7.gif b/bundles/org.eclipse.platform.doc.user/images/tasks-7.gif
deleted file mode 100644
index c8f4783..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/tasks-7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/tasks-96b-module_rep.gif b/bundles/org.eclipse.platform.doc.user/images/tasks-96b-module_rep.gif
deleted file mode 100644
index 72b2dd1..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/tasks-96b-module_rep.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/team_contents_icon.gif b/bundles/org.eclipse.platform.doc.user/images/team_contents_icon.gif
deleted file mode 100644
index 133140d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/team_contents_icon.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/tree_mode.gif b/bundles/org.eclipse.platform.doc.user/images/tree_mode.gif
deleted file mode 100644
index 852dc81..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/tree_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/undo_edit.gif b/bundles/org.eclipse.platform.doc.user/images/undo_edit.gif
deleted file mode 100644
index 570c61c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/undo_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/up_nav.gif b/bundles/org.eclipse.platform.doc.user/images/up_nav.gif
deleted file mode 100644
index 6877784..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/up_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/version_controlled.gif b/bundles/org.eclipse.platform.doc.user/images/version_controlled.gif
deleted file mode 100644
index a2b345d..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/version_controlled.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/view_menu.gif b/bundles/org.eclipse.platform.doc.user/images/view_menu.gif
deleted file mode 100644
index a492838..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/view_menu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/images/win_only.gif b/bundles/org.eclipse.platform.doc.user/images/win_only.gif
deleted file mode 100644
index 1d7cb0c..0000000
--- a/bundles/org.eclipse.platform.doc.user/images/win_only.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/ngibmcpy.gif b/bundles/org.eclipse.platform.doc.user/ngibmcpy.gif
deleted file mode 100644
index 360f8e9..0000000
--- a/bundles/org.eclipse.platform.doc.user/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/ngibmcpy2002.gif b/bundles/org.eclipse.platform.doc.user/ngibmcpy2002.gif
deleted file mode 100644
index 61cef48..0000000
--- a/bundles/org.eclipse.platform.doc.user/ngibmcpy2002.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/ngibmcpy2003.gif b/bundles/org.eclipse.platform.doc.user/ngibmcpy2003.gif
deleted file mode 100644
index c786e43..0000000
--- a/bundles/org.eclipse.platform.doc.user/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/no_help_exists.htm b/bundles/org.eclipse.platform.doc.user/no_help_exists.htm
deleted file mode 100644
index 6768b93..0000000
--- a/bundles/org.eclipse.platform.doc.user/no_help_exists.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE> No Help Exists</TITLE>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-No Help Exists</H1>
-<p CLASS="Head">There are no available help topics associated with this
-item.&nbsp;&nbsp;&nbsp;</p>
-<P>&nbsp;<br>
-<a href="hglegal2003.htm"><img src="images/ngibmcpy2003.gif" alt="Copyright IBM Corporation 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</P>
-
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/plugin.properties b/bundles/org.eclipse.platform.doc.user/plugin.properties
deleted file mode 100644
index 85222b4..0000000
--- a/bundles/org.eclipse.platform.doc.user/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Eclipse Workbench User Guide
-providerName=Eclipse.org
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/plugin.xml b/bundles/org.eclipse.platform.doc.user/plugin.xml
deleted file mode 100644
index b6b598a..0000000
--- a/bundles/org.eclipse.platform.doc.user/plugin.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!-- ===================================================== -->
-<!-- Declare the documentation for the Platform User Guide  -->
-<!-- We will declare only one infoset (book)               -->
-<!-- ===================================================== -->
-
-<plugin
-   name = "%pluginName"
-   id = "org.eclipse.platform.doc.user"
-   version = "3.0.0"
-   provider-name = "%providerName">
-
-
-<!-- ============================================================================= -->
-<!-- Define primary TOC                                                            -->
-<!-- ============================================================================= -->
-
-   <extension point="org.eclipse.help.toc">
-       <toc file="toc.xml" primary="true" />
-   </extension>
-
-<!-- ============================================================================= -->
-<!-- Define TOCs                                                                   -->
-<!-- ============================================================================= -->
-
-   <extension point="org.eclipse.help.toc">
-       <toc file="topics_GettingStarted.xml" />
-       <toc file="topics_Concepts.xml" />
-       <toc file="topics_Tasks.xml" />
-       <toc file="topics_Reference.xml" />
-   </extension>
-
-<!-- ============================================================================= -->
-<!-- F1 context files                                                              -->
-<!-- ============================================================================= -->
-
-   <extension point="org.eclipse.help.contexts"> 
-       <contexts file="contexts_Workbench.xml" plugin="org.eclipse.ui"/> 
-   </extension>
-
-   <extension point="org.eclipse.help.contexts"> 
-       <contexts file="contexts_Workbench.xml" plugin="org.eclipse.ui.workbench.texteditor"/> 
-   </extension>
-
-   <extension point="org.eclipse.help.contexts"> 
-       <contexts file="contexts_Workbench.xml" plugin="org.eclipse.ui.editors"/> 
-   </extension>
-   
-   <extension point="org.eclipse.help.contexts">
-   		<contexts file="contexts_ExternalTools.xml" plugin="org.eclipse.ui.externaltools"/>
-   </extension>
-   
-   <extension point="org.eclipse.help.contexts">
-   		<contexts file="contexts_AntUI.xml" plugin="org.eclipse.ant.ui"/>
-   </extension>
-
-   <extension point="org.eclipse.help.contexts"> 
-       <contexts file="contexts_Team.xml" plugin="org.eclipse.team.ui"/> 
-   </extension>
-
-   <extension point="org.eclipse.help.contexts"> 
-       <contexts file="contexts_Team_CVS.xml" plugin="org.eclipse.team.cvs.ui"/> 
-   </extension>
-
-	<extension point="org.eclipse.help.contexts"> 
-		<contexts file="contexts_Compare.xml" plugin="org.eclipse.compare"/> 
-	</extension>
-   
-   <extension point="org.eclipse.help.contexts"> 
-      <contexts file="contexts_Search.xml" plugin="org.eclipse.search"/> 
-   </extension>
-   
-	<extension point="org.eclipse.help.contexts"> 
-		<contexts file="contexts_Update.xml"  plugin="org.eclipse.update.ui"/> 
-	</extension>
-
-
-</plugin>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ngibmcpy.gif b/bundles/org.eclipse.platform.doc.user/reference/ngibmcpy.gif
deleted file mode 100644
index 360f8e9..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/reference/no_help_exists.htm b/bundles/org.eclipse.platform.doc.user/reference/no_help_exists.htm
deleted file mode 100644
index 2c2e741..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/no_help_exists.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE> No Help Exists</TITLE>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-No Help Exists</H1>
-<p CLASS="Head">There are no available help topics associated with this
-item.&nbsp;&nbsp;&nbsp;</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-10.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-10.htm
deleted file mode 100644
index 96b37d9..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-10.htm
+++ /dev/null
@@ -1,184 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Style-Type" content="text/css">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Workbench</title>
-<link REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body bgcolor="#FFFFFF">
-
-<h1 CLASS="Head">
-Workbench</h1>
-
-<div CLASS="Intro">The term <i>Workbench</i> refers to the desktop development
-environment.</div>
-
-
-<p CLASS="Para" Label="Type">Each Workbench window contains one or more
-perspectives.&nbsp; Perspectives contain views and editors and control
-what appears in certain menus and tool bars.&nbsp; More than one Workbench
-window can exist on the desktop at any given time.
-
-<p CLASS="Para">The following preferences can be changed on the Workbench
-page.
-<br>&nbsp;
-<table BORDER CELLSPACING=0 >
-<caption></caption>
-<THEAD>
-<br></THEAD><TBODY>
-<br></TBODY>
-
-<tr>
-<th>
-<div CLASS="Para">Option</div>
-</th>
-
-<th>
-<div CLASS="Para">Description</div>
-</th>
-
-<th>
-<div CLASS="Para">Default</div>
-</th>
-</tr>
-
-<tr>
-<td>
-<div CLASS="Para">Perform build automatically on resource modification</div>
-</td>
-
-<td>
-<div CLASS="Para">If this option is turned on, then the Workbench will
-perform an automatic build whenever a modified resource is saved.</div>
-</td>
-
-<td>
-<div CLASS="Para">On</div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Save all modified resources automatically prior to manual
-build</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">If this option is turned on, then whenever you perform
-a manual build (from the menu bar, select <b>Project > Rebuild All</b>), the Workbench
-will automatically save all resources that have been modified since the
-last build was performed.</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Off</div>
-</td>
-</tr>
-
-<tr>
-<td>Refresh Workspace on startup</td>
-
-<td>If this option is turned on then the workspace resources will be synchronized
-with their corresponding resources in the file system when the platform
-is started.
-<p>Note that this can potentially be a lengthy operation depending on
-the number of resources you have in your workspace.</td>
-
-<td>Off</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Confirm exit when closing last window</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">If this option is turned on, then when you close the last
-workbench window you will be prompted to confirm that you want to exit.
-</div>
-
-<p CLASS="Para">You will be able to disable this option in the prompt.</p></td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">On</div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Show Tasks view when build has errors or warnings</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">If this option is turned on, then when a build results in new
-errors or warnings the Tasks view will be activated.</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">On</div>
-</td>
-</tr>
-
-<tr>
-<td>Workspace save interval (in minutes)</td>
-
-<td>This number indicates how often the state of the workspace is automatically
-saved to disk.</td>
-
-<td>5</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Open mode...</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">You can select one of the following methods for opening
-resources:</div>
-
-<div CLASS="Para"></div>&nbsp;
-<ul>
-
-<li CLASS="Item">
-Double click - Single clicking on a resource will select it and double
-clicking on it will open it in an editor.</li>
-
-<li CLASS="Item">
-Single click (Select on hover) - Hovering the mouse cursor over the resource
-will select it and clicking on it once will open it in an editor.</li>
-
-<li CLASS="Item">
-Single click (Open when using arrow keys) - Selecting a resource with the
-arrow keys will open it in an editor.</li>
-
-<div CLASS="Item"></div>&nbsp;
-
-<div CLASS="Item"></div>
-
-
-<p CLASS="Para">Note: Depending on which view has focus, selecting and
-opening a resource may have different behavior.
-</ul>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Double click</div>
-</td>
-</tr>
-</table>
-
-<br>&nbsp;
-<p>Here is what the Workbench preferences page looks like:
-<p><img src="../images/Image217_pref_wb.gif" alt="Preference dialog" border="0" width="525" height="467"></p>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-23.htm">Workbench Window Layout</a>
-</P>
-<p>&nbsp;<br>
-
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-11.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-11.htm
deleted file mode 100644
index 99da11c..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-11.htm
+++ /dev/null
@@ -1,216 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Style-Type" content="text/css">
-   <title>Compare/Patch</title>
-<link REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body bgcolor="#FFFFFF">
-
-<h1 CLASS="Head">
-Compare/Patch</h1>
-
-<div CLASS="Para"></div>
-
-<div CLASS="Para">The following preferences can be changed on the Compare/Patch
-page.</div>
-
-<br>&nbsp;
-<table BORDER CELLSPACING=0 >
-<caption><THEAD>
-</THEAD><TBODY>
-</TBODY></caption>
-
-<center><h2>General options</h2></center>
-<tr>
-<th>
-<div CLASS="Para">Option</div>
-</th>
-
-<th>
-<div CLASS="Para">Description</div>
-</th>
-
-<th>
-<div CLASS="Para">Default</div>
-</th>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Open structure compare automatically</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">This option controls whether a structure compare
-is automatically performed whenever a content compare is done.</div>
-<p CLASS="Para">Turn this option off if you don't want to see the structural differences.
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">On</div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Show additional compare information in the status line</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">If this option is on, additional information about a change is shown in
-the status line.</div>
-<p CLASS="Para">Turn this option on if you are interested in additional information about a change.</td>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Off</div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Ignore white space</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">This option controls whether or not whitespace change
-are shown in the compare viewer.</div>
-
-
-<p CLASS="Para">Turn this option on if you want to see changes in whitespace.</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Off</div>
-</td>
-</tr>
-
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Automatically save dirty options before patching</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">This option controls whether any unsaved changes are automatically
-saved before a patch is applied.</div>
-
-<p CLASS="Para">Turn this option on if you want to save changes automatically.</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Off</div>
-</td>
-</tr>
-
-
-
-</table>
-
-<p>
-<br>&nbsp;
-<table BORDER CELLSPACING=0 >
-<caption><THEAD>
-</THEAD><TBODY>
-</TBODY></caption>
-<center><h2>Text Compare options</h2></center>
-<tr>
-<th>
-<div CLASS="Para">Option</div>
-</th>
-
-<th>
-<div CLASS="Para">Description</div>
-</th>
-
-<th>
-<div CLASS="Para">Default</div>
-</th>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Synchronize scrolling between panes in compare viewers</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">The two comparison viewers will "lock scroll" along with
-one another in order to keep identical and corresponding portions of the
-code in each pane side-by-side.</div>
-
-
-<p CLASS="Para">Turn this option off if you do not want the compare viewers
-to lock scroll.</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">On</div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Initially show ancestor pane</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Sometimes you want to compare two versions of a resource
-with the previous version from which they were both derived. This is called
-their <i>common ancestor</i>, and it appears in its own comparison pane
-during a three way compare.</div>
-
-
-<p CLASS="Para">Turn this option on if you want the ancestor pane to always
-appear at the start of a comparison.</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Off</div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Show pseudo conflicts</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Displays pseudo conflicts, which occur when two developers
-make the same change (e.g., both add or remove the exact same line of code
-or comment).&nbsp;</div>
-
-
-<p CLASS="Para">Turn this option on if you want pseudo conflicts to appear
-in compare browsers.</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Off</div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Connect ranges with single line</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Controls whether differing ranges are visually connected by a single line or
-a range delimited by two lines.</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">On</div>
-</td>
-</tr>
-</table>
-
-<p>Here is what the Compare preference page looks like:
-<p><img src="../images/Image219_pref_cv.gif" alt="Compare preference page" border="0" width="607" height="541">
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-25.htm">Compare Editor</a>
-<br><a href="ref-33.htm">CVS Synchronization View</a>
-</P>
-<p>&nbsp;<br>
-
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-12.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-12.htm
deleted file mode 100644
index 7090d32..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-12.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editors</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Editors</H1>
-<P CLASS="Para">
-The following preferences can be changed on the Editors page.</P>
-<TABLE BORDER="1" cellspacing="0">
-  <THEAD>
-    <TR> 
-      <TH ROWSPAN="1" COLSPAN="1"> <P CLASS="Para"> Option</P></TH>
-      <TH ROWSPAN="1" COLSPAN="1"> <P CLASS="Para"> Description</P></TH>
-      <TH ROWSPAN="1" COLSPAN="1"> <P CLASS="Para"> Default</P></TH>
-    </TR>
-  </THEAD>
-  <TBODY>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Size 
-          of recently opened files list</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          For each file that is opened in an editor, it is stored in a list of 
-          recently used files. This option controls the number of files which 
-          is displayed in this list in the File menu. </P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">4</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Close 
-          all editors on exit</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          This option is used to specify whether or not to close all editors when 
-          the Workbench is exited. Enabling this option will speed up start up 
-          as reducing the amount of work required to start Eclipse.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Off</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Close 
-          editors automatically</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          This option is used to specify whether or not to re-use editors in the 
-          Workbench. If turned on, then you may specify the number of editors 
-          to use before they are recycled (Default is 8). You can also specify 
-          if a prompt dialog should be opened or if a new editor should be opened 
-          when all editors are dirty. Once it is turned on, the Pin Editor action 
-          is added to the toolbar and editor tab menu. Pinned editors are not 
-          recycled. </P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Off</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Text 
-          File Encoding</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Use this option to specify the encoding to use when saving text files 
-          in editors. </P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Default 
-          (CP1252)</P></TD>
-    </TR>
-  </TBODY>
-</TABLE>
-<P>&nbsp;
-</P>
-
-
-<P>Here is what the Editors preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image220_pref_dte.gif" alt="Editors Preference Page" border="0" width="470" height="462">
-</P>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-24.htm">Editor Area</a>
-</P>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-13.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-13.htm
deleted file mode 100644
index 615754c..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-13.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>File Associations</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-File Associations</H1>
-<P CLASS="Intro">
-On the File Associations preference page, you can add or remove file
-types recognized by the Workbench.&nbsp; You can also associate
-editors with file types in the file types list.
-<DIV CLASS="Topic">
-<h2>
-File types list</h2>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-Add:&nbsp; Adds a new file or file type (extension) to the predefined list. In the resulting New File Type dialog, type the name of a file or a file extension. If you are adding a file extension, you must type either a dot or a &quot;*.&quot; before the file type (e.g., &quot;.xml&quot; or &quot;*.xml&quot; as opposed to simply &quot;xml&quot;).</LI>
-<LI CLASS="Item">
-Remove:&nbsp; Removes the selected file type from the list</LI>
-</UL>
-<p>Dialog to create a new file type:</p>
-<p><img src="../images/Image201_filetype.gif" alt="New file type dialog" border="0" width="438" height="244"></p>
-<p>&nbsp;
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Associated editors list</h2>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-Add:&nbsp; Adds a new editor to the list of editors associated with the file type selected above. In the resulting Editor Selection dialog, you can choose an editor to launch either inside the Workbench (internal) or outside the Workbench (external); click <b>Browse</b> to locate an editor yourself if the editor you want is not displayed in the list.</LI>
-<LI CLASS="Item">
-Remove:&nbsp; Removes the association between an editor and the file type selected above.</LI>
-<LI CLASS="Item">
-Default:&nbsp; Sets the selected editor as the default editor for the file type selected above. The editor moves to the top of the Associated Editors list to indicate that it is the default editor for that file type.</LI>
-</UL>
-</DIV>
-<P>Dialog to create a new file association:
-</P>
-
-
-<P><img src="../images/Image202_editorsel.gif" alt="Editor Selection dialog" border="0" width="295" height="361">
-</P>
-
-
-<P>&nbsp;
-</P>
-
-
-<P>Here is what the File Associations preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image221_pref_fe.gif" alt="File associations preference page" border="0" width="530" height="470">
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-14.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-14.htm
deleted file mode 100644
index f139fde..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-14.htm
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Local History</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Local History</H1>
-<P CLASS="Intro">
-
-The following preferences can be changed on the
-Local History page.
-<P CLASS="Intro">
-&nbsp;
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Days To Keep Files</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Indicates for how many days you want to maintain changes in the local history.
-History state older than this value will be lost.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-7 days</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Entries Per File</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Indicates how many history states per file you want to maintain in the local
-history.&nbsp;If you exceed this value, you will lose older history to make room
-for new history.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-50 entries</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Maximum File Size (MB)</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Indicates the maximum size of individual states in the history store.&nbsp; If a
-file is over this size, it will not be stored.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-1 MB</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-
-
-<P>&nbsp;Here is what the Local History preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image222_pref_lh.gif" alt="Local history preference page" border="0" width="669" height="396">
-</P>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-6a.htm">Local History</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-14b.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-14b.htm
deleted file mode 100644
index 1c0075e..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-14b.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Linked Resources</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Linked Resources</H1>
-<P CLASS="Intro">
-
-This preference page is used when working with 
-<a href="../concepts/concepts-13.htm">linked resources</a>. The preference 
-<b>Enable linked resources</b> is used to globally enable or disable the linked resource
-feature for the entire workspace.  By default, linked resources are enabled. If you
-disable linked resources, then you will not be able to create any new linked resources,
-or import existing projects that contain linked resources.
-</P>
-<P CLASS="Para">
-Not all versions of the workbench support linked resources and recognize them as such. 
-You may not want to use linked resources if you plan to share your workspace data with 
-other users. Disable this preference if they will not be able to work with linked resources.
-
-</P>
-<P CLASS="Para">
-The remainder of this page is for defining <a href="../concepts/cpathvars.htm">path variables</a> that are used when creating
-linked resources.  Use the <b>New</b> button to define new variables, the <b>Edit</b>
-button to change the value of an existing variable, and the <b>Remove</b> button to 
-get rid of an existing variable.  Note if you change a path variable that
-is currently in use, you will need to perform a local refresh on those projects to
-&quot;discover&quot; what is different in the file system.  You can refresh a resource
-by opening the Navigator context menu for that resource and selecting <b>Refresh</b>.
-It is not recommended that you remove a path variable that is currently in use.
-</P>
-
-
-<P>&nbsp;Here is what the Linked Resources preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image36_linkedresources.gif" alt="Linked resources preference page" border="0" width="607" height="541">
-</P>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-13.htm">Linked resources</a>
-<br><a href="../concepts/cpathvars.htm">Path variables</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-15.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-15.htm
deleted file mode 100644
index 63029bc..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-15.htm
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Perspectives</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Perspectives</H1>
-<P CLASS="Para">
-On the
-Perspectives preference page, you can manage the various perspectives defined in the Workbench.&nbsp;&nbsp;</P>
-
-
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a new perspective
-</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Use this option to set what happens when you open a new perspective. Do you want the perspective opened within
-the current Workbench window or opened in a new window?
-</P>
-</TD>
-<TD>
-In the same window
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a new view
-</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Use this option to specify what happens when a new view is opened. It is either
-opened to its default position within the current perspective or it is opened as a fast view
-and docked to the side of the current perspective.
-</P>
-</TD>
-<TD>
-Within the perspective
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-New project options
-</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Use this option to specify the perspective behavior when a new project is created. You can set it
-to switch the current perspective to be the one associated with the project type and 
-open the perspective in the same Workbench window as the current one, switch the perspective and
-open it in a new Workbench window, or not to switch perspectives at all.
-</P>
-</TD>
-<TD>
-Open perspective in the same window
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-
-
-<h3>Available Perspectives Options:</h3>
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Make Default</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Sets the selected perspective as the default perspective.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Resource</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Reset</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Resets the definition of the selected perspective to the default configuration. This option is only applicable 
-to built-in perspectives that have been overwritten using Window > Save Perspective As...</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-n/a</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Delete</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Deletes the selected perspective. This option is only applicable to user-defined
-perspectives (built-in perspectives can not be deleted).</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-n/a</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-<P>&nbsp;
-</P>
-
-
-<P>&nbsp;Here is what the Perspectives preferences page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image223_pref_persp.gif" alt="Perspectives Preference Page" border="0" width="521" height="477">
-</P>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-6.htm">Perspectives</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-16.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-16.htm
deleted file mode 100644
index 5ed1ac7..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-16.htm
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Appearance</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Appearance</H1>
-<P CLASS="Para">
-The following preferences can be changed on the Appearance page.</P>
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Tab positions - Editors</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Specify either top or bottom to indicate where you want tabs for stacked editors
-to appear.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Top</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Tab positions - Views</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Specify either top or bottom to indicate where you want tabs for stacked views
-to appear.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Bottom</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Workbench colors</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-      <P CLASS="Para"> Use these options to change the colors for the text shown in 
-        Workbench. 
-      <ul>
-<li>Error text <i>(red)</i></li>
-<li>Hyperlink text <i>(navy)</i></li>
-<li>Active Hyperlink text <i>(blue)</i></li>
-</ul>
-<p></P>
-</TD>
-    <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> 
-      <P CLASS="Para"> Default values are shown in <i>italics</i>.</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-<P>&nbsp;
-</P>
-
-
-<P>Here is what the Appearance preferences page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image218_pref_app.gif" alt="Appearance Preference Page" border="0" width="593" height="453">
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-17.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-17.htm
deleted file mode 100644
index 68e1f89..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-17.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Build Order</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Build Order</H1>
-<P CLASS="Para">
-Often the order in which projects are built is important.&nbsp; For
-example, if one project requires the Java classes which were defined in another
-project, the first project must be built after its prerequisite classes have
-been built.&nbsp; The Workbench allows users to explicitly define the order in
-which projects are built. Alternatively, users can let the platform compute the
-build order by interpreting project references as prerequisite relationships.
-The build order is applied for both building the entire workspace or for a group
-of projects.&nbsp;</P>
-<P CLASS="Para">You can change this order on the Build Order preferences page.&nbsp;Initially
-the <b>Use default builder order</b> option is on, in which case the platform computes the
-build ordering. Turning off this option enables access to the projects list, the
-ordering of which can be manipulated. Select projects and use the <b>Up</b> and <b>Down</b>
-buttons to change the build order.  Add and remove projects in the build order using the
-<b>Add Project</b> and <b>Remove Project</b> buttons. Projects removed from
-the build order <i>will</i> be built, but they will be built after all projects in the build
-order are built.
-</P>
-<P>
-At the bottom of this page, there is a preference for dealing with build orders that
-contain cycles.  Ideally, you should avoid cyclic references between projects.  Projects
-with cycles really logically belong to a single project, and so they should be collapsed into
-a single project if possible.  However, if you absolutely must have cycles, it may take
-several iterations of the build order to correctly build everything.  Changing this preference
-will alter the maximum number of times the workbench will attempt to iterate over the build
-order before giving up.
-</P>
-
-<P>Here is what the Build Order preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image224_pref_build.gif" alt="Build order preference page" border="0" width="616" height="477">
-</P>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-5.htm">Builds</a>
-<br><a href="ref-59.htm">Project menu</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-18.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-18.htm
deleted file mode 100644
index 4fcce98..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-18.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Help</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Help</H1>
-<P CLASS="Para">
-On the Help preferences page, you can indicate how to display help books.</P>
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-<TR>
-<TH align="left">
-<span style="font-weight: 400">Current web browser adapter</span></TH>
-<TH align="left">
-<span style="font-weight: 400">The help browser uses an adapter to display the 
-on-line help in a web browser.  If there are multiple adapters capable
-of opening a browser on your system, the one that is selected will be used
-to display help.</span>
-</TH>
-<TH align="left">
-<span style="font-weight: 400">depends on operating system</span></TH>
-</TR>
-<TR>
-<TH align="left">
-<span style="font-weight: 400">Custom browser command</span></TH>
-<TH align="left">
-<span style="font-weight: 400">If &quot;Custom Browser&quot; is selected from the browser adapter list, this field
-is used to specify command that will launch the browser program.
-If URL is not the last parameter accepted by the browser program,
-use &quot;%1&quot; string to indicate position of the URL in the command.</span>
-</TH>
-<TH align="left">
-<span style="font-weight: 400">mozilla %1 (the field is disabled)</span></TH>
-</TR>
-</THEAD>
-<TBODY>
-</TBODY>
-</TABLE>
-
-
-<P>Here is what the Help preferences page looks like:&nbsp;&nbsp;
-</P>
-
-
-<P>
-<img src="../images/Image225_pref_help.gif" alt="Help Preference Page" border="0" width="547" height="416">
-</P>
-
-<p>
-<b>Note:</b>  Selection performed on this page can affect how the help view is presented.  If the selected browser is not fully compatible with Internet Explorer or Mozilla, or has JavaScript disabled, the help view shown in the browser might be a simplified version.
-</p>
-
-<p>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tchgbrws.htm">Changing the browser used by the help system</a></p>
-
-<p>
-<img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-34.htm">Help View</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-19.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-19.htm
deleted file mode 100644
index c3fff51..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-19.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Team</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Team</H1>
-<P CLASS="Para">
-The Team preferences page contains options which affect the version management
-Team support.</P>
-<TABLE BORDER="1" cellspacing="0">
-  <THEAD> 
-  <TR> 
-    <TH ROWSPAN="1" COLSPAN="1"> 
-      <P CLASS="Para"> Option</P>
-    </TH>
-    <TH ROWSPAN="1" COLSPAN="1"> 
-      <P CLASS="Para"> Description</P>
-    </TH>
-    <TH ROWSPAN="1" COLSPAN="1"> 
-      <P CLASS="Para"> Default</P>
-    </TH>
-  </TR>
-  </THEAD> <TBODY> 
-  <TR> 
-    <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> 
-      <P CLASS="Para"> Use Incoming/Outgoing mode when synchronizing</P>
-    </TD>
-    <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> 
-      <P CLASS="Para">The Synchronize view can open in incoming mode, outgoing 
-        mode, or incoming/outgoing mode.&nbsp; Turning this option on will open 
-        the Synchronize view in incoming/outgoing mode, regardless of what you 
-        are doing (e.g., updating, committing, or both).</P>
-    </TD>
-    <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> 
-      <P CLASS="Para"> Off</P>
-    </TD>
-  </TR>
-  </TBODY> 
-</TABLE>
-<P>&nbsp;
-</P>
-
-
-<P>Here is what the Team preferences page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image227_pref_team.gif" alt="Team Preference Page" border="0" width="475" height="493">
-</P>
-
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-33.htm">CVS Synchronize view</a>
-   </p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-19cvs.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-19cvs.htm
deleted file mode 100644
index 7c8c50b..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-19cvs.htm
+++ /dev/null
@@ -1,241 +0,0 @@
-
-<!DOCTYPE html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<META http-equiv="Content-Style-Type" content="text/css"><LINK rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<TITLE>CVS</TITLE>
-</HEAD>
-<BODY bgcolor="#ffffff">
-<H1 class="Head">CVS</H1>
-<P class="Para">On the CVS preference page you can customize several aspects 
-  of the CVS Plug-in.</P><H2 class="Para"><STRONG>General CVS Preferences:</STRONG></H2>
-<TABLE border="1" cellspacing="0">
-  <THEAD>
-    <TR> 
-      <TH> <P class="Para">Option</P></TH>
-      <TH> <P class="Para">Description</P></TH>
-      <TH> <P class="Para">Default</P></TH>
-    </TR>
-  </THEAD>
-  <TR> 
-    <TD valign="top" align="left"> Prune empty directories</TD>
-    <TD valign="top" align="left"> Use this option to specify the pruning of empty 
-      directories on update and in the synchronization view. Although pruned directories 
-      aren't shown in the workbench there is actually still an empty directory 
-      in the repository. This is helpful because CVS doesn't provide a client 
-      with the ability to remove directories from the server.</TD>
-    <TD>Enabled </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left"> Consider file contents in comparison</TD>
-    <TD valign="top" align="left"> Use this option to set the default compare 
-      method for comparing and synchronizing CVS resources. By default, time stamps 
-      are used to compare CVS files, and this is by far the fastest method. However, 
-      in some cases a more accurate comparison can be achieved by comparing file 
-      content. This setting can also be toggled from within a compare editor or 
-      the synchronization view.</TD>
-    <TD>Disabled </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left"> Show deleted file markers</TD>
-    <TD valign="top" align="left"> Use this option to enable markers to be added 
-      to the task view for resources that have been locally removed but not committed. 
-      This is useful for users who prefer update/commit instead of using the synchronize 
-      view. The deleted tasks allow quick fix options for committing the deletion 
-      to the server.</TD>
-    <TD>Enabled </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">Delete unmanaged resources on replace </TD>
-    <TD valign="top" align="left">Use this option to allows resources not under 
-      CVS control to be deleted when replacing with resources from the repository. 
-    </TD>
-    <TD>Enabled </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">Treat all new files as binary </TD>
-    <TD valign="top" align="left">Use this option to override the file content 
-      settings and treat all new files as binary. </TD>
-    <TD>Disabled </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">Validate server version compatibility on first 
-      connection </TD>
-    <TD valign="top" align="left">Use this option to enable a query of the CVS 
-      server version on the first connection to determine server compatibility. 
-      The server version will be output to the console and if an incompatibility 
-      is detected a warning message will be logged when connecting. </TD>
-    <TD>Enabled </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">Communication timeout </TD>
-    <TD valign="top" align="left">Use this option to configure the amount of time 
-      in seconds to wait before timing out from a connection to the CVS server. 
-    </TD>
-    <TD>60 seconds </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">Quietness level </TD>
-    <TD valign="top" align="left">Sets the amount of status information CVS prints 
-      for a command. In <STRONG>Somewhat quiet</STRONG> mode the printing of unimportant 
-      informational messages is suppressed. The consideration of what is important 
-      depends on each command. In <STRONG>Very quiet</STRONG> mode all output 
-      except what is absolutely necessary to complete the command is suppressed. 
-      In <STRONG>Very Quiet</STRONG> mode, some CVS servers may not communicate 
-      important information about errors that have occurred. You may want to consider 
-      using <STRONG>Somewhat quiet</STRONG> mode instead. </TD>
-    <TD>Verbose </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">Default keyword substitution </TD>
-    <TD valign="top" align="left">Use this option to set the default keyword substitution 
-      for text files. </TD>
-    <TD>ASCII with keyword expansion -kkv </TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">Save dirty editors before CVS operations </TD>
-    <TD valign="top" align="left"> Use this option to configure what happens when 
-      there are open editors with unsaved changes when a CVS operation is performed. 
-      Options are:
-<P><STRONG>Never</STRONG></P>
-      <P>Continue CVS operations even if there are unsaved changes in open editors.</P>
-      <P><STRONG>Prompt</STRONG></P>
-      <P>Ask the user what to do with unsaved changes in open editors.</P>
-      <P><STRONG>Auto-save</STRONG></P>
-      <p>Automatically save unsaved changes in open editors before each CVS operation.</p></TD>
-    <TD>Prompt </TD>
-  </TR>
-</TABLE>
-<H2>Console preferences:</H2>
-<TABLE width="100%" border="1" cellspacing="0">
-		 <THEAD>
-		 		 <TR>
-		 		 		 <TH>
-<P class="Para">Option</P>
-		 		 		 </TH>
-		 		 		 <TH>
-<P class="Para">Description</P>
-		 		 		 </TH>
-		 		 </TR>
-		 </THEAD>
-		 <TR>
-		 		 
-    <TD valign="top" align="left"> Console text color settings</TD>
-		 		 
-    <TD valign="top" align="left"> Use these options to change the colors for 
-      the text shown in CVS Console.
-<UL>
-		 		 		 		 <LI>Command line text <I>(black)</I>
-		 		 		 		 <LI>Message text <I>(blue)</I>
-		 		 		 		 <LI>Error text <I>(red)</I></LI>
-		 		 		 </UL>
-		 		 </TD>
-		 </TR>
-</TABLE>
-<H2>Ext Connection Method preferences:</H2>
-<TABLE border="1" cellspacing="0">
-		 <TR>
-		 		 <TD valign="top" align="left">CVS_RSH
-		 		 </TD>
-		 		 
-    <TD valign="top" align="left"> Use this option to configure the program that 
-      will be called to connect to the remote CVS server. The RSH command is invoked 
-      with following calling pattern:
-<P><EM>CVS_RSH Parameters CVS_SERVER</EM></P>
-		 		 </TD>
-		 		 <TD>ssh
-		 		 </TD>
-		 </TR>
-		 <TR>
-		 		 <TD valign="top" align="left">Parameters
-		 		 </TD>
-		 		 
-    <TD valign="top" align="left"> Use this option to configure the parameters 
-      passed to the CVS_RSH program. The default parameter pattern is {host} -l 
-      {user}. It can be tailored using the {host}, {user}, {password} and {port} 
-      variables.</TD>
-		 		 <TD>{host} -l {user}
-		 		 </TD>
-		 </TR>
-		 <TR>
-		 		 <TD valign="top" align="left">CVS_SERVER
-		 		 </TD>
-		 		 <TD valign="top" align="left">Use this option to configure the 
-        name of the remote CVS server program to run. Change this setting only 
-        if the remote CVS server binary name is different than the default.
-		 		 </TD>
-		 		 <TD>cvs
-		 		 </TD>
-		 </TR>
-</TABLE>
-<H2>Label Decorations preferences:</H2>
-<TABLE width="100%" border="1" cellspacing="0">
-		 <TR>
-		 		 <TD valign="center" align="left">Text
-		 		 </TD>
-		 		 
-    <TD valign="top" align="left"> Use the options on this page to configure how 
-      CVS information will be added to text labels.</TD>
-		 </TR>
-		 <TR>
-		 		 <TD valign="center" align="left">Icons
-		 		 </TD>
-		 		 <TD valign="top" align="left">Use the options on this page to 
-        configure the which icons can be used as overlays to show CVS specific 
-        information in views.
-		 		 </TD>
-		 </TR>
-		 <TR>
-		 		 <TD valign="center" align="left">General
-		 		 </TD>
-		 		 
-    <TD valign="top" align="left"> Use the options on this page to configure general 
-      preferences about the decorators:
-<P><STRONG>Compute deep outgoing state for folders</STRONG></P>
-<P>Use this option to configure if the outgoing indicators on folders 
-          should be calculated. Disabling this option improves the performance 
-          of the decorators because calculating the dirty state for folders requires 
-          computing the dirty state for all child resources. (<EM>enabled by default</EM>)</P>
-		 		 </TD>
-		 </TR>
-		 <TR>
-		 		 <TD valign="center" align="left">Synchronize view
-		 		 </TD>
-		 		 
-    <TD valign="top" align="left"> Use the options on this page to configure how 
-      label decorations appear in the synchronize view:
-<P><STRONG>Show all CVS synchronization information in the text label</STRONG></P>
-<P>Use this option to show the synchronization state of a resource in the 
-          text label. This is useful for accessibility requirements. If you are 
-          using a UI text reader, than enabling this option will allow the text 
-          reader to correctly interpret the states shown in the view. Ordinarily synchronization states are shown using icon decorations.</P>
-		 		 </TD>
-		 </TR>
-</TABLE>
-<H2>Watch/Edit preferences:</H2>
-<TABLE border="1" cellspacing="0">
-  <TR> 
-    <TD valign="top" align="left">Configure projects to use Watch/edit on checkout</TD>
-    <TD valign="top" align="left"> Use this option to indicate that files checked 
-      out out from the repository should be made read-only.</TD>
-    <TD>disabled</TD>
-  </TR>
-  <TR> 
-    <TD valign="top" align="left">When read-only files are modified in an editor</TD>
-    <TD valign="top" align="left"> Use this option to configure what occurs when 
-      a read-only file is modified in an open editor or by another tool.
-<P><strong>Send a cvs edit notification to the server</strong></P>
-      <P>Issues a cvs edit notification to the server before making the file writable. 
-        If other editors exist on the file, the user will be prompted and may 
-        continue or cancel.</P>
-      <P><strong>Edit the file without informing the server</strong></P>
-      <P>Makes the file read-only without notifying the server.</P></TD>
-    <TD>Send a cvs edit notification to the server</TD>
-  </TR>
-</TABLE>
-<P><IMG height="27" alt="Related reference" src="../images/ngrelr.gif" width="159" border="0"><BR>
-  <A href="ref-6.htm">Perspectives</A></P>
-<P><BR><A href="../hglegal2003.htm"><IMG height="14" alt="Copyright IBM Corporation and others 2000, 2003" src="../images/ngibmcpy2003.gif" width="324" border="0"></A></P>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-2.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-2.htm
deleted file mode 100644
index 524aa4c..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-2.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Workbench toolbar</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Workbench toolbar </H1>
-<P CLASS="Intro">The Workbench toolbar is displayed
-at the top of the Workbench window, directly underneath the menu bar.&nbsp; The
-contents of the toolbar change based on the active editor.&nbsp; Actions in the
-toolbar may apply to particular views, so these actions may be enabled or
-disabled based on the state of the currently active view or editor.
-<P CLASS="Para">
-Here is an example of the toolbar in the Resource perspective:</P>
-<P CLASS="Para">
-<img src="../images/Image214_toobar_rsrc.gif" alt="Workbench toolbar" border="0" width="316" height="22"></P>
-<DIV CLASS="XRefList">
-
-<h2>
-New Wizard</h2>
-<P CLASS="Para">
-This command brings up a dialog where you can choose
-the type of resource to create.</P>
-
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Save The Open Editor Contents</h2>
-<P CLASS="Para">
-This command saves the file currently displayed in the editor area.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Save To Another Location</h2>
-<P CLASS="Para">
-This command saves a copy of the file currently displayed in the editor area to a
-user-specified location. The specified name and location can be
-different from the file's original name and location.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Print</h2>
-<P CLASS="Para">
-This command opens a dialog which allows you to specify where you would like to print the contents
-of the file currently being displayed in the editor.
-</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Search</h2>
-<P CLASS="Para">
-This command opens the search dialog, which allows you to search the
-workspace for
-specified text.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-External Tools</h2>
-<P CLASS="Para">
-This command presents a drop-down menu which allows you to run or configure external tools.
-</P>
-</DIV>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-3.htm">Shortcut Bar</a>
-<br><a href="ref-4.htm">View Toolbars</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-20-fileContent.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-20-fileContent.htm
deleted file mode 100644
index eba6c02..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-20-fileContent.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>File Content</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> File Content</H1>
-<P CLASS="Intro"> On the Team&gt;File Content preference page, you can associate 
-  file extensions with the type of data the file contains. The two choices for 
-  file content type are ASCII and Binary. Repository providers such as CVS can 
-  then use this information to provide content type appropriate behavior. For 
-  example, for ASCII files, CVS ensures that line terminators conform to those 
-  of the OS platform. 
-<P CLASS="Intro">Entries are added to the File Content page in two ways. The first 
-  is through contributions from workbench plug-ins. Tools integrated into the 
-  workbench provide the workbench with the file content types for file extensions 
-  specific to the tool. The workbench itself also defines the file content type 
-  for file extensions that are common and appear frequently in the workbench (e.g. 
-  html, gif, etc.). 
-<P CLASS="Intro">The second method is for users to add file content types explicitly 
-  on the File Content preference page. To do so, the user can simply click on 
-  the <strong>Add</strong> button and enter an extension. Following this, they 
-  can toggle the type associated with the extension by selecting the entry for 
-  the extension in the table and clicking <strong>Change</strong>. Entries can 
-  be removed from the list by selecting them and clicking <strong>Remove</strong>.
-<p>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-cvs-11.htm">Setting the CVS keyword substitution mode</a>
-</p>
-
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-20.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-20.htm
deleted file mode 100644
index 349bb9d..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-20.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ignored Resources</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Ignored Resources</H1>
-<P CLASS="Intro">
-
-On the Ignored Resources page, you can specify file name patterns to exclude from the version control management system.
-There is a list of file patterns against which resources will be matched before they are
-considered as version control candidates.&nbsp;
-These patterns may contain the wildcard characters "*" and "?".&nbsp; This
-pattern "*"
-represents any sequence of zero or more characters.&nbsp; This pattern "?" represents any one
-character.&nbsp; For example, you can specify a pattern of "*~", which would match
-any temporary files that end with "~".&nbsp;&nbsp; Any file or directory that matches any one of the
-patterns will be ignored during&nbsp; update or commit operations.&nbsp;
-<P CLASS="Para">
-To add a file type to the ignore list, simply click on the Add button. In
-the dialog, enter a file type (e.g. *.class). To remove a file type from the ignore list, simply select the
-file type in the ignore list and click on the Remove button.&nbsp;</P>
-<P CLASS="Para">
-You can temporarily disable ignoring the
-file pattern by de-selecting it from the list. You do not have to remove the
-specified file pattern from the list to temporarily disable it.</P>
-<P CLASS="Para">
-Here is what the Ignored Resources preferences page looks like:&nbsp;</P>
-
-
-<P><img src="../images/Image228_pref_ignore.gif" alt="Ignored Resources Page" border="0" width="457" height="519">
-</P>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-48a.htm">Ignoring Resources from Version Control</a>
-   </p>
-
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-21.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-21.htm
deleted file mode 100644
index 99b27c9..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-21.htm
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Install/Update</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Install/Update</H1>
-<P CLASS="Intro">
-The following preferences can be changed on the Install/Update page:
-<P CLASS="Intro">&nbsp;
-
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Maximum number of 'History' configurations</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Maximum number of configurations you want maintained in the configuration history.
-These configurations are maintained to allow you to revert to a previous 
-configuration of installed feature versions.
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-50</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Web browser to use</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-This setting determines whether links on install/update Web sites will be opened 
-in the built in Eclipse browser or in your standard Web browser.
-You can select one of the following options:
-<ul>
- <li>Embedded Browser
- <li>Default System Browser
-</ul>
-<p></P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Embedded Browser</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Valid updates</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Assuming that feature versions use the form 'major.minor.service', you can select what update level you want to choose from:
-
-<dl>
- <dt>equivalent
- <dd>Only service updates will be displayed.<dt>compatible
- <dd>Service updates and minor updates will be displayed.</dl>
-<p></P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-equivalent
-</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Section title color</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Color to use for section titles.
-</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Blue</P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1" valign="top" align="left">
-Proxy settings</TD>
-<TD COLSPAN="1" valign="top" align="left">
-Allows connection to the remote server from behind the firewall. When enabled, 
-proxy host address (required) and port number (optional) can be specified.</TD>
-<TD COLSPAN="1" valign="top" align="left">
-No proxy</TD>
-</TR>
-</TBODY>
-</TABLE>
-
-
-<P CLASS="Para">
-Here is what the Install/Update preference page looks like:&nbsp;</P>
-
-
-<P><img src="../images/Image226_pref_softup.gif" alt="Install/Update Preference page" border="0" width="560" height="553">
-</P>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a HREF="../tasks/tasks-36.htm">Updating Eclipse with the update manager</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a HREF="ref-61.htm">Help Menu</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-21a.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-21a.htm
deleted file mode 100644
index ce9bc11..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-21a.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Web-triggered updates</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Web-triggered Updates</H1>
-<P CLASS="Intro">
-The following preferences can be changed on the Web-triggered Updates page:
-<P CLASS="Intro">&nbsp;
-
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Accept Internet connections for the Web-triggered updates</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-When selected, Update manager will act as an application server and will be able 
-to accept connections from Web pages capable of initiating install/update 
-operations in Eclipse.</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-not selected</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-
-
-<P CLASS="Para">
-Here is what the Web-triggered Updates preference page looks like:&nbsp;</P>
-
-
-<P>
-<img src="../images/Image226a_pref_softup.gif" alt="Install/Update Preference page" border="0" width="518" height="350">
-</P>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a HREF="../tasks/tasks-36.htm">Updating Eclipse with the update manager</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a HREF="ref-61.htm">Help Menu</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-23.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-23.htm
deleted file mode 100644
index fc2e863..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-23.htm
+++ /dev/null
@@ -1,243 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Workbench window layout</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Workbench window layout</H1>
-<P CLASS="Para">
-You can rearrange the layout of Workbench windows as follows:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-Drag views to different positions within the Workbench window.</LI>
-<LI CLASS="Item">
-Drag views to the shortcut bar to create a fast view.</LI>
-<LI CLASS="Item">
-Drag editors such that they are simultaneously visible beside, above, or below
-another editor.</LI>
-<LI CLASS="Item">
-Resize views and editors by dragging the sashes which separate them.</LI>
-</UL>
-<DIV CLASS="Topic">
-<h2>
-Drop cursors</h2>
-<P CLASS="Para">
-<i>Drop cursors</i> indicate where a view will dock when you release your mouse
-button. This indication is relative to the view or editor area underneath the cursor. </P>
-<TABLE BORDER="1" width="669" cellspacing="0">
-<CAPTION>
-Drop Cursors</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="54">
-<P CLASS="Para">
-Cursor</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="113">
-<P CLASS="Para">
-Name</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="480">
-<P CLASS="Para">
-Description</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="54">
-<P CLASS="Para">
-&nbsp;</P>
-<IMG SRC="../images/ref-1.gif" ALIGN="BASELINE" alt="Up arrow">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="113">
-<P CLASS="Para">
-Dock above</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="480">
-<P CLASS="Para">
-The view will appear above the view underneath the cursor.</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="54">
-<P CLASS="Para">
-&nbsp;</P>
-<IMG SRC="../images/ref-2.gif" ALIGN="BASELINE"  alt="Down arrow">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="113">
-<P CLASS="Para">
-Dock below</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="480">
-<P CLASS="Para">
-The view will appear below the view underneath the cursor.</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="54">
-<P CLASS="Para">
-&nbsp;</P>
-<IMG SRC="../images/ref-3.gif" ALIGN="BASELINE"  alt="Right arrow">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="113">
-<P CLASS="Para">
-Dock to the right</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="480">
-<P CLASS="Para">
-The view will appear to the right of the view underneath the cursor.</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="54">
-<P CLASS="Para">
-&nbsp;</P>
-<IMG SRC="../images/ref-4.gif" ALIGN="BASELINE"  alt="Left arrow">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="113">
-<P CLASS="Para">
-Dock to the left</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="480">
-<P CLASS="Para">
-The view will appear to the left of the view underneath the cursor. </P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="54">
-<P CLASS="Para">
-&nbsp;</P>
-<IMG SRC="../images/ref-5.gif" ALIGN="BASELINE"  alt="Stack">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="113">
-<P CLASS="Para">
-Stack</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="480">
-<P CLASS="Para">
-The view will appear as a tab in the same pane as the view underneath the cursor. </P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-<DIV CLASS="Topic">
-<DIV CLASS="Subtopic">
-<H2>
-Fast views</H2>
-<P CLASS="Para">
-From a view's title bar context menu, you can select Fast View to minimize the view
-as a&nbsp; button on the shortcut bar.</P>
-<P CLASS="Para">
-If a view is minimized in this way, you can click its
-button on the shortcut bar to bring it up in a fast view. To revert the fast
-view back to a docked view again, select the <i>Fast View</i> button on its title
-bar.</P>
-<A HREF="ref-3.htm" CLASS="XRef">See Shortcut Bar</A></DIV>
-<DIV CLASS="Subtopic">
-<H2 CLASS="Head">
-Double-Click</H2>
-<P CLASS="Para">
-Double-clicking a view's title bar maximizes the
-view in the Workbench window.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<H2 CLASS="Head">
-Title bar context menu and amp; fast view toolbars</H2>
-<P CLASS="Para">
-From the context menu of a view's title bar, you can select how you want the view to appear within the Workbench window.</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-View title bar context menu options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-<A NAME="pgfId-1096571">O</A>ption</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Restore</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Restores the view to its originating (non-maximized/non-minimized) size and position within the Workbench.</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Fast View<BR>
-(i.e., minimize)</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Minimizes the view and places a button for it in the shortcut bar.&nbsp;&nbsp;
-<P CLASS="Para">
-This option, when used in a fast view, will restore the view to its originating
-(docked) position in the Workbench.</P>
-<P CLASS="Para">
-<A HREF="ref-3.htm" CLASS="XRef">See Shortcut Bar</A>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Maximize</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Maximizes the view in the Workbench window.</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Minimize</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Minimizes the view in the Workbench window.</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Close</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Closes the view.&nbsp;&nbsp;</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-</DIV>
-<P>Here is what a view's context menu looks like:
-</P>
-
-
-<P><img src="../images/Image229_view_popup.gif" alt="View's context menu" border="0" width="90" height="117">
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-24.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-24.htm
deleted file mode 100644
index c923a8d..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-24.htm
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editor area</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Editor area</H1>
-<P CLASS="Intro">
-
-The editor area is where you modify the contents of files in the Workbench.
-<P CLASS="Para">
-Here is what the editor area looks like when multiple files are open and a text
-file is being edited:</P>
-<P CLASS="Para">
-<img src="../images/Image230_editor_area.gif" alt="Editor Area" border="0" width="496" height="221"></P>
-<DIV CLASS="Topic" style="width: 559; height: 402">
-<h2>
-Marker bar</h2>
-<P CLASS="Para">
-The marker bar is the vertical bar located at the left of the editor area.&nbsp;&nbsp;</P>
-<P CLASS="Para">
-Here is what the marker bar looks like:</P>
-<P CLASS="Para">
-<img src="../images/Image231_marker_bar.gif" alt="Marker Bar" border="0" width="37" height="180"></P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Markers</h2>
-<P CLASS="Para">
-Markers are displayed in the marker bar, to the left of the text editor.</P>
-<P CLASS="Para">
-Depending on the type of file displayed in the editor area, three kinds of markers
-may be displayed:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-Bookmarks </LI>
-<LI CLASS="Item">
-Task markers (for associated tasks) </LI>
-<LI CLASS="Item">
-Debugging breakpoints </LI>
-</UL>
-<P CLASS="Para">
-You can create and associate a marker with a specific line in a file by accessing the context menu from the marker bar,
-which is directly to the left of that line. </P>
-<P CLASS="Para">
-Here is what the context menu of the marker bar looks like: </P>
-<P CLASS="Para">
-<img src="../images/Image232_marker_context.gif" alt="Marker Bar Menu" border="0" width="125" height="40"> </P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Types of editors</h2>
-<P CLASS="Para">
-The Workbench uses three types of editors:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-Internal: These editors are launched inside the editor area in the Workbench window.</LI>
-<LI CLASS="Item">
-External: You can go outside the Workbench in the file system, edit a Workbench file outside the Workbench, and save the edited file. For example, 
-imagine that you add an SGML file to the Workbench. Later, you go into the file system and open the 
-file in an SGML editor, then save the file. The edited SGML file is still represented in the Workbench, even 
-though you did not edit the file in the Workbench. If you associate a file type with an external editor in 
-the Workbench (Window &gt; Preferences &gt; Workbench &gt; File Associations preferences page), then the Workbench
-will launch this external editor.</LI>
-<LI CLASS="Item">
-ActiveX: On Microsoft Windows platforms, the Workbench makes use of ActiveX controls for applications that allow for them. For example, Microsoft Word supports being embedded as an OLE
-document. Thus if you have a <i>.doc</i> file in the Workbench, and Word is registered as the editor for
-<i>.doc </i>files in your operating system, then opening the file will launch Word as an OLE document within the Workbench editor area. Notice how OLE documents also add such features as menus
-and toolbar buttons.</LI>
-</UL>
-<p>The following illustrates Microsoft Word embedded as an OLE document:</p>
-<DIV CLASS="Figure">
-    <DIV> <IMG SRC="../images/ref-7.gif"  alt="Workbench with OLE Editor" width="605" height="500"> 
-    </DIV>
-</DIV>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-25.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-25.htm
deleted file mode 100644
index 3d7ce26..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-25.htm
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-             
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-             
-  <meta http-equiv="Content-Style-Type" content="text/css">
-              
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Compare editor</title>
-</head>
-  <body bgcolor="#ffffff">
-       
-<h1 class="Head"> Compare editor</h1>
-       
-<p class="Para"> You can view the differences between two files by comparing 
- them.    You can compare different files, you can compare versions in 
- the Workbench    with versions in the repository, or with the local edit history.&nbsp;
- In some    cases you can compare three files (when a common ancestor exists).
- </p>
-       
-<p class="Para"> After a comparison is carried out, the compare editor opens 
- in    the editor area. In the compare editor, you can&nbsp; browse through 
- all the    differences and copy highlighted differences between the compared 
- resources.    You can save changes to resources that are made in the comparison 
- editor. </p>
-       
-<p class="Para">Here is how the compare editor looks when you synchronize 
-    with a CVS repository. The compare editor is the bottom portion of the 
-view (whose    titlebar is Text Compare).</p>
-       
-<p class="Para"><img
- src="../images/Image245_sync_view.gif"
- alt=" Picture of 3-paned editor. Top pane compares project structure; bottom 2 panes (side by side) compare lines of source." width="674" height="321" border="0" align="top"> 
-</p>
-       
-<div class="Topic">    
-<div class="Subtopic">    
-<h2>Toolbar</h2>
-       
-<p>The toolbar of the Compare editor includes the following buttons:</p>
-           
-<dl>
-  <dt>Control Visibility of Ancestor Pane</dt>
-  <dd>There are two conditions under which a three way compare will occur, 
-          both when using the Team version management support: when comparing 
- a          file that is in conflict, and when comparing a file being merged 
- from          a branch. In both cases, the system will determine a common 
- ancestor in          the repository to compare the conflict or merge against. 
- This button determines          the visibility of the third editor. By default, 
- the ancestor pane is not          visible.</dd>
-  <dt>Perform Three way/Two way Compare</dt>
-  <dd>The compare editor can be toggled between performing a three way compare 
-          or a two way compare which ignores the common ancestor.</dd>
-  <dt>Copy Whole Document from Left to Right</dt>
-  <dd>Copies the entire contents of the file in the left pane into the file 
-          in the right pane, making the contents of the two files identical.&nbsp;</dd>
-  <dt>Copy Whole Document from Right to Left</dt>
-  <dd>Does the opposite of the one just described.</dd>
-  <dt>Copy Current Change from Left to Right</dt>
-  <dd>Merges changes in two files by copying the highlighted change in the 
-          left pane into the highlighted fragment on the right.&nbsp; This 
- will          overwrite the highlighted fragment in the right pane.</dd>
-  <dt>Copy Current Change from Right to Left</dt>
-  <dd>Does the opposite of the one just described.</dd>
-  <dt>Select Next Difference</dt>
-  <dd>Highlights the next difference that is found between the compared resources.</dd>
-  <dt>Select Previous Difference</dt>
-  <dd>Highlights the previous difference that is found between the compared 
-          resources.</dd>
-</dl>
-           
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-   <br>
-          <a href="../concepts/concepts-30.htm">Synchronizing with a CVS
-repository</a>        <br>
-   <a href="../concepts/concepts-29.htm">Three way comparisons</a></p>
-         
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-   <br>
-    <a href="../tasks/tasks-68.htm">Comparing resources</a><br>
-    <a href="../tasks/tasks-115.htm">Synchronizing with the repository</a><br>
-    <a href="../tasks/tasks-68dg.htm">Merging changes in the compare editor</a><br>
-    <a href="../tasks/tasks-113b.htm">Resolving conflicts</a><br>
-    <a href="../tasks/tasks-68b.htm">Setting preferences for comparing files</a><br>
-    <a href="../tasks/tasks-101.htm">Comparing resources with repository
-versions</a>    </p>
-      </div>
-    </div>
-        
-<p>&nbsp;<br>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0"
- width="324" height="14">
-   </a> </p>
-        
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-26.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-26.htm
deleted file mode 100644
index 577dfa7..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-26.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"><title>Search view</title></head><body bgcolor="#ffffff">
-
-<h1>Search view</h1>
-
-<p>
-This view displays the results of a search.&nbsp;&nbsp;</p>
-
-<p>
-Text searches will only search for expressions in files with extensions (file
-types) specified in the search dialog.</p>
-
-<p>
-Here is what the Search view looks like:</p>
-
-<p>
-<img src="../images/Image237_search_view.gif" alt="Search View" border="0" width="431" height="139"></p>
-
-<dl>
-<dt>Show Next Match</dt>
-<dd>
-This command highlights the next match of the search
-expression in the editor area, opening the file if required.</dd>
-
-<dt>Show Previous Match</dt>
-<dd>
-This command highlights the previous match of the
-search expression in the editor area, opening the file if required.</dd>
-
-
-<dt>Remove Selected Matches</dt>
-<dd>Removes all highlighted matches from the search results.</dd>
-
-<dt>Search</dt>
-<dl>
-This command opens the Search dialog.</dl>
-
-<dt>Previous Search Results</dt>
-<dd>
-This command allows you to browse previously
-conducted searches and repeat a previous search.&nbsp; You can select a previous
-search from the drop-down menu or clear the search history.</dd>
-
-</dl>
-
-<p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" width="159" height="27">
-<br>
-<a href="../concepts/csearchview.htm">Search view</a><br>
-</p>
-
-<p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" width="159" height="27">
-<br>
-<a href="../tasks/tasks-84b.htm">Searching for files</a><br>
-<a href="../tasks/tasks-84.htm">Searching for text within a file</a><br>
-</p>
-
-<p><img src="../images/ngrelr.gif" alt="Related reference" border="0" width="159" height="27">
-<br>
-<a href="ref-45.htm">File search</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body></html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-27.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-27.htm
deleted file mode 100644
index eac1eff..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-27.htm
+++ /dev/null
@@ -1,267 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Navigator view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h1>
-Navigator view</H1>
-<P CLASS="Intro">
-
-This view provides a hierarchical view of the resources in the Workbench.
-<P CLASS="Para">
-Here is what the Navigator view looks like:</P>
-<P CLASS="Para">
-<img src="../images/Image241_nav_view.gif" alt="Navigator View" border="0" width="157" height="166"></P>
-<P CLASS="Para">&nbsp;
-</P>
-<h1>Toolbar</h1>
-<DIV CLASS="Topic">
-<h2>
-Back</h2>
-<P CLASS="Para">
-This command displays the hierarchy that was displayed immediately prior to the current display.&nbsp;
-For example, if you Go Into a resource, then the Back command in the resulting display returns the view to the same hierarchy from which you activated the
-<i> Go Into</i> command. The hover help for this button tells you where it will
-take you. This command is similar to the Back button in a web browser.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Forward</h2>
-<P CLASS="Para">
-This command displays the hierarchy that was displayed immediately after the current display.&nbsp;
-For example, if you've just selected the Back command, then selecting the Forward command in the resulting display returns the view to the same hierarchy from which you activated the Back command.&nbsp;The
-hover help for this button tells you where it will take you.
-This command is similar to the Forward button in a web browser.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Up</h2>
-<P CLASS="Para">
-This command displays the hierarchy of the parent of the
-current highest level resource. The hover help for this button tells you where
-it will take you.</P>
-</DIV>
-<H2>Collapse All</H2>
-<P>This command collapses the tree expansion state of all resources in the
-view.</P>
-<H2>Link with Editor</H2>
-<P>This command toggles whether the Navigator view selection is linked to
-the active editor. When this option is selected, changing the active editor
-will automatically update the Navigator selection to the resource being
-edited.</P>
-<P><BR>
-</P>
-<H1>Menus</H1>
-<P>Click the icon at the left end of the view's title bar to open a menu of
-items generic to all views. Click the black upside-down triangle icon to
-open a menu of items specific to the Navigator view. Right-click inside
-the view to open a context menu.&nbsp;</P>
-<H2>Select Working Set</H2>
-<P>Opens the <B>Select Working Set</B> dialog to allow selecting a working set for the Navigator view.</P>
-<H2>Deselect Working Set</H2>
-<P>Deselects the current working set. </P>
-<H2>Edit Active Working Set</H2>
-<P>Opens the <B>Edit Working Set</B> dialog to allow changing the current working set.</P>
-<DIV CLASS="Topic">
-<h2>
-Sort</h2>
-<P CLASS="Para">
-This command sorts the resources in the Navigator view according to the selected schema:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-<b>
-By Name</b>:&nbsp; Resources are sorted alphabetically, according to the full name
-of the resource (e.g., A.TXT, then B.DOC, then C.HTML, etc.)</LI>
-<LI CLASS="Item">
-<b>By Type</b>:&nbsp; Resources are sorted alphabetically by file type/extension (e.g.,
-all DOC files, then all HTML files, then all TXT files, etc.).</LI>
-</UL>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Filters</h2>
-<P CLASS="Para">
-This command allows you to select filters to apply to the view so that you can show or hide various resources as needed.&nbsp;
-File types selected in the list will not be shown in the Navigator.&nbsp; Here
-is what the file filters dialog looks like:</P>
-<P CLASS="Para">
-<img src="../images/Image210_filefilter.gif" alt="Filters dialog" border="0" width="345" height="430"></P>
-</DIV>
-<H2>Link with Editor</H2>
-<P>See the toolbar item description above.</P>
-<P><BR>
-In addition to these menu items, the Navigator view menu shows a list of
-recently used working sets that have been selected in the view.</P>
-<P><BR>
-</P>
-<h1>Context menu</h1>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-New</H2>
-<P CLASS="Para">
-This command allows you to create a new resource in the Workbench. Select the
-type of resource to create from the submenu.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Go Into</H2>
-<P CLASS="Para">
-This command displays a new hierarchy in the Navigator view, with the children
-of the selected resource as its contents.&nbsp; For example if you Go Into a
-project, the Navigator will be refocused on the immediate files and folders of
-the project.</P>
-</DIV>
-<DIV CLASS="Topic">
-
-<h2 CLASS="Head">Open</H2>
-<P CLASS="Para">This command opens the selected resource.&nbsp; If the resource is a file that is associated with an editor, then the Workbench launches the associated internal, external, or ActiveX editor and opens the file in that editor.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">Open With</H2>
-<P CLASS="Para">
-This command allows you to open an editor other than the default editor for the selected resource.&nbsp;
-Specify the editor with which to open the resource by selecting an editor from the submenu.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Copy</H2>
-<P CLASS="Para">This command copies the selected resource to the clipboard.</P>
-</DIV>
-<H2>Paste</H2>
-<P>This command pastes resources on the clipboard into the selected project
-or folder. If a resource is selected the resources on the clipboard are
-pasted as siblings of the selected resource.</P>
-<h2 CLASS="Head">
-Delete</H2>
-<P CLASS="Para">This command deletes the selected resource from the workspace.</P>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">Move</H2>
-<P CLASS="Para">
-This command moves the selected resource to another location.
-A dialog will appear, prompting for the destination location to which the resource
-will be moved.&nbsp;&nbsp;</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Rename</H2>
-<P CLASS="Para">
-This command allows you to specify a new name for the selected resource.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Import</H2>
-<P CLASS="Para">
-This command opens the import wizard and allows you to select resources
-to import into the Workbench.
-</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Export</H2>
-<P CLASS="Para">
-This command opens the export wizard and allows you to export resources
-to an external location.
-</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Add Bookmark</H2>
-<P CLASS="Para">
-This command adds a bookmark that is associated with the selected
-resource (but not to a specific location within the resource).</P>
-</DIV>
-<h2 CLASS="Head">
-Refresh</H2>
-<P CLASS="Para">This command refreshes the Workbench's view of the selected resource and
-its children. For example, this is used when you create a new file for
-an existing project outside the Workbench and want the file to appear in
-the Navigator view.</P>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">Close Project</H2>
-<P CLASS="Para">The close project command is visible when an open project is selected.
-This command closes the selected project.</P>
-</DIV>
-<H2>Open Project</H2>
-<P>The open project command is visible when a closed project is selected.
-This command opens the selected project.</P>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Team</H2>
-  <p CLASS="Head"> Menu items in the Team submenu are related to version control 
-    management and are determined by the version control management system that 
-    is associated with the project. Eclipse provides the special menu item<b> 
-    Share Project...</b> for projects that are not under version control management. 
-    This command will present a wizard that allows the user to choose to share 
-    the project with any version control management systems that has been added 
-    to Eclipse. Eclipse ships with support for CVS.</p>
-  </DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">Compare With</H2>
-
-<P CLASS="Para">
-Commands on the Compare With submenu allow you to do one of the following
-types of compares: </P>
-  <UL CLASS="UnorderedList">
-    <LI CLASS="Item"> Compare two or three selected resources with each other</LI>
-    <LI CLASS="Item"> Compare the selected resource with remote versions (if the 
-      project is associated with a version control management system).</LI>
-    <LI CLASS="Item"> Compare the selected resource with a local history state</LI>
-  </UL>
-
-<P CLASS="Para">After you select the type of compare you want to do, you will 
-      either see a compare editor or a compare dialog. In the compare editor, 
-      you can browse and copy various changes between the compared resources.&nbsp; 
-      In the compare dialog, you can only browse through the changes.&nbsp;&nbsp;</P>
-
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Replace With</h2>
-  <P CLASS="Para"> Commands on the Replace With submenu allow you to replace the 
-    selected resource with another state from the local history. If the project 
-    is under version control management, there may be additional items supplied 
-    by the version control management system as well.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Properties</H2>
-  <P CLASS="Para"> This command displays the properties of the selected resource. 
-    The kinds of properties that are displayed depend on what type of resource 
-    is selected. Resource properties may include (but are not limited to):</P>
-  <UL CLASS="UnorderedList">
-    <LI CLASS="Item">Path relative to the project in which it is held</LI>
-    <LI CLASS="Item">Type of resource</LI>
-    <LI CLASS="Item">Absolute file system path, or name of path variable when using linked resources</LI>
-    <LI CLASS="Item">Resolved path variable when using a path variable for a linked resource</LI>
-    <LI CLASS="Item">Size of resource</LI>
-    <LI CLASS="Item">Last modified date</LI>
-    <LI CLASS="Item">Read-only status</LI>
-    <LI CLASS="Item">Derived resource status</LI>
-    <LI CLASS="Item">Execution arguments, if it is an executable resource</LI>
-    <LI CLASS="Item">Program launchers, if it is launchable</LI>
-    <LI CLASS="Item">Project dependencies, if any</LI>
-  </UL>
-</DIV>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-<br><A HREF="../concepts/concepts-29.htm">Three-way compare</A>
-<br><a href="../concepts/concepts-13.htm">Linked resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="ref-25.htm">Compare editor</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-28.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-28.htm
deleted file mode 100644
index 8350be2..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-28.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Bookmarks view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Bookmarks view</H1>
-<P CLASS="Para">
-The Bookmarks view displays user defined bookmarks.</P>
-<P CLASS="Para">
-<img align="texttop" border="0" src="../images/Image244_bmark_view.gif" alt="Bookmarks view" width="441" height="108"></P>
-<p CLASS="Head">
-To add the Bookmarks view to the current perspective, click <b>Window &gt; Show View &gt; Other &gt; Basic &gt;
-Bookmarks</b>.</p>
-<DIV CLASS="Subtopic">
-<P CLASS="Para">
-The Description column contains a description of the bookmark.&nbsp;
-You can edit the description by selecting <b>Properties</b> from the context menu.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<P CLASS="Para">
-The Resource and In Folder columns provide the name and location of the resource
-associated with each bookmark.</P>
-</DIV>
-<P CLASS="Para">
-The Location column indicates the line number of the bookmark within its associated resource.</P>
-<h2>Toolbar</h2>
-<p>The toolbar of the Bookmarks view includes the following buttons.</p>
-<dl>
-  <dt>Delete</dt>
-  <dd>Delete the selected bookmark.</dd>
-  <dt>Go to</dt>
-  <dd>Open the bookmark's resource and navigate to the bookmarked region.</dd>
-</dl>
-<h2>Menus</h2>
-<p>Click the icon at the left end of the view's title bar to open a menu of items
-generic to all views. Click the black upside-down triangle icon to open a menu of items
-specific to the Bookmarks view. Right-click inside the view to open a context menu.&nbsp;</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-81b.htm">Creating a bookmark for an entire file</a><br><a href="../tasks/tasks-81.htm">
-Creating a bookmark within a file</a><br><a href="../tasks/tasks-82.htm">
-Deleting a Bookmark</a><br></p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-29.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-29.htm
deleted file mode 100644
index 5ec2fbd..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-29.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Properties view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Properties view</H1>
-<P CLASS="Para">
-This view displays property names and basic properties of a selected resource.
-Here is an example:</P>
-<P CLASS="Para">
-<img src="../images/Image240_props_view.gif" alt="Properties view" border="0" width="391" height="218"></P>
-<P CLASS="Para">Toolbar buttons allow you to toggle whether to display
-properties by category and whether to filter advanced properties. Another
-toolbar button allows you to restore the selected property to its default value.</P>
-<P>To see more detailed information about a resource than the Properties view
-gives you, right-click the resource name in the Navigator view and select
-Properties from the pop-up menu.
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-3.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-3.htm
deleted file mode 100644
index 7b10aa4..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-3.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Shortcut bar</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Shortcut bar</H1>
-<P CLASS="Intro">
-The shortcut bar appears along the left edge of the Workbench window.&nbsp;This toolbar is always active; it cannot be closed or
-hidden.
-<P CLASS="Intro">
-The shortcut bar allows quick access to perspectives that are currently open, as well
-as providing an easy way to open a new perspective.&nbsp; The shortcut bar is also
-the place where fast views are created and opened.
-<P CLASS="Para">
-Here is an example of what the shortcut bar looks like:&nbsp;</P>
-<P CLASS="Para">
-<img src="../images/Image211_shortcutbar.gif" alt="Shortcut Bar" border="0" width="23" height="127"></P>
-
-<DIV CLASS="Topic">
-<h2>
-Open Perspective</h2>
-<P CLASS="Para">
-This command opens a new perspective which is
-selected by the user from a drop-down menu.&nbsp; All of the perspectives that are open within a single Workbench window are
-shown on the shortcut bar.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Perspective Buttons</h2>
-<P CLASS="Para">
-These buttons provide a quick way to switch to one of the open 
-perspectives in the current Workbench window.&nbsp;
-</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-View Buttons</h2>
-<P CLASS="Para">
-These buttons provide a quick way to display the
-fast views in the current perspective.&nbsp; Fast views are essentially
-minimized views that have been dragged onto the shortcut bar.&nbsp; Fast views
-pop up when selected, and revert
-back to their minimized state when the user clicks outside of the view.&nbsp; To
-convert a fast view back into a normal view, click on the <i>Fast View</i> action
-in the view's toolbar.&nbsp;</P>
-</DIV>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-6.htm">Perspectives</a>
-<br><a href="ref-4.htm">View Toolbars</a>
-<br><a href="ref-2.htm">Workbench Toolbar</a>
-<br><a href="ref-23.htm">Workbench Window Layout</a>
-</p>
-<P CLASS="Para">&nbsp;</P>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-30.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-30.htm
deleted file mode 100644
index 6a00cb1..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-30.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Outline view</title>
-
-</HEAD>
-
-<H1 CLASS="Head">
-Outline view</H1>
-
-<P>This view displays an outline of a structured file
-that is currently open in the editor area, and&nbsp; lists structural
-elements.&nbsp;The contents of the outline view are editor-specific. In the
-example below, which is for a Java source file, the structural elements are classes, variables, and methods.
-The contents of the toolbar are also editor-specific.
-</p>
-
-<P><img src="../images/ref-8.gif" alt="Picture of Outline view showing structure for a Java file" border="0" width="185" height="226">
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-30a.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-30a.htm
deleted file mode 100644
index 6da0b38..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-30a.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>CVS views</title>
-
-</HEAD>
-
-<H1 CLASS="Head">
-CVS views</H1>
-
-<P>There are several CVS specific views, the CVS Repositories view, the CVS Resource 
-History view, the CVS Console view and the Synchronize view.
-</p>
-<P>  See Team Support in the
-Reference section for details on these views.
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-32.htm">CVS Repositories view</a><br>
-     <a href="ref-32a.htm">CVS Resource History View</a><br>
-     <a href="ref-32b.htm">CVS Console view</a><br>
-     <a href="ref-33.htm">Synchronize view</a>
-     
-   </p>
-       
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-31.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-31.htm
deleted file mode 100644
index 9760294..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-31.htm
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Tasks view (reference)</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Tasks view</H1>
-<P CLASS="Para">
-The Tasks view displays the following information:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-System-generated errors, warnings, or information associated with a resource.
-These are typically produced by builders. For example, if you save a Java source
-file that contains syntax errors, the errors will automatically be logged in
-this view.</LI>
-<LI CLASS="Item">
-Tasks that you add manually. You can associate a task with a resource in the
-Workbench, but this is not required.</LI>
-</UL>
-<p><img src="../images/Image243_tasks_view.gif" alt="Picture of the Tasks view with two dummy tasks added to it." border="0" width="502" height="138"></p>
-<p CLASS="Head">
-By default, the Tasks view is included in the Resources perspective. To add it
-to the current perspective, click <b>Window &gt; Show View &gt; Other &gt; Basic &gt;
-Tasks</b>.</p>
-<p CLASS="Head">
-By default, the Tasks view is shown when a new compiler error or warning is generated. To remove this feature,
-click <b>Window &gt; Preferences &gt; Workbench</b> and deselect <b>Show Tasks view when build has errors or 
-warnings</b>.</p>
-<p CLASS="Head">
-The following icons are used by the Tasks view:</p>
-<table border="1" cellspacing="0" cellpadding="5" summary="Icon table">
-  <tr>
-    <th valign="top" align="center">Icon</th>
-    <th valign="top" align="left">Description</th>
-  </tr>
-  <tr>
-    <td valign="top" align="center"><img src="../images/ref-20.gif" alt=" Information icon" border="0" width="16" height="16"></td>
-    <td valign="top" align="left">
-      Information&nbsp;    </td>
-  </tr>
-  <tr>
-    <td valign="top" align="center"><img src="../images/ref-22.gif" alt="Warning icon" border="0" width="30" height="18"></td>
-    <td valign="top" align="left">
-      Warning    </td>
-  </tr>
-  <tr>
-    <td valign="top" align="center"><img src="../images/ref-24.gif" alt="Error icon" border="0" width="30" height="18"></td>
-    <td valign="top" align="left">
-      Error    </td>
-  </tr>
-  <tr>
-    <td><img src="../images/ref-19.gif" alt="Task icon" border="0" width="30" height="18"></td>
-    <td>Task (normal priority)</td>
-  </tr>
-  <tr>
-    <td valign="top" align="center"><img src="../images/ref-21.gif" alt=" High priority task item" border="0" width="16" height="16"></td>
-    <td valign="top" align="left">
-      High priority task    </td>
-  </tr>
-  <tr>
-    <td valign="top" align="center"><img src="../images/ref-23.gif" alt=" Low priority task icon" border="0" width="16" height="16"></td>
-    <td valign="top" align="left">
-      Low priority task
-    </td>
-  </tr>
-  <tr>
-    <td valign="top" align="center"><img src="../images/ref-25.gif" alt="Completed task icon" border="0" width="16" height="16"></td>
-    <td valign="top" align="left">
-      Completed task
-    </td>
-  </tr>
-</table>
-
-<p CLASS="Head">
-The first column indicates whether the line item is a task or a compiler generated error, warning or info.</p>
-<p CLASS="Head">
-The second column indicates whether the task
-is completed. Completed tasks are flagged with a check mark, which you add
-manually.</p>
-<p CLASS="Head">
-The third column indicates whether the task
-is high, normal, or low priority.&nbsp;</p>
-<DIV CLASS="Subtopic">
-<P CLASS="Para">
-The Description column contains a description of the line item.&nbsp;
-You can edit the description of user-defined tasks by selecting <b>Properties</b> from the context menu.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<P CLASS="Para">
-The Resource and In Folder columns provide the name and location of the resource
-associated with each line item.</P>
-</DIV>
-<P CLASS="Para">
-The Location column indicates the line number of the line item within its associated resource.</P>
-<h2>Toolbar</h2>
-<p>The toolbar of the Tasks view includes the following buttons.</p>
-<dl>
-  <dt>New task</dt>
-  <dd>Manually add a &quot;to do&quot; item to the Tasks view.</dd>
-  <dt>Delete</dt>
-  <dd>Delete the selected line item.</dd>
-  <dt>Filter</dt>
-  <dd>Filter the view according to the type of item.</dd>
-</dl>
-<h2>Menus</h2>
-<p>Click the icon at the left end of the view's title bar to open a menu of items
-generic to all views. Click the black upside-down triangle icon to open a menu of items
-specific to the Tasks view. Right-click inside the view to open a context menu.&nbsp;</p>
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-77.htm">Adding line items in the Tasks view</a>
-<a href="../tasks/tasks-77b.htm"><br>Associating a task with a resource</a>
-<a href="../tasks/tasks-78.htm"><br>Deleting tasks</a>
-<a href="../tasks/tasks-79.htm"><br>Filtering the task view</a></p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-32.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-32.htm
deleted file mode 100644
index 9dab0fb..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-32.htm
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>CVS Repositories view</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1> CVS Repositories view</h1>
-     
-<p class="Para">The CVS Repositories view, which is part of the CVS Repository
-    Exploring perspective, shows the CVS repository locations that you have
- added    to your Workbench.&nbsp;Expanding a location reveals the main trunk
- (HEAD),    project versions and branches in that repository. You can further
- expand the    project versions and branches to reveal the folders and files
- contained within    them. </p>
-     
-<p>The pop-up menu for this view also allows you to specify new repository
- locations.    Use the CVS Repositories view to check out resources from
- the repository    to the Workbench, configure the branches and versions
-shown  by the view, view    resource history, and compare resource versions.
-</p>
-     
-<p class="Para"> Here is what the Repositories view looks like:</p>
-     
-<p class="Para"> <img
- src="../images/Image242_repo_view.gif" alt="CVS Repositories View" width="321" height="115" border="0" align="top"> 
-</p>
-     
-<div class="Topic">      
-  <p>Like other views in the Workbench, the CVS Repositories view has its own 
-    toolbar. Toolbar buttons are provided for refreshing the view and for navigating. 
-    The toolbar also contains a drop-down menu that allows the user to filter 
-    the view by working set.</p>
-       
-<h2>Titlebar</h2>
-       
-<h3>Go Home</h3>
-     
-<p class="Para"> This command redraws the view, showing the repository locations.</p>
-   </div>
-     
-<div class="Topic">     
-<h3> Go Back</h3>
-     
-<p class="Para"> This command redraws the view, showing the hierarchy that
- was displayed immediately prior to the current display.</p>
-   </div>
-     
-<div class="Topic">     
-<h3> Go Forward</h3>
-     
-<p class="Para"> This command redraws the view, showing the hierarchy that
- was displayed immediately after the current display.</p>
-   </div>
-     
-<div class="Topic">     
-<h3> Refresh View</h3>
-     
-  <p class="Para"> This command refreshes the contents of the Repositories view.</p>
-  <h3>Collapse All</h3>
-  <p class="Para"> This command collapses all expanded entries in the Repositories 
-    view.</p>
-</div>
-     
-<h3 class="Para">Drop-Down Menu</h3>
-     
-<p class="Para">The drop down menu in the title bar allows the repositories view 
-  to be filtered by a working set.</p>
-     
-<h2 class="Para">Context menu </h2>
-     
-<p class="Para">From the context menu of the Repositories view you can  perform
-a number    of interesting operations.&nbsp;&nbsp;</p>
-     
-<h3>  New &gt; Repository Location&nbsp;</h3>
-     
-<p class="Para"> This command brings up the wizard to help you specify a new repository 
-  location.</p>
-     
-<h3>Configure Branches and Versions</h3>
-     
-<p class="Para"> This command brings up the wizard to help you discover the branch 
-  and version tags that exist in the repository for the selected folder so they 
-  can be added to the repositories view to allow the resources that have these 
-  tags can be browsed.</p>
-<h3>Refresh Branches and Versions</h3>
-<p class="Para"> This command, available on repository location entries, allows 
-  you to refresh the list of known branches and versions that are displayed in 
-  the repositories view for selected projects. This operation makes use of the 
-  defined auto-refresh files for each project. If the operation fails for a particular 
-  project, use Configure Branches and Versions on the project to select one or 
-  more appropriate refresh files.</p>
-<h3>Add to Branch List...</h3>
-<p> This command adds the selected project to the list of projects that are displayed 
-  under the specified branch in the repositories view. This command only modifies 
-  the repositories view and does not effect the repository in any way. If you 
-  want to add the project to a branch, you can perform a <strong>Tag with Existing</strong> 
-  after performing this operation.</p>
-<h3> Open</h3>
-     
-<p> This command opens the selected file in an editor.&nbsp; Since file revisions
-    in the repository are immutable, the editor opens in a read-only state,
- so it    is not modifiable.&nbsp; </p>
-     
-<h3> Show in Resource History</h3>
-     
-<p> This command shows the revision history of the selected file in the CVS
- Resource    History view.</p>
-     
-<h3> Compare</h3>
-     
-<p class="Para">This command will compare on two or three selected resources.</p>
-<h3>Compare With...</h3>
-<p class="Para">This command will compare the selected folder with a branch or 
-  version of the same folder.</p>
-<h3>Checkout as Project</h3>
-     
-<p>This command checks the folder out into a project in the Workbench with
- the    same name as the folder.</p>
-     
-<h3>Checkout as...</h3>
-     
-<p>This command checks the folder out into a project in the Workbench into a project 
-  configured by the user.</p>
-<h3>Checkout Into...</h3>
-<p>This command checks the folder out as a sub-folder of an existing project.</p>
-<h3>Checkout Out Module</h3>
-<p>This command checks out the selected module into one or more projects in the 
-  workspace. </p>
-<h3>Tag as Version...</h3>
-     
-<p> This command versions the selected resource based on the current branch
- contents.</p>
-     
-<h3>Tag with Existing...</h3>
-     
-<p> This command versions the selected resource based on the current branch
- contents,    moving the tag from previously tagged resources if required.</p>
-      
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-     <a href="../concepts/concepts-27c.htm">CVS Repositories</a><br>
-     <a href="../concepts/concepts-27b.htm">Branches</a><br>
-     <a href="../concepts/concepts-27.htm">Versions</a><br>
-     <a href="../concepts/concepts-17a.htm">Local history</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-  <br>
-     <a href="../tasks/tasks-92.htm">Creating a CVS repository location</a><br>
-     <a href="../tasks/tasks-94.htm">Discarding a CVS repository location</a><br>
-     <a href="../tasks/tasks-93.htm">Refreshing the CVS repositories view</a><br>
-     <a href="../tasks/tasks-95.htm">Changing the properties of a CVS Repository Location</a><br>
-     <a href="../tasks/tasks-96.htm">Checking out a project from a CVS repository</a><br>
-     <a href="../tasks/tasks-103.htm">Replacing resources in the Workbench</a><br>
-     <a href="../tasks/tasks-117.htm">Sharing a new project using CVS</a><br>
-     <a href="../tasks/tasks-119.htm">Viewing a file's revision history</a>
-   </p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-47.htm">CVS</a><br>
-     <a href="ref-32a.htm">CVS Resource History View</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-32a.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-32a.htm
deleted file mode 100644
index 79beed4..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-32a.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>CVS Resource History View</title>
-   
-</head>
- <body style="background-color: rgb(255,255,255);">
-   
-<h1 class="Head"> CVS Resource History view</h1>
-    
-<p class="Intro"> This view provides a list of all the revisions of a resource 
-   in the repository. From this view you can compare two revisions, replace 
-(get    sticky) or revert (get contents) the corresponding workspace file 
-to the revision,    or open an editor on a revision. </p>
- 
-<p class="Para">Here is what the CVS Resource History View looks like:</p>
-   
-<p class="Para"><img
- src="../images/Image216_history_view.gif"
- alt="CVS Resource History View" width="498" height="157" border="0" align="top"> </p>
-   
-<p class="Para">For each resource, the following is displayed in the table:</p>
-   
-<div class="Topic">    
-<h2> Revision</h2>
-     
-<p class="Para"> This column displays the revision number in the history.&nbsp; </p>
-     
-<h2 class="Para">Tags</h2>
-     
-<p class="Para">The tags that are associated with the revision. Selecting 
-a      revision line will list the tags in the lower left pane of the view.</p>
-  </div>
-   
-<div class="Topic">    
-<h2> Date</h2>
-     
-<p class="Para"> This column displays the creation date and time of the revision 
-     in the history.</p>
-  </div>
-   
-<div class="Topic">  
-<h2> Author</h2>
-   
-<p class="Para"> This column displays the name of the person who created and
-authored the version.</p>
-  </div>
-   
-<div class="Topic">  
-<h2> Comment</h2>
-     
-<p class="Para"> This column displays the comment (if any) supplied for this 
-     revision at the time it was committed. Selecting a revision line will 
-show      the complete comment in the lower right pane of the view.</p>
-  </div>
-    
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
- <br>
-    <a href="ref-32.htm">CVS Repositories view</a>  </p>
-    
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
- <a href="../concepts/concepts-12.htm">Resources</a> <br>
- <a href="../concepts/concepts-27c.htm">CVS Repositories</a> <br>
- <a href="../concepts/concepts-17a.htm">Local history</a> </p>
-    
-<p>&nbsp;<br>
-  <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0">
- </a> </p>
-    
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-32b.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-32b.htm
deleted file mode 100644
index d90c64f..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-32b.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>CVS Console view</title>
-   
-</head>
- <body style="background-color: rgb(255,255,255);">
-   
-<h1 class="Head"> CVS Console view</h1>
-    
-<p class="Intro">This view shows the output from CVS commands. This output is 
-  similar to that of the CVS command line client. If an error occurs during a 
-  CVS operation opening the console can help troubleshoot the cause of the error.</p>
- 
-<p class="Para">Here is what the CVS Console view looks like:</p>
-<p class="Para"><img src="../images/cvs-console.gif" alt="Console View" width="474" height="242"></p>
-   
-<div class="Topic">
-<img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27"> <br>
-    <a href="ref-32.htm">CVS Repositories view</a>
-</div>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
- <a href="../concepts/concepts-12.htm">Resources</a> <br>
- <a href="../concepts/concepts-27c.htm">CVS Repositories</a> <br>
- <a href="../concepts/concepts-17a.htm">Local history</a> </p>
-    
-<p>&nbsp;<br>
-  <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0">
- </a> </p>
-    
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-33.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-33.htm
deleted file mode 100644
index 81fbb77..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-33.htm
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Synchronize view</title>
-   
-</head>
- <body style="background-color: rgb(255,255,255);">
-<h1>Synchronize view</h1>
-<p class="Para"> This view allows you to update resources in the Workbench 
-and commit resources from the Workbench to a repository.&nbsp;&nbsp;</p>
-   
-<p class="Para"> Here is what the Synchronize view looks like:</p>
-   
-<p class="Para"> <img align="top" border="0"
- src="../images/Image245_sync_view.gif" alt="Synchronization View">
- </p>
-   
-<div class="XRefList">     
-<h2 class="Para">Modes</h2>
-     
-<p> There are three different viewing modes (filters) that you can use in 
-this      view to make the synchronization process easier:</p>
-     
-<dl>
-  <dt>Incoming</dt>
-  <dd>In this mode, only resources which have been changed in the repository 
-       since they were last loaded or synchronized with those in the Workbench 
-       (incoming changes) are visible. If you have incoming changes when you
-synchronize,        you will start off in this mode.</dd>
-  <dt>Outgoing</dt>
-  <dd> In this mode, only resources which have been modified in the Workbench 
-       (outgoing changes) are visible.&nbsp;If you do not have incoming changes 
-       when you synchronize, you will start in this mode.</dd>
-  <dt>Incoming/Outgoing</dt>
-    <dd> In this mode both incoming and outgoing changes are shown, and you can 
-      both update and commit. You will remain in this mode with future synchronizations 
-      until you close the view.&nbsp; The advantage to using this dual mode is 
-      you can do either task as you choose. The disadvantage is that performing 
-      a simultaneous bi-directional merge is often complicated. In addition, you 
-      risk accidentally committing a conflict when you meant to update to it. 
-      You can choose to always use Incoming/Outgoing mode on the Workbench preferences 
-      page (<b>Window&gt; Preferences &gt; Team</b>).</dd>
-</dl>
-     
-<p class="Para">Modes not only filter the set of visible changes but also 
-restrict the set of operations available. 
-You can switch modes using the toolbar of the Synchronization 
-view.</p>
-
-<P>The advantages to modes are: </P>
-<ul>
-  <li>
-    They support and encourage the <a href="../concepts/concepts-26.htm#IdealWorkFlow"> ideal work flow.</a></li>
-  <li>
-    They reduce the amount of information you are faced with at any one time.</li>
-    <li> They provide a degree of safety restricting you to those operations appropriate 
-      to that mode. For example, you can't accidentally commit a conflict when 
-      in incoming mode.</li>
-</ul>
-
-<p class="Para">Regardless of the mode that you select, you will always see 
-     any conflicts that exist. You can filter out other outgoing and incoming 
-changes      by clicking the <b> Show Only Conflicts</b> button.&nbsp; You 
-can also choose      to Compare File Contents (and show only those resources 
-whose contents differ),      Ignore Whitespace differences or Refresh From 
-Repository from the drop-down      menu of this view.</p>
-     
-  <p class="Para"> <b>Important</b>: It is preferable to update resources in the 
-    Workbench first, resolve any conflicts that exist by merging, then commit 
-    Workbench resources to the repository.</p>
-  <h2 class="Para">Synchronization state</h2>
-  <p class="Para">The top left pane in the synchronize view shows the synchronization 
-    state of resources in your workspace compared to those in the repository. 
-    This state is shown by using icons and can also be configured to show the 
-    state as text appended to the resource name. A description of the icons is 
-    shown in the table below:</p>
-  <table width="100%" border="1">
-    <tr> 
-      <td width="9%" align="center"><img src="../images/r_inadd_ov.gif" alt="Incoming addition icon" width="11" height="10"></td>
-      <td width="91%">An incoming addition means that a resource has been added 
-        to the repository. <strong>Updating</strong> will transfer the resource 
-        to your workspace.</td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/r_inchg_ov.gif" alt="Incoming change icon" width="11" height="10"></td>
-      <td>An incoming change means that the file has changed in the repository. 
-        <strong>Updating</strong> will transfer the new file revision to your 
-        workspace.</td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/r_indel_ov.gif" alt="Incoming deletion icon" width="11" height="10"></td>
-      <td>An incoming deletion means that a resource was deleted from the server. 
-        <strong>Updating</strong> will delete your local resource.</td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/r_outadd_ov.gif" alt="Outgoing addition icon" width="11" height="10"></td>
-      <td>An outgoing addition means that the file was added to your workspace 
-        and is not yet in the repository. <strong>Adding</strong> then <strong>Committing</strong> 
-        will transfer the new file to the repository.</td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/r_outchg_ov.gif" alt="Outgoing change icon" width="11" height="10"></td>
-      <td>An outgoing change means that the file was change locally. <strong>Committing</strong> 
-        the file will transfer the changes to the repository and create a new 
-        revision of the file.</td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/r_outdel_ov.gif" alt="Outgoing deletion icon" width="11" height="10"></td>
-      <td>An outgoing deletion is a resource that has been deleted locally. <strong>Committing 
-        </strong>these resources will cause the remote resource to be deleted. 
-        <strong>Note</strong>: in CVS directories are never really deleted from 
-        the repository. Instead, files are deleted and empty directories are pruned 
-        from your workspace. </td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/confadd_ov.gif" alt="Conflicting addition icon" width="11" height="10"></td>
-      <td>A conflicting additions means that the resource has been added locally 
-        and remotely.</td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/confchg_ov.gif" alt="Conflicting change icon" width="11" height="10"></td>
-      <td>A conflicting change means that the file has been changed locally and 
-        remotely. A manual or automatic merge will be required by the user.</td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/confdel_ov.gif" alt="Conflicting deletion icon" width="11" height="10"></td>
-      <td>A conflicting deletion means that the resource was deleted locally and 
-        remotely. </td>
-    </tr>
-    <tr> 
-      <td align="center"><img src="../images/confauto_ov.gif" alt="Auto-mergeable conflict icon" width="11" height="9"></td>
-      <td>An auto-mergeable conflict is a conflict that can be automatically merged 
-        by CVS. This is because the file was changed locally and remotely but 
-        in different locations in the file. This indicator is important because 
-        it can allow you to review the changes from within the synchronization 
-        view and then perform a <strong>Override and Update</strong> that will 
-        perform the merge automatically for you.</td>
-    </tr>
-    <tr>
-      <td align="center"><img src="../images/question_ov.gif" alt="Icon for resources not yet added to version control" width="7" height="8"></td>
-      <td>A non-added resource that has never been committed to the repository.</td>
-    </tr>
-  </table>
-  
-</div>
-<div class="Topic">
-  <h2>Structure compare pane</h2>
-     
-<p class="Para"> This pane allows you to view a hierarchy tree of all the 
-resource      differences between the repository and the Workbench.</p>
-  </div>
-    
-<h2> Text compare pane</h2>
-   
-<p class="Para"> This pane allows you to view the content differences of the
-resource    selected in the structure compare pane. You can choose to ignore
-whitespace    differences from the view's drop-down menu.</p>
- 
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
- <br>
-    <a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-    <a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
- &nbsp;   </p>
-   
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
- <a href="../tasks/tasks-115.htm"><br>
-    Synchronizing with the repository</a><a
- href="../tasks/tasks-113.htm"><br>
-    Updating</a><a href="../tasks/tasks-113b.htm"><br>
-    Resolving conflicts</a><a href="../tasks/tasks-100b.htm"><br>
-    Merging from a branch</a><a href="../tasks/tasks-114.htm"><br>
-Committing</a><a href="../tasks/tasks-68.htm"><br>
-    </a> <a href="../tasks/tasks-68.htm">Comparing resources<br>
-    </a> <a href="../tasks/tasks-68dg.htm">Merging changes in the compare 
-editor</a></p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
- <br><a href="../reference/ref-47.htm">CVS</a>
- <br>
-    <a href="ref-25.htm">Compare editor</a>  </p>
-
-<p><br>
-    <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
- </a>  </p>
-   
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-34.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-34.htm
deleted file mode 100644
index 14378e5..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-34.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Help view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Help view</H1>
-<P CLASS="Para">
-This view displays help on using the Workbench.&nbsp;If you are reading this
-document, you've probably found this view already.</P>
-<P CLASS="Para">
-Here is what the Help view looks like, when using embedded browser:</P>
-<P CLASS="Para">
-<img src="../images/Image239_help_view.gif" alt="Help Window" border="0" width="578" height="418"></P>
-<P CLASS="Para">
-&nbsp;</P>
-<h2>
-Table of Contents (Bookshelf)</h2>
-<p>This list contains all the available sets of information (or books). Click a book 
-to see its topics tree.</p>
-<h2>
-Contents Tab&nbsp;</h2>
-<P CLASS="Para">
-This tab displays an outline of the available Help topics
-for the selected book.</P>
-<DIV CLASS="Subtopic">
-<h2>
-Search Results Tab</h2>
-<p>
-If you run a search of the documentation, the results list will be displayed on 
-this tab.</p>
-<h2>Links Tab</h2>
-<p>If you invoke the context
-sensitive (F1) help, all the related links for that context are displayed in a
-list on this tab.</p>
-<h2>Bookmarks Tab</h2>
-<p>This list displays topics that were bookmarked using Bookmark Document button.</p>
-<h2>Search</h2>
-<p>Type a search query in the field and click Go. Click Advanced Search to enter 
-a longer query or to filter the results by available books.</p>
-</DIV>
-<h2>
-Search scope</h2>
-<P>
-Click the link to change the documentation set to be searched.</P>
-<h2>
-Go
-Back</h2>
-<P>
-Click this button to display the previously displayed
-page.</P>
-<h2>
-Go
-Forward</h2>
-<P>
-You can use this button if you have just used the Go Back button. Click it to display a&nbsp;previously displayed page.</P>
-<h2>
-Synchronize Navigation</h2>
-<P>Click this button to match the navigation tree up to the topic currently 
-shown in the content frame.</P>
-<h2>
-Bookmark Document</h2>
-<P>
-This button adds the currently displayed document to the Bookmarks view.
-<h2>
-Print Page</h2>
-<P>
-This command prints the currently displayed topic.</P>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a HREF="ref-43.htm">Workbench User Guide</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-35uma.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-35uma.htm
deleted file mode 100644
index 5a09181..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-35uma.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Update manager views</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1>Update manager views</h1>
-     
-<p class="Para">The update manager consists of four related views that are 
-intended to be used as part of the Install/Update perspective. They are:</p>
-
-<ul>
-<li>Install Configuration view</li>
-<li>Feature Updates view</li>
-<li>Preview</li>
-<li>External Preview</li>
-</ul>
-      
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-25.htm">Features</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-  <br>
-     <a href="../tasks/tasks-36.htm">Updating Eclipse with the update manager</a>
-   </p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-35umb.htm">Install Configuration view</a><br>
-     <a href="ref-35umc.htm">Feature Updates view</a><br>
-     <a href="ref-35umd.htm">Preview</a><br>
-     <a href="ref-35ume.htm">External Preview</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-35umb.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-35umb.htm
deleted file mode 100644
index ca5c8f6..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-35umb.htm
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Install Configuration view</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1>Install Configuration view</h1>
-     
-<p>The Install Configuration view, which is part of the Install/Update
- perspective, allows you to manage your workspace configuration. The 
- <b>Current Configuration</b> folder shows which local installation locations are
- part of the workspace configuration, and which features are installed in those
- locations. The <b>Configuration History</b> folder shows a history of changes made to your
- workspace configuration. The <b>Saved Configurations</b> folder show any configurations
- that were preserved (typically representing a stable configuration that
- can be used as a base to recover to).
-</p>
-     
-<p>Here is what the Install Configuration view looks like:</p>
-     
-<p> <img align="top" border="0"
- src="../images/Image35umb_installconfig.gif" alt="Install Configuration View">
-  </p>
-       
-<p>Like other views in the Workbench, the Install Configuration view has its own
- toolbar. Toolbar buttons are provided for navigating and to toggle the view
- to show features that are currently disabled.</p>
-       
-<h2>Titlebar</h2>
-       
-<h3>Go Home</h3>
-     
-<p>This command redraws the view, showing the standard configuration folders.</p>
-        
-<h3>Go Back</h3>
-     
-<p> This command redraws the view, showing the hierarchy that
- was displayed immediately prior to the current display.</p>
-       
-<h3>Go Into</h3>
-     
-<p> This command redraws the view, re-parenting the view hierarchy at the selected
- item.</p>
-     
-<h3>Show Disabled Features</h3>
-     
-<p> This command toggles the view to show features that are installed but
- are currently disabled.</p>
-     
-          
-<h2>Context Menu - common</h2>
-     
-<p>Context menus for all selections within the view have the following actions:</p>
-            
-<h3>Go Home</h3>
-     
-<p>This action redraws the view, showing the standard configuration folders.</p>
-        
-<h3>Go Back</h3>
-     
-<p>This action redraws the view, showing the hierarchy that
- was displayed immediately prior to the current display.</p>
-       
-<h3>Go Into</h3>
-     
-<p>his action redraws the view, re-parenting the view hierarchy at the selected
- item.</p>
- 
-<h3>Show Details</h3>
-     
-<p> This action shows details for the selected item in the Preview, opening
- the Preview if required.</p>
-
-<h2>Context Menu - features</h2>
-
-<p>Context menu for feature selections have the following additional actions.</p>
-            
-<h3>Show Status</h3>
-      
-<p>This action display a dialog detailing any configuration errors or warnings
- associated with the selected feature.
- </p>
-
-<h2>Context Menu - histories</h2>
-
-<p>Context menu for history selections have the following additional actions:</p>
-            
-<h3>Save</h3>
-      
-<p>This action preserves the selected history in the Saved Configurations folder.
- The action is only available for items in the Configuration History folder.
- </p> 
- 
-<h3>Remove</h3>
-      
-<p>This action removes the selected history. The action is only available 
- for items in the Saved Configurations folder.
- </p>
- 
-<h3>Restore</h3>
-      
-<p>This action restores the selected configuration as the current configuration. 
- This action is not available when the current configuration is selected 
- (the top history item). Restoring a configuration requires the workbench
- to be restarted.
- </p> 
- 
-<h3>Properties</h3>
-      
-<p>This action allows the selected item properties to be edited.
- </p>
- 
-      
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-25.htm">Features</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-  <br>
-     <a href="../tasks/tasks-36.htm">Updating Eclipse with the update manager</a>
-   </p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-35umc.htm">Feature Updates View</a><br>
-     <a href="ref-35umd.htm">Preview</a><br>
-     <a href="ref-35ume.htm">External Preview</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-35umc.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-35umc.htm
deleted file mode 100644
index 490633e..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-35umc.htm
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Feature Updates view</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1>Feature Updates view</h1>
-     
-<p>The Feature Updates view, which is part of the Install/Update
- perspective, allows you to locate and install new features and feature updates.
- The view contains three standard folders. The
- <b>Sites to Visit</b> folder contains updates sites preconfigured by the
- product you are using. The <b>Available Updates</b> is a built-in search
- results folder used for searching update sites. The <b>My Computer</b> folder
- is a file explorer that can be used to navigate to updates located in the
- file system.
-</p>
-
-<p>In addition to the standard folders, you can create additional content 
- in the Feature Updates view by adding update site bookmarks, and custom
- searches.
-</p>
-     
-<p>Here is what the Feature Updates view looks like:</p>
-     
-<p> <img align="top" border="0"
- src="../images/Image35umc_featureupdate.gif" alt="Feature Update View">
-  </p>
-       
-<p>Like other views in the Workbench, the Feature Updates view has its own
- toolbar.</p>
-       
-<h2>Titlebar</h2>
-       
-<h3>Refresh</h3>
-     
-<p>This command refreshes the content of the view.</p>
-        
-<h3>Drop Down Menu</h3>
-     
-<p>The drop down menu in the title bar allows the following toggle settings:
-<ul>
-<li><b>Show My Computer Files</b> - whether the My Computer explorer shows only the directory
-structure, or all files</li>
-<li><b>Show Site Categories</b> - whether features on updates sites are shown
-in their respective categories, or as a flat list</li>
-<li><b>Show Matching Features Only</b> - whether update sites show only features 
-that match the current execution environment, or all features</li>
-</ul>
-</p>
-     
-          
-<h2>Context Menu - common</h2>
-     
-<p>Context menus for all selections within the view have the following actions:</p>
-            
-<h3>Refresh</h3>
-     
-<p>This action refreshes the content of the selected item.</p>
-        
-<h3>New, Site Bookmark</h3>
-     
-<p>This action shows a dialog for creating update site bookmarks.</p>
-       
-<h3>New, Folder</h3>
-     
-<p>This action shows a dialog for creating new folders.</p>
-       
-<h3>New, Search</h3>
-     
-<p>This action shows a dialog for creating custom searches. The following
- search types can be created:
- <ul>
- <li>Available Updates</li>
- <li>Regular Expression</li>
- <li>Plug-ins in Features</li>
- </ul>
- </p>
- 
-<h3>Show Details</h3>
-     
-<p>This action shows details for the selected item in the Preview, opening
- the Preview if required.</p>
-
-
-<h2>Context Menu - custom items</h2>
-
-<p>Context menu for items added to the Feature Updates view (bookmarks, 
-folders, searches) have
-the following additional actions:</p>
-            
-<h3>Delete</h3>
-      
-<p>This action removes the selected item.
- </p>
- 
-      
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-25.htm">Features</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-  <br>
-     <a href="../tasks/tasks-36.htm">Updating Eclipse with the update manager</a><br>
-     <a href="../tasks/tasks-36a.htm">Searching for features</a>
-   </p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-35umb.htm">Install Configuration View</a><br>
-     <a href="ref-35umd.htm">Preview</a><br>
-     <a href="ref-35ume.htm">External Preview</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-35umd.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-35umd.htm
deleted file mode 100644
index c38683d..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-35umd.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Preview</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1>Preview</h1>
-     
-<p>The Preview view, which is part of the Install/Update
- perspective, displays detailed information about the current active selection.
- Its content changes as the selection changes.
-</p>
-
-<p>In some cases, the Preview is simply an extended description of the selection,
- or a page offering suggested actions based on the selection. In other cases
- the preview can be used to perform specific actions against the selection. 
-</p>
-
-<p>Preview for the current configuration displays information about the primary
- feature defined for the workspace.</p>
-     
-<p> <img align="top" border="0"
- src="../images/Image35umd_prevucurrent.gif" alt="Preview - Current Configuration">
-  </p>
-
-<p>Preview for a selected feature displays relevant installation information
- about the feature. If an action can be taken against the selection, it
- shows as an action button in the preview.</p>
-     
-<p> <img align="top" border="0"
- src="../images/Image35umd_prevufeature.gif" alt="Preview - Feature">
-  </p>
-
-<p>Preview for a selected history displays relevant configuration information
- about the history entry. If an action can be taken against the selection, it
- shows as an action button in the preview.</p>
-     
-<p> <img align="top" border="0"
- src="../images/Image35umd_prevuhistory.gif" alt="Preview - History">
-  </p>
-
-<p>Preview for a search item displays relevant configuration information
- about the query. Query Settings and Scope Settings can be changed in the 
- Preview. The Search Now button shown in the Preview triggers the search.
- The search results are presented in the preview.</p>
-     
-<p> <img align="top" border="0"
- src="../images/Image35umd_prevusearchnew.gif" alt="Preview - Search">
-  </p>
-       
-<p>Like other views in the Workbench, the Preview view has its own
- toolbar.</p>
-       
-<h2>Titlebar</h2>
-       
-<h3>Go Home</h3>
-     
-<p> This command shows the Welcome to Eclipse Update page.</p>
-
-<h3>Go Back</h3>
-     
-<p> This command goes back in the chain of Preview pages.</p>
-     
-<h3>Go Forward</h3>
-     
-<p> This command goes forward in the chain of Preview pages.</p>
- 
-      
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-25.htm">Features</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-  <br>
-     <a href="../tasks/tasks-36.htm">Updating Eclipse with the update manager</a>
-   </p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-35umb.htm">Install Configuration View</a><br>
-     <a href="ref-35umc.htm">Feature Updates View</a><br>
-     <a href="ref-35ume.htm">External Preview</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-35ume.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-35ume.htm
deleted file mode 100644
index 8db630c..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-35ume.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>External Preview</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1>External Preview</h1>
-     
-<p>The External Preview view, which is part of the Install/Update
- perspective, is an embedded browser used to display html information.
- This view is available only on <b>Windows</b> systems.
-</p>
-
-<p>In general, the External Preview is used when links are followed
- to html pages.</p>
-     
-<p> <img align="top" border="0"
- src="../images/Image35umd_extprevu.gif" alt="External Preview">
-  </p>
-
-       
-<p>Like other views in the Workbench, the External Preview view has its own
- toolbar.</p>
-       
-<h2>Titlebar</h2>
-
-<h3>Go Back</h3>
-     
-<p> This command goes back in the chain of Preview pages.</p>
-     
-<h3>Go Forward</h3>
-     
-<p> This command goes forward in the chain of Preview pages.</p>
-     
-<h3>Go</h3>
-     
-<p> This command navigates to the specified External Preview pages.</p>
-     
-<h3>Stop</h3>
-     
-<p> This command stops loading of the External Preview page.</p>
-     
-<h3>Refresh</h3>
-     
-<p> This command reloads the External Preview page.</p>
- 
-      
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-25.htm">Features</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27">
-  <br>
-     <a href="../tasks/tasks-36.htm">Updating Eclipse with the update manager</a>
-   </p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-35umb.htm">Install Configuration View</a><br>
-     <a href="ref-35umc.htm">Feature Updates View</a><br>
-     <a href="ref-35ume.htm">Preview</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-37.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-37.htm
deleted file mode 100644
index fffdc76..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-37.htm
+++ /dev/null
@@ -1,124 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Style-Type" content="text/css">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>New Project wizard</title>
-<link REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body bgcolor="#FFFFFF">
-
-<h1 CLASS="Head">
-New Project wizard</h1>
-
-<div CLASS="Intro">This wizard helps you create a new project in the Workbench.</div>
-
-
-<p CLASS="Para">When you first bring up the New Project wizard, you need
-to select the type of project you want to create.&nbsp; Select the Simple
-type if you want to create a generic project.
-
-<p CLASS="Para"><img src="../images/Image247_projsel_wiz.gif" alt="New project wizard" border="0" width="500" height="500">
-<div CLASS="Topic">
-<h2>
-Create a New Project Resource Page</h2>
-When you select Next, you will be presented with the New Project Resource
-Page, containing the following edit fields:
-<br>&nbsp;
-<table BORDER CELLSPACING=0 >
-<caption><THEAD>
-<br></THEAD><TBODY>
-<br></TBODY></caption>
-
-<tr>
-<th>
-<div CLASS="Para">Field</div>
-</th>
-
-<th>
-<div CLASS="Para">Description</div>
-</th>
-
-<th>
-<div CLASS="Para">Default</div>
-</th>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Project Name</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">The name of the new project to be created.</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">&lt;blank></div>
-</td>
-</tr>
-
-<tr>
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">Location</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">The location in the file system where the project will
-be created. De-select "Use default location" to specify a location other
-than the default.&nbsp; You can type the new location or browse to select
-a file system location for the new project.</div>
-</td>
-
-<td ALIGN=LEFT VALIGN=TOP>
-<div CLASS="Para">The workspace root directory</div>
-</td>
-</tr>
-</table>
-
-
-<p CLASS="Para">After you indicate a name and location for the project,
-you can either click Finish to create the project, or you can click Next
-to set up project dependencies on the Select Referenced Projects page.
-
-<p CLASS="Para">Here is what the New Project Resource page looks like:
-
-<p CLASS="Para"><img src="../images/Image251_proj_wiz.gif" alt="New project name and location page" border="0" width="500" height="500"></div>
-
-<div CLASS="Topic">
-<h2>
-Select Referenced Projects page</h2>
-
-<div CLASS="Para">In the Referenced Projects list, you can set project
-dependencies for the new project. In the list of other projects in the
-Workbench, you can select one or more projects on which you want the new
-project to depend.&nbsp; Initially, no projects will be selected.</div>
-
-
-<p CLASS="Para">Click Finish when you are done to create the new project
-in the Workbench.
-
-<p CLASS="Para">Here is what the Select Referenced Projects page looks
-like:
-
-<p CLASS="Para"><img src="../images/Image252_projref_page.gif" alt="Project references page" border="0" width="500" height="500"></div>
-
-<div CLASS="Topic">
-<h2>
-New Project perspective options</h2>
-
-<div CLASS="Para">On the Workbench preferences page (Window > Preferences
-> Workbench > Perspectives, New project options), you can change the way
-that new projects are initially displayed. For details on how to change
-this option see <a href="ref-10.htm">Workbench</a>.</div>
-</div>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-27.htm">Navigator View</a>
-</p>
-
-<p>&nbsp;</p>
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-38.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-38.htm
deleted file mode 100644
index 23b7bb5..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-38.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>New Folder wizard</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-New Folder wizard</H1>
-<P CLASS="Para">
-This wizard helps you create a new folder in the Workbench.</P>
-<P CLASS="Para">
-Here is what the New Folder wizard looks like:</P>
-<P CLASS="Para">
-<img src="../images/Image248_folder_wiz.gif" alt="New folder wizard" border="0" width="438" height="651"></P>
-<P CLASS="Para">
-&nbsp;</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-New Folder Fields</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Field</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Enter or select the parent folder</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The resource in which the new folder will be created. Type or navigate the list to
-select the resource.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The resource that was selected when you chose to create the new folder</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Folder name</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The name for the new folder.&nbsp;</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-&lt;blank&gt;</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-<H2>Advanced</H2>
-<P>The <B>Advanced</B> button reveals or hides a section of the wizard used to create a linked folder. Check the <B>Link to folder in the file system</B> check box if you want the new folder to reference a folder in the file
-system. Use the field below the check box to enter a folder path or the
-name of a path variable. Use the <B>Browse...</B> button to browse for a folder in the file system. Use the <B>Variables...</B> button if you want to use a path variable to reference a file system folder.</P>
-
-<P><IMG border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><A href="../concepts/concepts-13.htm">Linked resources</A>
-<br><A href="../concepts/cpathvars.htm">Path variables</A>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a href="../tasks/tasks-43.htm">Creating a folder</a>
-<br><a href="../tasks/tasks-45.htm">Creating linked resources</a>
-</P>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-27.htm">Navigator View</a>
-</p>
-
-<p>&nbsp;</p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-39.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-39.htm
deleted file mode 100644
index 846b912..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-39.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>New File wizard</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-New File wizard</H1>
-<P CLASS="Para">
-This wizard helps you create a new file in the Workbench.</P>
-<P CLASS="Para">
-Here is what the New File wizard looks like:</P>
-<P CLASS="Para">
-<img src="../images/Image246_file_wiz.gif" alt="New file dialog" border="0" width="438" height="633"></P>
-<P CLASS="Para">
-&nbsp;</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-New File Fields</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Field</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Enter or select the parent folder</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The resource in which the new file will be created. Type or browse the list to select the resource.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The resource that was selected when you invoked the New File wizard.</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">File name</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The name for the new file, including the file extension.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-&lt;blank&gt;</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-<H2>Advanced</H2>
-<P>The <B>Advanced</B> button reveals or hides a section of the wizard used to create a linked
-file. Check the <B>Link to file in the file system</B> check box if you want the new file to reference a file in the file system.
-Use the field below the check box to enter a file path or the name of a
-path variable. Use the <B>Browse...</B> button to browse for a file in the file system. Use the <B>Variables...</B> button if you want to use a path variable to reference a file system file.</P>
-
-<P><IMG border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br>
-<A href="../concepts/concepts-13.htm">Linked resources</A>
-<br>
-<A href="../concepts/cpathvars.htm">Path variables</A>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a href="../tasks/tasks-44.htm">Creating a file</a>
-<br><a href="../tasks/tasks-45.htm">Creating linked resources</a>
-</P>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-27.htm">Navigator View</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-39a.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-39a.htm
deleted file mode 100644
index 4327d59..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-39a.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>CVS Wizards</title>
-
-</HEAD>
-
-<H1 CLASS="Head">
-CVS Wizards</H1>
-
-<P>There are two CVS specific wizards, the New CVS Repository Location 
-wizard and the Merge wizard.
-</p>
-<P>  See Team Support in the
-Reference section for details on these wizards.
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-40.htm">New CVS Repository Location wizard</a><br>
-     <a href="ref-41a.htm">Merge wizard</a>
-     
-   </p>
-       
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-4.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-4.htm
deleted file mode 100644
index 2386061..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-4.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>View toolbars</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-View toolbars</H1>
-<P CLASS="Para">
-View toolbars contain actions that apply only to the particular view in which they appear.&nbsp;
-The view toolbar also contains a context menu that contains other actions for that view.
-This menu is opened by clicking on the
-downwards pointing triangle.&nbsp;</P>
-<P CLASS="Para">
-Here is an example of the view toolbar for the Properties view:</P>
-<P CLASS="Para">
-<img src="../images/Image215_toolbar_view.gif" alt="Properties View Tool Bar" border="0" width="118" height="25"></P>
-
-<h2>
-Close View</h2>
-<P CLASS="Para">
-This action closes the view.</P>
-
-<h2>
-Title Bar</h2>
-<P CLASS="Para">
-View title bars contain the view name, its icon, and
-the view toolbar. </P>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-3.htm">Shortcut Bar</a>
-<br><a href="ref-2.htm">Workbench Toolbar</a>
-<br><a href="ref-23.htm">Workbench Window Layout</a>
-</p>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-40.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-40.htm
deleted file mode 100644
index 7d3660b..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-40.htm
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-     
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-     
-  <meta http-equiv="Content-Style-Type" content="text/css">
-      
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>New CVS Repository Location wizard</title>
-   
-</head>
- <body style="background-color: rgb(255,255,255);">
-   
-<h1 class="Head"> New CVS Repository Location wizard</h1>
-   
-<p class="Para"> This wizard helps you create a repository location.</p>
-   
-<p class="Para"> Here is what the New CVS Repository Location wizard looks 
-like:</p>
-   
-<p class="Para"> <img align="top" border="0"
- src="../images/Image249_repo_wiz.gif" alt="Repositories View">
- </p>
-   
-<div class="Topic">  
-<h1 class="Head"> CVS repository location</h1>
-   
-<p class="Head"> The following are the editable fields for a new CVS repository 
-location:</p>
-     
-<table border="1" cellspacing="0" cellpadding="3">
-      <thead>      <tr>
-         <th rowspan="1" colspan="1">               
-    <p class="Para"> Option</p>
-        </th>
-        <th rowspan="1" colspan="1">               
-    <p class="Para"> Description</p>
-        </th>
-        <th rowspan="1" colspan="1">               
-    <p class="Para"> Default</p>
-        </th>
-      </tr>
-      </thead> <tbody>
-       <tr>
-         <td rowspan="1" colspan="1" valign="top" align="left">         
-       
-      <p class="Para"> Host</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para">The address of the host (e.g., "hostmachine.com").</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para"> &lt;blank&gt;</p>
-        </td>
-      </tr>
-      <tr>
-         <td rowspan="1" colspan="1" valign="top" align="left">         
-       
-      <p class="Para"> Repository Path</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para"> The path to the repository on the host (e.g., "/x/y/z",&nbsp; 
-           "d:/myrepo").</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para"> &lt;blank&gt;</p>
-        </td>
-      </tr>
-      <tr>
-         <td rowspan="1" colspan="1" valign="top" align="left">         
-       
-      <p class="Para"> User Name</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para"> The user name under which you want to connect to the 
-           server.</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para"> &lt;blank&gt;</p>
-        </td>
-      </tr>
-      <tr>
-        <td colspan="1" valign="top" align="left">Password</td>
-        <td colspan="1" valign="top" align="left">The password required for 
-the          above user name to access the above host.</td>
-        <td colspan="1" valign="top" align="left">&nbsp;</td>
-      </tr>
-      <tr>
-         <td rowspan="1" colspan="1" valign="top" align="left">         
-       
-      <p class="Para"> Connection Type</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para">The type of CVS connection for the repository, either 
-           "pserver", "extssh" or "ext".</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para"> pserver</p>
-        </td>
-      </tr>
-      <tr>
-         <td colspan="1" valign="top" align="left">Port</td>
-        <td colspan="1" valign="top" align="left">Option to use a custom
-port for          the connection.</td>
-        <td colspan="1" valign="top" align="left">Use Default Port</td>
-      </tr>
-      <tr>
-         <td rowspan="1" colspan="1" valign="top" align="left">         
-       
-      <p class="Para"> Validate connection on finish</p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para"> Check this option if you want to attempt a connection 
-           to the host upon completion of the wizard to validate that the 
-entered            information is correct.&nbsp; If this option is not enabled, 
-you will            not know whether the information entered is correct until 
-you try to            access the contents of a repository for the first time. 
-      </p>
-        </td>
-        <td rowspan="1" colspan="1" valign="top" align="left">           
-     
-      <p class="Para">On</p>
-        </td>
-      </tr>
-         
-  </tbody>     
-</table>
-    <img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
- <br>
-    <a href="ref-32.htm">CVS Repositories View</a> </div>
-    
-<p>&nbsp;<br>
-  <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0"
- width="324" height="14">
- </a> </p>
-    
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-41a.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-41a.htm
deleted file mode 100644
index 35f429a..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-41a.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Merge wizard</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Merge wizard</H1>
-<P CLASS="Intro"> This wizard helps you merge changes between two states of a 
-  project into your workspace. Often the Merge Wizard is used to move changes 
-  from one branch into another, for example after splitting a branch to work on 
-  a bug fix. The merge operation takes changes between two points in a branch, 
-  the <b> start point</b> and the <b> end point</b>, and merges them into your 
-  workspace. Typically the start point will be the root of a branch (version tag) 
-  and the end point can either be the tip (latest and best) of the branch 
-  or another version tag.<br>
-  <br>
-  It is very important to understand that the destination of the merge is always 
-  the project in your workspace. After the merge has been completed you can test the 
-  changes locally and then commit them to the new branch (usually HEAD).
-<P CLASS="Intro">To start a merge, select a project (or one or more resources), 
-  and select <b>Team &gt; Merge...</b> from the pop-up menu.<br>
-
-<h2>Start Point</h2>
-
-
-<P>This is where you will select the starting point of the merge.
-</P>
-
-
-<P>From the list, select a version of the project that will be the starting
-(base) point of the merge operation.
-</P>
-
-
-<P><img src="../images/Image269_merge_init.gif" alt="Merge dialog initial state" border="0" width="438" height="591">
-</P>
-
-
-<h2>End state&nbsp;
-</h2>
-
-
-<P>This is where you will choose the end state of the merge.&nbsp;&nbsp;
-</P>
-
-
-<P>From the list, select either:
-</P>
-
-
-<ul>
-  <li>A version of the project</li>
-  <li>The branch&nbsp;</li>
-</ul>
-<p>This will be the end point of the merge operation.&nbsp; Choose a version when 
-  you want to merge the differences between two versions of a project into your 
-  workspace. Choose a branch if you want to merge the changes made in the branch 
-  into your local workspace.</p>
-
-
-<P><img src="../images/Image270_merge_end.gif" alt="Merge dialog end state" border="0" width="438" height="608">
-</P>
-
-
-<P>After the finish button is pressed the changes between the start point and 
-  end point are calculated and a merge editor is displayed. Depending on the size 
-  of the project you are merging, this may take some time. In the merge editor 
-  you can update or merge changes into your Workbench. You cannot commit from 
-  the merge view. </P>
-
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-<br><a href="../concepts/concepts-27b.htm">Branches</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a href="../tasks/tasks-100a.htm">Branching</a>
-<br><a href="../tasks/tasks-100b.htm">Merging from a branch</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
- <br><a href="../reference/ref-47.htm">CVS</a>
- <br><a href="ref-25.htm">Compare editor</a>  
- </p>
-    
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-43.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-43.htm
deleted file mode 100644
index 38b6b8b..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-43.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Workbench User Guide</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Workbench User Guide</H1>
-<P CLASS="Para">
-The Help view displays help related to using the Workbench.&nbsp; See <a href="ref-34.htm">Help
-View</a> on how to navigate through the contents of the Help view.&nbsp;&nbsp;</P>
-<P CLASS="Para">If you select Workbench User Guide from the drop-down menu of
-the Help view, you will see help topics related to using the Workbench in the
-Contents tab.&nbsp; The Workbench User Guide is broken down into four main
-sections, described below.</P>
-<DIV CLASS="Topic">
-
-<DIV CLASS="Subtopic">
-<H2 CLASS="Head">
-Getting started</H2>
-<P CLASS="Para">
-This section contains tutorials that will help you
-when you start using the Workbench.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<H2 CLASS="Head">
-Concepts</H2>
-<P CLASS="Para">
-Concepts are high level descriptions of the schema
-and functions of the Workbench.&nbsp; This section helps provide a general
-understanding of how the Workbench functions.&nbsp; For example, the Concepts section includes a discussion of what perspectives and views are and how they relate to one another.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<H2 CLASS="Head">
-Tasks</H2>
-<P CLASS="Para">
-Task descriptions are step by step instructions for
-performing specific actions and tasks in the Workbench. For example, the Tasks section contains step by step instructions for
-creating a repository location, and for importing a file from the file system into the Workbench.</P>
-</DIV>
-<DIV CLASS="Subtopic">
-<H2 CLASS="Head">
-Reference</H2>
-<P CLASS="Para">
-Reference materials are helpful resources that will assist you while you are using the Workbench. This includes descriptions of various wizards, dialogs, and fields as well as Workbench resources such as specific views and perspectives.</P>
-<P CLASS="Para">
-The Reference section also includes a glossary of terms that you might find useful while using the Workbench.</P>
-</DIV>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-45.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-45.htm
deleted file mode 100644
index d6045a1..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-45.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"><title>File search</title></head>
-
-<body>
-
-<h1>File search</h1>
-
-<p>
-In the Search Dialog, the File Search tab allows you to search for files or text in the Workbench.
-You can bring up the Search Dialog by clicking on the Search toolbar button.</p>
-
-<p>
-<img src="../images/Image45_file_search.gif" alt="File search dialog" border="0" width="490" height="388"></p>
-
-<h2>Containing text</h2>
-<p>Type the expression for which you wish to do the text search. Leave this field empty to search for files.&nbsp;</p>
-
-<p>From the drop-down menu, you can choose to repeat or
-modify a recent search.</p>
-
-<h3>Wildcards</h3>
-<p>The available wildcards for search expressions are displayed in the search dialog:</p>
-
-<ul>
-	<li>"*" matches any set of characters, including the empty string</li>
-	<li>"?" matches for any character</li>
-	<li> "\" is the escape for a literal; if you want to search for an asterisk, question mark, or backslash character, type a backslash before it to indicate that you are not using these characters as wildcards (e.g., "\*", "\?", or "\\")</li>
-</ul>
-
-<h2>File name patterns</h2>
-<p>In this field, enter all the file name patterns for the files to find or search
-through for the specified expression.<br>
-</p>
-
-<h3>Wildcards</h3>
-<p>The available wildcards for file name patterns are displayed in the search dialog:</p>
-<ul>
-	<li>"*" matches any set of characters, including the empty string</li>
-	<li>"?" matches for any character</li>
-</ul>
-
-<h2>Case sensitive</h2>
-<p>Turn this option on if you want the text search to be case sensitive.</p>
-
-<h2>Scope</h2>
-<p>Choose the scope of your search. You can either search the whole workspace,
-pre-defined working sets, previously selected resources or projects enclosing
-the selected resources.</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br>
-<a href="../concepts/csearchview.htm">Search view</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br>
-<a href="../tasks/tasks-84b.htm">Searching for files</a><br>
-<a href="../tasks/tasks-84.htm">Searching for text within a file</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br>
-<a href="ref-26.htm">Search view</a><br>
-</p>
-
-<p>&nbsp;<br>
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-47.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-47.htm
deleted file mode 100644
index a46153b..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-47.htm
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>CVS</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> CVS </H1>
-<DIV CLASS="Topic"> 
-  <P CLASS="Para"> The Workbench is shipped with a built in client for the Concurrent 
-    Versions System (CVS). With this client you can access CVS repositories.</P>
-  <P CLASS="Para"> You can find more information on CVS at&nbsp; <a href="http://www.cvshome.org" target="_blank">http://www.cvshome.org</a>.</P>
-  <P CLASS="Para">You can also visit the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-vcm-home/docs/online/cvs_features2.0/cvs-faq.html" target="_blank">Eclipse 
-    CVS FAQ</a>.</P>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-48a.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-48a.htm
deleted file mode 100644
index ad511df..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-48a.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ignoring resources from version control</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> Ignoring resources from version control</H1>
-<P CLASS="Para" Label=Type>When synchronizing resources, it is possible that there 
-  are some resources that you do not want to commit to the repository. There 
-  are two ignore facilities provided, allowing the user to specify which resources 
-  should be excluded from update and commit operations.</P>
-<P CLASS="Para" Label=Type>The first is a global ignore facility, provided by the
-Workbench. The second is the CVS ignore facility, which reads the contents of a
-special file .<i>cvsignore</i> to determine what to ignore.</P>
-<h2 Label=Type>Why ignore files when synchronizing?</h2>
-<P Label=Type>There are many files that a user may not want to commit to the repository.&nbsp;
-For example, external editors may create temporary files in your project. Compilation of .java files creates .class files, and
-likewise many build operations result in binary files. These files, when taken together, may
-be quite large. In addition, they may be re-generated whenever a build is performed,
-resulting in many&nbsp; outgoing changes.  Typically these are not files that one wants to share with other members of a team or persist in the repository.&nbsp;&nbsp;</P>
-<DIV CLASS="Subtopic">
-<h2>
-Global ignore facility</h2>
-<p CLASS="Head">A global ignore facility is provided by the Workbench via the
-Team preference page.
-There is a list of file patterns against which resources will be matched before they are
-considered as version control candidates.&nbsp;
-These patterns may contain the wildcard characters "*" and "?".&nbsp; "*"
-represents any sequence of zero or more characters.&nbsp; "?" represents any one
-character.&nbsp; For example, you can specify a pattern of "*~", which would match
-any temporary files that end with "~".&nbsp;&nbsp; Any file or directory that matches any one of the
-patterns will be ignored during&nbsp; update or commit operations.&nbsp; When
-you specify a file pattern to ignore, you can temporarily disable ignoring the
-file pattern by de-selecting it from the list; you do not have to remove the
-specified file pattern from the list.<br>
-<br>
-The patterns in the global ignore facility are matched against resource names during a
-synchronize operation.&nbsp; It is important to note that the path leading up to the resource name is not
-included in the matching.&nbsp; For example, for the file &quot;/path/to/file.txt&quot;, only the string
-&quot;file.txt&quot; is matched against the patterns.&nbsp; This facility is not intended for specifying fully-qualified
-path names but for specifying globally-applicable patterns.<br>
-</p>
-<h2>CVS ignore facility</h2>
-  <p CLASS="Head">The Eclipse CVS client recognizes a file named &quot;.cvsignore&quot; 
-    in each directory of a project.&nbsp; This is a standard CVS facility and 
-    many existing CVS projects may contain this file.<br>
-    <br>
-    This text file consists of a list of files, directories, or patterns.&nbsp; 
-    In a similar way to the global ignore facility, the wildcards "*" and "?" 
-    may be present in any entry in the .cvsignore file.&nbsp; Any file or sub-directory 
-    <b> in the current directory</b> that matches any one of the patterns will 
-    be ignored.&nbsp; It is important to note that the semantics of this file 
-    differs from that of the global ignore facility in that it applies only to 
-    files and&nbsp; directories in the same directory as the .cvsignore file itself.&nbsp; 
-    A project may contain one .cvsignore file in each directory.&nbsp; For more 
-    information, please visit&nbsp; <a href="http://www.cvshome.org" target="_blank">http://www.cvshome.org</a>.</p>
-  <p CLASS="Head">Resources that have not been added to CVS control can be ignored 
-    by selecting <b>Team &gt; Add to .cvsignore</b> from the pop-up menu of the 
-    resource in the navigator. This menu option is also available in the Synchronize 
-    view.</p>
-</DIV>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-5.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-5.htm
deleted file mode 100644
index c60cc51..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-5.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Builds</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h1 class="Head">Builds</h1>
-<p class="Para">Builders create or modify workspace resources,
-usually based on the existence and state of other resources. They are a powerful
-mechanism for enforcing the constraints of some domain. For example, a Java
-builder converts Java source files (.java files) into executable class files
-(.class files), a web link builder updates links to files whose name/location
-have changed, etc.&nbsp; As resources are created and modified, builders are run
-and the constraints are maintained. This transform need not be one to one. For
-example, a single .java file can produce several .class files.&nbsp;</p>
-<h2>Auto-build vs. Manual Build</h2>
-<p class="Intro">There are two distinct user work modes with respect to
-building: relying on Auto-build, or user initiated manual building.
-<p class="Intro">Users who do not need fine-grained control over when builds
-occur may simply choose to turn on auto-building.&nbsp; With auto-building on,
-builds occur after every set of resource changes (e.g., saving a file, importing
-a ZIP, ...).&nbsp; Auto-building is efficient because the amount of work done is
-proportional to the amount of change done.&nbsp; The benefit of auto-building is
-that your derived resources (e.g., Java .class files) are always up to date.
-Auto-building is turned on/off via the <i>Perform build automatically on
-resource modification</i> option on the Window &gt; Preferences &gt; Workbench
-page.
-<p class="Intro">Users needing more control over when builds occur can turn off
-auto-building and manually invoke builds.&nbsp;This is sometimes desirable in
-cases where,for example, you know building is of no value until you finish a
-large set of changes. In this case there is no benefit to paying the cost of
-auto-building. Builds can be invoked manually in numerous ways, for example, by
-selecting Rebuild All from a project's context menu.&nbsp;
-<p class="Intro">The disadvantage of manual building is that the tasks which
-were generated to indicate build errors quickly become out of date until you
-build. In addition, it is very important that you remember to manually build
-before relying on build output (e.g. before running your Java program).
-<h2>Full vs. Incremental Builds</h2>
-<p class="Intro">There are two kinds of builds: full and incremental.&nbsp; An
-incremental build works with a previous built state and applies the transforms
-of the configured builders only on the resources which have changed since that
-previous state was computed (i.e., since the last build).&nbsp; Auto-building
-uses incremental building for efficiency.
-<p class="Intro">A full build (a.k.a. <i>rebuild</i>) discards any existing
-built state and transforms all requested resources according the domain rules of
-the configured builders.&nbsp; The first incremental build is equivalent to a
-full build as there is no previous state to work from.
-<p class="Intro">Depending on the user's needs, full and incremental builds can
-be done over a specific set of projects or the workspace as a whole.&nbsp;Specific
-files and folders cannot be built.</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-56.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-56.htm
deleted file mode 100644
index 84d812a..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-56.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>File menu</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">File menu</H1>
-<P CLASS="Para">
-This menu allows you to create, save, close, print, import, and export Workbench resources and exit the Workbench itself.</P>
-<DIV CLASS="Topic">
-<h2>New</h2>
-<P CLASS="Para">
-This command creates new resources.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Close</h2>
-<P CLASS="Para">
-This command closes the active editor.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Close All</h2>
-<P CLASS="Para">
-This command closes all open editors.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Save</h2>
-<P CLASS="Para">
-This command allows you to save the contents of the
-active editor.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Save As</h2>
-<P CLASS="Para">
-This command allows you to save the contents of the
-active editor under another file name or location.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Save All</h2>
-<P CLASS="Para">
-This command saves the contents of all open editors.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Revert</h2>
-<P CLASS="Para">
-This command replaces the contents of the active editor with the previously saved contents.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Move</h2>
-<P CLASS="Para">
-This command moves the currently selected resources to a different location.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Rename</h2>
-<P CLASS="Para">
-This command changes the name of the currently selected resource.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Refresh</h2>
-<P CLASS="Para">
-This command refreshes the resource with the contents in the filesystem.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Print</h2>
-<P CLASS="Para">
-This command prints the contents of the active editor.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Import</h2>
-<P CLASS="Para">
-This option launches the import wizard, which allows you to add resources
-to the Workbench.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Export</h2>
-<P CLASS="Para">
-This option launches the export wizard, which allows you to export resources from the Workbench.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Properties</h2>
-<P CLASS="Para">
-This command opens the properties dialog for the currently selected resource.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Recent file list</h2>
-<P CLASS="Para">
-A list of the most recently accessed files in the Workbench is maintained at the bottom of the File menu.&nbsp;
-Any of these files can be opened from the File menu by simply selecting the file name.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Exit</h2>
-<P CLASS="Para">
-This command closes and exits the Workbench.</P>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-57.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-57.htm
deleted file mode 100644
index 36d7660..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-57.htm
+++ /dev/null
@@ -1,120 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Edit menu</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-
-<h1 class="Head">Edit menu</h1>
-<p class="Intro"><a name="pgfId-1010738"></a>This menu helps you manipulate
-resources in the editor area.
-<div class="Topic">
-  <a name="elementId-1010741"></a><a name="pgfId-1010746"></a>
-  <h2>Undo</h2>
-  <p class="Para"><a name="pgfId-1010752"></a>This command reverses your most
-  recent editing action.</p>
-</div>
-<div class="Topic">
-  <a name="elementId-1007106"></a><a name="pgfId-1010758"></a>
-  <h2>Redo</h2>
-  <p class="Para"><a name="pgfId-1007117"></a>This command re-applies the editing
-  action that has most recently been reversed by the Undo action.</p>
-</div>
-<div class="Topic">
-  <a name="elementId-1007120"></a><a name="pgfId-1007125"></a>
-  <h2>Cut</h2>
-  <p class="Para"><a name="pgfId-1007131"></a>This command removes the selection
-  and places it on the clipboard.</p>
-</div>
-<div class="Topic">
-  <a name="elementId-1007134"></a><a name="pgfId-1007139"></a>
-  <h2>Copy</h2>
-  <p class="Para"><a name="pgfId-1007145"></a>This command places a copy of the
-  selection on the clipboard.</p>
-</div>
-<div class="Topic">
-  <a name="elementId-1007148"></a><a name="pgfId-1007153"></a>
-  <h2>Paste</h2>
-  <p class="Para"><a name="pgfId-1007159"></a>This command places the text or
-  object on the clipboard at the current cursor location in the currently active
-  view or editor.</p>
-</div>
-<div class="Topic">
-  <a name="elementId-1007162"></a><a name="pgfId-1007167"></a>
-  <h2>Delete</h2>
-  <p class="Para"><a name="pgfId-1007173"></a>This command removes the current
-  selection.</p>
-</div>
-<div class="Topic">
-  <a name="elementId-1007176"></a><a name="pgfId-1007181"></a>
-  <h2>Select All</h2>
-  <p class="Para"><a name="pgfId-1007187"></a>This command selects all text or
-  objects in the currently active view or editor.</p>
-</div>
-<div class="Topic">
-  <a name="elementId-1007190"></a><a name="pgfId-1007195"></a>
-  <h2>Find/Replace</h2>
-  <p class="Para"><a name="pgfId-1007201"></a>This command allows you to search
-  for an expression in the active editor, and optionally replace the expression with a new expression.</p>
-</div>
-<DIV CLASS="Topic">
-<h2>Find Next</h2>
-<P CLASS="Para">
-This command allows you to search for the next occurrence of the current selection, or
-for the next occurrence of the most recent expression found using the Find/Replace action.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Find Previous</h2>
-<P CLASS="Para">
-This command allows you to search for the previous occurrence of the current selection, or
-for the previous occurrence of the most recent expression found using the Find/Replace action.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Incremental Find Next</h2>
-<P CLASS="Para">
-This command allows you to search for expressions in the active editor.  As you type the search
-expression, it will incrementally jump to the next exact match in the active editor.  While in this
-mode, the up and down cursor keys can be used to navigate between matches, and the search
-can be cancelled by pressing left or right cursor keys, the enter key, or the escape key.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Incremental Find Previous</h2>
-<P CLASS="Para">
-This command allows you to search for expressions in the active editor.  As you type the search
-expression, it will incrementally jump to the previous exact match in the active editor.  While in this
-mode, the up and down cursor keys can be used to navigate between matches, and the search
-can be cancelled by pressing left or right cursor keys, the enter key, or the escape key.</P>
-</DIV>
-<div class="Topic">
-  <a name="elementId-1007218"></a><a name="pgfId-1007223"></a>
-  <h2>Add Bookmark</h2>
-  <p class="Para"><a name="pgfId-1007230"></a>This command adds a bookmark in
-  the active file on the line where the cursor is currently displayed.</p>
-</div>
-<DIV CLASS="Topic">
-<h2>Add Task</h2>
-<P CLASS="Para">
-This command adds a task in the active file on the line where the cursor is currently displayed.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Convert Line Delimiters</h2>
-<P CLASS="Para">
-This submenu allows you to convert the line delimiters used in the active editor to a different format.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Encoding</h2>
-<P CLASS="Para">
-This submenu allows you to change the file encoding used to read and write the file in the active editor.
-These actions are only available when then current editor contents are saved.</P>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-58.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-58.htm
deleted file mode 100644
index 87add42..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-58.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Navigate menu</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h1>
-Navigate menu
-</h1>
-<P CLASS="Intro">
-This menu allows you to locate and navigate through resources and other artifacts displayed in the Workbench.
-<DIV CLASS="Topic">
-<h2>
-Go Into</h2>
-<P CLASS="Para">
-This command refocuses the active view so that the current selection is at the root.  This allows web 
-browser style navigation within hierarchies of artifacts.
-</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Go To</H2>
-
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-<b>Back</b>:&nbsp; This command displays the hierarchy that was displayed immediately prior to the current display.&nbsp; For example, if
-you Go Into a resource, then the Back command in the resulting display returns the view to the same hierarchy from which you activated the Go Into command.&nbsp; This command is similar to the Back button in an HTML browser.</LI>
-<LI CLASS="Item">
-<b>Forward</b>:&nbsp; This command displays the hierarchy that was displayed immediately after the current display.&nbsp; For example, if you've just selected the Back command, then selecting the Forward command in the resulting display returns the view to the same hierarchy from which you activated the Back command.&nbsp; This command is similar to the Forward button in an HTML browser.</LI>
-<LI CLASS="Item">
-<b>Up one level</b>:&nbsp; This command displays the hierarchy of the parent of the current highest-level resource.</LI>
-  <LI CLASS="Item"><B>Resource</B>: This command allows you to navigate quickly to a resource. For more information
-  see the links to related tasks below.</LI>
-</UL>
-</DIV>
-<DIV CLASS="Topic">
-<H2>Open Resource</H2>
-<P>This command displays a dialog that lets you select any resource in the
-workspace to open it in an editor. For more information see the links
-to related tasks below.</P>
-</DIV>
-<DIV CLASS="Topic">
-<H2>Show In</H2>
-<P>This sub-menu is used to find and select the currently selected resource in another view.
-If an editor is active, these commands are used to select the resource currently being edited
-in another view.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Next</h2>
-<P CLASS="Para">
-This command navigates to the next item in a list or table in the active view.  For example, when the search results view
-is active, this navigates to the next search result.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Previous</h2>
-<P CLASS="Para">
-This command navigates to the previous item in a list or table in the active view.  For example, when the search results view
-is active, this navigates to the previous search result.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>Go to Line</h2>
-<P CLASS="Para">
-This command allows you to jump to a specific line in the active editor.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Back</h2>
-<P CLASS="Para">
-This command navigates to the previous resource that was viewed in an editor.
-Analagous to the <b>Back</b> button on a web browser.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Forward</h2>
-<P CLASS="Para">
-This command navigates to undo the effect of the previous
-<b>Back</b> command.  Analagous to the <b>Forward</b> button on a web browser.</P>
-</DIV>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-46ag.htm">Finding a resource quickly</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-59.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-59.htm
deleted file mode 100644
index cd53ad5..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-59.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Project menu</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Project menu</H1>
-<P CLASS="Para">
-The Project menu allows you to perform actions (builds or compilations) on projects in the Workbench.</P>
-<DIV CLASS="Topic">
-<h2>
-Open Project</h2>
-<P CLASS="Para">
-This command opens the currently selected project or projects.  The selected projects must currently 
-be closed for this command to be available.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Close Project</h2>
-<P CLASS="Para">
-This command closes the currently selected project or projects.  The selected projects must be
-currently open for this command to be available.  Closing a project will remove all of that project's
-state from memory, but the contents on disk are left untouched.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Build Project</h2>
-<P CLASS="Para">
-This command performs an incremental build on the currently selected project. That is, it builds 
-(compiles) all resources in the project that are affected by any resource changes since the 
-last build.  This command is only available if auto-build is turned off.  Auto-build is turned
-off via <b>Window &gt; Preferences &gt; Workbench &gt; Perform build automatically on resource modification</b>.
-</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Rebuild Project</h2>
-<P CLASS="Para">
-This command performs a full build of the selected project. That is, it builds (compiles) all 
-resources in the project from scratch.</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Build All</h2>
-<P CLASS="Para">
-This command performs an incremental build on all projects in the Workbench. That is, it builds 
-(compiles) all resources in the Workbench that are affected by any resource changes since the 
-last incremental build.  This command is only available if auto-build is turned off.  Auto-build is turned
-off via <b>Window &gt; Preferences &gt; Workbench &gt; Perform build automatically on resource modification</b>.
-</P>
-</DIV>
-<DIV CLASS="Topic">
-<h2>
-Rebuild All</h2>
-<P CLASS="Para">
-This command performs a full build. That is, it builds (compiles) all resources in the Workbench from scratch.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Properties</h2>
-<P CLASS="Para">
-This command opens a dialog showing the properties of the selected project or of the project that contains the
-selected resource.</P>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-6.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-6.htm
deleted file mode 100644
index 5b29472..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-6.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Perspectives</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Perspectives</H1>
-
-<P CLASS="Intro">
-A perspective defines the initial set and layout of views in the Workbench
-window. One or more perspectives can exist in a single Workbench window.&nbsp;&nbsp;
-<p CLASS="Para" Label=Type>Perspectives can be opened either in the same 
-(existing) Workbench window, hiding the current perspective, or in a new 
-Workbench window
-<p CLASS="Para" Label=Type>Perspectives define visible action sets, which you
-can change to customize a perspective.&nbsp; You can save a perspective that you
-build in this manner, making your own custom perspective that you can open again
-later.&nbsp;&nbsp;</p>
-<P CLASS="Para">
-The Workbench defines the <i>Resource</i> perspective by default. This 
-perspective shows views relevant to resource management.
-</P>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-60.htm">Window Menu</a>
-<br><a href="ref-24.htm">Editor Area</a>
-<br><a href="ref-27.htm">Navigator View</a>
-<br><a href="ref-30.htm">Outline View</a>
-<br><a href="ref-31.htm">Tasks View</a>
-</P>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-60.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-60.htm
deleted file mode 100644
index 42e48c4..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-60.htm
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Window menu</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Window menu</H1>
-<P CLASS="Intro">
-This menu allows you to display, hide, and otherwise manipulate the various views, perspectives, and actions in the Workbench.
-
-<DIV CLASS="Topic">
-<h2>
-New Window</h2>
-<P CLASS="Para">
-This command opens a new Workbench window with the same perspective as the current perspective.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Open Perspective</h2>
-<P CLASS="Para">
-This command opens a new perspective in this Workbench window.
-This preference can be changed in the <b>Window &gt; Preferences &gt; Workbench &gt; Perspectives</b>
-page. All of the perspectives that are open within the Workbench window are
-shown on the shortcut bar.</P>
-<P CLASS="Para">
-The perspectives you will likely want to open are
-listed first.&nbsp;This list is dependent on the current perspective. From the <b>Other...</b> submenu you can open any perspective.</P>
-<P CLASS="Para"><img src="../images/Image207_persp_sel.gif" alt="Select Perspective dialog" border="0" width="245" height="319"></P>
-<P CLASS="Para">&nbsp;</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Show View</h2>
-<P CLASS="Para">
-This command displays the selected view in the
-current perspective.&nbsp; You can configure how views are opened in the <b>Window &gt; 
-Preferences &gt; Workbench &gt; Perspectives page</b>. Views you are likely to want to open are listed
-first.&nbsp;This list is dependent on the current perspective. From the <b>Other...</b> submenu you can open any view.&nbsp; The views
-are sorted into categories in the Show View dialog.</P>
-<P CLASS="Para"><img src="../images/Image208_view_sel.gif" alt="Show View Dialog" border="0" width="294" height="420"></P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Show/Hide Editors</h2>
-<P CLASS="Para">
-This command can be toggled to show or hide the editor area in the
-active perspective.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Lock the Toolbars</h2>
-<P CLASS="Para">
-This command toggles whether or not the Workbench tool bar can be manually reorganized.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Customize Perspective</h2>
-<P CLASS="Para">
-Each perspective includes a predefined set of actions that are accessible from the menu bar and Workbench toolbar.&nbsp;
-Related actions are grouped into action sets.&nbsp; This command allows you to
-customize the current perspective by showing or hiding various action sets. The
-first three (<b>File &gt; New</b>, <b>Window &gt; Open Perspective</b>, <b>Window &gt; Show View</b>) control which actions appear 
-as top level items in their respective menus. The last category (<b>Other</b>) controls
-which action sets are visible in the perspective.&nbsp;</P>
-<P CLASS="Para"><img src="../images/Image258_perps_custom.gif" alt="Customize Perspective Dialog" border="0" width="460" height="474">
-</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Save Perspective As</h2>
-<P CLASS="Para">
-This command allows you to save the current perspective,
-creating your own custom perspective.&nbsp; You can open more perspectives of
-this type using the <b>Window &gt; Open Perspective &gt; Other</b> menu item once you have
-saved a perspective.&nbsp;</P>
-<P CLASS="Para">
-<img src="../images/Image206_persp_saveas.gif" alt="Save Perspective As dialog" border="0" width="273" height="409"></P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Reset Perspective</h2>
-<P CLASS="Para">
-This command changes the layout of the current perspective to its original
-configuration.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Close Perspective</h2>
-<P CLASS="Para">
-This command closes the active perspective.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Close All Perspectives</h2>
-<P CLASS="Para">
-This command closes all open perspectives in the
-Workbench window.</P>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Keyboard Shortcuts</h2>
-<P CLASS="Para">
-This submenu contains shortcut keys for navigating between the views, perspectives, and editors in the Workbench window.</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-<b>Show System Menu</b>:&nbsp; Shows the menu that is used for resizing, closing or pinning the current view or editor.</LI>
-<LI CLASS="Item">
-<b>Show View Menu</b>:&nbsp; Shows the drop down menu that is available in the toolbar of the active view.</LI>
-<LI CLASS="Item">
-<b>Activate Editor</b>:&nbsp; Makes the current editor active.</LI>
-<LI CLASS="Item">
-<b>Next Editor</b>:&nbsp; Activates the next open editor in the list of most recently used editors.</LI>
-<LI CLASS="Item">
-<b>Previous Editor</b>:&nbsp; Activates the previous open editor in the list of most recently used editors.</LI>
-<LI CLASS="Item">
-<b>Next View</b>:&nbsp; Activates the next open view in the list of most recently used views.</LI>
-<LI CLASS="Item">
-<b>Previous View</b>:&nbsp; Activates the previous open editor in the list of most recently used editors.</LI>
-<LI CLASS="Item">
-<b>Next Perspective</b>:&nbsp; Activates the next open perspective in the list of most recently used perspectives.</LI>
-<LI CLASS="Item">
-<b>Previous Perspective</b>:&nbsp; Activates the previous open perspective in the list of most recently used perspectives.</LI>
-</UL>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Switch to Editor</h2>
-<P CLASS="Para">
-Opens a dialog that allows you to manage all editors that are open, and rapidly switch to other open editors.  Here is
-what the switch editors dialog looks like:</P>
-<P CLASS="Para">
-<img src="../images/Image60_switch_editor.gif" alt="Switch Editor dialog" border="0" width="607" height="436"></P>
-<P CLASS="Para">
-The following actions are available from the switch editors dialog:</P>
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-<b>Switch to Editor</b>:&nbsp; By selecting an editor from the list and hitting OK, that editor will be made active.
-If the chosen editor is in a different window or perspective, that window and perspective will be made active</LI>
-<LI CLASS="Item">
-<b>Close Selected Editors</b>:&nbsp; Closes all editors selected in the list.</LI>
-<LI CLASS="Item">
-<b>Save Selected Editors</b>:&nbsp; Saves the contents of all editors selected in the list.</LI>
-<LI CLASS="Item">
-<b>Select Clean Editors</b>:&nbsp; Selects the editors in the list that have not been modified since their last save.</LI>
-<LI CLASS="Item">
-<b>Invert Selection</b>:&nbsp; Reverses the selection in the list of editors.</LI>
-</UL>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Preferences</h2>
-<P CLASS="Para">
-This command allows you to indicate your preferences for using the Workbench.&nbsp;  There
-are a wide variety of preferences for configuring the appearance of the Workbench and its views, 
-and for customizing the behavior of all tools that are installed in the Workbench.
-</P>
-<DIV CLASS="XRefList">
-</DIV>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-61.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-61.htm
deleted file mode 100644
index 0199dc3..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-61.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Help menu</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<h1>
-Help menu</h1>
-<P CLASS="Para">
-This menu provides help on using the Workbench.</P>
-<DIV CLASS="Topic">
-<h2 CLASS="Head">
-Welcome</h2>
-<p CLASS="Head">
-This command is used to open a Welcome editor containing a brief tutorial intended to introduce new users
-to some facet of Eclipse.</p>
-<h2 CLASS="Head">
-Tips and Tricks</h2>
-<p CLASS="Head">
-This command will open a list of interesting productivity features that you may not have discovered.</p>
-<h2 CLASS="Head">
-Help Contents</h2>
-<P CLASS="Para">
-This command displays the help view. The help view
-contains help books, topics, and information related to the Workbench and installed
-features.</P>
-<h2 CLASS="Head">
-<a NAME="SoftwareUpdates"></a>Software Updates</h2>
-<P CLASS="Para">
-This group of commands allows you to update your product and to download and
-install new features.</P>
-<h2 CLASS="Head">
-About</h2>
-<P CLASS="Para">
-This command displays information about the product, installed features, and
-available plug-ins.</P>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-65.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-65.htm
deleted file mode 100644
index 8c25285..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-65.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Navigator view icons</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Navigator view icons</H1>
-<P CLASS="Para">
-The following icons can appear in the Navigator view:</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Navigator view icons</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Icon</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-10.gif" ALIGN="BASELINE" width="16" height="16" alt="Open Project icon">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Project (open)</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-12.gif" ALIGN="BASELINE" alt="Folder icon">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Folder (open)</P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-11.gif" ALIGN="BASELINE"  alt="Closed Project icon">
-</TD>
-<TD COLSPAN="1" valign="top" align="left">
-Project (closed)
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-15.gif" ALIGN="BASELINE"  alt="File Icon">
-</TD>
-<TD COLSPAN="1" valign="top" align="left">
-Generic File
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-66.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-66.htm
deleted file mode 100644
index 6074c0f..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-66.htm
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Editor area marker bar</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Editor area marker bar</H1>
-<P CLASS="Para">
-The following markers can appear in the marker bar (to the left of the editor area):</P>
-<TABLE BORDER="1" width="209" cellspacing="0">
-<CAPTION>
-Marker Bar Markers</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1" width="40">
-<P CLASS="Para">
-Icon</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Description</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="40">
-<IMG SRC="../images/ref-16.gif" ALIGN="BASELINE"  alt="Bookmark Icon">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Bookmark</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="40">
-<IMG SRC="../images/ref-17.gif" ALIGN="BASELINE"  alt="Breakpoint Icon">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Breakpoint</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="40">
-<IMG SRC="../images/ref-18.gif" ALIGN="BASELINE"  alt="Task marker icon">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Task marker</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="40">
-<IMG SRC="../images/ref-81.gif" ALIGN="BASELINE"  alt="Search result icon" width="16" height="16">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Search result</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="40">
-<IMG SRC="../images/ref-24.gif" ALIGN="BASELINE"  alt="Error marker icon" width="30" height="18">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Error marker</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="40">
-<IMG SRC="../images/ref-22.gif" ALIGN="BASELINE"  alt="Warning marker icon">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Warning marker</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" width="40">
-<IMG SRC="../images/ref-20.gif" ALIGN="BASELINE"  alt="Information marker icon">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" width="169">
-<P CLASS="Para">
-Information marker</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-67.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-67.htm
deleted file mode 100644
index 8ea0e05..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-67.htm
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Tasks view</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Tasks view</H1>
-<P CLASS="Para">
-The following markers can appear in the Tasks view:</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Tasks View Icons</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Icon</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Icon</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-19.gif" ALIGN="BASELINE" width="30" height="18" alt="Normal priority task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Task (normal priority)</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-20.gif" ALIGN="BASELINE" width="16" height="16" alt="information task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Information task</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-21.gif" ALIGN="BASELINE" width="16" height="16" alt="High priority task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-High priority task</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-22.gif" ALIGN="BASELINE" width="30" height="18" alt="Warning Task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Warning task</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-23.gif" ALIGN="BASELINE" width="16" height="16" alt="Low priority task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Low priority task</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-24.gif" ALIGN="BASELINE" width="30" height="18" alt="Error task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Error task</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-25.gif" ALIGN="BASELINE" width="16" height="16" alt="Completed task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Completed task</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/ref-26.gif" ALIGN="BASELINE" width="30" height="18" alt="Problem task">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Problem task</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-68.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-68.htm
deleted file mode 100644
index 44317ee..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-68.htm
+++ /dev/null
@@ -1,391 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Toolbar buttons</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>
-Toolbar buttons</H1>
-<P CLASS="Para">
-The following buttons may appear in the Workbench toolbar, toolbars for views, and the shortcut bar:</P>
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Button</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Button</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/new_persp.gif" ALIGN="BASELINE"  alt = "New perspective image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a new perspective</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/save_edit.gif" ALIGN="BASELINE"  alt = "Save edit image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Save the active editor contents</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/saveall_edit.gif" ALIGN="BASELINE"  alt = "Save all image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Save the contents of all editors</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/saveas_edit.gif" ALIGN="BASELINE"  alt = "Save as image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Save editor contents under a new name or location</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/search_src.gif" ALIGN="BASELINE"  alt = "Open search dialog image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Opens the search dialog</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/print_edit.gif" ALIGN="BASELINE"  alt = "Print editor image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Print editor contents</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/new_wiz.gif" ALIGN="BASELINE"  alt = "New wizard image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a resource creation wizard</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/newfile_wiz.gif" ALIGN="BASELINE"  alt = "New file image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a file creation wizard</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/newfolder_wiz.gif" ALIGN="BASELINE"  alt = "New folder image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a folder creation wizard</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/newprj_wiz.gif" ALIGN="BASELINE"  alt = "New project image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a project creation wizard</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/import_wiz.gif" ALIGN="BASELINE"  alt = "Import wizard image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open the import wizard</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/export_wiz.gif" ALIGN="BASELINE"  alt = "Export wizard image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open the export wizard</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/build_exec.gif" ALIGN="BASELINE"  alt = "Build image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Run incremental build</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/run_exec.gif" ALIGN="BASELINE"  alt = "Run image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Run a program</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/debug_exec.gif" ALIGN="BASELINE"  alt = "Debug image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Debug a program</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/external_tools.gif" ALIGN="BASELINE"  alt = "Run external tool">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Run an external tool or Ant</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/cut_edit.gif" ALIGN="BASELINE"  alt = "Cut image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Cut selection to clipboard</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/copy_edit.gif" ALIGN="BASELINE"  alt = "Copy image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Copy selection to clipboard</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/paste_edit.gif" ALIGN="BASELINE"  alt = "Paste image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Paste selection from clipboard</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/undo_edit.gif" ALIGN="BASELINE"  alt = "Undo edit image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Undo most recent edit</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/redo_edit.gif" ALIGN="BASELINE"  alt = "Redo edit image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Redo most recent undone edit</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/next_nav.gif" ALIGN="BASELINE"  alt = "Navigate next image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Navigate to next item in a list</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/prev_nav.gif" ALIGN="BASELINE"  alt = "Navigate previous image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Navigate to previous item in a list</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/forward_nav.gif" ALIGN="BASELINE"  alt = "Navigate forwards image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Navigate forwards</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/backward_nav.gif" ALIGN="BASELINE"  alt = "Navigate backwards image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Navigate backwards</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/up_nav.gif" ALIGN="BASELINE"  alt = "Navigate up image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Navigate up one level</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/home_nav.gif" ALIGN="BASELINE"  alt = "Navigate home image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Navigate back to home location</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/view_menu.gif" ALIGN="BASELINE"  alt = "View menu image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Open a view's drop down menu</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/close_view.gif" ALIGN="BASELINE"  alt = "Close view image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Close view or editor</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/pin_editor.gif" ALIGN="BASELINE"  alt = "Pin editor image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Pin editor to prevent automatic reuse</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/pin_view.gif" ALIGN="BASELINE"  alt = "Pin view image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Pin view (make it no longer a fast view)</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/addbkmrk_tsk.gif" ALIGN="BASELINE"  alt = "Add bookmark or task image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Add bookmark or task</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/filter_ps.gif" ALIGN="BASELINE"  alt = "Filter tasks or properties">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Filter tasks or properties</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/gotoobj_tsk.gif" ALIGN="BASELINE"  alt = "Goto object image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Go to a task, problem, or bookmark in the editor</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/defaults_ps.gif" ALIGN="BASELINE"  alt = "Restore defaults image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Restore default properties</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/tree_mode.gif" ALIGN="BASELINE"  alt = "Tree mode image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Show items as a tree</P>
-</TD>
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/refresh_nav.gif" ALIGN="BASELINE"  alt = "Refresh image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Refresh view contents</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/alpha_mode.gif" ALIGN="BASELINE"  alt = "Alphabetical order image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Sort list in alphabetical order</P>
-</TD>
-
-</TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/stop_nav.gif" ALIGN="BASELINE"  alt = "Cancel operation image">
-</TD>
-<td>
-Cancel a long running operation</td>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<IMG SRC="../images/delete_edit.gif" ALIGN="BASELINE"  alt = "Delete image">
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Delete selected item or content</P>
-</TD>
-</TR>
-
-
-</TBODY>
-</TABLE>
-<P>&nbsp;<br>
-<img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><a href="../concepts/concepts-18.htm"><br>
-Toolbars</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-6a.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-6a.htm
deleted file mode 100644
index f5ee58e..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-6a.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Local history</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Local history</H1>
-<p>Local history of a file is maintained when you create or modify a file. Each time you edit and save
-a file,&nbsp;a copy of it is saved. This allows you to compare
-your current file state to a previous state, or replace the file with a previous
-state.&nbsp;Each state in the local
-history is identified by the date and time the file was
-saved.&nbsp;&nbsp;</p>
-<p>Neither projects nor folders have local history.</p>
-<p>Here is a look at what the local history of a Workbench file might look
-like:</p>
-<p><img src="../images/Image273_local_hist.gif" alt="Local history dialog" border="0" width="482" height="404"></p>
-<P>To view the local history of a file, choose Team &gt; Compare with &gt; Local History... from the pop-up
-menu.&nbsp;You can select different local states in the list, which are compared against the
-current file. You can also revert to the local history when you select a file and
-select the Team &gt; Replace With &gt; Local History... menu item.&nbsp;&nbsp;
-</P>
-
-
-<P>&nbsp;
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-70.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-70.htm
deleted file mode 100644
index 58a5adc..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-70.htm
+++ /dev/null
@@ -1,380 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Import wizard</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Import wizard</H1>
-<P CLASS="Para">
-This wizard helps you import resources into the Workbench.</P>
-<P CLASS="Para">
-When the Import wizard first comes up, you must choose what type of import to
-do:</P>
-<P CLASS="Para">
-<img src="../images/Image261_import_sel.gif" alt="Import wizard" border="0" width="470" height="550"></P>
-<DIV CLASS="Topic">
-<h2>
-File System</h2>
-<p CLASS="Head">
-If you choose this option, you will import files from the file system.</p>
-<p CLASS="Head">
-<img src="../images/Image262_import_file.gif" alt="Import file system page" border="0" width="543" height="583"></p>
-<p CLASS="Head">
-&nbsp;</p>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Import - File System Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Directory</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The directory from which to import files.&nbsp; Select a previous path from the
-drop down combo or Browse to select the path in the file system.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-&lt;blank&gt;</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Filter Types</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Dialog to select which file types to import.&nbsp; Use this to
-restrict the import to only certain file types.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Check off all files and folders for import.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Deselect All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Uncheck all resources.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Folder
-</TD>
-<TD COLSPAN="1">
-The folder into which the resources will be imported.&nbsp; Type the path or
-Browse to select a path in the Workbench.
-</TD>
-<TD COLSPAN="1">
-The folder holding the selected resource&nbsp;
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Overwrite existing resources without warning
-</TD>
-<TD COLSPAN="1">
-Determines whether importing a resource should silently overwrite a resource
-which already exists in the Workbench. If this option is off, you will be
-prompted before a given resource is overwritten, in which case you can either
-overwrite the resource, skip it, or cancel the import.
-</TD>
-<TD COLSPAN="1">
-Off
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create complete folder structure</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create hierarchy (folder) structure in the Workbench to accommodate the
-resources being imported, and all parent folders of those resources in the file system. </P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Off</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create selected folders only</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create hierarchy (folder) structure in the Workbench to accommodate the
-resources being imported. </P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">On</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-ZIP File</h2>
-<p CLASS="Head">
-If you choose this option, you will import files from an archive (ZIP) file.</p>
-<P>&nbsp;<img src="../images/Image263_import_zip.gif" alt="ZIP file import wizard page" border="0" width="543" height="583">
-</P>
-<P>&nbsp;
-</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Import - Zip File Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-ZIP File</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The file from which to import.&nbsp; Type in the full path or Browse to select
-the path on the file system.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-&lt;blank&gt;</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Filter Types...</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Dialog to select which file types to import.&nbsp; Use this to restrict the
-import to only certain file types.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Check off all resources for import</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Deselect All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Uncheck all resources.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Folder
-</TD>
-<TD COLSPAN="1">
-The folder into which the resources will be imported.&nbsp; Type the path or
-Browse to select a path in the Workbench.
-</TD>
-<TD COLSPAN="1">
-The folder holding the selected resource
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Overwrite existing resources without warning
-</TD>
-<TD COLSPAN="1">
-Determines whether importing a resource should silently overwrite a resource
-which already exists in the Workbench. If this option is off, you will be
-prompted before a given resource is overwritten, in which case you can either
-overwrite the resource, skip it, or cancel the import.
-</TD>
-<TD COLSPAN="1">
-Off
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Existing Project</h2>
-<p CLASS="Head">
-Imports a project into this workspace that was previously located in this workspace, or
-that currently exists in another workspace.</p>
-<P>&nbsp;<img src="../images/Image264_existing_project.gif" alt="Existing project import wizard page" border="0" width="461" height="274">
-</P>
-<P>&nbsp;
-</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Import - Existing Project Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Project Contents</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The location in the file system where the existing project resides.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-&lt;blank&gt;</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-Team Project Set</h2>
-<p CLASS="Head">
-Imports a description of the repository and version control information for a set of projects.
-This allows you to synchronize correctly with the appropriate project state in your repository.
-</p>
-<P>&nbsp;<img src="../images/Image265_team_project.gif" alt="Team project set import wizard page" border="0" width="470" height="550">
-</P>
-<P>&nbsp;
-</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Import - Team Project Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-File name</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The name of the team project set export file</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-&lt;blank&gt;</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-71.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-71.htm
deleted file mode 100644
index 9edaa52..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-71.htm
+++ /dev/null
@@ -1,499 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Export wizard</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Export wizard</H1>
-<P CLASS="Para">
-This wizard help you export resources from the Workbench.</P>
-<P CLASS="Para">
-When the Export wizard first comes up, you must choose what type of export to
-do:</P>
-<P CLASS="Para">
-<img src="../images/Image264_export_sel.gif" alt="Export selection page" border="0" width="470" height="550"></P>
-<DIV CLASS="Topic">
-<h2>
-File System</h2>
-<p CLASS="Head">
-If you choose this option, you will export files to the file system.</p>
-<p CLASS="Head">
-<img src="../images/Image265_export_file.gif" alt="Export file system" border="0" width="573" height="563"></p>
-<p CLASS="Head">
-&nbsp;</p>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Export - File System Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select resources to export</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The project (and resources within that project) to export to the file
-system.&nbsp;</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The project holding the selected resource</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select Types...</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Dialog to select which file types to export.&nbsp; Use this to
-restrict the import to only certain file types.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Checks off all resources for export.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Deselect All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Uncheck all resources.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Directory
-</TD>
-<TD COLSPAN="1">
-The directory on the file system into which the resources will be exported.&nbsp; Type the path,
-select a previous export path from the drop down list, or Browse to select a path.
-</TD>
-<TD COLSPAN="1">
-The directory of the last export, or &lt;blank&gt;
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Overwrite existing files without warning
-</TD>
-<TD COLSPAN="1">
-Determines whether exporting a resource should silently overwrite a resource
-which already exists in the file system. If this option is off, you will be
-prompted before a given file is overwritten, in which case you can either
-overwrite the file, skip it, or cancel the export.
-</TD>
-<TD COLSPAN="1">
-Off
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create directory structure for files</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create hierarchy (folder) structure in the file system as it exists in the Workbench. </P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Off</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create only selected directories</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create hierarchy (folder) structure in the file system only for selected folders. </P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">On</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-
-<DIV CLASS="Topic">
-<h2>
-ZIP File</h2>
-<p CLASS="Head">
-If you choose this option, you will export files to an archive (ZIP) file.</p>
-<P>&nbsp;<img src="../images/Image266_export_zip.gif" alt="ZIP file export" border="0" width="573" height="563">
-</P>
-<P>&nbsp;
-</P>
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Export - ZIP File Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<tr>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select resources to export</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The project (and resources within that project) to export to an archive.&nbsp;</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The project holding the selected resource</P>
-</TD>
-</tr>
-<TR>
-<TD COLSPAN="1">
-<P CLASS="Para">
-Select Types...</P>
-</TD>
-<TD COLSPAN="1">
-<P CLASS="Para">
-Dialog to select which file types to export.&nbsp; Use this to
-restrict the import to only certain file types.</P>
-</TD>
-<TD COLSPAN="1">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Check off all resources for export.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Deselect All</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Uncheck all resources.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<i>N/A</i></P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-ZIP File
-</TD>
-<TD COLSPAN="1">
-The path and name of an archive file into which the resources will be exported.&nbsp; Type the path,
-select a previous path from the drop down list, or Browse to select a path and file name on the file system.
-</TD>
-<TD COLSPAN="1">
-The ZIP file of the previous export, or &lt;blank&gt;.
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Compress the contents of the file
-</TD>
-<TD COLSPAN="1">
-Compresses the contents (resources selected to be exported) in the archive that
-is created.
-</TD>
-<TD COLSPAN="1">
-On
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Overwrite existing file without warning
-</TD>
-<TD COLSPAN="1">
-If the specified archive already exists in the file system, you will be prompted
-to overwrite the file.&nbsp; If you do not want to be prompted turn this option
-on.
-</TD>
-<TD COLSPAN="1">
-Off
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create directory structure for files</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create hierarchy (folder) structure in the file system as it exists in the Workbench. </P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Off</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create only selected directories</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Create hierarchy (folder) structure in the file system only for selected folders. </P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">On</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-
-
-<DIV CLASS="Topic">
-<h2>
-Jar File</h2>
-<p CLASS="Head">
-If you choose this option, you will export files to an JAR file.</p>
-<p CLASS="Head">
-<img src="../images/Image267_export_jar.gif" alt="Export JAR page" border="0" width="555" height="588"></p>
-<p CLASS="Head">
-&nbsp;</p>
-
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Export - JAR File Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<tr>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select packages to export</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The project (and packages within that project) to export to a JAR file.&nbsp;</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The project holding the selected resource</P>
-</TD>
-</tr>
-<TR>
-<TD COLSPAN="1">
-<P CLASS="Para">
-Export generated class files and resources</P>
-</TD>
-<TD COLSPAN="1">
-<P CLASS="Para">
-Export the generated bytecodes (.class files) and resource files contained
-in the selected packages and projects.</P>
-</TD>
-<TD COLSPAN="1">
-<P CLASS="Para">
-On</P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Export java source files and resources</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Export the java source files (.java) and resource files
-contained in the selected packages and projects.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Off</P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-Jar File
-</TD>
-<TD COLSPAN="1">
-The path and name of a JAR file into which the resources will be exported.&nbsp; Type the path or
-Browse to select a path and file name on the file system.
-</TD>
-<TD COLSPAN="1">
-The JAR file of the previous export, or &lt;blank&gt;.
-</TD>
-</TR>
-<tr>
-<TD COLSPAN="1">
-Compress the contents of the JAR file
-</TD>
-<TD COLSPAN="1">
-Compresses the contents (resources selected to be exported) in the JAR file that
-is created.
-</TD>
-<TD COLSPAN="1">
-On
-</TD>
-</tr>
-<tr>
-<TD COLSPAN="1">
-Overwrite existing files without warning
-</TD>
-<TD COLSPAN="1">
-<p>If the specified JAR file already exists on the file system, you will be
-prompted to overwrite the file.&nbsp; If you do not want to be prompted turn
-this option on. 
-</TD>
-<TD COLSPAN="1">
-Off
-</TD>
-</tr>
-</TBODY>
-</TABLE>
-</DIV>
-
-
-<DIV CLASS="Topic">
-<h2>
-Team Project Set</h2>
-<p CLASS="Head">
-Exports a description of the repository and version control information for a set of projects.
-This allows you to synchronize those projects correctly in a different workspace.
-</p>
-<p CLASS="Head">
-<img src="../images/Image268_export_team.gif" alt="Export team project set page" border="0" width="470" height="602"></p>
-<p CLASS="Head">
-&nbsp;</p>
-
-<TABLE BORDER="1" cellspacing="0">
-<CAPTION>
-Export - Team Project Set Options</CAPTION>
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-</THEAD>
-<TBODY>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Select projects</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The project(s) to export to the team project set file.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-The selected projects</P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1">
-<P CLASS="Para">
-File name</P>
-</TD>
-<TD COLSPAN="1">
-<P CLASS="Para">
-The path and name of the file to export to.</P>
-</TD>
-<TD COLSPAN="1">
-<P CLASS="Para">
-&lt;blank&gt;</P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-</DIV>
-
-<p CLASS="Head">
-&nbsp;</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-72.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-72.htm
deleted file mode 100644
index 230189b..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-72.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Style-Type" content="text/css">
-   <title>Preferences</title>
-<link REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-</head>
-<body bgcolor="#FFFFFF">
-
-<h1 CLASS="Head">
-Preferences</h1>
-
-<p CLASS="Para">The Preferences dialog is the dialog used to set user
-preferences. It can be found from the main workbench <b>Window</b> menu under
-<b>Window &gt; Preferences</b>. Preference pages contributed by plug-ins will be found
-in this dialog.<p CLASS="Para">Most of the functionality of the preferences are
-defined by their individual pages but the dialog provides two general functions:<p CLASS="Para"><b>Export</b>:
-Export will write any changes to the default preferences to a user-specified
-file.<p CLASS="Para"><b>Import</b>: Import will apply the preferences in a
-user-specified file.&nbsp;
-<p>Here is what the preferences dialog looks like:
-<p><img src="../images/Image217_pref_wb.gif" alt="Preference dialog" border="0" width="525" height="467"></p>
-
-<P><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="ref-23.htm">Workbench window layout</a>
-</P>
-<p>&nbsp;<br>
-
-<p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-8.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-8.htm
deleted file mode 100644
index 3cffca0..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-8.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Crash recovery</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Crash recovery</H1>
-<P CLASS="Intro">
-
-The Workbench periodically saves a snapshot in order to reduce the risk of
-losing data due to crashes.
-<UL CLASS="UnorderedList">
-<LI CLASS="Item">
-Saved data is never lost as it is written to disk immediately (upon save). </LI>
-<LI CLASS="Item">
-Unsaved data in open editors may be lost, depending on the editor implementation.  </LI>
-<LI CLASS="Item">
-Bookmarks and tasks might be lost.  </LI>
-<LI CLASS="Item">
-If a crash occurs during CVS synchronization, the Workbench may be out of sync.
-You can check by performing the synchronize operation again. </LI>
-<LI CLASS="Item">
-Previously-created projects are never lost.</LI>
-</UL>
-<p>Developers of plug-ins can also choose to participate in this lifecycle and save
-the state of their plug-ins.</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-anteditor.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-anteditor.htm
deleted file mode 100644
index 69a46dc..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-anteditor.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Ant editor</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1> Ant editor</h1>
-     
-<p class="Para">The Ant editor provides specialized features for editor Ant buildfiles. 
-Associated with the editor is a Ant buildfile specific Outline view which shows the structure of the Ant build file. 
-It is updated as the user edits the buildfile</p>
-
-The editor includes the following features:
-
-<ul>
-      <li>Syntax highlighting</li>
-
-      <li>Content/code assist</li>
-
-      <li>Annotations</li>
-    </ul>
-
-    <p>The most common way to invoke the Ant editor is to open an Ant buildfile from
-    the Navigator or Package explorer using pop-up menus or by clicking the file
-    (single or double-click depending on the user preferences).</p>
-     
-        
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-antsupport.htm">Ant support</a><br>
-     <a href="../concepts/concepts-exttools.htm">External tools</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27"><br>
-<a href="../tasks/tasks-ant-running.htm">Running Ant buildfiles</a><br>
-<a href="../tasks/tasks-ant-classpath.htm">Modifying the Ant classpath</a><br>
-<a href="../tasks/tasks-ant-addtasksandtypes.htm">Adding new Ant tasks and types</a><br>
-<a href="../tasks/tasks-ant-version.htm">Using a different version of Ant</a></p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-anteditorprefs.htm">Ant editor preferences</a><br>
-     <a href="ref-anticons.htm">External Tools and Ant icons</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-anteditorprefs.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-anteditorprefs.htm
deleted file mode 100644
index e84b69c..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-anteditorprefs.htm
+++ /dev/null
@@ -1,194 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ant Editor</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Ant Editor</H1>
-<div class="Para">The following preferences can be changed on the Ant Editor page.</div>
-<h2>Appearance options</h2>
-<table border="1" cellspacing="0" style="width: 100%;">
-<caption></caption><thead>
-</thead><tbody>
-</tbody>
-
-<tbody><tr>
-<th width="25%">
-<div class="Para">Option</div>
-</th>
-
-<th>
-<div class="Para">Description</div>
-</th>
-
-<th>
-<div class="Para">Default</div>
-</th>
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Print margin column<br>
-</div></td>
-
-<td align="left" valign="top">
-<div class="Para">This option allows to set the print margin for the Ant editor.
-</div>
-</td>
-
-<td align="left" valign="top">
-<div class="Para">80</div></td>
-</tr>
-
-    <tr>
-      <td style="vertical-align: top; width: 25%;">Show overview ruler<br>
-      </td>
-      <td style="vertical-align: top;">This option controls whether the overview ruler is shown on the right side of the Ant editor<br>
-      </td>
-      <td style="vertical-align: top;">On<br>
-      </td>
-    </tr>
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Show line numbers<br>
-</div></td>
-
-<td align="left" valign="top">This option controls whether line numbers are shown in on the left side of the Ant editor.<br>
-</td>
-
-
-<td align="left" valign="top">
-Off<br>
-
-</td>
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Highlight current line<br>
-</div></td>
-
-<td align="left" valign="top">
-<div class="Para">This option controls whether the current line is highlighted or not.<br>
-</div></td>
-
-<td align="left" valign="top">
-On<br>
-
-</td>
-</tr>
-
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Show print margin<br>
-</div></td>
-
-<td align="left" valign="top">
-<div class="Para">This option controls whether the print margin is visible or not.</div></td>
-
-<td align="left" valign="top">
-<div class="Para">Off</div>
-</td>
-</tr><tr>
-      <td style="vertical-align: top;" width="25%">Appearance color options<br>
-      </td>
-      <td style="vertical-align: top;">This option controls various appearance colors.<br>
-      </td>
-      <td style="vertical-align: top;"><br>
-      </td>
-    </tr>
-
-
-
-
-</tbody></table>
-
-<p></p><H2>Annotations options</H2>
-<table border="1" cellspacing="0" style="width: 100%;">
-<caption></caption><thead>
-</thead><tbody>
-</tbody>
-<tbody><tr>
-<th style="width: 25%;">
-<div class="Para">Option</div>
-</th>
-
-<th>
-<div class="Para">Description</div>
-</th>
-
-
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-Show in text</td>
-
-<td align="left" valign="top">This option controls whether the selected
-annotation type is shown in the text. The corresponding text will be
-underlined with squiggles.<br>
-</td>
-
-
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Show in overview ruler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
-</div></td>
-
-<td align="left" valign="top">
-This option controls whether the selected annotation type is shown in the overview ruler.</td>
-
-
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Color</div>
-</td>
-
-<td align="left" valign="top">
-<div class="Para">This option controls the color for the selected annotation type.<br>
-</div></td>
-
-
-</tr>
-
-
-</tbody></table>
-
-
-<P CLASS="Para">
-On the appearance page presents the appearance options for the Ant editor.</P>
-<P CLASS="Para">
-<img src="../images/ant_editor_appearance.gif" alt="Ant editor appearance preference page" border="0" width="470" height="495"></P>
-
-<P CLASS="Para">
-On the annotations page presents the annotations options for Ant editor.</P>
-<P CLASS="Para">
-<img src="../images/ant_editor_annotations.gif" alt="Ant editor annotations preference page" border="0" width="470" height="495">
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-antsupport.htm">Ant support</a>
-</p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="ref-anteditor.htm">Ant Editor</a><br>
-<a href="../reference/ref-antprefs.htm">Ant preferences</a><br>
-<a href="../reference/ref-antruntimeprefs.htm">Ant runtime preferences</a>
-
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-anticons.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-anticons.htm
deleted file mode 100644
index 95fa675..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-anticons.htm
+++ /dev/null
@@ -1,254 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <meta http-equiv="Content-Style-Type" content="text/css">
-    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
-    <title>
-      External Tools and Ant icons
-    </title>
-  </head>
-  <body>
-    <h1>
-      External Tools and Ant icons
-    </h1>
-    <h2>
-      Objects
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/ant_buildfile.gif" alt="Ant buildfiles"><br>
-          </td>
-          <td valign="top">
-            Ant buildfiles<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/ant_target_err.gif" alt="Ant target containing an error"><br>
-          </td>
-          <td valign="top" width="90%">
-            Ant target containing an error<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/builder.gif" alt="External tools project builder"><br>
-          </td>
-          <td valign="top" width="90%">
-            External tools project builder<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/invalid_build_tool.gif" alt="Invalid project builder"><br>
-          </td>
-          <td valign="top" width="90%">
-            Invalid project builder<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/defaulttarget_obj.gif" alt="Default target"><br>
-          </td>
-          <td valign="top" width="90%">
-            Default target<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/targetpublic_obj.gif" alt="Ant target"><br>
-          </td>
-          <td valign="top" width="90%">
-            Public Ant target (target with description)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/targetinternal_obj.gif" alt="Ant internal target"><br>
-          </td>
-          <td valign="top" width="90%">
-            Ant internal target (target with no description)<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/jar_l_obj.gif" alt="Jar file"><br>
-          </td>
-          <td valign="top" width="90%">
-            Jar file<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/property_obj.gif" alt="Ant property"><br>
-          </td>
-          <td valign="top" width="90%">
-            Ant property<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/task_obj.gif" alt="Ant task"><br>
-          </td>
-          <td valign="top" width="90%">
-            Ant task<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/type.gif" alt="Ant type"><br>
-          </td>
-          <td valign="top" width="90%">
-            Ant type<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-    <h2>
-      Launch configurations
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/ctool16/external_tools.gif" alt="Launch external tool"><br>
-          </td>
-          <td valign="top" width="90%">
-            Launch external tool<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/ant.gif" alt="Ant launch configuration"><br>
-          </td>
-          <td valign="top">
-            Ant launch configuration<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/ttype_program.gif" alt="Program launch configuration"><br>
-          </td>
-          <td valign="top" width="90%">
-            Program launch configuration<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/main_tab.gif" alt="Main tab"><br>
-          </td>
-          <td valign="top" width="90%">
-            Main tab<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/refresh.gif" alt="Refresh tab"><br>
-          </td>
-          <td valign="top" width="90%">
-            Refresh tab<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/ant_targets.gif" alt="Targets tab"><br>
-          </td>
-          <td valign="top" width="90%">
-            Targets tab<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/prop_ps.gif" alt="Properties tab"><br>
-          </td>
-          <td valign="top" width="90%">
-            Properties tab<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/obj16/classpath.gif" alt="Classpath tab"><br>
-          </td>
-          <td valign="top" width="90%">
-            Classpath tab<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-   <br>
-    <h2>
-      Ant View
-    </h2>
-    <table cellspacing="0" border="1" width="40%">
-      <tbody>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/cview16/ant_view.gif" alt="Ant view"><br>
-          </td>
-          <td valign="top" width="90%">
-            Ant view<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/add_co.gif" alt="Add buildfile"><br>
-          </td>
-          <td valign="top" width="90%">
-            Add buildfile<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/search.gif" alt="Add buildfiles with search"><br>
-          </td>
-          <td valign="top" width="90%">
-            Add buildfiles with search<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/run_tool.gif" alt="Run selected buildfile or selected target"><br>
-          </td>
-          <td valign="top" width="90%">
-            Run selected buildfile or selected target<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/remove_co.gif" alt="Remove selected buildfiles"><br>
-          </td>
-          <td valign="top" width="90%">
-            Remove selected buildfiles<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/removeAll_co.gif" alt="Remove all buildfiles"><br>
-          </td>
-          <td valign="top" width="90%">
-            Remove all buildfiles<br>
-          </td>
-        </tr>
-        <tr>
-          <td valign="middle" align="center">
-            <img src="../images/org.eclipse.ui.externaltools/clcl16/properties.gif" alt="Properties"><br>
-          </td>
-          <td valign="top" width="90%">
-            Properties<br>
-          </td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-     
-    <p>
-      &nbsp;<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14">
-      </a>
-    </p>
-  </body>
-</html>
-
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-antprefs.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-antprefs.htm
deleted file mode 100644
index 8eacec7..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-antprefs.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ant</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Ant</H1>
-<P CLASS="Intro">
-
-The following preferences can be changed on the Ant page.
-<P CLASS="Intro">&nbsp;
-
-<P>&nbsp;You can configure the buildfiles that Ant's "-find" emulation will search for.&nbsp;
-</P>
-
-<P>&nbsp;You can also configure the color of the Ant build output.&nbsp;
-</P>
-
-<P><img src="../images/ant_prefs.gif" alt="Ant preference page" border="0" width="613" height="566">
-</P>
-
-<p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" width="159" height="27">
-<br><a href="../concepts/concepts-antsupport.htm">Ant support</a>
-</p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-antruntimeprefs.htm">Ant runtime preferences</a><br>
-<a href="../reference/ref-anteditorprefs.htm">Ant editor preferences</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-antruntimeprefs.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-antruntimeprefs.htm
deleted file mode 100644
index 96f9e2e..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-antruntimeprefs.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Ant</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> Ant Runtime</H1>
-<P CLASS="Para">
-On the classpath page you can add additional classes defining tasks and types to the Ant classpath.</P>
-<P CLASS="Para">
-<img src="../images/Image91_ant_prefs_1.gif" alt="Ant classpath preference page" border="0" width="675" height="464"></P>
-
-<P CLASS="Para">
-On the tasks page you can add tasks defined in one of the classes on the classpath.</P>
-<P CLASS="Para">
-<img src="../images/Image91_ant_prefs_2.gif" alt="Ant tasks preference page" border="0" width="675" height="464">
-</P>
-
-<P CLASS="Para">
-On the types page you can add types defined in one of the classes on the classpath.</P>
-<P CLASS="Para">
-<img src="../images/Image91_ant_prefs_3.gif" alt="Ant types preference page" border="0" width="675" height="464">
-</P>
-
-<P CLASS="Para">
-On the properties page you can add properties and property files that will be passed into Ant.</P>
-<P CLASS="Para">
-<img src="../images/ant_runtime_properties.gif" alt="Ant properties preference page" border="0" width="642" height="533">
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-antsupport.htm">Ant support</a>
-</p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-antprefs.htm">Ant preferences</a><br>
-<a href="../reference/ref-anteditorprefs.htm">Ant editor preferences</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-antview.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-antview.htm
deleted file mode 100644
index c1fe025..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-antview.htm
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>Ant view</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1> Ant view</h1>
-     
-<p class="Para">The Ant view provides a place to view Ant buildfiles and makes it
-easy to execute a buildfile or a given target within a buildfile. You can add files
-to the view and expand buildfiles to reveal the targets defined within them.</p>
-     
-<p>The pop-up menu for this view also allows you to open an editor on a
-buildfile, execute the selected target or buildfile, and configure the launch
-configuration used when executing.</p>
-     
-<p class="Para"> Here is what the Ant view looks like:</p>
-<p class="Para"> <img align="top" border="0"
- src="../images/ant-view.gif" alt="Ant View">
-  </p>
-     
-<div class="Topic">
-<p>Like other views in the Workbench, the Ant view has its own
-      toolbar. Toolbar buttons are provided for adding buildfiles to the view and for
- executing them.</p>
-       
-<h2>Titlebar</h2>
-       
-<h3>Add Buildfile</h3>
-     
-<p class="Para">This command prompts you to select a buildfile in the workspace to be added to the view.</p>
-   </div>
-     
-<div class="Topic">     
-<h3>Add Buildfiles with Search</h3>
-     
-<p class="Para">This command searches for buildfiles and adds them to the Ant view. You can
-specify a file name pattern to search for and limit the scope of the search.</p>
-   </div>
-     
-<div class="Topic">     
-<h3>Run the Default Target of the Selected Buildfile</h3>
-     
-<p class="Para">This command runs the default target of the selected buildfile or the selected target.
-The buildfile is executed using the launch configuration associated with the buildfile. Note that the
-target execution is based on the selection in the view; the targets selected
-in the launch configuration are ignored.</p>
-   </div>
-     
-<div class="Topic">     
-<h3> Refresh View</h3>
-     
-  <p class="Para"> This command refreshes the contents of the Repositories view.</p>
-  <h3>Collapse All</h3>
-  <p class="Para"> This command collapses all expanded entries in the Repositories 
-    view.</p>
-</div>
-     
-<h3 class="Para">Remove Selected Buildfile</h3>
-     
-<p class="Para">This command removes the selected buildfiles from the view.</p>
-        
-<h3 class="Para">Remove All Buildfiles</h3>
-     
-<p class="Para">This command removes all buildfiles from the view.</p>
-
-<h2 class="Para">Context menu </h2>
-     
-<p class="Para">The context menu contains a few actions in addition to the actions
-available in the toolbar.&nbsp;&nbsp;</p>
-     
-<h3>Properties...&nbsp;</h3>
-     
-<p class="Para"> This command brings up the launch configuration dialog to edit the
-configuration associated with the selected buildfile.</p>
-
-<h3>Open With &gt; &nbsp;</h3>
-     
-<p class="Para">This menu allows you to open an editor on the selected buildfile.</p>
-        
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-antsupport.htm">Ant support</a><br>
-     <a href="../concepts/concepts-exttools.htm">External tools</a></p>
-     
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks"
- width="159" height="27"><br>
-<a href="../tasks/tasks-ant-running.htm">Running Ant buildfiles</a><br>
-<a href="../tasks/tasks-ant-classpath.htm">Modifying the Ant classpath</a><br>
-<a href="../tasks/tasks-ant-addtasksandtypes.htm">Adding new Ant tasks and types</a><br>
-<a href="../tasks/tasks-ant-version.htm">Using a different version of Ant</a></p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference"
- width="159" height="27">
-  <br>
-     <a href="ref-antruntimeprefs.htm">Ant runtime preferences</a><br>
-     <a href="ref-anteditor.htm">Ant Editor</a><br>
-     <a href="ref-anticons.htm">External Tools and Ant icons</a>
-   </p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-cvs-decorations.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-cvs-decorations.htm
deleted file mode 100644
index dd2847c..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-cvs-decorations.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>CVS Label Decorations</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">CVS Label Decorations</H1>
-<P CLASS="Para"> Label Decorations are used by CVS to show important synchronization 
-  information about workspace resources. Decorations can effect the text or the 
-  icon of the label associated with a resource. The text decorators are configurable 
-  on the <a href="../tasks/tasks-107b.htm">CVS Label Decorations Preference page</a> which can also be used to indicate 
-  which icons are to be enabled. Here is a description of the icons used by CVS.</P>
-<table width="94%" border="1">
-  <tr>
-    <td align="center"><strong>Decoration</strong></td>
-    <td><strong>Resource type</strong></td>
-    <td><strong>Description</strong></td>
-  </tr>
-  <tr> 
-    <td width="14%" align="center"><img src="../images/version_controlled.gif" alt="Version control icon" width="7" height="8"></td>
-    <td width="22%">Any</td>
-    <td width="64%">Indicates that the resource is under version control.</td>
-  </tr>
-  <tr> 
-    <td align="center"><img src="../images/dirty_ov.gif" alt="Outgoing icon" width="8" height="8"></td>
-    <td>Any</td>
-    <td>Indicates that the resource or one of its children contains outgoing changes.</td>
-  </tr>
-  <tr> 
-    <td align="center"><img src="../images/edited_ov.gif" alt="Edit local icon" width="7" height="8"></td>
-    <td>File</td>
-    <td>Indicates that the project containing the file has been configured to 
-      use watch/edit and the file is being edited locally.</td>
-  </tr>
-  <tr> 
-    <td align="center"><img src="../images/merged_ov.gif" alt="Merge conflict icon" width="7" height="8"></td>
-    <td>File</td>
-    <td>Indicates that the file contains a merge conflict which has not yet been 
-      resolved. The conflict is considered resolved once the file is modified 
-      and saved.</td>
-  </tr>
-  <tr> 
-    <td align="center"><img src="../images/no_remotedir_ov.gif" alt="No remote folder icon" width="7" height="8"></td>
-    <td>Project or Folder</td>
-    <td>Indicates that the folder is under version control but does not correspond 
-      to an existing remote directory but is instead most likely a module defined 
-      in the CVSROOT/modules file.</td>
-  </tr>
-  <tr> 
-    <td align="center"><img src="../images/question_ov.gif" alt="Not under version control icon" width="7" height="8"></td>
-    <td>File or Folder</td>
-    <td>Indicates that the resource is not under version control.</td>
-  </tr>
-</table>
-<P CLASS="Para"><em>Note</em>: Resources that are ignored by CVS will not be decorated 
-  by any of the above CVS decorations.</P>
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"> 
-  <br>
-  <a href="../concepts/cdecorations.htm">Label Decorations</a> </P>
-<P>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-107b.htm">Enabling the CVS resource decorations</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-decorations.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-decorations.htm
deleted file mode 100644
index 4bf7805..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-decorations.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Label Decorations</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Label Decorations</H1>
-<P CLASS="Para">
-Label Decorations allow additional information to be displayed in an item's
-label and icon.</P>
-<P CLASS="Para">
-The Label Decorations preference page provides a description of each decoration
-and allows the selection of which decorations are visible.&nbsp;</P>
-
-
-<P>Here is what the Label Decorations preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image84_decorator_preference.gif" alt="Decorators preference page" border="0" width="531" height="440">
-</P>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/cdecorations.htm">Label Decorations</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-exttoolsprefs.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-exttoolsprefs.htm
deleted file mode 100644
index 6be1a37..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-exttoolsprefs.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>External Tools</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-External Tools</H1>
-<P CLASS="Intro">
-
-The following preferences can be changed on the External Tools page.
-<P CLASS="Intro">&nbsp;
-
-<P>&nbsp;You can configure whether or not you are prompted before external tool project builders are migrated.&nbsp;
-</P>
-
-<P><img src="../images/external_tools_prefs.gif" alt="External Tools preference page" border="0" width="494" height="332">
-</P>
-
-<p><img src="../images/ngrelc.gif" alt="Related concepts" border="0" width="159" height="27">
-<br><a href="../concepts/concepts-antsupport.htm">Ant support</a>
-</p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-antprefs.htm">Ant preferences</a><br>
-<a href="../reference/ref-antruntimeprefs.htm">Ant runtime preferences</a><br>
-<a href="../reference/ref-anteditorprefs.htm">Ant editor preferences</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-fonts.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-fonts.htm
deleted file mode 100644
index 3bba3a1..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-fonts.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Fonts</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Fonts</H1>
-<P CLASS="Para">
-The fonts used for various types of text can be set using the Fonts preference
-page.</P>
-<P CLASS="Para">
-A Fonts list allows the selection of the kind of text where the font will appear
-while a Preview area shows the appearance of the current font setting.</P>
-<P CLASS="Para">
-The font setting can be changed either by pressing the Use System Font button to
-choose the Operating System font setting or pressing the Change button to open up a font
-selection dialog.</P>
-
-
-<P>Here is what the Fonts preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image274_fonts_preference.gif" alt="Fonts preference page" border="0" width="607" height="541">
-</P>
-
-<p>&nbsp;</p>
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a href="../tasks/tasks-20.htm">Changing fonts and colors</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-helpserver.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-helpserver.htm
deleted file mode 100644
index d8c5fec..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-helpserver.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Help Server</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Help Server</H1>
-<P CLASS="Para">
-Help system includes an internal server that serves help contents to the browser.
-Use this preference page to change the interface and port that the servers uses.
-You should only change these settings if you experience problems and cannot view
-help with the default preferences.
-</P>
-<TABLE BORDER="1" cellspacing="0">
-<THEAD>
-<TR>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Option</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Description</P>
-</TH>
-<TH ROWSPAN="1" COLSPAN="1">
-<P CLASS="Para">
-Default</P>
-</TH>
-</TR>
-<TR>
-<TH align="left">
-<span style="font-weight: 400">Host</span></TH>
-<TH align="left">
-<span style="font-weight: 400">Name or address of a local IP interface
-to be used by the server.</span>
-</TH>
-<TH align="left">
-<span style="font-weight: 400">blank</span></TH>
-</TR>
-<TR>
-<TH align="left">
-<span style="font-weight: 400">Port</span></TH>
-<TH align="left">
-<span style="font-weight: 400">IP port for server to listen on.  If 0 is specified
-for the value, a port will be assigned by the operating system.</span>
-</TH>
-<TH align="left">
-<span style="font-weight: 400">0</span></TH>
-</TR>
-</THEAD>
-<TBODY>
-</TBODY>
-</TABLE>
-
-
-<P>Here is what the Help Server preferences page looks like:&nbsp;&nbsp;
-</P>
-
-
-<P>
-<img src="../images/pref_helpserver.gif" alt="Help Server Preference Page" border="0" width="607" height="541">
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-search.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-search.htm
deleted file mode 100644
index 36166dd..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-search.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"><title>Search</title></head>
-<body>
-
-<h1>Search</h1>
-<p>
-The Search preference page allows the user to set preferences for searches. The
-<strong>Reuse editors to show matches</strong> option allows the user to keep using the same
-editor for search results to reduce the number of open editors. <strong>Emphasize
-inexact matches</strong> is an option that allows you to highlight them in the Search view. If the Search engine isn't 100% sure about the match then the match is considered inexact. You may also set the
-<strong>foreground color for inexact matches</strong>. If you only want to see exact matches you can check <strong>Ignore inexact matches</strong>. The <strong>Default perspective for the Search view</strong> allows you to define which perspective should be brought to front when there are new search results.</p>
-
-<p>Here is what the Search preference page looks like:&nbsp;
-</p>
-
-
-<p><img src="../images/Image276_search_preference.gif" alt="Search Preference Page" border="0" width="493" height="394">
-</p>
-
-
-<p>&nbsp;
-</p>
-
-
-<p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body></html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-searchw.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-searchw.htm
deleted file mode 100644
index cc6e720..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-searchw.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"><title>Help search</title></head>
-
-<body>
-
-<h1>Help search</h1>
-
-<p>
-In the Search Dialog, the Help Search tab allows you to search on-line documentation.
-You can bring up the Search Dialog by choosing <b>Search &gt; Help</b> from the menu.</p>
-
-<p>
-<img src="../images/help_search_w.gif" alt="Help search dialog" border="0" width="488" height="320"></p>
-
-<h2>Search Expression</h2>
-<p>Type the expression for which you wish to do the help search.</p>
-
-<p>From the drop-down menu, you can choose to repeat or
-modify a recent search.</p>
-
-<h3>Advanced Search options</h3>
-<p>Use following expression rules when creating and advanced query:</p>
-
-<ul>
-	<li>&quot;*&quot; matches any set of characters, including the empty string</li>
-	<li>&quot;?&quot; matches for any character</li>
-	<li>Double quotation marks around terms indicate terms should be treated as a phrase</li>
-	<li>AND operator requires terms on both sides of the operator to exist in the document;
-	 If no operator is specified between terms, there is an implicit AND between them</li>
-	<li>OR operator requires term on either of the operator to exist in the document</li>
-	<li>NOT operator in front of a term requires the term not to exist in the document</li>
-</ul>
-
-<h2>Scope</h2>
-<p>Choose the scope of your search. You can either search all topics,
-or pre-defined working set.</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br>
-<a href="../concepts/csearchview.htm">Search view</a><br>
-<a href="../concepts/cworkset.htm">Working sets</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br>
-<a href="../tasks/tsearch.htm">Searching online help</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br>
-<a href="ref-26.htm">Search view</a><br>
-</p>
-
-<p>&nbsp;<br>
-<img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-startup.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-startup.htm
deleted file mode 100644
index 5592447..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-startup.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Startup</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Startup</H1>
-<P CLASS="Para">
-The Startup preference page allows the selection of plug-ins to be automatically
-activated during workbench startup.&nbsp;</P>
-
-
-<P CLASS="Para">Normally plug-ins are not activated until they are needed.
-However some plug-ins may specify that they wish to be activated during startup.
-This preference page allows the selection of which of these plug-ins will
-actually be activated during startup.</P>
-
-
-<P>Here is what the Startup preference page looks like:&nbsp;
-</P>
-
-
-<P><img src="../images/Image275_startup_preference.gif" alt="Startup Preference Page" border="0" width="461" height="401">
-</P>
-
-
-<P>&nbsp;
-</P>
-
-
-<p>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/reference/ref-texteditorprefs.htm b/bundles/org.eclipse.platform.doc.user/reference/ref-texteditorprefs.htm
deleted file mode 100644
index a758bd1..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/ref-texteditorprefs.htm
+++ /dev/null
@@ -1,174 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Style-Type" content="text/css"><title>Text editor preference page</title>
-   
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"></head><body bgcolor="#ffffff">
-
-<h1 class="Head">Text Editor<br>
-</h1><div class="Para"></div>
-
-<div class="Para">The following preferences can be changed on the Text Editor page.</div>
-<h2>Appearance options</h2>
-<table border="1" cellspacing="0" style="width: 100%;">
-<caption></caption><thead>
-</thead><tbody>
-</tbody>
-
-<tbody><tr>
-<th width="25%">
-<div class="Para">Option</div>
-</th>
-
-<th>
-<div class="Para">Description</div>
-</th>
-
-<th>
-<div class="Para">Default</div>
-</th>
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Print margin column<br>
-</div></td>
-
-<td align="left" valign="top">
-<div class="Para">This option allows to set the print margin for the text editor.
-</div>
-</td>
-
-<td align="left" valign="top">
-<div class="Para">80</div></td>
-</tr>
-
-    <tr>
-      <td style="vertical-align: top; width: 25%;">Show overview ruler<br>
-      </td>
-      <td style="vertical-align: top;">This option controls whether the overview ruler on the right side of the text editor is shown.<br>
-      </td>
-      <td style="vertical-align: top;">On<br>
-      </td>
-    </tr>
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Show line numbers<br>
-</div></td>
-
-<td align="left" valign="top">This option controls whether or line numbers are shown in on the left side of the text editor.<br>
-</td>
-
-
-<td align="left" valign="top">
-Off<br>
-
-</td>
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Highlight current line<br>
-</div></td>
-
-<td align="left" valign="top">
-<div class="Para">This option controls whether or the current line is highlighted or not.<br>
-</div></td>
-
-<td align="left" valign="top">
-On<br>
-
-</td>
-</tr>
-
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Show print margin<br>
-</div></td>
-
-<td align="left" valign="top">
-<div class="Para">This option controls whether the print margin is visible or not.</div></td>
-
-<td align="left" valign="top">
-<div class="Para">Off</div>
-</td>
-</tr><tr>
-      <td style="vertical-align: top;" width="25%">Appearance color options<br>
-      </td>
-      <td style="vertical-align: top;">This option controls various appearance colors.<br>
-      </td>
-      <td style="vertical-align: top;"><br>
-      </td>
-    </tr>
-
-
-
-
-</tbody></table>
-
-<p></p><H2>Annotations options</H2>
-<table border="1" cellspacing="0" style="width: 100%;">
-<caption></caption><thead>
-</thead><tbody>
-</tbody>
-<tbody><tr>
-<th style="width: 25%;">
-<div class="Para">Option</div>
-</th>
-
-<th>
-<div class="Para">Description</div>
-</th>
-
-
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-Show in text</td>
-
-<td align="left" valign="top">This option controls whether the selected
-annotation type is shown in the text. The corresponding text will be
-underlined with squiggles.<br>
-</td>
-
-
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Show in overview ruler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
-</div></td>
-
-<td align="left" valign="top">
-This option controls whether the selected annotation type is shown in the overview ruler.</td>
-
-
-</tr>
-
-<tr>
-<td align="left" valign="top" width="25%">
-<div class="Para">Color</div>
-</td>
-
-<td align="left" valign="top">
-<div class="Para">This option controls the color for the selected annotation type.<br>
-</div></td>
-
-
-</tr>
-
-
-</tbody></table>
-
-<p></p><p>Here is what the Text editor preference page looks like:
-</p><p><img src="../images/ref-texteditorpref.gif" title="" alt="Image of the Text editor preference page" style="width: 620px; height: 541px;"><br>
-
-
-</p><p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="../concepts/concepts-6.htm">Editor</a>
-<br>
-</p><p>&nbsp;<br>
-
-</p><p><a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p></body></html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/reference/reference.pdf b/bundles/org.eclipse.platform.doc.user/reference/reference.pdf
deleted file mode 100644
index a93a4c0..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/reference.pdf
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/reference/reference_htmldoc_book.book b/bundles/org.eclipse.platform.doc.user/reference/reference_htmldoc_book.book
deleted file mode 100644
index a43df0f..0000000
--- a/bundles/org.eclipse.platform.doc.user/reference/reference_htmldoc_book.book
+++ /dev/null
@@ -1,88 +0,0 @@
-#HTMLDOC 1.8.23
--t pdf13 -f reference.pdf --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --title --linkstyle underline --bodycolor #ffffff --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --portrait --color --no-pscommands --no-xrxcomments --compression=1 --jpeg=0 --fontsize 11.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Times --headfootsize 11.0 --headfootfont Helvetica --charset iso-8859-1 --links --no-embedfonts --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all  --owner-password ""  --user-password "" --browserwidth 680
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-8.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-72.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-10.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-16.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-11.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-12.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-texteditorprefs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-exttoolsprefs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-13.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-fonts.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/accessibility/keyboardshortcuts.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-decorations.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-14b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-14.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-15.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-search.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-startup.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-antprefs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-anteditorprefs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-antruntimeprefs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-17.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-18.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-helpserver.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-21.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-21a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-19.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-19cvs.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-20.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-20-fileContent.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-47.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-32.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-33.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-32a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-32b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-40.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-41a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-48a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-cvs-decorations.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-2.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-3.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-4.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-5.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-6.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-6a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/concepts/accessibility/keyboardshortcuts.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-23.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-24.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-25.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-26.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-27.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-28.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-29.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-30.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-31.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-32.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-32a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-33.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-anteditor.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-antview.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-34.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-35uma.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-35umb.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-35umc.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-35umd.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-35ume.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-37.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-38.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-39.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-40.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-41a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-70.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-71.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-43.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-45.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-searchw.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-56.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-57.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-58.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-59.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-60.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-61.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-65.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-66.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-67.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-68.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/reference/ref-anticons.htm
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/antRunner.htm b/bundles/org.eclipse.platform.doc.user/tasks/antRunner.htm
deleted file mode 100644
index 0ac52fa..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/antRunner.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-         
-  <meta http-equiv="Content-Style-Type" content="text/css">
-          
-  <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1"
- type="text/css">
-  <title>antRunner application entry point</title>
-    
-</head>
- <body bgcolor="#ffffff">
-     
-<h1> antRunner application entry point</h1>
-     
-<p class="Para">The Ant core plugin declares a main entry point that allows the running of Eclipse's integrated Ant support in a headless environment.
-An Ant build can then be run directly from the main platform launcher.</p>
-
-
-    <p>This is an example .bat file that shows how to make use of the antRunner application entry point on Windows.
-
-    <pre> 
-echo off
-setlocal
-
-REM ****************************************************
-
-REM The JRE java.exe to be used
-set JAVAEXE="C:\jdk1.4.2\jre\bin\java.exe"
-
-REM The Eclipse startup.jar
-set STARTUPJAR="C:\eclipse\startup.jar"
-
-REM The location of your workspace
-set WORKSPACE=C:\runtime-workspace
-
-REM The buildfile to use for the build
-set BUILDFILE=build.xml
-
-REM ****************************************************
-
-if not exist %JAVAEXE% echo ERROR: incorrect java.exe=%JAVAEXE%, edit this file and correct the JAVAEXE envar
-if not exist %JAVAEXE% goto done
-
-if not exist %STARTUPJAR% echo ERROR: incorrect startup.jar=%STARTUPJAR%, edit this file and correct the STARTUPJAR envar
-if not exist %STARTUPJAR% goto done
-
-if not exist %WORKSPACE% echo ERROR: incorrect workspace=%WORKSPACE%, edit this file and correct the WORKSPACE envar
-if not exist %WORKSPACE% goto done
-
-if not exist %BUILDFILE% echo ERROR: incorrect buildfile=%BUILDFILE%, edit this file and correct the BUILDFILE envar
-if not exist %BUILDFILE% goto done
-
-:run
-@echo on
-%JAVAEXE% -cp %STARTUPJAR% org.eclipse.core.launcher.Main -noupdate -application
-org.eclipse.ant.core.antRunner -data %WORKSPACE% -buildfile %BUILDFILE%
-
-:done
-pause
-</pre>
-    </p>     
-        
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts"
- width="159" height="27">
-  <br>
-     <a href="../concepts/concepts-antsupport.htm">Ant support</a></p>
-          
-<p><br>
-     <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif"
- alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14">
-  </a>  </p>
-      
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/ngibmcpy.gif b/bundles/org.eclipse.platform.doc.user/tasks/ngibmcpy.gif
deleted file mode 100644
index 360f8e9..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/no_help_exists.htm b/bundles/org.eclipse.platform.doc.user/tasks/no_help_exists.htm
deleted file mode 100644
index de0de34..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/no_help_exists.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<TITLE> No Help Exists</TITLE>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-No Help Exists</H1>
-<p CLASS="Head">There are no available help topics associated with this
-item.&nbsp;&nbsp;&nbsp;</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/running_eclipse.htm b/bundles/org.eclipse.platform.doc.user/tasks/running_eclipse.htm
deleted file mode 100644
index a6c9a68..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/running_eclipse.htm
+++ /dev/null
@@ -1,379 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running Eclipse</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Running Eclipse</h1>
-<p>After you install (unzip) the Eclipse driver in a directory (such as c:\eclipse),
-start the Workbench by running the Eclipse executable file found in the
-top level install directory. The executable file is called <samp>eclipse.exe</samp> on Windows
-systems and <samp>eclipse</samp> on Linux systems. 
-
-<b>Note:</b> the following discussion describes setting up on Windows systems. Setup on Linux is
-analogous.</p>
-
-<p>If you do not specify otherwise, the platform creates a default workspace
-directory as a sibling of the executable (for example, c:\eclipse\workspace).
-This workspace directory is used as the default content area for your projects
-as well as for holding any required metadata. For shared or
-multi-workspace installs you should explicitly state the location of your
-workspace rather than using the default. There are two ways to control the
-location of your workspace: using the current working directory or using the
--data command line argument.</p>
-
-<h3>Setting the workspace location to be inside the current working directory</h3>
-
-<p>In this scenario, the workspace location will be a directory called <samp>workspace</samp>
-inside the current working directory.</p>
-
-<p>Perhaps the easiest way of doing this is to create a
-shortcut using the following steps:</p>
-
-<ol>
-  <li>Navigate to eclipse.exe in the Windows Explorer and using a right button drag, create a shortcut
-    to eclipse.exe.</li>
-  <li>Edit the properties of the shortcut such that the <b>Start in:</b>
-    field identifies the parent directory of your workspace location (for example, <samp>c:\users\robert</samp>).</li>
-  <li>Close the properties dialog and double-click on the shortcut (if the provided directory was <samp>c:\users\robert</samp>, 
-  the workspace location would be <samp>c:\users\robert\workspace</samp>).</li>
-</ol>
-<p>Of course you can get the same effect using a command prompt by changing
-directory to your workspace parent's directory and then running eclipse.exe.</p>
-
-<h3>Setting a specific location for the workspace with -data</h3>
-
-<p>To use the <code>-data</code> command line argument, simply add <code>-data <var>your_workspace_location</var></code>
- (for example, <code>-data c:\users\robert\myworkspace</code>)
-to the <b>Target</b> field in the shortcut properties, or include it explicitly on your
-command line.</p>
-
-<h3>Setting the java VM using -vm</h3>
-
-<p>It is recommended that you explicitly specify which Java VM to
-use when running Eclipse.  This is achieved with the <code>-vm</code> command line
-argument (for example, <code>-vm c:\jre\bin\javaw.exe</code>).  If you don't use 
-<code>-vm</code>, Eclipse will use the first Java VM found on the O/S path.  When you install other products, 
-they may change your path, resulting in a different Java VM being used when you next launch Eclipse.
-</p>
-
-<h2>Advanced Topics in Running Eclipse </h2>
-
-<p>The Eclipse executable and the platform itself offer a number of execution
-options of interest to people developing or debugging parts of Eclipse.
-The general form of running the Eclipse executable is:</p>
-
-<blockquote>
-
-<pre>eclipse [platform options] [-vmargs [Java VM arguments]]</pre>
-
-</blockquote>
-
-<TABLE width="90%" border=1 height="543">
-<caption>
-	<b>
-		Eclipse Startup Parameters
-	</b>
-</caption>
-  <TBODY>
-    <tr> 
-      <th width="33%"> 
-        <b>Command</b></th>
-      <th width="65%"><b>Description</b></th>
-      <TD width="2%"><b>Since</b></TD>
-    </tr>
-    <tr> 
-      <TD vAlign=top width="33%">
-<pre><b>-arch</b> <var>architecture</var></pre></TD>
-      <TD width="65%">Defines the processor architecture on which the Eclipse 
-        platform is running. The Eclipse platform ordinarily computes the optimal 
-        setting using the prevailing value of Java <code>os.arch</code> 
-        property. If specified here, this is the value that the Eclipse platform 
-        uses. The value specified here is available to plug-ins as BootLoader.getOSArch(). 
-        Example values: &quot;x86&quot;, &quot;sparc&quot;, &quot;PA-RISC&quot;, &quot;ppc&quot;.</TD>
-      <TD width="2%">2.0</TD>
-    </tr>
-    <TR> 
-      <TD vAlign=top width="33%">
-<PRE><b>-application</b> <var>applicationId</var></PRE></TD>
-      <TD width="65%">The application to run. Applications are declared by plug-ins 
-        supplying extensions to the org.eclipse.core.runtime.applications extension 
-        point. This argument is typically not needed. If specified, the value 
-        overrides the value supplied by the configuration. If not specified, the 
-        Eclipse Workbench is run.</TD>
-      <TD width="2%">1.0</TD>
-    </TR>
-    <TR> 
-      <TD vAlign=top width="33%"><PRE><b>-boot</b> <var>bootJarURL</var></PRE></TD>
-      <TD width="65%"><i>(Deprecated; replaced by -configuration; supported for 
-        1.0 compatibility)</i>. The location of the Eclipse platform's boot plug-in 
-        code (boot.jar), expressed as a URL. If specified, it is used to 
-        set the classpath for the class loader that loads the Eclipse platform 
-        bootstrap class loader. Only required when changing the relative location 
-        of startup.jar and boot.jar. Note that relative URLs are not allowed. 
-      </TD>
-      <TD width="2%">*1.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<pre><b>-classloaderproperties</b> <var>[file]</var></pre></TD>
-    <TD width="65%">Activates platform class loader enhancements using the class 
-      loader properties file at the given location, if specified. The file argument 
-      can be either a file path or a URL. Note that relative URLs are not allowed. 
-      Click <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-core-home/docs/classloader-properties/classloader_properties.html">here</a> 
-      for more details.</TD>
-    <TD width="2%">2.0.2</TD>
-    </tr>
-    <tr> 
-      <TD vAlign=top width="33%"> 
-        <pre><b>-configuration</b> <var>configurationFileURL</var></pre>
-        </TD>
-      <TD width="65%">The location for the Eclipse Platform configuration file, 
-        expressed as a URL. The configuration file determines 
-        the location of the Eclipse platform, the set of available plug-ins, and 
-        the primary feature. Note that relative URLs are not allowed.  
-        The configuration file is written to this location when the Eclipse platform is 
-        installed or updated.
-        </TD>
-      <TD width="2%">2.0</TD>
-    </tr>
-    <TR> 
-      <TD vAlign=top width="33%"><PRE><b>-consolelog</b></PRE></TD>
-      <TD width="65%">Mirrors the Eclipse platform's error log to the console 
-        used to run Eclipse. Handy when combined with <code>-debug</code>.</TD>
-      <TD width="2%">1.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<PRE><b>-data</b> <var>workspacePath</var></PRE></TD>
-      <TD width="65%">The path of the workspace on which to run the Eclipse platform. 
-        The workspace location is also the default location for projects. Relative 
-        paths are interpreted relative to the directory that Eclipse was started 
-        from.</TD>
-      <TD width="2%">1.0</TD>
-    </tr>
-    <TR> 
-      <TD vAlign=top width="33%">
-<PRE><b>-debug</b> [<var>optionsFile</var>]</PRE></TD>
-      <TD width="65%"> Puts the platform in debug mode and loads the debug options 
-        from the file at the given location, if specified. This file indicates which 
-        debug points are available for a plug-in and whether or not they are enabled. 
-        If a file location is not given, the platform looks in the directory that 
-        eclipse was started from for a file called ".options". Both URLs and file system 
-        paths are allowed as file locations. </TD>
-      <TD width="2%">1.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<PRE><b>-dev</b> [<var>classpathEntries</var>]</PRE></TD>
-      <TD width="65%">Puts the platform in development mode. The optional 
-        classpath entries (a comma separated list) are added to the runtime classpath 
-        of each plug-in. For example, when the workspace contains plug-ins being 
-        developed, specifying <code>-dev bin</code> adds a classpath 
-        entry for each plug-in project's directory named <code>bin</code>, 
-        allowing freshly generated class files to be found there. Redundant 
-        or non-existent classpath entries are eliminated.</TD>
-      <TD width="2%">1.0</TD>
-    </tr>
-    <TR> 
-      <TD vAlign=top width="33%" height="16"><pre><b>-endsplash</b> <var>params</var></pre></TD>
-      <TD width="65%" height="16">Internal option for taking down the splash screen 
-        when the Eclipse platform is up and running. This option has different 
-        syntax and semantics at various points along the splash screen processing 
-        chain.</TD>
-      <TD width="2%" height="16">2.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<pre><b>-feature</b> <i>featureId</i></pre></TD>
-      <TD width="65%" height="16">The ID of the primary feature. The primary feature 
-        gives the launched instance of Eclipse its product personality, and determines 
-        the product customization information used.</TD>
-      <TD width="2%" height="16">2.0</TD>
-    </tr>
-    <TR> 
-      <TD vAlign=top width="33%">
-<pre><b>-keyring</b> <var>keyringFilePath</var></pre></TD>
-      <TD width="65%"> The location of the authorization database (or &quot;key 
-        ring&quot; file) on disk. This argument must be used in conjunction 
-        with the <code>-password</code> option. Relative paths are interpreted 
-        relative to the directory that Eclipse was started from.</TD>
-      <TD width="2%">1.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<pre><b>-nl</b> <var>locale</var></pre></TD>
-      <TD width="65%">Defines the name of the locale on which the Eclipse platform 
-        is running. The Eclipse platform ordinarily computes the optimal setting 
-        automatically. If specified here, this is the value that the Eclipse platform 
-        uses. The value specified here is available to plug-ins as BootLoader.getNL(). 
-        Example values: &quot;en_US&quot; and &quot;fr_FR_EURO&quot;.</TD>
-      <TD width="2%">2.0</TD>
-    </tr>
-    <tr> 
-      <TD vAlign=top width="33%">
-<pre><b>-nolazyregistrycacheloading</b></pre></TD>
-    <TD width="65%">Deactivates platform plug-in registry cache loading optimization. 
-    By default, extensions' configuration elements will be loaded from the registry cache 
-    (when available) only on demand, reducing memory footprint. This option will force the 
-    registry cache to be fully loaded at startup.</TD>
-    <TD width="2%">2.1</TD>
-    </tr>    
-    <TR> 
-      <TD vAlign=top width="33%">
-<pre><b>-noregistrycache</b></pre></TD>
-      <TD width="65%">Bypasses the reading and writing of an internal plug-in 
-        registry cache file.</TD>
-      <TD width="2%">2.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<PRE><b>-nosplash</b></PRE></TD>
-      <TD width="65%">Runs the platform without putting up the splash screen.</TD>
-      <TD width="2%">1.0</TD>
-    </tr>
-    <tr> 
-      <TD vAlign=top width="33%">
-<PRE><b>-os</b> <var>operatingSystem</var></PRE></TD>
-      <TD width="65%">Defines the operating system on which the Eclipse platform 
-        is running. The Eclipse platform ordinarily computes the optimal setting 
-        using the prevailing value of Java <code>os.name</code> property. 
-        If specified here, this is the value that the Eclipse platform uses. The 
-        value specified here is available to plug-ins as BootLoader.getOS(), and 
-        used to resolve occurrences of the <code>$os$</code> variable in paths 
-        mentioned in the plug-in manifest file. Example values: &quot;win32&quot;, &quot;linux&quot;, 
-        &quot;hpux&quot;, &quot;solaris&quot;, &quot;aix&quot;.</TD>
-      <TD width="2%">1.0</TD>
-    </tr>
-    <TR> 
-      <TD vAlign=top width="33%">
-<pre><b>-password</b> <var>password</var></pre></TD>
-      <TD width="65%">The password for the authorization database. Used in conjunction 
-        with the <code>-keyring</code> option.</TD>
-      <TD width="2%">1.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<PRE><b>-perspective</b> <var>perspectiveId</var></PRE></TD>
-      <TD width="65%">The perspective to open in the active workbench
-      window on startup.  If this parameter is not specified, the perspective that
-      was active on shutdown will be opened.</TD>
-      <TD width="2%">1.0</TD>
-    </tr>
-    <tr> 
-      <TD vAlign=top width="33%">
-<pre><b>-plugincustomization</b>
-	  <var>propertiesFile</var></pre></TD>
-      <TD width="65%">The location of a properties file containing default settings 
-        for plug-in preferences. These default settings override default settings 
-        specified in the primary feature. Relative paths are interpreted relative 
-        to the directory that eclipse was started from.</TD>
-      <TD width="2%">2.0</TD>
-    </tr>
-    <TR> 
-      <TD vAlign=top width="33%" height="16"><pre><b>-plugins</b> <var>pluginsFileURL</var></pre></TD>
-      <TD width="65%" height="16"><i>(Deprecated; replaced by -configuration; 
-        supported for 1.0 compatibility).</i> The location of the file that specifies 
-        where the Eclipse platform finds plug-ins, expressed as a URL. The file 
-        is in property file format where the keys are arbitrary user defined names 
-        and the values are comma separated lists of either explicit paths 
-        to plugin.xml files, or paths to directories containing plug-ins. 
-        Note that relative URLs are not allowed. If specified, this option causes 
-        the creation of a suitable temporary configuration.</TD>
-      <TD width="2%" height="16">*1.0</TD>
-    </TR>
-    <TR> 
-      <TD vAlign=top width="33%" height="16"><pre><b>-refresh</b> </pre></TD>
-      <TD width="65%" height="16">Option for performing a global refresh of the workspace
-      on startup.  This will reconcile any changes that were made in the file system since
-      the platform was last run.  </TD>
-      <TD width="2%" height="16">1.0</TD>
-    </TR>
-    <TR> 
-      <TD vAlign=top width="33%" height="16"><pre><b>-showlocation</b> </pre></TD>
-      <TD width="65%" height="16">Option for displaying the location of the workspace
-      in the window title bar.  In release 2.0 this option only worked in conjunction with
-      the -data command line argument.</TD>
-      <TD width="2%" height="16">2.0</TD>
-    </TR>
-    <TR> 
-      <TD vAlign=top width="33%" height="16"><pre><b>-showsplash</b> <var>params</var></pre></TD>
-      <TD width="65%" height="16">Internal option for showing the splash screen 
-        (done by the executable Eclipse platform launcher). This option has 
-        different syntax and semantics at various points along the splash screen 
-        processing chain.</TD>
-      <TD width="2%" height="16">2.0</TD>
-    </TR>
-    <tr> 
-      <TD vAlign=top width="33%">
-<PRE><b>-vm</b> <var>vmPath</var></PRE></TD>
-      <TD width="65%">The location of Java Runtime Environment (JRE) to use to 
-        run the Eclipse platform. If not specified, the JRE is at <code>jre</code>, 
-        sibling of the Eclipse executable. Relative paths are interpreted relative 
-        to the directory that eclipse was started from.</TD>
-      <TD width="2%">1.0</TD>
-    </tr>
-    <tr> 
-      <TD vAlign=top width="33%">
-<PRE><b>-ws</b> <var>windowSystem</var></PRE></TD>
-      <TD width="65%">Defines the window system on which the Eclipse platform 
-        is running. The Eclipse platform ordinarily computes the optimal setting 
-        using the prevailing value of Java <code>os.name</code> property. 
-        If specified here, this is the value that the Eclipse platform uses. The 
-        value specified here is available to plug-ins as BootLoader.getWS(), used 
-        to configure SWT, and used to resolve occurrences of the <code>$ws$</code> 
-        variable in paths mentioned in the plug-in manifest file. Example values: 
-        &quot;win32&quot;, &quot;motif&quot;, &quot;gtk&quot;.</TD>
-      <TD width="2%">1.0</TD>
-    </tr>
-  </TBODY>
-</TABLE>
-
-<p>All arguments following (but not including) the -vmargs entry are passed
-directly through to the indicated Java VM as virtual machine arguments (that is,
-before the class to run).  <b>Note:</b> If an Eclipse startup argument, such as -data,
-is provided after the Java vm arguments (-vmargs), Eclipse will not start and you will receive 
-a &quot;JVM terminated. Exit code=1&quot; error.
-</p>
-
-<h2>Running on Different VMs&nbsp;</h2>
-<h3>Running Eclipse on J9</h3>
-<p>
-When running Eclipse on J9 version 1.5, it is recommended that you use the following VM
-options:
-</p>
-<blockquote>
-  <pre>eclipse.exe [eclipse arguments] -vm <var>path_to_j9w.exe</var> 
-            -vmargs -ms:32 -mm:2048 -mo:32768 -moi:32768 -mca:32 -mco:128 -mx:2000000</pre>
-</blockquote>
-<p> When running Eclipse on J9 version 2.0, the default arguments chosen by J9W 
-  should be suitable. However, to override the parameters which are automatically 
-  set internally by the Eclipse executable, you must specify -vmargs with no following arguments 
-  as follows: </p>
-<blockquote>
-  <pre>eclipse.exe [eclipse arguments] -vm <var>path_to_j9w.exe</var> -vmargs</pre>
-</blockquote>
-<p>Please refer to the J9 VM documentation and help for further information.</p>
-
-<h3>Running Eclipse on the IBM Developer Kit, Java(TM) Technology Edition VM</h3>
-
-<p>The default VM settings for IBM Developer Kit, Java(TM) Technology Edition 1.3 Linux work well for initial exploration, but
-are not sufficient for large scale development. For large scale development you
-should modify your VM arguments
-to make more heap available. For example, the following setting will allow the Java heap to grow to 256MB:&nbsp;
-</p>
-<blockquote>
-<pre>-vmargs -Xmx256M </pre>
-</blockquote>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/taccess.htm b/bundles/org.eclipse.platform.doc.user/tasks/taccess.htm
deleted file mode 100644
index 35d5e5a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/taccess.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Accessing and navigating online help</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Accessing and navigating online help</h1>
-
-<p>The help browser lets you browse, search, and print online documentation
-for the product. To open the help browser, select <b>Help &gt; Help Contents</b> 
-in the Workbench. This opens the help browser to the bookshelf, which shows the 
-major sets of documentation available.
-</p>
-
-<p>To navigate online help:
-</p>
-
-<ol>
-  <li>Select the desired link on the bookshelf.</li>
-  <li>Expand the topic tree to find the information you are looking for. To
-    view a topic, click the link in the topic tree. </li>
-  <li>Most topics provide a list of links to related topics at the bottom.
-    Follow these links to learn more.</li>
-  <li>Use the <b>Go Forward</b> and <b>Go Back</b> buttons. These behave 
-    the same way back and forward buttons work in an Internet browser, taking 
-    you to topics you have already looked at.</li>
-  <li>To synchronize the navigation frame with the current topic, click the <b>Synchronize</b> 
-    button <img src="../images/synch_toc_nav.gif" alt="Synchronize button" border="0" width="16" height="16">. 
-    This is helpful if you have followed several links to related topics in several 
-    files, and want to see where the current topic fits into the navigation path.</li>
-</ol>
-
-<p>As an alternative to browsing the information this way,  use the
-search engine. Type a query into the <b>Search</b> field at the top of the 
-browser and click <b>Go</b>.
-</p>
-
-<p>To see context sensitive help from the Workbench put focus on a particular 
-widget and press F1. For more details, refer to the list of related topics below. 
-</p>
-
-<h2>Maximizing help frames</h2>
-
-<p>To increase the space available for viewing the help content, the frame that
-displays content can be maximized. To maximize the frame, double click its toolbar.
-To return the frame to its original size, double click the tool bar again.
-Similarly, you can maximize the frame showing navigation, by double clicking its toolbar.
-</p>
-
-<h2>Printing online help</h2>
-
-<p>To print a topic from the online help:
-</p>
-
-<ol>
-  <li>Select the topic in the navigation frame.</li>
-  <li>Click the <b>Print</b> button <img src="../images/printer.gif" alt="Print button" border="0" width="16" height="16"> 
-    in the Help toolbar.</li>
-  <li>Select the desired printer settings, and click <b>Print</b>.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/chelpsys.htm">Online help system</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tsearch.htm">Searching online help</a><br>
-<a href="tf1help.htm">Accessing context sensitive help</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/task-team-cmdlineclient.htm b/bundles/org.eclipse.platform.doc.user/tasks/task-team-cmdlineclient.htm
deleted file mode 100644
index 28c198c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/task-team-cmdlineclient.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running the CVS command-line client outside of Eclipse</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Running the CVS command-line client outside of Eclipse</H1>
-<h3>Compatibility</h3>
-<p>Because the Eclipse CVS plug-in stores its meta information in a format that 
-  is compatible with the command-line CVS client you should be able to use a CVS 
-  command line client against Eclipse workspace files on disk. The metadata is 
-  stored in CVS/ sub-directories but you rarely see them within Eclipse. They are 
-  marked as private which causes them to be hidden from view. If you open a (non-Eclipse) 
-  file explorer you will see that these directories and their contents appear 
-  on the file system.</p>
-<h3> Don't forget to refresh!</h3>
-
-
-<p>Whenever you use external tools to modify workspace files, you must perform 
-  a <strong>Refresh</strong> from within Eclipse to make the workspace aware of 
-  the changes. If you get a <em>resource out of sync</em> error in Eclipse it 
-  is a sign that there are resources in Eclipse that have been modified outside 
-  of Eclipse. One solution is to perform a refresh (available from a resource's 
-  popup menu) on any resources or projects that where modified outside of Eclipse. 
-  There is also an <em>auto-refresh</em> plug-in available from <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-core-home/dev.html">Platform 
-  Core</a> web site.</p>
-<h3>Caveats</h3>
-<p><strong>1. Deleted folders</strong></p>
-<p>You may encounter unexpected behavior when using the command-line CVS client 
-  in conjunction with deleted folders. Eclipse's CVS support keeps track of deleted 
-  folders and their contents so that, on the next synchronization, the Synchronize 
-  view can properly report on the changes. This information is kept outside of 
-  the CVS meta folder structure. This is because in CVS you normally inform the 
-  repository of deletions prior to deleting them locally, which is a different 
-  workflow than we like to support in the Synchronization view. Thus it is recommended 
-  that you do not use the command-line CVS client while you have pending deletions 
-  to commit. In some circumstances it could cause the Synchronize view to display 
-  incorrect contents, although it will not cause any lost work. </p>
-<p><strong>2. CVS directories appear in the workbench</strong></p>
-<p>When you use the command-line CVS the CVS folders can sometimes appear in the 
-  Navigator View. There are some cases where CVS folders are not hidden from the 
-  UI as the user would expect. For instance, CVS folders will appear if a user 
-  imports a CVS project into Eclipse before the CVS plug-in is loaded. To avoid 
-  this, open the CVS Repositories view (thus loading the CVS plug-in) before importing 
-  CVS projects into Eclipse. </p>
-<p><strong>3. The 'extssh' connection method</strong></p>
-<p>The <em>extssh</em> connection method is unique to Eclipse CVS and doesn't 
-  exist in the command-line CVS client. If you are using <em>extssh</em> to connect 
-  to a SSH1 repository and would like to use the command line client for some 
-  CVS operations you have to create a new location in Eclipse that uses a compatible 
-  connection method:</p>
-<ol>
-  <li>Create a new repository location that uses a CVS command line client compatible 
-    connection method (e.g. <em>pserver</em> or <em>ext</em>). The repository 
-    path, host, and user should be identical to those in the <em>extssh</em> location.</li>
-  <li>Select the project that is shared with the <em>extssh</em> location and 
-    open the CVS properties page. This is the project that you wanted to run external 
-    CVS commands on.</li>
-  <li>Select the <strong>Change Sharing...</strong> button and select the new 
-    location that uses either the <em>ext</em> or <em>pserver</em>.</li>
-  <li>Next, you can run command line CVS operations and then return to Eclipse. 
-    <em>Don't forget to refresh</em>!</li>
-</ol>
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-95.htm">Changing the properties of a CVS repository location</a><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-117a.htm">Using projects checked out with another CVS tool</a>
-</p>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1.htm
deleted file mode 100644
index 78f7923..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-100.htm
deleted file mode 100644
index 7898fff..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a version of a project</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Creating a version of a project</H1>
-
-<P><em>Prerequisite</em>: The project that you want to version must first be in 
-  the workspace.
-</P>
-
-<P><em>Tip</em>: It is often preferable to synchronize resources with the CVS 
-  repository before versioning. This will ensure that there are no outstanding 
-  incoming or outgoing changes that might be accidentally excluded from the version.
-</P>
-
-<P>To make a version of a project:
-</P>
-
-<ol>
-  <li>In the Navigator view, select the project that you want to version.</li>
-  <li>From the project's context menu, select <b> Team &gt; Tag as Version</b>.</li>
-  <li>Enter the name of the version you wish to create.</li>
-  <li>Click <b>OK</b> to close the Tag Resources dialog and create the version.</li>
-</ol>
-
-<p><em>Tip:</em> You can browse existing versions of your project by clicking 
-  on the <b>Details</b> button in the Tag Resources dialog. Clicking <b>Refresh 
-  from Repository</b> should populate the Existing Versions list. It is sometimes 
-  helpful to see existing versions before naming your new version.
-</p>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-27.htm">Versions</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-17a.htm">Local history</a>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a><br>
-<a href="tasks-118.htm">Versioning projects in the repository</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-107b.htm">Enabling the CVS resource decorations</a> 
-</P>
-   
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100a.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-100a.htm
deleted file mode 100644
index 46349dd..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100a.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Branching</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Branching</H1>
-
-<P>Creating a branch and releasing resources to that branch is useful in cases 
-  where you are not yet ready to put your changes in the main development flow. 
-  It is also useful for creating incremental patches to existing versions.
-</P>
-
-<P>To create a branch:
-</P>
-
-<ol>
-  <li>From the context menu of the project, select <b>Team &gt; Branch</b>.</li>
-  <li>Enter the Branch Name for the new branch in the text area.</li>
-  <li>If the project in your workspace is not already a version, enter the Version 
-    Name to create in the text area.</li>
-  <li>If you would like to start working in the branch immediately, make sure 
-    the checkbox is selected.</li>
-  <li>Click <b>OK</b>.</li>
-</ol>
-
-<p><em>Note:</em> The Version Name is important; you will need this when you want 
-  to merge your changes later on. It identifies the point at which the branch 
-  was created.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-100b.htm">Merging from a branch</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-100b.htm
deleted file mode 100644
index 71fc25f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100b.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Merging from a branch</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Merging from a branch</H1>
-
-<P>After creating and working in a CVS branch for some time, you may want to merge 
-  your changes from the branch into another branch, or into HEAD. To do this, 
-  you will need to know:
-</P>
-
-<ol>
-  <li>The name of the branch or version that contains your changes.</li>
-  <li>The version from which the branch was created. This is the version name 
-    that you supplied when branching.</li>
-</ol>
-
-<p>To merge your changes:
-</p>
-
-<ol>
-  <li>Ensure that the destination is loaded into your workspace. For example, 
-    if you wish to merge your changes into HEAD, make sure the project is shared 
-    with HEAD in your workspace. To do this, select the project and choose <b>Replace 
-    With &gt; Another Branch or Version</b> from the context menu. Then select 
-    the branch to replace with.</li>
-  <li>Select the project and choose <b>Team &gt; Merge</b>.</li>
-  <li>Enter the start point of the merge. This is the version from which the branch 
-    was created. Click <b>Next</b>.</li>
-  <li>Enter the branch or version which contains the changes you want to merge. 
-    Click <b>Finish</b>.</li>
-  <li>A Merge editor will open, showing all differences between your workspace 
-    and the branch with the changes.</li>
-  <li>Load all of the desired changes into the workspace. This may be accomplished 
-    by either manually merging changes and then choosing <b>Save</b> from the 
-    text editor's context menu, or by choosing <b>Update from Repository</b>, 
-    <b>Override and Update</b>, or <b>Merge Changes Into Local Copy</b> from the 
-    tree's context menu.</li>
-  <li>After all desired changes are in the workspace, choose <b>Team &gt; Synchronize 
-    with Repository</b>. You may then commit all the changes to the repository.</li>
-</ol>
-<h3>Merge actions</h3>
-<p>The actions in the merge editor complement the manual merge toolbar actions 
-  that are available in the bottom half of the merge editor.</p>
-<table width="100%" border="0">
-  <tr> 
-    <td width="20%"><strong>Update from Repository</strong></td>
-    <td width="80%">This action is enabled on files that contain incoming changes. 
-      Running this action will bring the changes into the file in the workspace.</td>
-  </tr>
-  <tr> 
-    <td><strong>Override and Update</strong></td>
-    <td>This action is enabled on files with conflicting changes. Running this 
-      action will discard any local changes you have and replace the file with 
-      the remote contents.</td>
-  </tr>
-  <tr> 
-    <td><strong>Merge changes Into Local Copy</strong></td>
-    <td>This action is enabled on files with conflicting changes. Running this 
-      action will perform the equivalent of the &quot;cvs update&quot; command. 
-      This will merge the local contents with the remote contents using the base 
-      as the ancestor. Changes are merged regardless of the conflicting state 
-      of the files and can result in conflict markers (e.g. lines that can't be 
-      automatically merged) in the local file.</td>
-  </tr>
-</table>
-<p>&nbsp;</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-100a.htm">Branching</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-113.htm">Updating</a><br>
-<a href="tasks-114.htm">Committing</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-41a.htm">Merge wizard</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d.htm
deleted file mode 100644
index 322cb3c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Version control life cycle: adding and ignoring resources</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Version control life cycle: adding and ignoring resources</H1>
-
-<p>When committing resources, often there are resources that you do not want to 
-  store in the repository. For example, external editors might create temporary 
-  files in your project, compilation of .java files might create .class files, 
-  or some build operations might result in binary files. When put together, these 
-  generated files may be quite large. They may also be regenerated whenever 
-  a build is performed, resulting in many outgoing changes. Typically these are 
-  not files that one wants to persist in the repository or to share with other 
-  members of a team.
-</p>
-
-<p>Team CVS has two related tasks that allow you to control which files are stored 
-  in the repository: adding a resource to version control, and ignoring a resource. 
-</p>
-  
-<h2>Adding a file to version control</h2>
-
-<p>Team CVS does not automatically add files to version control. Rather, it's 
-  your choice to explicitly add files to version control. This is accomplished 
-  by selecting the <b>Team &gt; Add to Version Control</b> menu.
-</p>
-
-<p>When performed on a file, it will add that file to version control. The result 
-  is that the CVS repository immediately creates an entry so that it can 
-  start maintaining history state for that file. This occurs even before you commit 
-  the file to the repository.
-</p>
-
-<p>When adding a folder or project, the action will recursively descend into sub-folders, 
-  adding those files it finds to version control, provided the files have not 
-  been explicitly ignored. </p>
-
-<p><em>Tip:</em> When committing files, if the selection either directly or recursively 
-  contains files which have not been added to version control, you will be prompted 
-  whether or not you want them added. This is a convenience function to help ensure 
-  that you do not miss committing new resources which were unintentionally never 
-  added. </p>
-
-<h2><i>How may I ignore thee, let me count the ways</i></h2>
-
-<P>There are several facilities that allow you to specify which resources should 
-  be excluded from version control:
-</P>
-
-<ol>
-  <li>There is a global preference which you can use for ignoring files and directories 
-    that match a certain filename pattern. For example, if you create a global 
-    ignore for <samp>/bin</samp>, and any resource that matches &quot;bin&quot; 
-    in any directory in the workspace will be ignored for version control. This 
-    preference can be found in <b>Window &gt; Preferences &gt; Team &gt; Ignored Resources</b>.</li>
-  <li>Any resource marked as <i>derived</i> will be automatically ignored for 
-    version management by Team CVS. Some builders, such as the Java builder, mark 
-    all of its build output (e.g. .class files) as derived.</li>
-  <li>CVS supports the creation of a special <i>.cvsignore</i> file whose contents 
-    describe which files or folders to ignore for version management. The .cvsignore 
-    file only applies the pattern to resources in the <i> same</i> directory as 
-    the .cvsignore file itself.</li>
-</ol>
-
-<P><em>Tip</em>: Once a resource is under version control, it cannot easily be 
-  subsequently ignored. This is why adding to version control is an explicit operation 
-  performed by you the user.
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-100d1.htm">Creating a global ignore pattern</a><br>
-<a href="tasks-100d2.htm">Authoring the CVS .cvsignore file</a><br>
-<a href="tasks-114.htm">Committing</a><br>
-<a href="tasks-113.htm">Updating</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d1.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d1.htm
deleted file mode 100644
index c55429e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d1.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a global ignore pattern</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Creating a global ignore pattern</H1>
-
-<P>When synchronizing resources, often there are resources that you do not want 
-  to commit to the repository. The Workbench provides a global pattern matching 
-  facility for ignoring resources that can appear anywhere in your project hierarchy.
-</P>
-
-<ol>
-  <li>From the main menu bar, select <b>Window &gt; Preferences</b>.</li>
-  <li>In the left pane of the Preferences window, expand the <b>Team</b> category 
-    and select <b>Ignored Resources</b>. This displays a list of resource 
-    name patterns against which resources will be screened, before they are considered 
-    as candidates for version control.</li>
-  <li>Click the <b>Add</b> push button and type the pattern that you want to match, 
-    for example <samp>*.obj</samp>.</li>
-  <li>Click <b>OK</b>.</li>
-</ol>
-
-<p>All files with an extension that matches the pattern that you added will be 
-  excluded from version control.
-</p>
-
-<p>The patterns that you define may contain the wildcard characters * and ?. The 
-  asterisk represents any sequence of zero or more characters, the question mark 
-  represents a single character. For example, you can specify a pattern 
-  of <samp>*~</samp>, which would match any temporary files that end with a tilde 
-  (~). Any file or directory that matches any one of the patterns will be ignored 
-  when files are being considered for version control. You can temporarily disable 
-  ignoring the resource name pattern by deselecting it from the list. You do not 
-  have to remove the specified pattern from the list.
-</p>
-  
-<p>It is important to note that the path leading up to the resource name is not 
-  included in the matching. For example, for the file &quot;/path/to/file.txt&quot;, 
-  only the string &quot;file.txt&quot; is matched against the patterns.
-  This facility is not intended for specifying fully-qualified path names but 
-  for specifying globally applicable patterns.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-100d.htm">Version control life cycle: adding and ignoring resources</a><br>
-<a href="tasks-100d1b.htm">Overriding or removing resource ignore patterns</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d1b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d1b.htm
deleted file mode 100644
index 12d6c79..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d1b.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d2.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d2.htm
deleted file mode 100644
index d1c5ac9..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-100d2.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Authoring the CVS .cvsignore file</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Authoring the CVS .cvsignore file</H1>
-
-<P>When committing resources, often there are resources that you do not want to 
-  add to version control. One way you can do this is by using the CVS &quot;ignore&quot; 
-  facility, which reads the contents of the file <i>.cvsignore</i> to determine 
-  what to ignore.</P>
-
-<P>The <i>.cvsignore</i> file can be added to any directory of a project. Many 
-  existing CVS projects already contain several of these files. This text file 
-  consists of a list of files, directories, or patterns.
-</P>
-
-<P>For example, to add a .cvsignore file to ignore the entire bin directory of
-  an existing project:
-</P>
-
-<ol>
-  <li>In the Navigator view, select a project that contains a /bin directory. 
-    The bin directory will commonly contain the projects build output. These are 
-    files that are generated from the project's source files and are usually not 
-    version-controlled.</li>
-  <li>From the pop-up menu for the project, select <b> New &gt; File</b>.&nbsp;</li>
-  <li>Type <i>.</i><samp>cvsignore</samp> as the file name, then press <b>Finish</b>. 
-    The file will be created in your project's root directory. You should see 
-    it in the Navigator view.</li>
-  <li>Enter <samp>bin</samp> in the .cvsignore file and save it.</li>
-  <li>Select the project.&nbsp; From the context menu, select the <b> Team &gt; 
-    Synchronize with Repository</b> menu item.&nbsp; Notice that the bin directory 
-    does not show as an outgoing change. It is ignored.</li>
-</ol>
-
-<P>The cvsignore file consists of a list of files, directories, or patterns. 
-  In a similar way to the global ignore facility, the wildcards * and ? may be 
-  present in any entry in the .cvsignore file. Any file or sub-directory 
-  <i>in the current directory</i> that matches any one of the patterns will 
-  be ignored.
-</P>
-
-<p><b>Tip:</b> In the Team menu and in the Synchronize view resource context menu there is a menu item (<b>Add to .cvsignore</b>)
-for adding a file pattern
-to the appropriate .cvsignore file. This menu item is enabled for resources that are not yet under CVS version
-control.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-100d.htm">Version control life cycle: adding and ignoring resources</a><br>
-<a href="tasks-100d1.htm">Creating a global ignore pattern</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="http://www.cvshome.org/docs/manual/cvs_18.html#SEC175" target="_blank">www.cvshome.org: Ignoring files via cvsignore</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-101.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-101.htm
deleted file mode 100644
index 2d3f4ea..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-101.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Comparing resources with repository versions</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Comparing resources with repository versions</H1>
-
-<P>To compare Workbench resources with those in the repository:
-</p>
-
-<ol>
-  <li>Select a resource in the Navigator view.</li>
-  <li>From the resource's pop-up menu, select one of the following menu items: 
-    <ul>
-      <li><b>Compare With &gt; Latest From &lt;Branch Name&gt;</b> or <strong>&lt;Version&gt;</strong>- 
-        Compare the Workbench resource with the latest resources currently committed 
-        to the branch that the local project is shared with or if the local project 
-        is checked out as a version then compare against the version. A compare 
-        editor will be opened. This editor will display a tree of all resource 
-        differences between the workspace resource and the latest resources in 
-        the repository.</li>
-      <li><b>Compare With &gt; Another Branch or Version</b> - Compare the Workbench 
-        resource with a specific version or branch that you select in the repository. 
-        A compare editor will be opened. The editor will display a tree of all 
-        resource differences between the workspace resource and the resources 
-        in the specified version or branch.</li>
-      <li><b>Compare With &gt; Revision</b> - (available only on a file) Compare 
-        the Workbench file with another revision of the file. A compare editor 
-        will be opened. The editor will display a table of all available revisions 
-        of the selected file. Selecting one of the revisions will show the differences 
-        between the workspace revision and the selected revision. </li>
-    </ul>
-  </li>
-</ol>
-
-<P CLASS="Intro"><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-29.htm">Three way comparisons</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-<p>
-
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-68b.htm">Setting preferences for comparing files</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-25.htm">Compare editor</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-103.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-103.htm
deleted file mode 100644
index 2b195b5..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-103.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Replacing resources in the Workbench</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Replacing resources in the Workbench</H1>
-
-<p>To replace Workbench resources with versions in the repository:
-</p>
-
-<ol>
-  <li>Select a resource in the Navigator view.</li>
-  <li>From the resource's pop-up menu, select one of the following menu items: 
-    <UL>
-      <LI><b>Replace With &gt; Latest From &lt;Branch Name&gt;</b> or <strong>&lt;Version&gt;</strong> 
-        - replace the Workbench resource with the latest resources currently committed 
-        to the branch that the local project is shared with or if the local project 
-        is checked out as a version then replace with the same version.</LI>
-      <LI><b>Replace With &gt; Another Branch or Version</b> - replace the Workbench 
-        resource with a specific version or branch that you select in the repository. 
-        When you select this option, another window opens, so that you can browse 
-        through the branch and version tags in the repository and select the one 
-        that you want.</LI>
-      <LI><b>Replace With &gt; Revision</b> - (available only on a file) replace 
-        the Workbench file with another revision of the file. When you select 
-        this option, a dialog opens to allow you to select a revision from the 
-        list of available ones. A test window displays the comparison between 
-        the local revision and the selected remote revision.</LI>
-    </UL>
-  </li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-27.htm">Versions</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a><br>
-<a href="tasks-119.htm">Viewing a file's revision history</a><br>
-<a href="tasks-100a.htm">Branching</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-105.htm
deleted file mode 100644
index 8780340..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Changing CVS team settings</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Changing CVS team settings</H1>
-
-<P>You can customize the settings related to a number of CVS team views and operations.
-</p>
-
-<ol>
-  <li>From the main menu bar, select <b>Window &gt; Preferences</b>.</li>
-  <li>On the left side of the Preferences window, select the <b>Team</b> category.</li>
-  <li>You will see a number of general <b>Team</b> options. These options can 
-    be used by any Eclipse integrated repository. In our case, they are all applicable 
-    to CVS.</li>
-  <li>You will also see a <b>CVS</b> category. Select it. You will see various 
-    CVS options. If you expand the <b>CVS</b> category, you will see additional 
-    CVS preference pages.</li>
-</ol>
-
-<p>Here are some examples of settings that you can change in the <b>CVS</b> section:
-</p>
-
-<ul>
-  <li>To filter out receiving empty directories when updating or synchronizing, 
-    select the <b>Prune empty directories</b> toggle.</li>
-  <li>To automatically save the contents of modified editors prior to synchronize, 
-    commit, etc., choose <b>Auto-save</b>.</li>
-</ul>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-114.htm">Committing</a>
-</p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-19cvs.htm">CVS Preference pages</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105a.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-105a.htm
deleted file mode 100644
index d2a0256..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105a.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Restoring deleted files from the repository</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Restoring deleted files from the repository</H1>
-
-<P>The CVS plug-in allows you to delete files from the CVS repository. If you delete a managed file and commit the deletion to the server, the file is deleted from the current branch or version. Although the file has been deleted from the current branch, the file and it's previous revisions are actually still on the server. The CVS plug-in provides a tool to help restore a file to your workspace that has previously been deleted from the CVS repository:</p>
-
-<ol>
-  <li>Select a folder managed by CVS and from the context menu select <strong>Team 
-    &gt; Restore from Repository</strong>. 
-  <li>The repository will be searched for deleted files and the list will be shown 
-    in a dialog. 
-  <li>Select a file in the left most pane to display the revisions of the file 
-    that are available in the repository.
-  <li>Select a revision in the right-most pane to view the contents in the bottom 
-    text pane.
-  <li>Check the revision that you would like to restore. 
-  <li>Click <strong>Finish</strong> once you have checked off a revision for each 
-    file you wish to restore.
-  <li>After restoring the file if you want to actually restore the file to the 
-    current branch you have to add then commit the file back into the repository. 
-    If the filename does not change, revision history will be maintained for the 
-    restored file. 
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-114.htm">Committing</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-105b.htm
deleted file mode 100644
index e015cf3..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105b.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Reverting a branch to a previous version</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Reverting a branch to a previous version</H1>
-<p>
-It is often useful to revert the contents of a branch to those of a specific version. For example, if your current branch contains changes that you no longer want to release you can revert all or a portion of a project to the contents of any version.</p>
-
-<ol>
-  <li>Checkout into your workspace the contents from the branch that you want 
-    to revert. </li>
-  <li>Select <strong>Compare With &gt; Another Branch or Version</strong> on the 
-    resource(s) that you want to revert. </li>
-  <li>From the tag selection dialog box select the version to which you want to 
-    revert the branch.</li>
-  <li>When the compare editor opens, review the differences that are shown and 
-    ensure that they are what you expected. </li>
-  <br>
-  <br>
-  <i>Tip</i>: If several files report as false differences (e.g. the files are 
-  shown but there are no actual changes in the files) select the <img src="../images/team_contents_icon.gif" alt="" border="0" width="16" height="16"> 
-  <strong>Use File Contents</strong> toolbar button to recomputed the comparison 
-  using file contents instead of revision numbers.<br>
-  <br>
-  <li>Select the root folder in the compare view and from the context menu select 
-    <strong>Copy All Changes From Right To Left</strong>. After the operation 
-    is completed the folder or project you compared against will have exactly 
-    the same contents as the remote revision. </li>
-  <li>You can verify this by performing another comparison against the version. 
-    However this time, when the comparison completes select the <img src="../images/team_contents_icon.gif" alt="" border="0" width="16" height="16"> 
-    <strong>Use File Contents</strong> toolbar button to redo the comparison using 
-    file contents instead of revision numbers. <i>Note</i>: you may also have 
-    to select the <strong>Ignore White Space</strong> button too. </li>
-  <li>After the comparison using file contents completes the compare editor should 
-    be empty. Meaning that the files in your workspace are identical to the ones 
-    in the selected version.</li>
-</ol>
-<p CLASS="Head">Once your workspace contains the new contents, run your tests 
-  then commit the changes to the branch.</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-114.htm">Committing</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105c.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-105c.htm
deleted file mode 100644
index 2c00bf5..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-105c.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Moving version tags</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Moving version tags</H1>
-<p>Warning: Although many people would prefer a CVS version to be frozen in time and not be modifiable, version and branch tags in CVS are mutable. As a result many are convinced that modifying a version is bad practice, but there are a couple of scenarios where it actually comes in handy. With that said, please be cautious when moving tags around.</p>
-<h3>Moving a tag on a single file</h3>
-<p>Let's say that you have just submitted your build by versioning your project 
-  as R1. But you soon after discover that there is a small change to a file that 
-  should be made and included in the build. Instead of having to re-version the 
-  project you can move the R1 version tag for the modified file.</p>
-<ol>
-  <li>Modify the file(s) Select the file that was modified after R1 was created 
-    and from the context menu select <strong>Team &gt; Show in Resource History</strong>.</li>
-  <li>From within the Resource History view select the revision that should be 
-    marked with the R1 version. </li>
-  <li>From the context menu select <strong>Tag with Existing...</strong>.</li>
-  <li>Select the R1 version from the dialog box and press OK. </li>
-  <li>The resource history view will be updated to confirm that the version had 
-    been moved.</li>
-</ol>
-<h3>Moving a tag from within the repositories view</h3>
-Many projects use a well defined version name for their current stable lineup in HEAD. For example, by versioning HEAD with the STABLE tag the build scripts could simply checkout the STABLE version for builds. As the code evolves the STABLE tag is moved regularly to mark the most current stable lineup. The repositories view provides an action for moving an existing tag.
-</p>
-<ol>
-<li>Open the Repositories view and select a resource.
-<li>From the context menu select <b>Tag with Existing</b> 
-<li>A tag selection dialog will appear from which you can select the tag to move. If the tag you wish to apply is not show in the list, you can click <b>Refresh from Repository</b>. If this doesn't find the tag, you can click <b>Configure Tags</b> which opens a dialog that allows you to search for tags on specific files in the repository.
-<li>Then press <b>OK</b> and your tag will be moved. The operation will move an existing tag to the selected resources and can be used to move both version and branch tags.
-</ol>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-114.htm">Committing</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-107b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-107b.htm
deleted file mode 100644
index 1b1d5e4..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-107b.htm
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Enabling the CVS resource decorations</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Enabling the CVS resource decorations</H1>
-
-<P>When enabled, CVS will decorate resources in Workbench views with icon and 
-label decorations that indicate the CVS state of the resource.
-</P>
-
-<P>To enable the CVS decorations:
-</P>
-
-<ol>
-  <li>From the main menu bar, select <b>Window &gt; Preferences</b> to open the 
-    Workbench Preferences dialog.</li>
-  <li>In the dialog, select the<b> Workbench &gt; Label Decorations</b> preference 
-    page. This page allows the enabling and disabling of all decorations defined 
-    by different plug-ins in the Workbench.</li>
-  <li>Click on the CVS box to enable the CVS decorations.</li>
-  <li> Click <b>OK</b>.</li>
-</ol>
-
-<p><em>Note:</em> In some cases, the decorations may not appear immediately due 
-  to the fact that they are expensive to compute. In those cases, they are calculated 
-  in the background. </p>
-
-<p>To configure the CVS decorations:
-</p>
-
-<ol>
-  <li>From the main menu bar, select <b>Window &gt; Preferences</b> to open the 
-    Workbench Preferences dialog.</li>
-  <li>In the dialog, select the<b> Team &gt; CVS &gt; Label Decorations</b> preference 
-    page. This page allows the configuration of how decorations appear on CVS 
-    projects, folders and files.</li>
-  <li>To configure the text label decorations click the <strong>Text</strong> 
-    tab and then: 
-    <ol type="a">
-      <li>Pick the resource type (file, folder, project) for which you want to 
-        change the decoration.</li>
-      <li>Click in the decoration string for that resource type at the location 
-        where the new decoration element should go.</li>
-      <li>Click the <b>Add Variables</b> button for that resource type.</li>
-      <li>Choose the CVS information variable to add. For instance, for files 
-        you could select the <i>added_flag</i> which will be inserted in the decoration 
-        where you placed the cursor. The string <i>{added_flag}</i> will be added 
-        to the decoration string which will decorate newly added resources using 
-        the added resource label (which can be set in the <i>Label Decoration 
-        for Added</i> field).</li>
-    </ol>
-  </li>
-  <li>Repeat the above for any other decorations to be added.</li>
-  <li>Decorations can be removed by deleting the decoration variable name (i.e.<i> 
-    {added_flag}</i>) from the decoration string. In a similar manner, spacing 
-    can be added.</li>
-  <li>To configure icon decorations, click the <strong>Icon</strong> tab simply 
-    enable/disable the icon checkboxes.</li>
-  <li>Click <b>OK</b> or <b>Apply</b> for the new decorations to take effect.</li>
-</ol>
-
-<p><em>Note</em>: Under the <strong>General</strong> tab is an option to disable 
-  the deep dirty decoration of folders. This will make decorator determination 
-  more efficient but will make it harder to find dirty resources in the Navigator 
-  and other views. Under the <strong>Synchronize View</strong> tab, the Synchronize 
-  view can be configured to show the synchronization state of a resource as part 
-  of the text label displayed in the Structure Compare pane.</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-  <a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-  <a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a> 
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-cvs-decorations.htm">CVS Label Decorations</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-110.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-110.htm
deleted file mode 100644
index 6e5bb59..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-110.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Discovering branch and version tags</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Discovering branch and version tags</H1>
-
-<p><em>Prerequisite:</em>Before you can discover the branch and version tags for 
-  a repository, you must have a valid repository location in the CVS Repositories 
-  view. </p>
-<P>To discover existing branch tags for multiple folders in a single repository 
-  location:</p>
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, select a repository location.</li>
-  <li>From the pop-up menu for the CVS Repositories view, select <b>Refresh Branches</b>. 
-    The Refresh Branches dialog will open.</li>
-  <li>In the folder list, select the folders whose tags you would like to refresh. 
-    Alternatively, at the bottom of the dialog, you can choose a working set and 
-    all remote folders whose names match the name of a project in the working 
-    set will become checked.</li>
-  <li>Click <b>Finish</b> to discovered the tags for the checked projects. These 
-    tags will be added to the repositories view. </li>
-</ol>
-<P><em>Note:</em> This operation may be long running especially if the number 
-  of selected folders is large. </p>
-<P><em>Tip</em>: If the above operation does not result in the discovery of any 
-  tags, it is probable that the folder in the repository does not have a .project 
-  file in it. The .project file is the default file used by the tag discovery 
-  process. The file can be changed for individual projects using <strong>Configure 
-  Branches and Versions</strong> (see below).</p>
-<P>To discover existing branch and version tags for a single project folder: </p>
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, expand the repository location.</li>
-  <li>Expand <strong>HEAD</strong> and select the root folder whose tags are to 
-    be discovered.</li>
-  <li>From the pop-up menu for the CVS Repositories view, select <b>Configure 
-    Branches and Versions</b>. The Tag Configuration dialog will open.</li>
-  <li>In the top pane on the left (titled <i>Browse files for tags</i>), expand 
-    one or more projects to find a file that is known to have tags that should 
-    be added to the CVS Repositories view.</li>
-  <li>Select a file in the left top pane. If the file selected has tags defined 
-    on it, they will be displayed in the right top pane (titled <i>New tags found 
-    in selected files</i>).</li>
-  <li>Check or uncheck the tags in the right pane as desired.</li>
-  <li>Click <b>Add Checked Tags</b> to add the checked tags to the list of remembered 
-    tags.</li>
-  <li>Click <b>OK</b> to add the remembered tags to the selected repository location 
-    or project.</li>
-</ol>
-<p><em>Note</em>: You can also set the auto-refresh files by selecting a file 
-  in the files pane and clicking<strong> Add Selected Files</strong> in the lower 
-  right hand portion of the dialog. </p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-27.htm">Versions</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-113.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-113.htm
deleted file mode 100644
index 00fa682..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-113.htm
+++ /dev/null
@@ -1,158 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Updating</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Updating</H1>
-
-<P>While you are working on a project in the Workbench, other members of your 
-  team may be committing changes to the copy of the project in the repository. 
-  To get these changes, you may &quot;update&quot; your Workbench to match the 
-  state of the branch. The changes you will see will be specific to the branch 
-  that your Workbench project is configured to share. You control when you choose 
-  to update.
-</P>
-
-<p>The update command can be issued from two places: the <b>Team &gt; Update</b> 
-  menu, or the <b>Synchronize</b> view. In order to understand the difference 
-  between these two commands, it is important to know about the three different 
-  kinds of incoming changes.
-</p>
-
-<ul>
-  <li>A <i>non-conflicting</i> change occurs when a file has been changed remotely 
-    but has not been modified locally.</li>
-  <li>An <i>automergable conflicting</i> change occurs when an ASCII file has 
-    been changed both remotely and locally (i.e. has non-committed local changes) 
-    but the changes are on different lines.</li>
-  <li>A <i>non-automergable conflicting</i> change occurs when one or more of 
-    the same lines of an ASCII file or when a binary file has been changed both 
-    remotely and locally (binary files are never automergable).</li>
-</ul>
-
-<p>When you select <b>Team &gt; Update</b>, the contents of the local resources 
-  will be updated with incoming changes of all of the above three types. For non-conflicting 
-  and automergable conflicts, there is no additional action required (for automergable 
-  conflicts, the changed local resource is moved to a file prefixed with &quot;.#&quot; 
-  just in case the automerge wasn't what the user wanted). However, for non-automergable 
-  conflicts, the conflicts are either merged into the local resource using special 
-  CVS specific markup text (for ASCII files) or the changed local resource is 
-  moved to a file prefixed with &quot;.#&quot; (for binary files). This matches 
-  the CVS command line behavior but can be problematic when combined with the Eclipse 
-  auto-build mechanism. Also, it is often desirable to know what incoming changes 
-  there are before updating any local resources. These issues are addressed by 
-  the Synchronize view.
-</p>
-
-<p>To open the Synchronize view in incoming mode:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the resources which you want to update.</li>
-  <li>From the pop-up menu for the selected resources, select <b>Team &gt; Synchronize 
-    with Repository</b>. The Synchronize view will open.</li>
-  <li>On the toolbar of the Synchronize View, click the <b> incoming mode</b> 
-    button to filter out any modified Workbench resources (outgoing changes) that 
-    you may have.</li>
-</ol>
-
-<p>In incoming mode, you will see changes that have been committed to the branch 
-  since you last updated. The view will indicate the type of each incoming change 
-  (non-conflict, automergable conflict or non-automergable conflict). There are 
-  two update commands (available from the context menu of any resource in the 
-  view) to deal with the different types of conflicts: <b>Update from Repository</b> 
-  and <b>Override and Update</b>. When you select the <b>Update from Repository</b> 
-  command in the Synchronize view, only non-conflicting changes are processed, 
-  leaving any files that have automergable or non-automergable conflicts in the 
-  view (any files that have been successfully processed are removed from the view). 
-  The <b>Override and Update</b> command operates on the two types of conflicts. 
-  After selecting this command, you will be prompted before a merge is attempted 
-  and asked if you want to auto merge the contents or overwrite them with the 
-  repository file. If you select to auto merge then only automergable conflicts 
-  will be processed and the incoming changes will be automerged with the local 
-  changes. Otherwise all conflicts will be processed and the local resources will 
-  be replaced with the remote contents. This &quot;replace&quot; behavior is rarely 
-  what is desired. An alternative is described later.
-</p>
-
-<p>To update non-conflicting and automergable files:</p>
-<ol>
-  <li>The Structure Compare pane at the top of the Synchronize view contains the 
-    hierarchy of resources with incoming changes.</li>
-  <li>Select the non-conflicting files and choose <b>Update from Repository</b> 
-    from the pop-up menu. This will update the selected resources and remove them 
-    from the view.</li>
-  <li>Select the automergable conflicts and choose <b>Override and Update</b> 
-    from the pop-up menu. Select to only update automergable resources and click OK when prompted.
-    This will update the selected resources and remove them 
-    from the view.</li>
-</ol>
-
-<p>If your local Workbench contains any outgoing changes that are not automergable 
-  with incoming changes from the branch, then, instead of performing an <b>Override 
-  and Update</b>, you can merge the differences into your Workbench manually, 
-  as follows:
-</p>
-
-<ol>
-  <li>In the Structure Compare pane, if there is a conflict in the resource list 
-    (represented by red arrows), select it.</li>
-  <li>In the Text Compare area of the Synchronize view, local Workbench data is 
-    represented on the left, and repository branch data is represented on the 
-    right. Examine the differences between the two.</li>
-  <li>Use the text compare area to merge any changes. You can copy changes from 
-    the repository revision of the file to the Workbench copy of the file and 
-    save the merged Workbench file (using the pop-up menu in the left pane).</li>
-  <li>Once you are completed merging the remote changes into a local file, choose 
-    <b>Mark as Merged</b> from the pop-up menu. This will mark the local file as 
-    having been updated and allow your changes to be committed.</li>
-</ol>
-
-<p><em>Note:</em> The repository contents are not changed when you update. When 
-  you accept incoming changes, these changes are applied to your Workbench. The 
-  repository is only changed when you commit your outgoing changes.
-</p>
-
-<p><em>Tip:</em> In the Structure Compare pane, selecting an ancestor of a set 
-  of incoming changes will perform the operation on all the appropriate children. 
-  For instance, selecting the top-most folder and choosing <b>Update from Repository</b> 
-  will process all non-conflicting incoming changes and leave all other incoming 
-  changes unprocessed.
-</p>
-
-<p><em>Warning:</em> The behavior of the <b>Override and Update</b> command described 
-  above only applies to the incoming mode of the Synchronize view. In the <b>incoming/outgoing 
-  mode</b> of the view, the behavior for incoming changes and conflicts is the 
-  same but the command will revert outgoing changes to whatever the repository 
-  contents are. Exercise great caution if using this command in incoming/outgoing 
-  mode.
-</p>
-
-<p CLASS="Intro"><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-114.htm">Committing</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-68.htm">Comparing resources</a><br>
-<a href="tasks-100d.htm">Version control life cycle: adding and ignoring resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-33.htm">Synchronize view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-113b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-113b.htm
deleted file mode 100644
index 8795eec..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-113b.htm
+++ /dev/null
@@ -1,120 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Resolving conflicts</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Resolving conflicts</H1>
-
-<P>When updating or committing you may encounter conflicts. A conflict occurs 
-  when you have locally modified a resource for which a more recent revision is 
-  available in the branch in the repository. Specifically, the branch will contain 
-  a revision newer than the base revision of your resource. In this situation 
-  you can choose to do one of the following:
-</P>
-
-<ul>
-  <li>You can take the change from the branch, discarding your local work. This 
-    could occur if you have made unintended changes locally, or if you realize 
-    that the revision in the repository is better than yours. Overwriting your 
-    local changes should be done with caution since you are in essence throwing 
-    work out.</li>
-  <li>You can commit your change, subsuming the revision in the repository. This 
-    should be done with great caution since you are in essence throwing away someone 
-    else's work. In particular, the change you are overwriting may have other 
-    dependencies in the branch (for example there may be other incoming changes 
-    which depend on the conflict).</li>
-  <li>You can merge your work and the repository resource, saving locally the 
-    merged resource. You may then later choose to commit this merged result.</li>
-</ul>
-
-<P>Typically, you will want to take the third option, that is to merge, because 
-  of the loss of work issues with the other two choices.
-</P>
-
-<h2><a name="MergingChanges">Manually merging changes</a></h2>
-
-<P>The Synchronize View indicates those resources which are in conflict with the 
-  branch. For a given resource in conflict, typically you will want to merge your 
-  changes with changes in the branch's resource.
-</P>
-
-<P CLASS="Para">For example, let us assume that both you and another team member 
-  have modified the same html page. Selecting that resource in the Synchronize 
-  view will display a comparison of the local resource and the branch revision. 
-  By cycling through and merging the individual changes, you can decide for each 
-  change whether to accept the incoming change, reject it, or merge it with your 
-  local changes. When you are finished merging, you save your changes. This 
-  overwrites your local resource with the result of the merge. You can subsequently 
-  commit this merged resource.
-</P>
-
-<P><em>Tip:</em> When merging changes, it is often convenient to be able to distinguish 
-  which files you have completed merging. When you're done merging a file, you 
-  can pick <b>Mark as Merged</b> from the context menu. This will change the status 
-  of the file from being a conflict to being an outgoing change.
-</P>
-
-<P>You can merge differences in the Synchronization view on two levels:
-</P>
-
-<ul>
-  <li><b>Whole Document</b> - In the Structure Compare editor, select the resource 
-    that you want to merge, so that the resource is displayed in the Text Compare 
-    editor. In the Text Compare editor, click the Copy whole document from right 
-    to left button to entirely replace the text in your local editor with the 
-    contents of the branch resource.</li>
-  <li><b>Current Change</b> - In the Text Compare editor, either use the Go to 
-    Next Difference and Go to Previous Difference buttons to navigate to the change 
-    that you want to merge, or simply click in either source pane somewhere in 
-    the desired change difference fragment. Click the Copy current change from 
-    right to left button as needed to overwrite the highlighted fragment either 
-    with the corresponding modification in the branch.</li>
-</ul>
-
-<h2><a name="AutoMergingChanges">Auto merging changes</a></h2>
-
-<p>It is also possible to have your changes automatically merged for you. For 
-  any resource marked as ASCII, performing a <b>Team &gt; Update</b> will automatically 
-  merge into your local resource differences with the branch resource. This works 
-  fine provided there are no lines with conflicting changes. If there are, CVS 
-  inserts special markup in the file to indicate those lines which could not be 
-  merged.
-</p>
-
-<p>Updating from within the Synchronization view works a bit differently. In the 
-  case of a conflict, updating will prompt you to either merge in the changes 
-  or replace the entire file contents with those of the remote.
-</p>
-
-<P>&nbsp;<img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a><br>
-<a href="../concepts/concepts-29.htm">Three way comparisons</a>
-</P>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-113.htm">Updating</a><br>
-<a href="tasks-114.htm">Committing</a><br>
-<a href="tasks-100b.htm">Merging from a branch</a><br>
-<a href="tasks-68.htm">Comparing resources</a><br>
-<a href="tasks-68dg.htm">Merging changes in the Compare editor</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="http://www.cvshome.org/docs/manual/cvs_10.html#SEC85" target="_blank">www.cvshome.org: Bringing a file up to date</a><br>
-<a href="http://www.cvshome.org/docs/manual/cvs_10.html#SEC86" target="_blank">www.cvshome.org: Conflicts example</a>
-<br><a href="../reference/ref-25.htm">Compare editor</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-114.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-114.htm
deleted file mode 100644
index a1a8995..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-114.htm
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Committing</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Committing</H1>
-
-<P>You can commit Workbench resources that you have modified to the repository 
-  so that other team members can see your work. Only those changes committed on 
-  that branch will be visible to others working on that branch. The commit command 
-  can be issued from two places: the <b>Team &gt; Commit</b> menu, or the <b>Synchronize</b>
-  view.
-</p>
-
-<P>To commit changes using <b>Team &gt; Commit</b>:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the resources that you want to commit.</li>
-  <li>Right-click on the resources and select <b>Team &gt; Commit</b> from the pop-up menu.</li>
-  <li>In the Commit Comment dialog box, provide a comment for your changes (for 
-    example, <samp>Fixed the spelling mistakes</samp>).</li>
-</ol>
-
-<P>If there are conflicting changes on any files that are committed in the above 
-  fashion, the operation will fail. If this occurs, you must either perform an 
-  update or use the Synchronize view to resolve the conflicts. It is considered 
-  a more ideal workflow to always update before committing in order to ensure 
-  that you have the latest state of the repository before committing more changes. 
-</p>
-<P>If one or more of the resources being committed are new and not yet added to 
-  CVS control, you will be prompted to add these resources before the commit is 
-  performed. You can choose to add all, some or none of the new resources to CVS 
-  control before performing the commit. Any resources that are not under CVS control 
-  will not be committed. Committing from the Synchronize view also prompts if 
-  there are new resources.</p>
-<P>To commit changes in the Synchronize view:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the resources that you want to commit.</li>
-  <li>Right-click to open the pop-up menu and select <b> Team &gt; Synchronize 
-    with Repository</b>. The Synchronize view will open.</li>
-  <li>On the toolbar of the Synchronize view, select the <b>outgoing mode</b> 
-    button to show any modified Workbench resources (outgoing changes) that you 
-    may have.</li>
-  <li>If there are conflicts (red arrows), resolve them. Use the text compare 
-    area to merge resources with conflicts. You can copy changes from the 
-    repository revision of the file to the Workbench revision of the file and 
-    save the merged Workbench resource. Once all the conflicts in the Structure 
-    Compare area have been resolved, you are ready to commit.</li>
-  <li>In the Structure Compare pane, right-click the top of the hierarchy that 
-    you want to commit, and select <b>Commit</b> from the pop-up menu.</li>
-  <li>In the Commit Comment dialog box, provide a comment for your changes 
-    (for example, <samp>Fixed the spelling mistakes</samp>).</li>
-</ol>
-
-<P><em>Tip:</em> You can commit files that are in conflict by performing an <b>Override 
-  and Commit</b>. This will commit the Workbench copy of the resource into the 
-  repository and thus remove any of the incoming changes.
-</p>
-
-<P><em>Warning:</em> The behavior of the <b>Override and Commit</b> command described 
-  above only applies to the outgoing mode of the Synchronize view. In the <b>incoming/outgoing 
-  mode</b> of the view, the behavior for outgoing changes and conflicts is the 
-  same but the command will revert incoming changes to whatever the local Workbench 
-  contents are. Exercise great caution if using this command in incoming/outgoing 
-  mode.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-113.htm">Updating</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-68.htm">Comparing resources</a><br>
-<a href="tasks-100d.htm">Version control life cycle: adding and ignoring resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-33.htm">Synchronize view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-115.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-115.htm
deleted file mode 100644
index eb533f9..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-115.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Synchronizing with the repository</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Synchronizing with the repository</H1>
-
-<h3>Method 1: Using the context menu</h3>
-<p>To synchronize resources in the Workbench with those in the repository: </p>
-
-<ol>
-  <li>In the Navigator view, select the resources that you want to synchronize.</li>
-  <li>Right click and select <b>Team &gt; Synchronize with Repository</b>. The 
-    Synchronize view opens.</li>
-</ol>
-<h3>Method 2: Using the synchronize action</h3>
-<ol>
-  <li> From the CVS Repository Exploring perspective select the <img src="../images/cvs_synch.gif" alt="" border="0" width="16" height="16"> 
-    <strong>Synchronize CVS projects</strong> button. </li>
-  <li>Select to either include all projects that are shared with CVS or specify 
-    a working set. Then select <strong>OK.</strong></li>
-  <li>The Synchronize view will open.</li>
-</ol>
-<p> Note: The synchronize action is not enabled by default in other non-CVS specific 
-  perspectives. You can enable the action to appear in your current perspective 
-  by selecting <strong>Window &gt; Customize Perspective</strong>. Then enable 
-  the CVS item via <strong>Other > CVS</strong>.</p>
-<h3>From within the synchronize view</h3>
-<ol>
-  <li>Use the toolbar buttons to switch modes for this view. There are three modes: 
-    <ul>
-      <li>Incoming mode - shows incoming changes only (resources in the repository 
-        that differ from what is in the Workbench).</li>
-      <li>Outgoing mode - shows outgoing changes only (resources modified in the 
-        Workbench).</li>
-      <li>Incoming/Outgoing mode - shows both incoming and outgoing changes.</li>
-    </ul>
-    <p><em>Important:</em> It is preferable to update resources in the Workbench 
-      first, resolve any conflicts that exist by merging, then commit Workbench 
-      resources to the repository.</li>
-  <li>It is possible that someone has committed a new revision of your file since 
-    you started working on it. This will result in a <em>conflict</em>, and care 
-    must be taken to resolve this. To see only conflicts, click the <b> Show Only 
-    Conflicts</b> button on the view's toolbar.</li>
-</ol>
-
-<p>The resources displayed in the Structure Compare area will depend 
-on which mode is used in the Synchronize view. In the Text Compare area, the 
-Workbench resource is on the left side, and the repository resource is on the 
-right side.</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a><br>
-<a href="../concepts/concepts-29.htm">Three way comparisons</a></p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-114.htm">Committing</a><br>
-<a href="tasks-113.htm">Updating</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-68.htm">Comparing resources</a><br>
-<a href="tasks-68dg.htm">Merging changes in the Compare editor</a><br>
-<a href="tasks-100b.htm">Merging from a branch</a><br>
-<a href="tasks-100d.htm">Version control life cycle: adding and ignoring resources</a><br>
-<a href="tasks-103.htm">Replacing resources in the Workbench</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-33.htm">Synchronize view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-117.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-117.htm
deleted file mode 100644
index 2c97d60..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-117.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Sharing a new project using CVS</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Sharing a new project using CVS</H1>
-
-<P>There are several scenarios that can occur when sharing a project using CVS. 
-The most common scenario is sharing a new project using CVS when the project 
-does not already exist remotely.
-</P>
-  
-<P>To share a new project using CVS:
-</P>
-
-<ol>
-  <li>In the Navigator view, select the project to be shared.</li>
-  <li>Select <b>Team &gt;</b> <b>Share Project...</b> from the project's 
-    pop-up menu. The Share Project wizard opens.</li>
-  <li>From the list of available repository providers, choose <b>CVS</b> and click 
-    <b>Next </b>to go to the next page. <b>(Note</b>: If there is only one repository 
-    provider available, the first page will be skipped and next page will be displayed 
-    automatically.)</li>
-  <li>Select the target repository from the list of known repositories or, if 
-    the target repository is not in this list, choose to create a new repository 
-    location and click <b>Next</b>.</li>
-  <li>If entering a new repository location, enter the repository information 
-    and click <b>Next</b> when completed. <b>(Note</b>: this page is the same format 
-    as the <a href="tasks-92.htm">Creating a CVS repository location</a> wizard.)</li>
-  <li>(Optional) Either choose to use the name of the local project as the remote 
-    project name or enter another name.</li>
-  <li>Click <b>Finish</b> to share the project with the repository. The project 
-    folder will be created remotely and the Synchronize view will open and allow 
-    the committing of the project's resources. <b>(Note</b>: If the project already 
-    exists remotely, the Synchronize view will show conflicts on any files that 
-    exist both locally and remotely.)</li>
-</ol>
-
-<p><h4>Consequences for Linked Resources</h4>
-As mentioned in <a href="../concepts/concepts-13.htm">Linked resources</a>, different
-providers may handle linked resources differently.  For Team CVS, linked resources
-are allowed but ignored.  Specifically, projects which contain linked resources can be shared with CVS,
-but the linked resources themselves cannot be version controlled.
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-117a.htm">Project checked out with another CVS tool</a><br>
-<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
-<a href="tasks-103.htm">Replacing resources in the Workbench</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-117a.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-117a.htm
deleted file mode 100644
index b653e0b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-117a.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Project checked out with another CVS tool</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Project checked out with another CVS tool</H1>
-
-<P CLASS="Para">It is possible to use a CVS project checked out using another 
-  CVS tool into Eclipse. A common concern for those migrating to Eclipse is that 
-  they already have their CVS project checked out on their local machine. You 
-  <em>don't</em> have to check out the contents again to create a project in Eclipse. 
-  Although the project already contains the CVS sharing information in the CVS 
-  folders, it still needs to be shared within Eclipse in order to enable the CVS 
-  Team menu operations.</P>
-
-<P>To share an CVS project that was already checked out:: </P>
-
-<ol>
-  <li>In the Navigator view, select the project to be shared.</li>
-  <li>Select <b>Team &gt;</b> <b>Share Project...</b> from the project's 
-    pop-up menu. The Share Project wizard opens.</li>
-  <li>From the list of available repository providers, choose <b>CVS</b> and click 
-    <b>Next </b>to go to the next page. <b>Note</b>: If there is only one repository 
-    provider available, the first page will be skipped and next page will be displayed 
-    automatically.</li>
-  <li>The next page displays the sharing information stored in the CVS folder 
-    of the project. Click <strong>Finish</strong> to share the project and enable 
-    the CVS Team menu operations.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-117b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-117b.htm
deleted file mode 100644
index 8245ad2..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-117b.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Changing the sharing of a project</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Changing the sharing of a project</H1>
-
-<P>If a project is shared with a CVS repository location, you can change the 
-sharing information so it is shared with a different repository location. The
-new location must map to the same repository but can have a different 
-connection method and/or user name.
-</p>
-
-<P>To change the sharing of a project:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the project whose sharing information is to be changed.</li>
-  <li>Select <b>Properties</b> from the pop-up menu. The properties dialog will open.</li>
-  <li>Select <b>CVS</b> to see the CVS properties page for the project.</li>
-  <li>Click <b>Change Sharing...</b>. A repository selection dialog opens containing
-  only the compatible repository locations.</li>
-  <li>Select the desired location and click <b>OK</b> to change the sharing for the project.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-95.htm">Changing the properties of a CVS Repository Location</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-118.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-118.htm
deleted file mode 100644
index d1a126c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-118.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Versioning projects in the repository</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Versioning projects in the repository</H1>
-
-<P> You can version a project in the repository without adding the project to 
-  the Workbench.
-</P>
-
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, expand a repository location and find the 
-    project you wish to version.</li>
-  <li>Right-click on the project and select <b>Tag as Version</b>.</li>
-  <li>Enter the name of the version you wish to create.</li>
-  <li>Click <b>OK</b> to close the dialog and create the version.</li>
-</ol>
-
-<p><em>Tip:</em> You can browse existing versions of your project by clicking 
-  on the <b>Details</b> button in the Tag Resources dialog. Clicking <b>Refresh 
-  from Repository</b> should populate the Existing Versions list. It is sometimes 
-  helpful to see existing versions before naming your new version.
-</p>
-
-<p><em>Tip:</em> If the version tag you wish to apply already exists on some of 
-  the resources to be versioned, you can perform a <b>Tag with Existing</b> instead. 
-  This operation will move an existing tag to the selected resources and can be 
-  used to move both version and branch tags. If the tag you wish to apply is not 
-  show in the list, you can click <b>Refresh from Repository</b>. If this doesn't 
-  find the tag, you can click <b>Configure Tags</b> which opens a dialog that 
-  allows you to search for tags on specific files in the repository.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-27b.htm">Branches</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-100.htm">Creating a version of a project</a><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a><br>
-<a href="tasks-119.htm">Viewing a file's revision history</a><br>
-<a href="tasks-100a.htm">Branching</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-119.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-119.htm
deleted file mode 100644
index 97c5ea5..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-119.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Viewing a file's revision history</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Viewing a file's revision history</H1>
-
-<P>Every time you commit a file to the CVS repository, a new revision is created. 
-  Each revision is identified by a number (for example, 1.1 or 1.11.3.5). Along 
-  with each revision is stored the author, the date, and a commit comment.
-</P>
-
-<P>To view the resource history for a file:
-</P>
-
-<ol>
-  <li>Select the file in the Navigator view. From the context menu, choose <b>Team 
-    &gt; Show in Resource History</b>.</li>
-  <li>The CVS Resource History view will open and show a history for the selected 
-    file.</li>
-</ol>
-
-<p><em>Note:</em> The CVS Resource History view also shows you all version and branch 
-  tags that are associated with the file.
-</p>
-
-<p><em>Tip:</em> You can drag and drop a file from the Navigator view into the CVS 
-  Resource History view instead of choosing the menu item.
-</p>
-
-<p><em>Tip:</em> By clicking on column headings in the CVS Resource History view 
-  you can change the sorting order of the items.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-32a.htm">CVS Resource History view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-14.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-14.htm
deleted file mode 100644
index acd712e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-14.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Changing build order</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Changing build order</H1>
-
-<p>By default, the Workbench computes the build order by interpreting project 
-references as prerequisite relationships. Alternatively, you can explicitly 
-define the order in which projects are built.
-</p>
-
-<p>The Build Order preference page allows you to disable the <b>Use default build 
-order</b> option so that you can access the projects list and manipulate 
-the order of it.
-</p>
-
-<p>To define the order in which the Workbench performs builds projects:
-</p>
-
-<ol>
-  <li>Click <b>Window </b> &gt; <b>Preferences</b> to open the Preferences dialog.</li>
-  <li>Select the <b>Build Order</b> category in the left pane. The Build Order 
-    preference page opens, listing the projects for the build.</li>
-  <li>Ensure that the <b>Use default build order</b> check box is cleared. If 
-    it is selected, the buttons on this page are disabled, and builds are performed 
-    in the order of the project list.</li>
-  <li>(Optional) Click <b>Add Project</b> and <b>Remove Project</b> buttons to 
-    add and remove projects from the list.</li>
-  <li>Select one or more projects in the list and click <b>Up</b> or <b>Down </b>to 
-    to set the preferred project build order.</li>
-  <li>Click <b>OK</b> to close the Preferences dialog.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-22.htm">Builds</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-75.htm">Performing builds manually</a><br>
-<a href="tasks-16.htm">Performing builds automatically</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-16.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-16.htm
deleted file mode 100644
index 0f1e7d6..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-16.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-17.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-17.htm
deleted file mode 100644
index 574bf22..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-17.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-18.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-18.htm
deleted file mode 100644
index 3b8896d..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-18.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Linking the Navigator view to the active editor</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Linking the Navigator view to the active editor</H1>
-
-<P>When you have multiple files open for editing, you can configure the Navigator 
-  view to automatically bring an open file to the foreground (make its editor 
-  session the active editor) every time you select that open file in the Navigator 
-  view. There are two ways to set this</P>
-
-<ol>
-  <li>From the Navigator menu, select <b>Link With Editor.</b></li>
-  <li>Ckick on the Link With Editor icon <img src="../images/synced.gif" alt="Link with editor icon" width="16" height="16">on 
-    the Navigator bar.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-6.htm">Editors</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-46.htm">Opening files for editing</a><br>
-<a href="tasks-51.htm">Associating editors with file types</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1a.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1a.htm
deleted file mode 100644
index dd110f6..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1a.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with perspectives</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Working with perspectives</H1>
-<p>Perspectives define the initial set and layout of views in the Workbench window. 
-  They provide a set of capabilities aimed at accomplishing a specific type of 
-  task or working with specific types of resources.
-</p>
-
-<p>
-See the Related tasks links for more details.
-</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a><br>
-<a href="../concepts/concepts-5.htm">Views</a><br>
-<a href="../concepts/concepts-21.htm">Fast views</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-28.htm">Switching between perspectives</a><br>
-<a href="tasks-31.htm">Specifying the default perspective</a><br>
-<a href="tasks-9f.htm">Opening perspectives</a><br>
-<a href="tasks-24.htm">Changing where perspectives open</a><br>
-<a href="tasks-9k.htm">Configuring perspectives</a><br>
-<a href="tasks-9i.htm">Saving a user defined perspective</a><br>
-<a href="tasks-9d.htm">Deleting a user defined perspective</a><br>
-<a href="tasks-9j.htm">Resetting perspectives</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1b.htm
deleted file mode 100644
index 4e516d7..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1b.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with views and editors</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Working with views and editors</H1>
-<p>Views and editors are the main visual entities which appear in the Workbench. 
-  In any given perspective there is a single editor area, which can contain multiple 
-  editors, and a number of surrounding views which provide context.
-</p>
-
-<p>The Workbench provides a number of operations for working with views and editors.
-See the Related tasks links for more details.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-5.htm">Views</a><br>
-<a href="../concepts/concepts-6.htm">Editors</a><br>
-<a href="../concepts/concepts-21.htm">Fast views</a><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-3.htm">Opening views</a><br>
-<a href="tasks-3e.htm">Moving and docking views</a><br>
-<a href="tasks-3h.htm">Rearranging tabbed views</a><br>
-<a href="tasks-9b.htm">Creating fast views</a><br>
-<a href="tasks-46.htm">Opening files for editing</a><br>
-<a href="tasks-51.htm">Associating editors with file types</a><br>
-<a href="tasks-52.htm">Editing files outside the Workbench</a><br>
-<a href="tasks-3g.htm">Tiling editors</a><br>
-<a href="tasks-3i.htm">Maximizing a view or editor</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1c.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1c.htm
deleted file mode 100644
index 9a1fe96..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1c.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Navigating and finding resources</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Navigating and finding resources</H1>
-
-<p>The Workbench provides a number of mechanisms for navigating and finding resources.
-See the Related tasks links for more details.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/cnav.htm">Navigator view</a><br>
-<a href="../concepts/csearchview.htm">Search view</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-46ag.htm">Finding a resource quickly</a><br>
-<a href="tasks-84b.htm">Searching for files</a><br>
-<a href="tasks-84.htm">Searching for text within a file</a><br>
-<a href="tasks-48.htm">Sorting resources in the Navigator view</a><br>
-<a href="tasks-48b.htm">Showing or hiding files in the Navigator view</a><br>
-<a href="tasks-46bg.htm">Narrowing the scope of the Navigator view</a><br>
-  <a href="tasks-18.htm">Linking the Navigator view to the active editor</a> </p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1d.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1d.htm
deleted file mode 100644
index fc68a88..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1d.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1e.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1e.htm
deleted file mode 100644
index c54c3db..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1e.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with projects, folders and resources</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Working with projects, folders and files</H1>
-
-<p>There are three different types of resources in the workbench: projects, folders,
-and files.  Projects are the largest structural unit used by the Workbench. Projects contain
-folders and files, and they can be opened, closed, or built. Folders can contain other folders 
-and files. The Workbench provides a number of mechanisms for working with projects, folders 
-and files.  See the related tasks section for more details.
-</p>
-<p>
-Folders and files directly below projects can be linked to locations in the file system
-outside of the project's location.  These special folders and files are called 
-<a href="../concepts/concepts-13.htm">linked resources</a>.
-</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-2.htm">Workbench</a><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/concepts-17.htm">Resource hierarchies</a><br>
-<a href="../concepts/concepts-13.htm">Linked resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-42.htm">Creating a project</a><br>
-<a href="tasks-47.htm">Closing projects</a><br>
-<a href="tasks-42b.htm">Deleting projects</a><br>
-<a href="tasks-43.htm">Creating a folder</a><br>
-<a href="tasks-44.htm">Creating a file</a><br>
-<a href="tasks-45.htm">Creating linked resources</a><br>
-<a href="tasks-63.htm">Moving resources</a><br>
-<a href="tasks-63cg.htm">Copying resources</a><br>
-<a href="tasks-66.htm">Renaming resources</a><br>
-<a href="tasks-67.htm">Deleting resources</a><br>
-<a href="tasks-49.htm">Viewing resources properties</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1f.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1f.htm
deleted file mode 100644
index 1b92004..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1f.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1g.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1g.htm
deleted file mode 100644
index effd2c4..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1g.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1h.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1h.htm
deleted file mode 100644
index 574e60f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1h.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working in the team environment</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Working in the team environment with CVS</H1>
-
-<p>The Workbench provides tools to manage, share and synchronize resources. The 
-  CVS standard is supported by default. See the Related tasks links below for 
-  more details.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-1i.htm">Working with a CVS repository</a><br>
-<a href="tasks-1j.htm">Working with projects shared with CVS</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1i.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1i.htm
deleted file mode 100644
index 63b6c52..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1i.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1j.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1j.htm
deleted file mode 100644
index 7a2106e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1j.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1k.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-1k.htm
deleted file mode 100644
index fbb47c7..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-1k.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-2.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-2.htm
deleted file mode 100644
index a283f60..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-2.htm
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Upgrading Eclipse</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-
-<h1>Upgrading Eclipse</h1>
-<p>
-If you are upgrading to a newer release of Eclipse from an older release, there are
-simple steps to follow to migrate your workspace to the new release.  Your workspace
-is the directory on disk that contains all of your project files, as well as meta-data such
-as preferences you may have customized.  The steps to follow for upgrading depend on
-whether or not you used the &quot;-data&quot; command line argument when starting 
-Eclipse.  The &quot;-data&quot; argument is recommended because it clearly specifies the 
-location of your workspace.  If this argument is not used, Eclipse will place the workspace
-in the current working directory at the time Eclipse was launched.
-</p>
-<p><i>Tip:</i> It doesn't hurt to make a backup of your workspace before
-upgrading.  After you've upgraded your workspace, you won't be able to use it
-again with an older version of Eclipse.  If you ever want to go &quot;back in time&quot;
-to an earlier release, you'll need that backup!
-</p>
-<h2>Users who don't use &quot;-data&quot;</h2>
-<p>
-If you weren't previously using &quot;-data&quot; to specify your workspace, follow
-these steps to upgrade:
-<ol>
-<li>Find the workspace directory used by your old version of Eclipse.  Typically this
-is located inside the eclipse install directory in a sub-directory called &quot;workspace&quot;.
-If you were using a shortcut or script to launch Eclipse, then it will be under the current
-working directory of that shortcut or script in a sub-directory called &quot;workspace&quot;.
-Windows users, this is specified by the &quot;Start in&quot; argument in your shortcut properties.</li>
-<li>Copy this workspace directory into a new, empty location outside of any Eclipse
-install directory.</li>
-<li>Install the new version of Eclipse in a new location, separate from any old version
-of Eclipse.</li>
-<li>Start this new version of Eclipse, using the &quot;-data&quot; command line argument to 
-point to the workspace location.</li>
-</ol>
-<p></p>
-<p>
-Example:<br><br>
-Old Eclipse install directory: <br>
-&nbsp;&nbsp;&nbsp;<code>c:\eclipse2_0</code><br><br>
-
-New Eclipse install directory: <br>
-&nbsp;&nbsp;&nbsp;<code>c:\eclipse2_1</code><br><br>
-
-Workspace location: <br>
-&nbsp;&nbsp;&nbsp;<code>c:\data\EclipseWorkspace</code><br><br>
-
-Java VM location: <br>
-&nbsp;&nbsp;&nbsp;<code>c:\jre</code><br><br>
-
-Command line to start Eclipse: <br>
-&nbsp;&nbsp;&nbsp;<code>&quot;c:\eclipse2_1 -data c:\data\EclipseWorkspace -vm d:\jre\bin\javaw&quot;</code><br>
-</p>
-<p><i>Tip:</i> It's generally a good idea to explicitly specify which Java VM to
-use when running Eclipse.  This is achieved with the &quot;-vm&quot; command line
-argument as illustrated above.  If you don't use &quot;-vm&quot;, Eclipse will look
-on the O/S path.  When you install other products, they may change your path, resulting
-in a different Java VM being used when you next launch Eclipse.
-</p>
-
-<h2>Users who do use &quot;-data&quot;</h2>
-<p>
-If you were previously using the &quot;-data&quot; argument to start Eclipse, your 
-upgrade path is much easier:
-<ol>
-<li>Install the new version of Eclipse in a new location, separate from any old version
-of Eclipse.</li>
-<li>Start this new version of Eclipse, using the &quot;-data&quot; command line argument to 
-point to your old workspace location.</li>
-</ol>
-See the example in the previous section for an illustration.
-<p></p>
-
-<h2>Adding third party plug-ins</h2>
-<p>
-If you have installed extra plug-ins in your Eclipse environment, you will need to add
-these new plug-ins to each new build or version of Eclipse you install.  Before you do
-this, refer to the documentation for those plug-ins to ensure they are compatible
-with the version of Eclipse you are moving to.  There are several ways to add these
-extra plug-ins to your new Eclipse install:
-<ol>
-<li>Copy the directories for each plug-in into the &quot;plugins&quot; directory of your
-new Eclipse version.</li>
-<li>Use an Eclipse update site to re-install those extra plug-ins or features in the
-new version of Eclipse.</li>
-<li>If you are using product extensions, simply copy the &quot;links&quot; directory
-into the new Eclipse version install directory.  For more details on product extensions,
-see the documentation in the Platform Plug-in Developer Guide, under <b>Programmer's
-Guide &gt; Packaging and delivering Eclipse based products &gt; Product extensions</b>.</li>
-</ol>
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-20.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-20.htm
deleted file mode 100644
index a36de0e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-20.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Changing fonts and colors</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Changing fonts and colors</H1>
-
-<p>By default, the Workbench uses the fonts and colors provided by the operating 
-system. However, there are a number of ways that this behavior can be customized.
-</p>
-
-<h2>Fonts</h2>
-
-<p>The Workbench lets you directly configure three fonts:
-</p>
-
-<dl>
-  <dt>Banner Font</dt>
-  <dd>Used in PDE editors, welcome pages and in the title area of
-    many wizards. For instance the New Project wizard uses this font for the top
-    title.</dd>
-  <dt>Header Font</dt>
-  <dd>Used as a section heading. For instance the
-    Welcome page for the Eclipse Platform uses this font for the top title.</dd>
-  <dt>Text Font</dt>
-  <dd>Used in text editors.</dd>
-</dl>
-
-<p>To change these fonts:
-</p>
-
-<ol>
-  <li>On the main menu bar, click <b>Window &gt; Preferences</b>.</li>
-  <li>Expand the <b>Workbench</b> category and select <b>Fonts</b>.</li>
-  <li>Select the font you want to change.</li>
-  <li>Click <b>Change</b>.</li>
-  <li>Use the dialog which opens to select a font.</li>
-  <li>Click <b>OK</b>.</li>
-</ol>
-
-<p>Note: You can also click <b>Use System Font</b> to set the font 
-  to a reasonable value chosen by the operating system. For example, on Windows this will 
-  use the font selected in the Display Properties control panel.</p>
-
-<p>Plug-ins that use other fonts may also provide preference entries to allow them to
-be customized. For example, the Java Development Tools provide a setting for controlling
-the font used by the Java editor (<b>Java &gt; Editor &gt; Appearance &gt; Text font</b>).
-</p>
-
-<p>In addition to the above, some text is always displayed in the system font. For example, 
-the navigator tree always does this. To change the font used in these areas, you can use the
-configuration tools provided by the operating system (for example, the Display Properties control panel on
-Windows, or the .Xdefaults file in Motif).
-</p>
-
-<h2>Colors</h2>
-
-<p>To set the colors used by the Workbench to display error text and hyperlink text:
-</p>
-<ol>
-  <li>On the main menu bar, click <b>Window &gt; Preferences</b>.</li>
-  <li>Expand the <b>Workbench</b> category and select <b>Appearance</b>.</li>
-  <li>Select the color you want to change.</li>
-  <li>Use the dialog which opens to select a color.</li>
-  <li>Click <b>OK</b>.</li>
-</ol>
-
-<p>Plug-ins that use other colors may also provide preference entries to allow them to
-be customized. For example, the searching support provides a setting for controlling
-the color used to display inexact matches (<b>Workbench &gt; Search &gt; Foreground
-color for inexact matches</b>).
-</p>
-
-<p>In general, the Workbench uses the colors that are chosen by the operating 
-  system. To change these colors you can use the configuration tools provided 
-  by the system (eg. the Display Properties control panel on Windows, or the .Xdefaults 
-  file in Motif). </p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/accessibility/fontsandcolors.htm">Fonts and Colors in Eclipse</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-24.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-24.htm
deleted file mode 100644
index b3ff2b1..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-24.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-28.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-28.htm
deleted file mode 100644
index e2ba091..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-28.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-3.htm
deleted file mode 100644
index 590d911..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-31.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-31.htm
deleted file mode 100644
index 87e94c2..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-31.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-33.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-33.htm
deleted file mode 100644
index 752c0a3..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-33.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Inspecting the current configuration</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Inspecting the current configuration</H1>
-
-<p>The About Eclipse Platform dialog (<b>Help &gt; About Eclipse Platform</b>) 
-  shows most of the important information about the features and plug-in configured in 
-  the product. To find out further detailed information about the current configuration:
-</p>
-
-<ol>
-  <li>Open the main update manager by clicking <b>Help &gt; Software Updates &gt;
-    Update Manager</b>. This opens the Install/Update perspective.</li>
-  <li>In the Install Configuration view, expand the Current Configuration item.
-    The first tier of items are locations on the local computer where the files
-    for features and plug-ins are stored. For a typical product, all features
-    are installed in a single directory sub-tree. However, a feature that is
-    installed as an extension of another product are usually located in a
-    separate directory sub-tree.</li>
-  <li>Expand the location to see the feature versions installed there.</li>
-  <li>The nesting of the features indicates which child features are included in
-    a given parent feature. Nested features act as a unit.</li>
-  <li>Select a feature version and click <b>Show Details</b> to open the Preview
-    view which presents more detailed information about the selected feature.</li>
-  <li>Click <b>Show Disabled Features</b> icon (top bar of the Install
-    Configuration view). Any feature versions that are disabled are now
-    shown (you might not have any). Disabled feature versions are ones that are
-    installed on the local computer but excluded from the current configuration.
-    At most one version of any given feature can be present in a given
-    configuration; usually the ones with the lower version numbers will be in a
-    disabled state.</li>
-  <li>Select a feature version and click <b>Show Status</b> to find out whether
-    the selected feature is configured exactly as packaged. The status will show
-    when a feature's plug-ins are present at different versions, or disabled due
-    to missing prerequisite plug-ins that are expected to be supplied by some
-    other feature.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-34.htm">Installing new features with the update manager</a><br>
-<a href="tasks-36.htm">Updating features with the update manager</a><br>
-<a href="tasks-37.htm">Saving a configuration</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-34.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-34.htm
deleted file mode 100644
index bd56395..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-34.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Installing new features with the update manager</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Installing new features with the update manager</H1>
-
-<p>To locate and install a new feature into a product (ordinarily requires web 
-  access):
-</p>
-
-<ol>
-  <li>Open the main update manager by clicking <b>Help &gt; Software Updates &gt;
-    Update Manager</b>. This opens the Install/Update perspective.</li>
-  <li>Create a bookmark for a web site where Eclipse features and plug-ins are
-    published. In the Feature Updates view, select <b>New
-    &gt; Site Bookmark</b> from the context menu.</li>
-  <li>In the New Site Bookmark dialog that opens, give the site a name such as 
-    &quot;CompanyA&quot; and enter the URL such as
-	&quot;http://companyA.example.com/eclipseupdates&quot;.</li>
-  <li>Expand the newly created item in Feature Updates view to show the
-    categories of feature versions available at that update site. This will
-    contact the web site to discover what features are available.</li>
-  <li>Expand one of the top-level categories and select a feature. Information
-    about that feature appears in the Preview view.</li>
-  <li>After selecting the feature to be added, click the <b>Install</b> button
-    within the Preview view.</li>
-  <li>The Feature Install wizard confirms the details of the feature you are
-    about to install. Click <b>Next</b>.</li>
-  <li>Carefully review the license agreements for the upgraded features. If the
-    terms of all these licenses are acceptable, check &quot;I accept the terms
-    in the license agreements&quot;. Do not proceed to download the features if
-    the license terms are not acceptable.</li>
-  <li>If a feature selected for install include optional features, a page will
-    show up allowing you to select whether you want them installed or not.
-    Optional features typically carry functionality that is not essential for
-    proper functioning of the main feature.</li>
-  <li>The Install Location page controls where the new feature's files are to be
-    installed on the local computer. Select the directory into which the product
-    is installed and hit <b>Next</b>. (If the product is installed in a
-    directory to which you do not have write access, you should contact your
-    system administrator and get them to install this feature so that it will be
-    generally available. The other option is to click <b>Add</b> and point to a
-    directory to which you do have write access; however, features installed
-    there are only available when using the current workspace.)</li>
-  <li>Feature versions can be digitally signed by the company that provides
-    them. This allows you to verify more easily that the features and
-    plug-ins that are about to be downloaded and installed are coming from a
-    trusted supplier.</p><br> <b>Warning:</b> Because of the possibility of harmful or even
-    malicious plug-ins, you should only download features from parties that
-    you trust.</p><br> <p>Click <b>Install</b> to allow the downloading and installing
-    to proceed.</p></li>
-  <li>Once the new feature and plug-ins have been downloaded successfully and
-    their files installed into the product on the local computer, a new
-    configuration that incorporates these features and plug-ins will be
-    formulated. Click <b>Yes</b> when asked to exit and restart the workbench for the
-    changes to take effect. To add other new features at the same time before
-    restarting, click <b>No</b> and repeat.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<P>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-33.htm">Inspecting the current configuration</a><br>
-<a href="tasks-36.htm">Updating features with the update manager</a><br>
-<a href="tasks-34a.htm">Installing several features at once using group updates</a><br>
-<a href="tasks-36a.htm">Searching for features</a><br>
-<a href="tasks-37.htm">Saving a configuration</a><br>
-<a href="tasks-38.htm">Restoring a saved configuration</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-34a.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-34a.htm
deleted file mode 100644
index 73992a5..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-34a.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Installing several features at once using group updates</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Installing several features at once using group updates</H1>
-
-<p>To install several features at once using update manager (ordinarily requires web 
-  access):
-</p>
-
-<ol>
-  <li>Open the main update manager by clicking <b>Help &gt; Software Updates &gt;
-    Update Manager</b>. This opens the Install/Update perspective.</li>
-  <li>Create a bookmark for a web site where Eclipse features and plug-ins are
-    published. In the Feature Updates view, select <b>New
-    &gt; Site Bookmark</b> from the context menu.</li>
-  <li>In the New Site Bookmark dialog that opens, give the site a name such as 
-    &quot;CompanyA&quot; and enter the URL such as
-	&quot;http://companyA.example.com/eclipseupdates&quot;.</li>
-  <li>Expand the newly created item in Feature Updates view to show the
-    categories of feature versions available at that update site. This will
-    contact the web site to discover what features are available.</li>
-  <li>Expand one of the top-level categories and select a feature. Information
-    about that feature appears in the Preview view.</li>
-  <li>After selecting the feature to be added, locate section in the Preview
-    view with a title <b>Group Updates</b> and check the &quot;Install by adding
-    to the Selected Updates&quot; checkbox.</li>
-  <li>Repeat for every feature you want to install. At any point, you can
-    inspect the selection by pressing &quot;Selected Updates&quot; hyperlink to
-    the right of the checkbox, or by bringing the Selected Updates view to the
-    top (by default, it is stacked with the Install Configuration view).</li>
-  <li>When all the features that are to be installed are selected, switch to the
-    Selected Updates view, bring up the pop-up menu and select <b>Process All</b>
-    item. If you change your mind about any feature, you can remove it from the
-    list prior to processing.</li>
-  <li>The Feature Install wizard confirms the details of the features you are
-    about to install. Note that there may be conflicts between features you have
-    selected. You will be informed about them and asked to deselect the ones
-    causing the conflict. Click <b>Next</b>.</li>
-  <li>Carefully review the license agreements for the upgraded features. If the
-    terms of all these licenses are acceptable, check &quot;I accept the terms
-    in the license agreements&quot;. Do not proceed to download the features if
-    the license terms are not acceptable.</li>
-  <li>If one or more features selected for install include optional features, a
-    page will show up allowing you to select whether you want them installed or
-    not. Optional features typically carry functionality that is not essential
-    for proper functioning of the main feature.</li>
-  <li>The Install Location page controls where the new feature's files are to be
-    installed on the local computer. Select the directory into which the product
-    is installed and hit <b>Next</b>. (If the product is installed in a
-    directory to which you do not have write access, you should contact your
-    system administrator and get them to install this feature so that it will be
-    generally available. The other option is to click <b>Add</b> and point to a
-    directory to which you do have write access; however, features installed
-    there are only available when using the current workspace.)</li>
-  <li>Feature versions can be digitally signed by the company that provides
-    them. This allows you to verify more easily that the features and
-    plug-ins that are about to be downloaded and installed are coming from a
-    trusted supplier.</p><br> <b>Warning:</b> Because of the possibility of harmful or even
-    malicious plug-ins, you should only download features from parties that
-    you trust.</p><br> <p>Click <b>Install</b> to allow the downloading and installing
-    to proceed.</p></li>
-  <li>Once the new feature and plug-ins have been downloaded successfully and
-    their files installed into the product on the local computer, a new
-    configuration that incorporates these features and plug-ins will be
-    formulated. Click <b>Yes</b> when asked to exit and restart the workbench for the
-    changes to take effect. To add other new features at the same time before
-    restarting, click <b>No</b> and repeat.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<P>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-33.htm">Inspecting the current configuration</a><br>
-<a href="tasks-36.htm">Updating features with the update manager<br>
-</a><a href="tasks-34.htm">Installing new features with the update manager</a><br>
-<a href="tasks-36a.htm">Searching for features</a><br>
-<a href="tasks-37.htm">Saving a configuration</a><br>
-<a href="tasks-38.htm">Restoring a saved configuration</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-35.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-35.htm
deleted file mode 100644
index 387a6c0..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-35.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Picking up pending changes</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Picking up pending changes</H1>
-
-<p>Whenever the Eclipse platform is started it detects and notes any changes that 
-  have been made to the installed base of files such as the appearance (or disappearance) 
-  of feature and plug-in versions. New or updated features are not automatically 
-  configured for an existing workspace; rather, you are told on start up that 
-  there are updates and given the opportunity to configure them. If you accept them, 
-  the new and updated feature versions become a part of the feature and plug-in 
-  configuration used for that workspace. If not accepted, the new and updated 
-  feature versions remain dormant (disabled) for that workspace, but available 
-  to be picked up at a later time.
-</p>
-<p>To pick up pending changes:
-<ol>
-  <li>When new changes are detected, Configuration Changes page will open on
-    startup. Alternatively, click <b>Help &gt; Software Updates &gt; Pending
-    Changes...</b>.
-    The Configuration Changes page opens showing a list of detected changes.</li>
-  <li>Select and expand detected change items to see the associated feature
-    versions. You can accept the entire change items, or select individual
-    features. Individual selection may be necessary in case when some of the new
-    features have errors.</li>
-  <li>Check items that are to be included in the configuration. Unchecked items
-    are ignored (but remain pending).</li>
-  <li>Click <b>Finish</b>  to update the configuration, or <b>Cancel</b> to
-    retain the current configuration (pending changes remain pending). Note that
-    if a pending item has been partially selected (not all the features),
-    pressing <b>Finish</b> will mark the item processed and it will be removed
-    from the list of pending changes.</li>
-  <li>Click <b>Yes</b> when asked to exit and restart the workbench for the
-    changes to take effect.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-36.htm">Updating features with the update manager</a><br>
-<a href="tasks-38.htm">Restoring a saved configuration</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-36.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-36.htm
deleted file mode 100644
index 6cc94aa..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-36.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Updating features with the update manager</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Updating features with the update manager</h1>
-
-<p>To check to see whether there are updates for a product's existing features
-  (requires Internet access):
-</p>
-
-<ol>
-  <li>Click <b>Help &gt; Software Updates &gt; New Updates</b>. This will contact 
-    the Web sites associated with the product's features to discover what versions 
-    of those features are available. The potential upgrades are presented in an 
-    Available Updates page.</li>
-  <li>Select the feature versions that you wish to upgrade, and click <b>Next</b>.</li>
-  <li>Carefully review the license agreements for the upgraded features. If the 
-    terms of all these licenses are acceptable, check &quot;I accept the terms 
-    in the license agreements.&quot; Do not proceed to download the features if 
-    the license terms are not acceptable.</li>
-  <li>Feature versions can be digitally signed by the company that provides them. 
-    This allows the user to verify more easily that the features and plug-ins 
-    that are about to be downloaded and installed are coming from a trusted supplier. </p><br>
-    <p><b>Warning:</b> Because of the possibility of harmful or even malicious plug-ins, 
-    you should only download features from parties that you trust. </p><br><p>Click 
-    <b>Install</b> to allow the downloading and installing to proceed.<p></li>
-  <li>Once all the features and plug-ins have been downloaded successfully and 
-    their files installed into the product on the local computer, a new configuration 
-    that incorporates these features and plug-ins will be formulated. Click <b>Yes</b> 
-    when asked to exit and restart the Workbench for the changes to take effect.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-33.htm">Inspecting the current configuration</a><br>
-<a href="tasks-34.htm">Installing new features with the update manager<br>
-</a><a href="tasks-34a.htm">Installing several features at once using group updates</a><br>
-<a href="tasks-35.htm">Picking up pending changes</a><br>
-<a href="tasks-36a.htm">Searching for features</a><br>
-<a href="tasks-37.htm">Saving a configuration</a><br>
-<a href="tasks-38.htm">Restoring a saved configuration</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-36a.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-36a.htm
deleted file mode 100644
index 71c516f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-36a.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Searching for features</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>Searching for features</H1>
-
-<p>To search for features by running queries (ordinarily requires web
-access):</p>
-<ol>
-  <li>Open the main update manager by clicking <b>Help</b> &gt; <b>Software Updates</b> &gt;
-    <b>Update Manager</b>. This opens the update manager perspective.</li>
-  <li>In the Feature Updates view, select the built-in <b>Available Updates</b>
-    query, or create a new query object using the view's context menu
-    <b>New</b> &gt; <b>Search</b>.</li>
-  <li>If creating a new query, in the New Search dialog that opens, 
-    give the query a name, select the query category, and optionally select 
-    a folder that is to contain the query. The selected query category
-    determines what query settings can be specified. The following categories
-    are supported:</li>
-    <ul>
-      <li><b>Available Updates</b> allows search for available updates to selected features.</li>
-      <li><b>Regular Expression</b> allows search for features using expression matching.</li>
-      <li><b>Plug-ins in Features</b> allows search for features containing specified plug-ins.</li>
-    </ul>
-  <li>Select the query in the Feature Updates view.</li>
-  <li>The Preview shows the query details. Expand the <b>Query Settings</b>.</li>
-  <li>For <b>Available Updates</b> query, select one or more installed feature
-    to search for.
-    <br>
-    <img
-       src="../images/Image35umd_prevusearchnew.gif" alt="Available Updates Query" width="594" height="474" border="0" align="top"> 
-  </li>
-  <li>For <b>Regular Expression</b> query, specify the values you want
-    to search for.
-    <br>
-    <img
-       src="../images/Image35umd_prevusearchrx.gif" alt="Regular Expression Query" width="583" height="392" border="0" align="top"> 
-  </li>
-  <li>For <b>Plug-ins in features</b> query, use the Add or Delete buttons 
-    to specify the plug-ins to search for. When adding plug-ins to the list
-    enter the plug-in identifier and version into the Add dialog.
-    <br>
-    <img
-       src="../images/Image35umd_prevusearchplugin.gif" alt="Plug-ins in Features Query" width="583" height="392" border="0" align="top"> 
-  </li>  
-  <li>Expand the <b>Scope Settings</b> and select the targets to search.</li>
-    <ul>
-      <li><b>Include My Computer in search</b> will cause the selected
-        local roots to be searched for local update sites containing features</li>
-      <li><b>Search sites in &quot;Sites to Visit&quot; folder</b> will cause the 
-        preconfigured sites to be searched</li>
-      <li><b>Search bookmarked sites</b> will cause bookmarked sites to
-        be searched</li>
-      <li><b>Only include features applicable to this environment</b> will
-        only consider features that match the current runtime environment
-        to be included in the results</li>
-      <li>Note, that Available Updates queries always search the update
-        sites that are specified as part of the feature definitions</li>  
-    </ul> 
-  <li>Click <b>Search Now</b> to trigger the search. The search runs asynchronously,
-    so the workbench UI remain responsive. Search results are accumulated in the Preview view, as well as being shown as children of the query object
-    in the Feature Updates view.</li>
-  <li>To install one of the located features, select the feature in the
-    search result list, or the Feature Updates view, and click the 
-    Install or Update button.</li>  
-</ol>
-
-
-<P>
-<img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<P>
-<img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27">
-<br><a href="tasks-34.htm">Installing new features with the update manager</a>
-<br><a href="tasks-36.htm">Updating features with the update manager</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-37.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-37.htm
deleted file mode 100644
index 0783426..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-37.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Saving a configuration</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Saving a configuration</h1>
-
-<p>For added safety when upgrading the product or installing new features, save 
-  a snapshot of the current configuration beforehand. This makes it easy to return 
-  to a known configuration if the new or updated features prove unsatisfactory, 
-  and creates a permanent record of configurations that you have been using. To 
-  save the current configuration:
-</p>
-
-<ol>
-  <li>Open the main update manager by clicking <b>Help &gt; Software Updates &gt; 
-    Update Manager</b>. This opens the Install/Update perspective.</li>
-  <li>In the Install Configuration view, expand the Configuration History item
-    and select the most recent entry (the top one). Click <b>Save</b> on the
-    context menu.</li>
-  <li>Expand the Saved Configurations item in the same view to see the entry for
-    the newly saved configuration. Expanding the saved configuration shows the
-    locations of the features.</li>
-  <li>To change the name of this saved configuration to something recognizable,
-    select the saved configuration and click <b>Properties</b> on the context
-    menu.</li>
-  <li>In the property dialog that opens, change the Configuration Name of the
-    Preserved Configuration property to something more appropriate, like
-    &quot;Stable&quot;.</li>
-  <li>Click <b>OK</b> to have the name change take effect.</li>
-</ol>
-
-<p>Unlike the entries in the Configuration History (a queue of limited length), 
-  saved configuration entries are retained indefinitely and go away only when 
-  explicitly removed (<b>Remove</b> on the saved configuration's context menu).
-</p>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-33.htm">Inspecting the current configuration</a><br>
-<a href="tasks-38.htm">Restoring a saved configuration</a>
-</P>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-38.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-38.htm
deleted file mode 100644
index 4d2244d..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-38.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Restoring a saved configuration</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Restoring a saved configuration</h1>
-
-<p>A previously saved configuration (or any configuration recorded in the history) 
-  can be restored, thereby backing out of the results of an unsuccessful upgrade. 
-  Restoring a saved configuration does not delete the files for feature and plug-in 
-  versions from the local computer; it merely ignores them and acts as it did 
-  when they were not present. To restore a saved configuration to be the current 
-  configuration:
-</p>
-
-<ol>
-  <li>Open the main update manager by clicking <b>Help &gt; Software Updates &gt; 
-    Update Manager</b>. This opens the Install/Update perspective.</li>
-  <li>In the Install Configuration view, expand the Saved Configurations (or
-    Configuration History) item and select the desired configuration. Click <b>Restore</b>.</li>
-  <li>Click <b>Yes</b> when asked to exit and restart the Workbench for the
-    changes to take effect.</li>
-  <li>Expand the Current Configuration (and children) to confirm that the
-    current configuration now matches the configuration saved earlier.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-25.htm">Features</a>
-</P>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-33.htm">Inspecting the current configuration</a><br>
-<a href="tasks-37.htm">Saving a configuration</a>
-</p>
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3e.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-3e.htm
deleted file mode 100644
index b5e523f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3e.htm
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Moving and docking views</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Moving and docking views</H1>
-
-<p>To change the location of a view in the current perspective:
-</p>
-
-<ol>
-  <li>Drag the view by its title bar. Do not release the left
-    mouse button yet.</li>
-  <li>As you move the view around the Workbench, the mouse pointer
-    changes to one of the <i>drop cursors</i> shown in the table below. The drop
-    cursor indicates where the view will be docked if you release the left mouse
-    button. To see the drop cursor change, drag the view over the left, right,
-    top, or bottom border of another view or editor.</li>
-  <li>When the view is in the location that you want, relative to
-    the view or editor area underneath the drop cursor, release the left mouse
-    button.</li>
-  <li>(Optional) If you want to save your changes, select <b>Window &gt; Save 
-    Perspective As</b> from the main menu bar.</li>
-  <li>Note that a group of stacked views can be dragged using the empty space to
-    the right of the view tabs.</li>
-</ol>
-
-<p>You can also move a view by using the pop-up menu for the view. (Left-click
-on the icon at the left end of the view's title bar, or right-click anywhere
-else in the view's title bar).
-</p>
-
-<TABLE BORDER="1" cellspacing="0" cellpadding="5">
-  <THEAD>
-  </THEAD>
-  <TBODY>
-    <TR> 
-      <th COLSPAN="1" valign="bottom" align="left" height="38"> Drop cursor </th>
-      <th COLSPAN="1" valign="bottom" align="left" height="38"> Where the view 
-        will be moved to </th>
-    </TR>
-    <TR> 
-      <TD COLSPAN="1" align="center" height="38"> <P CLASS="Para"> <img src="../images/drop_top_source.gif" alt=" Up icon" border="0" width="16" height="19"> 
-        </P></TD>
-      <TD COLSPAN="1" valign="top" align="left" height="38"> <P CLASS="Para"> 
-          Dock above: The view is docked above the view underneath the cursor.</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" align="center" height="38"> <P CLASS="Para"> 
-          <img src="../images/drop_bottom_source.gif" alt="  Down icon" border="0" width="19" height="19"> 
-        </P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left" height="38"> <p CLASS="Para"> 
-          Dock below: The view is docked below the view underneath the cursor. 
-      </TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" align="center" height="38"> <P CLASS="Para"><img align="texttop" border="0" src="../images/drop_right_source.gif" alt="Right icon" width="20" height="20"> 
-        </P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left" height="38"> <p CLASS="Para"> 
-          Dock to the right: The view is docked to the right of the view underneath 
-          the cursor. </TD>
-    </TR>
-    <TR> 
-      <TD COLSPAN="1" align="center" height="38"> <img align="texttop" border="0" src="../images/drop_left_source.gif" alt=" Left icon" width="20" height="20"> 
-      </TD>
-      <TD COLSPAN="1" valign="top" align="left" height="38"> Dock to the left: 
-        The view is docked to the left of the view underneath the cursor. </TD>
-    </TR>
-    <TR> 
-      <TD COLSPAN="1" align="center" height="38"> <img align="texttop" border="0" src="../images/drop_stack.gif" alt=" Stack views" width="20" height="20"> 
-      </TD>
-      <TD COLSPAN="1" valign="top" align="left" height="38"> Stack: The view is 
-        docked as a Tab in the same pane as the view underneath the cursor. </TD>
-    </TR>
-    <TR> 
-      <TD COLSPAN="1" align="center" height="38"> <img align="texttop" border="0" src="../images/drop_invalid_source.gif" alt=" Restricted icon" width="21" height="21"> 
-      </TD>
-      <TD COLSPAN="1" valign="top" align="left" height="38"> Restricted: You cannot 
-        dock the view in this area. </TD>
-    </TR>
-  </TBODY>
-</TABLE>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="../concepts/concepts-5.htm">Views</a><br>
-<a href="../concepts/concepts-21.htm">Fast views</a><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-3.htm">Opening views</a><br>
-<a href="tasks-9b.htm">Creating fast views</a><br>
-<a href="tasks-3i.htm">Maximizing a view or editor</a><br>
-<a href="tasks-9i.htm">Saving a user defined perspective</a><br>
-<a href="tasks-9j.htm">Resetting perspectives</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3g.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-3g.htm
deleted file mode 100644
index 5993fc4..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3g.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Tiling editors</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Tiling editors</H1>
-
-<P>The Workbench allows you to have multiple files open in multiple editors. Unlike
-views, editors cannot be dragged outside the Workbench to create new windows.
-However, you can tile editor sessions within the editor area, in order to view
-source files side by side.
-</P>
-
-<ol>
-  <li>With two or more files open in the editor area, select one of the editor tabs.</li>
-  <li>Holding down the left mouse button, drag that editor over
-    the left, right, top or bottom border of the editor area. Notice that the
-    mouse pointer changes to a &quot;drop cursor&quot; that indicates where the
-    editor session will be moved when you release the mouse button.</li>
-  <li>(Optional) Drag the borders of the editor area or each
-    editor, to resize as desired.</li>
-</ol>
-
-<p>This is a similar operation to moving and docking views inside
-the Workbench, except that all editor sessions must be contained within the
-editor area.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-6.htm">Editors</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-46.htm">Opening files for editing</a><br>
-<a href="tasks-9.htm">Changing the placement of the tabs</a><br>
-<a href="tasks-68.htm">Comparing resources</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3h.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-3h.htm
deleted file mode 100644
index dbcd10b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3h.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3i.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-3i.htm
deleted file mode 100644
index 09aed71..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-3i.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-42.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-42.htm
deleted file mode 100644
index d47e8f4..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-42.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a project</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Creating a project</H1>
-
-<P>To create a project:
-</P>
-
-<ol>
-  <li>On the main menu bar, click <b>File &gt; New Project</b>. The New Project 
-    wizard opens.</li>
-  <li>Select a category from the left column and then select the type of project to 
-    create from the right column. Click <b>Next</b>.</li>
-  <li>In the <b>Project name</b> field, type a name for your new
-    project.</li>
-  <li>(Optional) The project that you create will map to a directory structure 
-    in the file system. The default file system location is displayed in the Location 
-    field. If you want to create the project and its contained resources in a 
-    different location, clear the <b>Use default location</b> check box and specify 
-    the new location.</li>
-  <li>If you want the new project to be dependent on one or more other projects, 
-    click <b> Next</b> and select the projects to be referenced.</li>
-  <li>Click <b>Finish</b>. The new project is listed in the Navigator view.</li>
-</ol>
-
-<p><em>Tip:</em> The <b>Window &gt; Preferences &gt; Perspectives &gt; New project 
-options</b> group allows you to specify the perspective behavior when a new project 
-is created.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/concepts-17.htm">Resource hierarchies</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-43.htm">Creating a folder</a><br>
-<a href="tasks-44.htm">Creating a file</a><br>
-<a href="tasks-63cg.htm">Copying resources</a><br>
-<a href="tasks-63.htm">Moving resources</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-42b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-42b.htm
deleted file mode 100644
index 45582f0..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-42b.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Deleting projects</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Deleting projects</H1>
-
-<P>To delete a project and remove its contents from the file system:
-</P>
-
-<ol>
-  <li>Select the project in the Navigator view.</li>
-  <li>Click <b>Delete</b> on the pop-up menu.</li>
-  <li>In the dialog which opens select <b>Also delete contents under ...</b>.</li>
-  <li>Click <b>Yes</b>.</li>
-</ol>
-
-<P>To delete a project from the workspace without removing its contents from the
-file system:
-</P>
-
-<ol>
-  <li>Select the project in the Navigator view.</li>
-  <li>Click <b>Delete</b> on the pop-up menu.</li>
-  <li>In the dialog which opens select <b>Do not delete contents</b>.</li>
-  <li>Click <b>Yes</b>.</li>
-</ol>
-
-<p CLASS="Para"><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-42.htm">Creating a project</a><br>
-<a href="tasks-47.htm">Closing projects</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-43.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-43.htm
deleted file mode 100644
index 879c7f1..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-43.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-44.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-44.htm
deleted file mode 100644
index d81173f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-44.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a file</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Creating a file</H1>
-
-<P>To create a file:
-</P>
-
-<ol>
-  <li>In the Navigator view, right-click the project or folder
-    where you want to create the new file.</li>
-  <li>From the pop-up menu, select <b>New &gt; File</b>.</li>
-  <li>Specify the name of the file, including the file extension (for
-    example, newfile.txt).</li>
-  <li>Click <b>Finish</b>.</li>
-</ol>
-
-<p>The file opens in the editor associated with its type.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources<br></a>
-<a href="../concepts/concepts-17.htm">Resource hierarchies</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-42.htm">Creating a project</a><br>
-<a href="tasks-43.htm">Creating a folder</a><br>
-<a href="tasks-45.htm">Creating linked resources</a><br>
-<a href="tasks-63cg.htm">Copying resources</a><br>
-<a href="tasks-63.htm">Moving resources</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-45.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-45.htm
deleted file mode 100644
index 7f33ed9..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-45.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating linked resources</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Creating linked resources</H1>
-<p>
-Folders and files that are direct children of projects can be linked to locations in the file system
-outside of the project's location.  These special folders and files are called 
-<a href="../concepts/concepts-13.htm">linked resources</a>.
-</p>
-
-<P>To create a linked folder:
-</P>
-
-<ol>
-  <li>In the Navigator view, right-click the project 
-    where you want to create the new folder.</li>
-  <li>From the pop-up menu, select <b>New &gt; Folder</b>.</li>
-  <li>Specify the name of the folder as it will appear in the workbench.  This 
-  name can be different from the name of the folder in the file system.</li>
-  <li>Click <b>Advanced</b>.</li>
-  <li>Check <b>Link to folder in the file system</b>.</li>
-  <li>Enter a file system path, or click <b>Browse</b> to select a folder in the file system.</li>
-  <li>Click <b>Finish</b>.</li>
-</ol>
-
-<P>To create a linked file, follow the same steps as above, except choose 
-<b>New &gt; File</b> instead of <b>New &gt; Folder</b> in the Navigator's
-context menu.
-</P>
-<P>Linked resource locations can also be specified relative to a variable.  This makes
-it easier to share projects containing linked resources with other team members,
-since it avoids hard-coded absolute file system paths that may vary from one
-machine to the next.
-</P>
-<P>
-To define a linked resource relative to a path variable, do the following after step 5
-above:
-</P>
-<ol start="6">
-  <li>Click the <b>Variables</b> button.</li>
-  <li>In the resulting dialog, select an existing path variable or create a new one.</li>
-  <li>If the chosen variable defines the exact path of the linked resource, click <b>OK</b>.
-  Otherwise, click <b>Extend</b> to specify a file or folder below the location described
-  by the path variable, then click <b>OK</b>.</li>
-  <li>Click <b>Finish</b>.</li>
-</ol>
-<p><em>Tip:</em> The <b>Window &gt; Preferences &gt; Workbench &gt; Linked Resources 
-</b> preference page also allows you to define path variables.
-</p>
-<P>Note that, once you create a linked resource you will not be able to change
-the link target path that you entered in step 6. or 8. above.</P>
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/concepts-17.htm">Resource hierarchies</a><br>
-<a href="../concepts/concepts-13.htm">Linked resources</a>
-</P>
-
-<P><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-42.htm">Creating a project</a><br>
-<a href="tasks-44.htm">Creating a file</a><br>
-<a href="tasks-43.htm">Creating a folder</a><br>
-</P>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-14b.htm">Linked resources</a> 
-<br><a href="../reference/ref-38.htm">New Folder wizard</a> 
-<br><a href="../reference/ref-39.htm">New File wizard</a> 
-</p>
-
-<P>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</P>
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-46.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-46.htm
deleted file mode 100644
index 8bfba10..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-46.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Opening files for editing</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Opening files for editing</H1>
-<p>
-You can launch an editor for a given file in several ways.
-</p>
-
-<ul>
-  <li>By right-clicking the file in the Navigator view and then
-    selecting <b> Open</b> from the pop-up menu.</li>
-  <li>By double-clicking the file in the Navigator view</li>
-  <li>By double-clicking a bookmark that is associated with that
-    file, in the Bookmarks view</li>
-  <li>By double-clicking a problem, error, warning, or task record
-    that is associated with that file, in the Tasks view</li>
-</ul>
-
-<p>All of the above alternatives open the file in the default
-editor for that type of file. To open it in a different editor, select
-<b>Open With</b> from the file's pop-up menu.</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-6.htm">Editors</a><br>
-<a href="../concepts/concepts-6a.htm">External editors</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-51.htm">Associating editors with file types</a><br>
-<a href="tasks-52.htm">Editing files outside the Workbench</a><br>
-  <a href="tasks-18.htm">Linking the Navigator view to the active editor</a><br>
-<a href="tasks-3g.htm">Tiling editors</a><br>
-<a href="tasks-9.htm">Changing the placement of editor tabs</a><br>
-<a href="tasks-68.htm">Comparing resources</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-46ag.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-46ag.htm
deleted file mode 100644
index 96ae1dc..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-46ag.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Finding a resource quickly</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Finding a resource quickly</H1>
-
-<P>To navigate to a particular resource in a view such as the navigator view:
-</P>
-
-<ol>
-  <li>From <b>Navigate</b> menu, select <b>Go To &gt; Resource</b>.</li>
-  <li>In the window that opens, start typing the name of the
-    resource in the <b>Pattern</b> field. As you type the file name, the system
-    offers a list of possible matches, based on what you have entered so far.</li>
-  <li>Select the resource that you want from the <b>Matching
-    Resources</b> list, and click <b>OK</b>.</li>
-</ol>
-
-<p>The view displays the selected resource.</p>
-<p>
-If you want to open a particular resource in an editor rather than select
-it in a view, you can use the <b>Navigate &gt; Open Resource</b> action.
-This action presents the same dialog as the <b>Go To &gt; Resource</b> action,
-but immediately opens the matching resource for editing.
-</p>
-<p><em>Tip:</em>If the <b>Open Resource</b> and <b>Go To &gt; Resource</b>
-actions don't appear in your perspective, you can add them by selecting
-<b>Window &gt; Customize Perspective &gt; Other &gt; Resource Navigation</b>.
-By default, these actions only appear in certain perspectives.  The <b>Go To &gt; Resource</b>
-action is only enabled when a view containing resources has focus.
-</p>
-
-<p>You can also do a contextual search for character strings
-contained within files in the Workbench. See the links to related tasks below.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/concepts-17.htm">Resource hierarchies</a><br>
-<a href="../concepts/cnav.htm">Navigator view</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-84.htm">Searching for text within a file</a><br>
-<a href="tasks-46bg.htm">Narrowing the scope of the Navigator view</a><br>
-<a href="tasks-48.htm">Sorting resources in the Navigator view</a><br>
-<a href="tasks-48b.htm">Showing or hiding files in the Navigator view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-46bg.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-46bg.htm
deleted file mode 100644
index e50811b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-46bg.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-47.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-47.htm
deleted file mode 100644
index 9993a0f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-47.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-48.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-48.htm
deleted file mode 100644
index 43e2293..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-48.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-48b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-48b.htm
deleted file mode 100644
index f9aab28..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-48b.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Showing or hiding files in the Navigator view</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Showing or hiding files in the Navigator view</H1>
-
-<P>You can choose to hide system files or generated class files in the Navigator
-view. (System files are those that have only a file extension but no file
-name, for example .classpath.)</P>
-
-<ol>
-  <li>On the toolbar for the Navigator view, click the <b>Menu</b> 
-    button <img src="../images/ref-79.gif" alt="Menu button" border="0" width="16" height="16">
-	to open the drop-down menu of display options.</li>
-  <li>Select <b>Filter</b>.</li>
-  <li>In the dialog box that opens, select the checkboxes for the
-    types of files that you want to hide.</li>
-</ol>
-<P>In addition, you can restrict the displayed files to a working set.</P>
-<ol>
-  <li>On the toolbar for the Navigator view, click the <b>Menu</b> 
-    button <IMG src="../images/ref-79.gif" alt="Menu button" border="0" width="16" height="16">
-	to open the drop-down menu of display options.</li>
-  <li>Choose <B>Select Working Set...</B></li>
-  <li>Select an existing working set from the list or create a new one by selecting
-  <B>New...</B></li>
-</ol>
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/concepts-17.htm">Resource hierarchies</a><br>
-<a href="../concepts/cnav.htm">Navigator view</a><br>
-<a href="../concepts/cworkset.htm">Working sets</a>
-</P>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-49.htm">Viewing resource properties</a><br>
-<a href="tasks-46ag.htm">Finding a resource quickly</a><br>
-<a href="tasks-46bg.htm">Narrowing the scope of the Navigator view</a><br>
-<a href="tasks-48.htm">Sorting resources in the Navigator view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-49.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-49.htm
deleted file mode 100644
index 33d867a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-49.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-51.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-51.htm
deleted file mode 100644
index 145901a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-51.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Associating editors with file types</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Associating editors with file types</H1>
-<P>To associate editors with various file types in the Workbench:</P>
-<ol>
-  <li>From the main menu, select <b>Window &gt; Preferences</b>.</li>
-  <li>In the Preferences window, expand the Workbench category and
-    select <b>File Associations</b>.</li>
-  <li>Select the file type from the <b>File types</b> list, or click <b>Add</b>
-    to add a type that is not already on the list.</li>
-  <li>In the <b>Associated editors</b> list, select the editor that you want 
-    to associate with that file type. To add an editor to the list: 
-    <ol type="a">
-      <li>Click <b>Add</b>. The Editor Selection dialog box opens.</li>
-      <li>Select <b>Internal Editors</b> or <b>External Programs</b>, depending on
-          whether the editor that you want was built for the Workbench or runs outside the Workbench.</li>
-      <li>If you select <b>External Programs</b>, you can click the Browse button to
-          browse the file system.</li>
-      <li>Select the editor from the list and click <b>OK</b>.</li>
-    </ol>
-  </li>
-  <li>Click <b> OK</b> to finish associating the editor with the selected file type.</li>
-</ol>
-
-<p>When you associate an internal editor with a file type, that editor opens in
-the editor area of the Workbench. For example,  if you double-click a file in the
-Navigator or an entry in the Bookmarks or Tasks view it opens in the editor area.
-</p>
-
-<p><img border="0" src="../images/win_only.gif" alt="Windows only" width="51" height="13">
-Editors that support OLE document mode can also run in the editor area of the Workbench.
-</p>
-
-<p><b>Tip</b>: You can choose to override your default editor selections by
-selecting <b>Open With</b> from the pop-up menu for any resource in the
-Navigator view.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-6.htm">Editors</a><br>
-<a href="../concepts/concepts-6a.htm">External editors</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-46.htm">Opening files for editing</a><br>
-<a href="tasks-52.htm">Editing files outside the Workbench</a><br>
-  <a href="tasks-18.htm">Linking the Navigator view to the active editor</a> </p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-52.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-52.htm
deleted file mode 100644
index 881103a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-52.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-53.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-53.htm
deleted file mode 100644
index 0b10021..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-53.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Importing</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Importing</H1>
-
-<p>You can import files into the Workbench three ways:
-</p>
-
-<ul>
-  <li>By using the import wizard</li>
-  <li><img src="../images/win_only.gif" alt="For Windows:" border="0" width="51" height="13">
-    By dragging files or folders from the file system to the Navigator view</li>
-  <li><img src="../images/win_only.gif" alt="For Windows:" border="0" width="51" height="13">
-    By copying files or folders from the file system and pasting them into the
-    Navigator view</li>
-</ul>
-
-<p>See the related tasks section for more details.
-</p>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</P>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-55.htm">Importing resources from the file system</a><br>
-<a href="tasks-55bg.htm">Importing resources from a ZIP File</a><br>
-<a href="tasks-57.htm">Exporting</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-55.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-55.htm
deleted file mode 100644
index d635a9e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-55.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Importing resources from the file system</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Importing resources from the file system</h1>
-
-<p>You can use the Import Wizard to copy files from a file system directory into
-the Workbench.
-</p>
-
-<ol>
-  <li>From the main menu bar, select <b>File &gt; Import</b>. The Import wizard opens.</li>
-  <li>Select <b>File System</b> and click <b>Next</b>.</li>
-  <li>Click the <b>Browse</b> button on the next page of the wizard to select
-    the directories from which you would like to add the resources.</li>
-  <li>In the import selection panes, use the following methods to select exactly 
-    the resources you want to add: 
-    <UL>
-      <LI>Expand the hierarchies in the left pane and select or clear the checkboxes 
-        that represent the folders in the selected directory. Then in the right 
-        pane, select or clear checkboxes for individual files.</LI>
-      <LI>Click <b>Filter Types</b> to filter the current selection for files 
-        of a specific type.</LI>
-      <LI>Click <b>Select All</b> to select all resources in the directory, 
-        then go through and deselect the ones that you do not want to add.</LI>
-      <LI>Click <b>Deselect All</b> to deselect all resources in the directory, 
-        then go through and choose individual resources to add.</LI>
-    </UL></li>
-  <li>Specify the Workbench project or folder that will be the import destination.</li>
-  <li>When you have finished specifying your import options, click <b>Finish.</b></li>
-</ol>
-
-<P><em>Tip:</em> You can also import folders and files by dragging them from
-the file system and dropping them in the Navigator view, or by copying and pasting.
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-70.htm">Import wizard</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-importproject.htm">Importing existing projects</a><br>
-<a href="tasks-55bg.htm">Importing resources from a ZIP File</a><br>
-<a href="tasks-57.htm">Exporting</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-55bg.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-55bg.htm
deleted file mode 100644
index 60ea0b5..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-55bg.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Importing resources from a ZIP file</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Importing resources from a ZIP file</h1>
-
-<P>You can use the Import wizard to extract files from a ZIP file into the Workbench.
-</P>
-
-<ol>
-  <li>From the main menu bar, select <b>File &gt; Import</b>. The Import wizard opens.</li>
-  <li>Select <b>ZIP file</b> and click <b>Next</b>.</li>
-  <li>Click the <b>Browse</b> button on the next page of the wizard, to select
-    the ZIP files that contain the files you want to extract and import into the
-    Workbench.</li>
-  <li>In the import selection panes, use the following methods to select exactly
-    the resources you want to add:
-    <ul>
-      <li>Expand the hierarchies in the left pane and select or
-        clear the checkboxes that represent the folders in the selected
-        directory. Then in the right pane, select or clear checkboxes for
-        individual files.</li>
-      <li>Click <b>Filter Types</b> to filter the current selection
-        for files of a specific type.</li>
-      <li>Click <b>Select All </b>to select all resources in the
-        directory, then go through and deselect the ones that you do not want to
-        add.</li>
-      <li>Click <b>Deselect All</b> to deselect all resources in
-        the directory, then go through and choose individual resources to add.</li>
-    </ul></li>
-  <li>Specify the Workbench project or folder that will be the import destination.</li>
-  <li>When you have finished specifying your import options. click <b>Finish.</b></li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-70.htm">Import wizard</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-importproject.htm">Importing existing projects</a><br>
-<a href="tasks-55.htm">Importing resources from the file system</a><br>
-<a href="tasks-57.htm">Exporting</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-57.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-57.htm
deleted file mode 100644
index 05994e7..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-57.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Exporting</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Exporting</H1>
-
-<p>You can export files from the Workbench in three ways:
-</p>
-
-<ul>
-  <li>By using the Export wizard.</li>
-  <li><img src="../images/win_only.gif" alt="For Windows:" border="0" width="51" height="13"> By
-    dragging files or folders from the Navigator view to the file system.</li>
-  <li><img src="../images/win_only.gif" alt="For Windows:" border="0" width="51" height="13"> By
-    copying files or folders from Navigator view and pasting them into the file
-    system.</li>
-</ul>
-
-<p>See the related tasks section for more details.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-59.htm">Exporting resources to the file system</a><br>
-<a href="tasks-59ag.htm">Exporting resources to a ZIP File</a><br>
-<a href="tasks-53.htm">Importing</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-59.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-59.htm
deleted file mode 100644
index f35e60a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-59.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Exporting resources to the file system</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Exporting resources to the file system</H1>
-
-<P>You can use the Export wizard to export resources from the Workbench to the file system.
-</P>
-
-<ol>
-  <li>In the Navigator view, select the resources that you want to export.</li>
-  <li>From the main menu bar, select <b>File &gt; Export</b>. The Export wizard opens.</li>
-  <li>Select <b>File System</b> and click <b>Next</b>.</li>
-  <li>By default, the resources that you selected will be exported, along with
-    all their children. Optionally, use the checkboxes in the left and right
-    panes to select the set of resources to export, and use push buttons such as
-    <b>Select Types</b> to filter the types of files that you want to export.</li>
-  <li>Click the <b>Browse</b> button on the next page of the wizard, to select
-    the directory you would like to export the resources to.</li>
-  <li>Specify the directory in the file system that will be the export destination.</li>
-  <li>Click <b>Finish</b>.</li>
-</ol>
-
-<p><em>Tip:</em> You can also export folders and files by dragging them from
-the Navigator view to the file system and dropping them in the file system, or
-by copy and paste.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-53.htm">Importing</a><br>
-<a href="tasks-59ag.htm">Exporting resources to a ZIP File</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-59ag.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-59ag.htm
deleted file mode 100644
index 2910103..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-59ag.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-63.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-63.htm
deleted file mode 100644
index 00fdc38..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-63.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Moving resources</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Moving resources</h1>
-
-<P>You can move resources from one Workbench location to another (for example,
-from one project to another project).
-</P>
-
-<ol>
-  <li>In the Navigator view, select the resources that you want to move.</li>
-  <li>From the pop-up menu, select <b>Move</b>.</li>
-  <li>In the Folder Selection window, select the project or folder
-    where you want to move the resources to and click <b>OK</b>.</li>
-</ol>
-
-<p><em>Tip:</em> You can also move resources by dragging them from the original
-location to the new location in the Navigator view.
-</p>
-<P>Moving a linked resource always moves the link and not the resource that it is 
-linked to. E.g., when moving a linked folder the folder contents is not moved on
-the file system. Keep in mind that linked resources can only be moved to a project
-and not to a folder.
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/cnav.htm">Navigator view</a><br>
-<a href="../concepts/concepts-13.htm">Linked resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-46ag.htm">Finding a resource quickly</a><br>
-<a href="tasks-63cg.htm">Copying resources</a><br>
-<a href="tasks-66.htm">Renaming resources</a><br>
-<a href="tasks-67.htm">Deleting resources</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-63cg.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-63cg.htm
deleted file mode 100644
index 1b7b8e3..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-63cg.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Copying resources</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Copying resources</H1>
-
-<P>You can copy resources from one Workbench location to another (for example, 
-  from one project to another project).
-</P>
-
-<ol>
-  <li>In the Navigator view, select the resources that you want to copy.</li>
-  <li>From the pop-up menu, select <b>Copy</b>.</li>
-  <li>In the Navigator view, select the project or folder where you want to copy 
-    the resources to.</li>
-  <li>From the pop-up menu, select <b>Paste</b>.</li>
-</ol>
-
-<P><em>Tip:</em> You can also copy resources by holding down the Ctrl key and
-dragging them from the original location to the new location in the Navigator
-view.
-</P>
-<P>Copying a linked resource always copies the link and not the resource that it is 
-linked to. E.g., when copying a linked folder the folder contents is not copied on
-the file system. Instead, a new linked folder is created linking to the same location 
-on the file system. Keep in mind that linked resources can only be copied to a project
-and not to a folder.
-</P>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/cnav.htm">Navigator view</a><br>
-<a href="../concepts/concepts-13.htm">Linked resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-42.htm">Creating a project</a><br>
-<a href="tasks-43.htm">Creating a folder</a><br>
-<a href="tasks-44.htm">Creating a file</a><br>
-<a href="tasks-63.htm">Moving resources</a><br>
-<a href="tasks-66.htm">Renaming resources</a><br>
-<a href="tasks-67.htm">Deleting resources</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-66.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-66.htm
deleted file mode 100644
index 35dbe0a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-66.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-67.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-67.htm
deleted file mode 100644
index 27bdbc7..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-67.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Deleting resources</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Deleting resources</H1>
-
-<p>To delete a resource from the Workbench:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the resources that you want to
-    delete. (Hold down the Ctrl key to select more than one resource.)</li>
-  <li>Press the Delete key.</li>
-  <li>Click <b>Yes</b> in the dialog which appears.</li>
-</ol>
-
-<p><em>Tip:</em> You can achieve the same result by selecting <b>Delete</b>
-from the pop-up menu.
-</p>
-<p>
-Deleting resources from the workspace will also delete the corresponding files and/or
-folders from the local file system.  The only exception is linked resources, which are
-not removed from the file system when you delete the link in the workspace.  However,
-deleting child resources of linked folders <em>will</em> delete those resources
-from the local file system.
-</p>
-<p>
-In most cases it is possible to restore deleted files from the local history.  See the related
-tasks for more details.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-12.htm">Resources</a><br>
-<a href="../concepts/cnav.htm">Navigator view</a><br>
-<a href="../concepts/concepts-13.htm">Linked resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-42b.htm">Deleting projects</a><br>
-<a href="tasks-42.htm">Creating a project</a><br>
-<a href="tasks-43.htm">Creating a folder</a><br>
-<a href="tasks-44.htm">Creating a file</a><br>
-<a href="tasks-45.htm">Creating linked resources</a><br>
-<a href="tasks-87b.htm">Restoring deleted resources from local history</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-68.htm
deleted file mode 100644
index c43a8a6..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Comparing resources</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Comparing resources</H1>
-
-<p>When a comparison is performed, comparison 
-editors appear in the editor area. The differences between files are highlighted
-in the comparison editors, allowing you to browse and copy changes between the compared 
-resources.
-</p>
-
-<p>To compare resources:
-</p>
-
-<ol>
-  <li>Select one or more resources in the Navigator view.</li>
-  <li>From the resource's pop-up menu, select <b>Compare With.</b></li>
-</ol>
-
-<p>A tool for viewing differences is opened in the editor area.
-</p>
-
-<p>Here are some of the comparisons that you can perform.&nbsp;
-</p>
-
-<dl>
-<dt><b>Compare With &gt; Latest from Repository</b></dt>
-<dd>compares the selected resource with the version of the same resource that is
-    currently committed to the active branch.</dd>
-<dt><b>Compare With &gt; Branch or Version</b></dt>
-<dd>compares the selected resource with a version that has been committed to the
-    repository or to the latest version in a particular branch. This requires
-    you to choose a version of the resource or a branch from a list.</dd>
-<dt><b>Compare With &gt; Patch</b></dt>
-<dd>Displays the result of applying a patch to a resource.</dd>
-<dt><b>Compare With &gt; Each Other</b></dt>
-<dd>compares two or three selected resources with each other</dd>
-<dt><b>Compare With &gt; Revision</b></dt>
-<dd>compares the selected resource with a version of the same resource that was
-    committed to the active branch. This requires you to choose a revision of the
-    resource from a list.</dd>
-<dt><b>Compare With &gt; Local History</b></dt>
-<dd>compares the selected resource to one that is in the local history, which
-     is maintained when you save changes. (<em>Tip:</em> to configure the size
-	 and depth of your local history, look under <b>Window &gt; Preferences
-	 &gt; Workbench &gt; Local History</b>.)</dd>
-</dl>
-
-<p><em>Tip:</em> You can customize the behavior of the comparison editor by
-selecting <b>Window &gt; Preferences &gt; Workbench &gt; Compare/Patch</b>
-from the main menu bar. You can select to &quot;lock scroll&quot; the pane
-contents, as well as setting options for showing conflicts with other team
-members and changing the default font.</p>
-
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a><br>
-<a href="../concepts/concepts-29.htm">Three way comparisons</a><br>
-<a href="../concepts/concepts-17a.htm">Local history</a></p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-68dg.htm">Merging changes in the Compare editor</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-68b.htm">Setting preferences for comparing files</a><br>
-<a href="tasks-101.htm">Comparing resources with repository versions</a><br>
-<a href="tasks-68bg.htm">Understanding the comparison</a><br>
-<a href="tasks-68c.htm">Working with patches</a><br>
-<a href="tasks-3g.htm">Tiling editors</a></p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-25.htm">Compare editor</a>
-<br><a href="../reference/ref-33.htm">CVS Synchronize view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-68b.htm
deleted file mode 100644
index 86b23df..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68b.htm
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting preferences for comparing files</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Setting preferences for comparing files</H1>
-
-<P>When you select to compare or synchronize two or more resources in the
-Workbench, one or more comparison editors usually open. To customize how these
-editors behave:
-</P>
-
-<ol>
-  <li>On the main menu bar, select <b>Window &gt; Preferences</b>.
-      The Preferences window opens</li>
-  <li>Expand the <b>Workbench</b> category on the left and select <b>Compare</b>.</li>
-  <li>Set your preferences and click <b>OK</b>.</li>
-</ol>
-
-<p CLASS="Para">You can configure the following options on the <b>General</b> tab.
-</p>
-
-<TABLE BORDER="1" cellspacing="0" width="540" cellpadding="5">
-  <THEAD>
-    <TR> 
-      <TH ROWSPAN="1" COLSPAN="1"> <P CLASS="Para"> Option</P></TH>
-      <TH ROWSPAN="1" COLSPAN="1"> <P CLASS="Para"> Description</P></TH>
-      <TH ROWSPAN="1" COLSPAN="1"> <P CLASS="Para"> Default</P></TH>
-    </TR>
-  </THEAD>
-  <TBODY>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Open structure compare automatically</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Makes an additional information area visible which shows differences 
-          in the underlying structure of the resources being compared. This information 
-          may not be available for all comparisons.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          On</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Show additional compare information in the status line</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Causes the status line to display additional context information about 
-          the comparison.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Off</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Ignore white space</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">Causes 
-          the comparison to ignore differences which are whitespace characters 
-          (spaces, tabs, etc.). Also causes differences in line terminators ( 
-          LF versus CRLF) to be ignored.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Off</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Automatically save dirty options before patching</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para">
-      	  This option controls whether any unsaved changes are automatically saved before
-      	  a patch is applied.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Off</P></TD>
-    </TR>
-  </TBODY>
-</TABLE>
-
-<p CLASS="Para">You can configure the following options in the <b>Text Compare</b> tab.
-</p>
-
-<TABLE BORDER="1" cellspacing="0" width="540" cellpadding="5">
-  <THEAD>
-    <TR> 
-      <TH width="122" COLSPAN="1" ROWSPAN="1"> <P CLASS="Para"> Option</P></TH>
-      <TH width="327" COLSPAN="1" ROWSPAN="1"> <P CLASS="Para"> Description</P></TH>
-      <TH width="53" COLSPAN="1" ROWSPAN="1"> <P CLASS="Para"> Default</P></TH>
-    </TR>
-  </THEAD>
-  <TBODY>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Synchronize scrolling between panes in compare viewers</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          The two compare viewers will &quot;lock scroll&quot; along with one 
-          another in order to keep identical and corresponding portions of the 
-          code in each pane side by side.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          On</P></TD>
-    </TR>
-
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para"> Initially show ancestor pane</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">Sometimes you may want to compare two versions of a resource with
-the previous version from which they were both derived. This is called their <i>common ancestor</i>,
-and it appears in its own comparison pane during a three way comparison.</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Off</P>
-</TD>
-</TR>
-   <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Show pseudo conflicts</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Displays conflicts that occur when two developers make the same change, 
-          for example when both add or remove the same line of code.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Off</P></TD>
-    </TR>
-    <TR> 
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Connect ranges with single line</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          Controls whether differing ranges are visually connected by a single
-          line or a range delimited by two lines.</P></TD>
-      <TD ROWSPAN="1" COLSPAN="1" valign="top" align="left"> <P CLASS="Para"> 
-          On</P></TD>
-    </TR>
-  </TBODY>
-</TABLE>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-29.htm">Three way comparisons</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-68.htm">Comparing resources</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-68dg.htm">Merging changes in the Compare editor</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-25.htm">Compare editor</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68bg.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-68bg.htm
deleted file mode 100644
index 1ae3d65..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68bg.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Understanding the comparison</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Understanding the comparison</H1>
-
-<p>If you compare two files (file1.txt and file2.txt), the following results
-are shown in the compare editor. The left side shows the contents of file1.txt and the right side
-shows the contents of file2.txt. The lines connecting the left and right panes
-indicate the differences between the files.
-</p>
-
-<p>You can double click on the editor tab to maximize the editor.
-</p>
-
-<p><img src="../images/Image80_compare_editor2.gif" alt="Compare view" border="0" width="545" height="235">
-</p>
-
-<p>Looking at the numbered changes in the above image:
-</p>
-
-<ul>
-  <li>Starting with the top line (in the the left pane) we can see that the difference 
-    bar (in the area of the blue circle) indicates something is missing from the 
-    very top of the left file. If we follow the difference band (see #1) to the 
-    right file we can see that it contains &quot;This is line 1&quot; .</li>
-  <li>The next line &quot;This is line 2.&quot; is white indicating it matches 
-    the right file.</li>
-  <li>Moving onto the next line (colored in gray) we can see that the left file 
-    and right file have different contents for this line (see #2).</li>
-  <li>The next line (&quot;This is line 4&quot;) is once again in white, so we
-    can skip it, since the contents are the same in both.</li>
-  <li>The next line exists in the left file&nbsp; but since it is gray we follow 
-    its difference bar to the right (see #3) and notice that the right file does 
-    not contain the line (see red circle).</li>
-</ul>
-
-<p><em>Hint:</em> On the right-hand side of the comparison, to the right of the
-scrollbar, there is a column which shows a graphical representation of all differences 
-between the resources. You can click on any of the segments displayed there 
-to quickly scroll to that difference.
-</p>
-  
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a><br>
-<a href="../concepts/concepts-29.htm">Three way comparisons</a><br>
-<a href="../concepts/concepts-17a.htm">Local history</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-68.htm">Comparing resources</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-68dg.htm">Merging changes in the Compare editor</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-68b.htm">Setting preferences for comparing files</a><br>
-<a href="tasks-101.htm">Comparing resources with repository versions</a><br>
-<a href="tasks-3g.htm">Tiling editors</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-25.htm">Compare editor</a><br>
-<a href="../reference/ref-33.htm">Synchronize view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68c.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-68c.htm
deleted file mode 100644
index 784397e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68c.htm
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with patches</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Working with patches</H1>
-
-<p>Patches allow developers to share work without storing it in a repository. 
-  This is helpful when a developer wants to contribute to a project that is shared 
-  through a repository but does not have write access to the repository. In this 
-  situation, the developer can create a patch and either e-mail it to a developer 
-  who does have write access or attach it to a bug in the bug reporting system 
-  used by the project, depending on the process defined by the project. A developer 
-  that does have write access can then apply the patch to the project and commit 
-  the changes.</p>
-<H2>To create a patch from a CVS project:</H2>
-<ol>
-  <li>Select the resource that contains the modifications to be included in the 
-    patch. Although this can be any folder, it is easiest to select the project 
-    itself because the patch must be applied to the same resource it is generated 
-    from. The patch should also be applied to the same file revisions that it 
-    is generated on so steps should be taken to ensure that the patch is applied 
-    to the same resource line-up (the easiest way to do this is to create the 
-    patch on top of a version).</li>
-  <li>From the popup menu, select <b>Team &gt; Create Patch...</b>. The Create 
-    Patch wizard will open.</li>
-  <li>Choose where the patch should be saved: 
-    <ol type="a">
-      <li><i>Save to Clipboard</i> - this will place the patch on the clipboard 
-        so it can be pasted into a text editor such as an e-mail program.</li>
-      <li><i>Save to File System</i> - this will place the patch in the specified 
-        file in the local file system</li>
-      <li><i>Save in Workspace</i> - this will place the patch in the specified 
-        file inside one of the existing workbench projects.</li>
-    </ol>For small patches it may be reasonable to transfer the patch using the clipboard 
-    but in most cases the local file system in the best option to use. Click <b>Next</b> 
-    to configure how the patch is generated.</li>
-  <li>Choose how to configure the patch:
-    <ol type="a">
-      <li><i>Recurse into sub-folders</i> - If disabled, only the direct children 
-        of the selection are included in the patch. Otherwise, all descendants 
-        are included.</li>
-      <li><i>Include new files in patch</i> - If disabled, only files that are 
-        under CVS version control are included. Otherwise, files that have been 
-        newly created but not added or ignored will also be included.</li>
-      <li><i>Diff output format</i> - Allows the choice of several common diff 
-        output formats. <i>Unified</i> is the format used by many patch application 
-        tools including Eclipse.</li>
-    </ol>
-  </li>
-  <li>Click <b>Finish</b>. </li>
-  <li>Transfer the patch as appropriate for the project being patched.</li>
-</ol>
-<H2>To apply a patch:</H2>
-<ol>
-  <li>Select the resource that the patch was generated on. This resource should 
-    contain the same file revisions as the line-up on which the patch was generated.</li>
-  <li>From the pop-up menu, select <b>Team&gt;Apply Patch...</b>. The Resource 
-    Patcher wizard will open.</li>
-  <li>Indicate where the patch is to be found:
-    <ol type="a">
-      <li><i>File</i> - the patch is in a file on the local file system. Either 
-        type in the full path to the file or use the <b>Browse...</b> button to 
-        find the file.</li>
-      <li><i>Clipboard</i> - the patch is on the clipboard. <b>Warning:</b> It 
-        is safer to use a file based patch. Line endings may not be handled properly 
-        if the clipboard is used and the patch was generated on a different platform 
-        (i.e. Linux vs. Windows).</li>
-    </ol> Click <b>Next</b> to see the effect of applying the patch.</li>
-  <li>The top pane of this page shows whether the patch could be successfully applied
-  to files in your workspace. If you select a leaf item in the tree the bottom pane
-  shows the part of the patch file (known as 'hunk' in patch terminology) in an easy to read
-  side by side presentation. <b>Note:</b> The bottom pane <b>does not</b> show a preview
-  of how resources in your workspace would look like after applying the hunk.
-  It just shows the contents of the patch file.
-  
-
-  <ol type="a">
-  	<li>
-  	A checked item indicates that a patch (or hunk) could be successfully
-  	applied to a workspace resource.
-  	You can exclude patches or individual hunks by unchecking them.
-  	</li>
-  	
-    <li>
-    A red exclamation mark indicates that there is a problem with a patch or hunk.
-    <br>
-    This happens if the patch is not 
-    well formed or the revision of one or more files that the patch were generated 
-    on do not match the revisions that the patch is being applied to.
-    <br>
-    You find the reason for the failure in parenthesis.
-    <p>
-    In order to apply the full patch
-    successfully you will have to eliminate the problems (red exclamation marks) and get checked
-    items everywhere by tweaking the options on this wizard page (see 'Options' below).
-  	</li>
-   	
-  </ol>
-          
-  <li>If all is well, click <b>Finish</b> to apply the patch. The workspace will 
-    now contain outgoing changes for each file modified by the patch.</li>
-</ol>
-
-
-<H3>Options for applying a patch</H3>
-
-  	For getting successful matches of your patch file you have the following options:
-   	<ol>
-   	
-   		<li>
-   			Go back to the first page of the Resource Patcher wizard and
-   			select the correct resource to which the patch should be applied.
-   		</li>
-   	
-   	  	<li>
-   	  		If a common prefix of the path names stored in the patch file doesn't match
-   	  		the path names in you current workspace, you can 'Ignore leading path name segments'.
-  		</li>
-
-   	  	<li>
-   	  		Use the 'Ignore whitespace' option to make the matching process
-   	  		independent from whitespace differences between the patch file and files
-   	  		in your workspace. 
-  		</li>
-
-   	  	<li>
-   	  		Adjust the 'Maximum fuzz factor' (patch terminology).
-			This factor determines how far from its original line a hunk is allowed to match.
-			The default is two. So if a hunk does not match at the line given in the patch 
-			file, the Resource Patcher tries to match the hunk 'fuzz' number of lines before
-			or after the position.
-  		</li>
-
-   	  	<li>
-   	  		Use the 'Reverse patch' option for patch files that already have been applied to your
-   	  		workspace. This option is also useful to undo or redo a patch.
-  		</li>
-
-   	</ol>
-
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-68.htm">Comparing resources</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68dg.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-68dg.htm
deleted file mode 100644
index 314679f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-68dg.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Merging changes in the compare editor</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Merging changes in the compare editor</H1>
-
-<p>The toolbar buttons in the compare editor allows you to merge changes from the left file to the
-right file and vice versa. There are four types of merges you can perform:
-</p>
-
-<ul>
-  <li>Copy All from Left to Right</li>
-  <li>Copy All from Right to Left</li>
-  <li>Copy Current Change from Left to Right</li>
-  <li>Copy Current Change from Right to Left</li>.
-</ul>
-
-<p>The <b>Copy All from Left to Right</b> and <b>Copy All from Right to Left</b>
-actions completely replace the contents of one resource with the other resource.
-</p>
-
-<p>To merge a single change:
-</p>
-
-<ol>
-  <li>Select the highlighted difference that you want to merge.</li>
-  <li>Depending on what you want to do, click either the <b>Copy Current Change 
-    from Right to Left</b> or the <b>Copy Current Change from Left to Right</b> 
-    toolbar button. The selected text is copied from one file to the other.</li>
-  <li>Right click to get the resource's pop-up menu, and select <b>Save</b>.</li>
-</ol>
-
-<p>The image below gives an example of two files (file1.txt and file2.txt) compared.
-</p>
-
-<p><img src="../images/Image80_compare_editor.gif" alt="Compare view" border="0" width="631" height="236">
-</p>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-29.htm">Three way comparisons</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</P>
-
-<p><img src="../images/ngrelt.gif" alt="Related tasks" border="0" width="159" height="27"><br>
-<a href="tasks-68.htm">Comparing resources</a><br>
-<a href="tasks-68bg.htm">Understanding the comparison</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-68b.htm">Setting preferences for comparing files</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27">
-<br><a href="../reference/ref-25.htm">Compare editor</a>
-<br><a href="../reference/ref-33.htm">Synchronize view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-70.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-70.htm
deleted file mode 100644
index ceeb627..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-70.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Comparing resources with the local history</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Comparing resources with the local history</H1>
-<p>To compare a Workbench resource with a state in the local history:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the resource that you want to compare with 
-    a local history state.</li>
-  <li>From the resource's pop-up menu, select <b>Compare With</b> &gt; <b>Local 
-    History</b>. The Compare with Local History page opens.</li>
-  <li>Select a state in the <b>Local History</b> list. The Text Compare editor opens.</li>
-  <li>Click the <b>Select Next Change</b> and <b>Select Previous Change</b> buttons 
-    to browse the changes made between the state in the local history and the 
-    Workbench resource.</li>
-  <li>Click <b>OK</b> when you are finished.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-17a.htm">Local history</a><br>
-<a href="../concepts/concepts-27.htm">Versions</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-87.htm">Replacing a resource with local history</a><br>
-<a href="tasks-87b.htm">Restoring deleted resources from local history</a><br>
-<a href="tasks-88.htm">Setting local history preferences</a><br>
-<a href="tasks-68.htm">Comparing resources</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-73.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-73.htm
deleted file mode 100644
index a06ab7b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-73.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-75.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-75.htm
deleted file mode 100644
index a2b4c3c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-75.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Performing builds manually</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Performing builds manually</h1>
-
-<P>By default, builds are performed automatically when you save resources. If 
-  you need more control over when builds occur, you can disable automatic building 
-  and manually invoke builds. This is sometimes desirable in cases where you know 
-  building should wait until you finish a large set of changes. The disadvantage 
-  of manual building is that tasks generated to indicate build errors quickly 
-  become out of date until you build. In addition, it is very important that you 
-  remember to manually build before relying on build output (for example, before 
-  running your Java program).
-</P>
-
-<p><em>Note:</em> Some of the menu items described below are only available when 
-the automatic build preference is disabled in the Workbench preferences (select 
-<b>Window &gt; Preferences</b> &gt; <b>Workbench</b>).
-</p>
-
-<p>To build only selected projects:
-</p>
-
-<ol>
-  <li>In the Navigator view of the Resource perspective, select one or more projects.</li>
-  <li>Right-click and select the option <b>Rebuild Project</b> from the pop-up menu.</li>
-</ol>
-
-<p>To build all projects in the workspace click <b>Project &gt; Rebuild All</b>. 
-Note that, this will rebuild all resources, even the ones which have not been 
-modified.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-22.htm">Builds</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-17.htm">Saving resources automatically before a manual build</a><br>
-<a href="tasks-14.htm">Changing build order</a><br>
-<a href="tasks-16.htm">Performing builds automatically</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-77.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-77.htm
deleted file mode 100644
index ca7db7d..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-77.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Adding line items in the Tasks view</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Adding line items in the Tasks view</H1>
-
-<P>The Tasks view contains line items for system-generated problems, warnings, and
-errors. You can add your own entries to the table to build a list
-of to-do items, or tasks.
-</P>
-
-<ol>
-  <li>On the toolbar in the Tasks view, click the <b>New Task</b> button
-      <img src="../images/Image52_new_task.gif" alt="New Task button" border="0" width="23" height="22">.
-      The <b>New Task</b> dialog will open.</li>
-  <li>Type a brief description for the task in the <b>Description</b> field. 
-      The new task is assigned default priority and completed values. 
-      These values may also be modified within the <b>New Task</b> dialog.</li>
-  <li>Press <b>OK</b>.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/ctskview.htm">Tasks view</a><br>
-<a href="../concepts/cbookmrk.htm">Bookmarks</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-78.htm">Deleting tasks</a><br>
-<a href="tasks-77b.htm">Associating a task with a resource</a><br>
-<a href="tasks-79.htm">Filtering the Tasks view</a><br>
-<a href="tasks-81b.htm">Creating a bookmark for an entire file</a><br>
-<a href="tasks-81.htm">Creating a bookmark within a file</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-77b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-77b.htm
deleted file mode 100644
index 0600a55..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-77b.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Associating a task with a resource</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<a NAME="elementId-1032839"></a>
-<a NAME="pgfId-1032844"></a>
-<h1>Associating a task with a resource</h1>
-
-<p>You can associate tasks with an editable resource, for instance
-to remind yourself to update a line of source code later.
-</p>
-
-<ol>
-  <li>In the Navigator view, double-click the resource with which
-      you wish to associate the new task. The resource opens in the editor area.</li>
-  <li>Right-click in the gray border at the left of the editor
-      area, beside the line of text or source code against which you want to log
-      the new task.</li>
-  <li>On the pop-up menu, select <b>Add Task</b>.</li>
-  <li>When prompted, enter a brief description of the task.</li>
-</ol>
-
-<p>A new task icon appears in the border of the editor area, to
-the left of the line where you added the task. When you move the mouse pointer
-over the marker, the description of the task is displayed as a tooltip. The task
-is also added to the Tasks view. You can delete a task either by right-clicking
-its icon in the editor area and selecting <b>Remove Task</b>, or by pressing the 
-Delete key in the Tasks view.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/ctskview.htm">Tasks view</a><br>
-<a href="../concepts/cbookmrk.htm">Bookmarks</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-77.htm">Adding line items in the Tasks view</a><br>
-<a href="tasks-78.htm">Deleting tasks</a><br>
-<a href="tasks-79.htm">Filtering the Tasks view</a><br>
-<a href="tasks-81b.htm">Creating a bookmark for an entire file</a><br>
-<a href="tasks-81.htm">Creating a bookmark within a file</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-78.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-78.htm
deleted file mode 100644
index 01a144e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-78.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-79.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-79.htm
deleted file mode 100644
index 6142f0a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-79.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-81.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-81.htm
deleted file mode 100644
index d8a20d6..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-81.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a bookmark within a file</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<a NAME="elementId-1001031"></a>
-<a NAME="pgfId-1001036"></a>
-<h1>Creating a bookmark within a file</h1>
-
-<p>The Workbench allows you to create bookmarks in files that you
-edit so that you can quickly reopen those files from the Bookmarks view.
-</p>
-
-<ol>
-  <li>With the file open in an editor, right-click in the gray border at the left
-  of the editor area, next to the line of code or text that you want to bookmark.</li>
-  <li>Select <b>Add Bookmark </b>from the pop-up menu.</li>
-  <li>Notice that an icon for the bookmark now appears in the left
-    border of the editor area. A line is also added to the Bookmarks view
-	(<b>Window &gt; Show View &gt; Bookmarks</b>.)</li>
-</ol>
-
-<p CLASS="Head">You can reopen the file for editing at any time by double-clicking 
-  the bookmark in the Bookmarks view. </p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/cbookmrk.htm">Bookmarks</a><br>
-<a href="../concepts/ctskview.htm">Tasks view</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-81b.htm">Creating a bookmark for an entire file</a><br>
-<a href="tasks-82.htm">Deleting a Bookmark</a><br>
-<a href="tasks-77.htm">Adding line items in the Tasks view</a><br>
-<a href="tasks-77b.htm">Associating a task with a resource</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-81b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-81b.htm
deleted file mode 100644
index 24e537b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-81b.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a bookmark for an entire file</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<a NAME="elementId-1001031"></a>
-<a NAME="pgfId-1001036"></a>
-
-<h1>Creating a bookmark for an entire file</h1>
-
-<p>You can bookmark individual files in the Workbench, in order to open them
-quickly from the Bookmarks view later.
-</p>
-
-<ol>
-  <li>In the Navigator view, right-click the file that you want to
-    add to your list of bookmarks.</li>
-  <li>Select <b>Add Bookmark</b> from the file's pop-up menu.</li>
-</ol>
-
-<p>At any time, You can open the bookmarked file for editing by
-double-clicking the bookmark in the Bookmarks view
-(<b>Window &gt; Show View &gt; Bookmarks</b>).
-</p>
-
-<p>You can also create bookmarks for specific lines of text or
-source code or within a file. See the list of related topics below.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/cbookmrk.htm">Bookmarks</a><br>
-<a href="../concepts/ctskview.htm">Tasks view</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-81.htm">Creating a bookmark within a file</a><br>
-<a href="tasks-82.htm">Deleting a Bookmark</a><br>
-<a href="tasks-77.htm">Adding line items in the Tasks view</a><br>
-<a href="tasks-77b.htm">Associating a task with a resource</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-82.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-82.htm
deleted file mode 100644
index 5c5a480..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-82.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-84.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-84.htm
deleted file mode 100644
index b461d43..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-84.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Searching for text within a file</title>
-</head>
-<body>
-
-<h1>Searching for text within a file</h1>
-
-<p>The <b>Go To</b> selection in the pop-up menu for the Navigator view allows you
-to quickly find a resource in the Workbench by searching resource <i>names</i>.
-</p>
-
-<p>You can also do contextual searches for information that is contained <i>inside</i>
-files in the Workbench. To find all files that contain a particular string of characters:
-</p>
-
-<ol>
-  <li>On the main toolbar, click the <b>Search</b> button 
-      <img src="../images/Image50_search.gif" alt="search icon" border="0" width="26" height="22">.</li>
-  <li>Type your search string in the <b>Containing Text</b> field, or use the 
-      pull-down list to select a previously entered search expression.<br> Use <code>\</code> as an escape 
-      character for search strings that contain the special characters <code>*</code>, <code>?</code>, or <code>\</code>, 
-	  (for example: <code>d:\\directory\\filename.ext</code>.</li>)
-  <li>Finish entering your search options, (for example, to scope
-      the search to specified file types), and click <b>Search</b>.</li>
-  <li>The Search view displays the results of your search. Right-click on any item in
-      the Search view to open a pop-up menu that allows you to remove items from the
-      list, copy search results to the clipboard, or rerun the search. To open one of
-      the listed files, double-click it or select <b>Go to File</b> from its pop-up
-      menu.</li>
-</ol>
-
-<p>If you close the Search view, you can return to it later by selecting <b>Window
-&gt; Show View &gt; Other &gt; Basic &gt; Search</b>.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/csearchview.htm">Search view</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-84b.htm">Searching for files</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-26.htm">Search view</a><br>
-<a href="../reference/ref-45.htm">File search</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-84b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-84b.htm
deleted file mode 100644
index fdad3e7..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-84b.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Searching for files</title>
-</head>
-
-<body>
-<h1>Searching for files</h1>
-
-<p>The <b>Go To &gt; Resource</b> action in the <b>Navigate</b> menu 
-allows you to quickly find a resource in the Workbench by searching resource <i>names</i>.
-</p>
-
-<p>You can also do more complex searches for files in the Workbench. For example, 
-to find all files that end with .xml:
-</p>
-
-<ol>
-  <li>On the main toolbar, click the <b> Search</b> button <img src="../images/Image50_search.gif" alt="Search icon" border="0" width="26" height="22">.</li>
-  <li>Type <code>.xml</code> into the <b>File name patterns</b> field and leave 
-    the <b>Containing text</b> field empty. <br>
-    (You can use the pull-down list to select <code>.xml</code> if it had been previously entered.)</li>
-  <li>Finish entering your search options, for example to scope the search to 
-    specified working sets, and click <b>Search</b>.</li>
-  <li>The Search view displays the results of your search. Right-click on any 
-    item in the Search view to open a pop-up menu that allows you to remove items 
-    from the list, copy search results to the clipboard, or rerun the search. 
-    To open one of the listed files, double-click it or select <b>Go to File</b> 
-    from its pop-up menu.</li>
-</ol>
-<p>
-If you close the Search view, you can return to it later by selecting <b>Window
-&gt; Show View &gt; Other &gt; Basic &gt; Search</b>.</p>
-
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/csearchview.htm">Search view</a>
-<a href="../concepts/cworkset.htm"><br>Working sets</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-84.htm">Searching for text within a file</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-26.htm">Search view</a><br>
-<a href="../reference/ref-45.htm">File search</a><br>
-</p>
-
-<p><br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-87.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-87.htm
deleted file mode 100644
index 83e9879..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-87.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Replacing a resource with local history</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Replacing a resource with local history</H1>
-
-<p>To replace a Workbench resource with a state in the local history:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the resource that you want to replace with 
-    a local history state.</li>
-  <li>From the resources pop-up menu, select <b>Replace with</b> &gt; <b>Local 
-    History</b>. The Replace from Local History page opens.</li>
-  <li>Select a state from the <b>Local History</b> list. The Text Compare editor opens.</li>
-  <li>Click the <b>Select Next Change</b> and <b>Select Previous Change</b> buttons 
-    to browse through the changes made between states in the local history and 
-    the Workbench resource.</li>
-  <li>Select the state you want to replace, and click <b>Replace</b>.</li>
-</ol>
-
-<P><em>Tip</em>: You can configure your Workbench preferences to specify how many
-days to keep files, or how many entries per file you want to keep, or the
-maximum file size for files to be kept. Select <b>Window &gt; Preferences
-&gt; Workbench &gt; Local History</b>.
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-17a.htm">Local history</a><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-70.htm">Comparing resources with the local history</a><br>
-<a href="tasks-87b.htm">Restoring deleted resources from the local history</a><br>
-<a href="tasks-88.htm">Setting local history preferences</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-87b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-87b.htm
deleted file mode 100644
index 5e18e00..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-87b.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Restoring deleted resources from local history</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Restoring deleted resources from local history</H1>
-
-<p>To restore a deleted Workbench resource with a state from the local history:
-</p>
-
-<ol>
-  <li>In the Navigator view, select the folder or project into which you want to restore  
-    a local history state.</li>
-  <li>From the resource's pop-up menu, select <b>Restore from Local History...</b>.
-  The Restore From Local History dialog opens showing all files that were previously contained
-  in the selected folder or project and all of their sub-folders.</li>
-  <li>Check the files that you want to restore</li>
-  <li>If you don't want to restore just the last state of a file you can 
-  select any other state of the file from the <b>Local History</b> list on the right hand side
-  of the dialog. The bottom pane of the dialog shows the contents of the state.</li>
-  <li>If you are done with all files click <b>Restore</b>.</li>
-</ol>
-
-<P><em>Tip</em>: You can configure your Workbench preferences to specify how many
-days to keep files, or how many entries per file you want to keep, or the
-maximum file size for files to be kept. Select <b>Window &gt; Preferences
-&gt; Workbench &gt; Local History</b>.
-</P>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-17a.htm">Local history</a><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-70.htm">Comparing resources with the local history</a><br>
-<a href="tasks-87.htm">Replacing resources with the local history</a><br>
-<a href="tasks-88.htm">Setting local history preferences</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-88.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-88.htm
deleted file mode 100644
index ce90718..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-88.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting local history preferences</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Setting local history preferences</H1>
-
-<p>To indicate the level of local history that should be kept for 
-each resource in the Workbench:
-</p>
-
-<ol>
-  <li>Click <b>Window &gt; Preferences</b>.</li>
-  <li>Select the <b>Workbench</b> &gt; <b>Local History</b> category in the left 
-    pane. The Local History Preferences page opens.</li>
-  <li>In the <b>Days to keep files</b> field, type the number of days that you 
-    want to keep records for any one Workbench resource. For example, if you type 
-    7, then a history of saved states from the last seven days will be kept.</li>
-  <li>In the <b>Entries per file</b> field, type the number of states to keep 
-    for any one Workbench resource. Note that when you exceed the number of 
-    entries per file, the oldest changes are discarded to make room for the newer 
-    changes.</li>
-  <li>In the <b>Maximum file size (MB)</b> field, type the maximum file size (in 
-    MB) of a resource for which a local history should be kept. If 
-    the size of the resource exceeds the maximum amount of file size allocated, 
-    no local history is kept for that resource.</li>
-  <li>Click <b>OK</b> to set your preferences and close the Local History Preferences page.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-17a.htm">Local history</a><br>
-<a href="../concepts/concepts-27.htm">Versions</a><br>
-<a href="../concepts/concepts-12.htm">Resources</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-70.htm">Comparing resources with the local history</a><br>
-<a href="tasks-87.htm">Replacing a resource with local history</a><br>
-<a href="tasks-87b.htm">Restoring deleted resources from local history</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9.htm
deleted file mode 100644
index fe9c51a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Changing the placement of the tabs</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Changing the placement of the tabs</H1>
-
-<P>You can change the placement of the tabs.  The tabs for stacked views or editors can appear at the top or bottom
-of the area which contains them.
-</P>
-
-<ol>
-  <li>On the main menu bar, click <b>Window &gt; Preferences</b>.</li>
-  <li>Expand the <b>Workbench</b> category and select <b>Appearance</b>.</li>
-  <li>Use the radio buttons in the <b>Editor tab positions</b> group or <b>View tab
-      positions</b> group to control whether you want the tabs at the top or the
-	  bottom.</li>
-  <li>Click <b>Apply</b> and <b>OK</b>.</li>
-  <li>Close and reopen the Workbench to in order to see the changes.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-5.htm">Views</a><br>
-<a href="../concepts/concepts-6.htm">Editors</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-46.htm">Opening files for editing</a><br>
-<a href="tasks-3g.htm">Tiling editors</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-92.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-92.htm
deleted file mode 100644
index 2b6461e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-92.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating a CVS repository location</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Creating a CVS repository location</H1>
-
-<P><em>Prerequisite</em>: A CVS server must already be configured on the host machine to create a
-valid repository location in the Workbench.
-</P>
-
-<P>To create a new repository location:
-</P>
-
-<ol>
-  <li>Open the CVS Repositories view by selecting <b>Window &gt; Show View &gt; 
-    Other...</b> on the main menu bar and then selecting <b>CVS &gt; CVS Repositories</b> 
-    from the Show View dialog. Alternatively, the CVS Repositories view is also 
-    shown in the CVS Repository Exploring perspective. </li>
-  <li>From the context menu of the CVS Repositories View, select <b>New &gt; Repository 
-    Location</b>. The Add CVS Repository wizard opens.</li>
-  <li>Enter the information required to identify and connect to the repository 
-    location: 
-    <ol type="a">
-      <li>In the <b> Host </b> field, type the address of the host. (For example: 
-        <samp>mymachine.com)</samp>. </li>
-      <li>In the <b> Repository path </b> field, type the path to the repository 
-        on the host (for example <samp>/home/repo, d:/repo.)</samp></li>
-      <li>In the <b> User </b> field, type the user name under which you want 
-        to connect to the repository. </li>
-      <li>In the <b>Password</b> field, type the password for the above user name.</li>
-      <li> From the <b> Connection Type</b> list, select the authentication protocol 
-        of the CVS server.&nbsp; There are three connection methods that come 
-        with the Eclipse CVS client: 
-        <ul>
-          <li><b>pserver</b> - a CVS specific connection method.</li>
-          <li><b>extssh</b> - an SSH 1.0 client included with Eclipse</li>
-          <li><b>ext</b> - the CVS ext connection method which uses an external 
-            tool such as SSH to connect to the repository. The tool used by ext 
-            is configured in the <b>Team &gt; CVS &gt; EXT Connection Method</b> 
-            preference page. </li>
-        </ul>
-      </li>
-      <li>If the host uses a custom port, enable <b>Use Port</b> and enter the 
-        port number.</li>
-    </ol>
-  </li>
-  <li>(Optional) Select <b>Validate Connection on Finish</b> if you want to 
-    authenticate the specified user to the specified host when you close this 
-    wizard. (If you do not select this option, the user name will be authenticated 
-    later, when you try to access the contents of the repository.)</li>
-  <li> Click <b>Finish</b>. The repository location is created. </li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-94.htm">Discarding a CVS repository location</a><br>
-<a href="tasks-93.htm">Refreshing the CVS repositories view</a><br>
-<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
-<a href="tasks-110.htm">Discovering branch and version tags</a><br>
-<a href="tasks-95.htm">Changing the properties of a CVS Repository Location</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-93.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-93.htm
deleted file mode 100644
index 1756949..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-93.htm
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Refreshing the CVS Repositories view</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Refreshing the CVS Repositories view</H1>
-
-<P> There are two ways to refresh the CVS Repositories view in order to see the 
-current connection status of all repositories:
-</p>
-
-<ul>
-  <li>Click the <b>Refresh View</b> button on the view's toolbar&nbsp;</li>
-  <li>Press F5 on the keyboard</lI>
-</ul>
-
-<p><em>Note</em>: Refreshing the CVS Repositories view may change the resources 
-  displayed by the view but does not change the branch and version tags known 
-  to the view. Refreshing the tags is discussed in <a href="tasks-110.htm">Discovering 
-  branch and version tags</a></p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-  <a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-  <a href="../concepts/concepts-27c.htm">CVS Repositories</a> </p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-  <a href="tasks-92.htm">Creating a CVS repository location</a><br>
-  <a href="tasks-94.htm">Discarding a CVS repository location</a> <br>
-  <a href="tasks-110.htm">Discovering branch and version tags</a></p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-94.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-94.htm
deleted file mode 100644
index b8e60c4..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-94.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Discarding a CVS repository location</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Discarding a CVS repository location</H1>
-
-<P><em>Note:</em> You cannot discard a location if you have projects in the Workbench that
-are shared with that location.
-</p>
-
-<P>To discard a CVS repository location:
-</p>
-
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, select the repository location that you want 
-    to delete from the Workbench.</li>
-  <li>Select <b>Discard Location</b> from the pop-up menu or press the DELETE 
-    key.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><a href="tasks-100b.htm"></a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-95.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-95.htm
deleted file mode 100644
index b6e3825..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-95.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Changing the properties of a CVS repository location</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Changing the properties of a CVS repository location</H1>
-
-<P>You can change certain properties of an existing repository location. 
-The properties that can be changed are the connection method, user name 
-and password.
-</p>
-
-<P>To change the properties of a CVS repository location:
-</p>
-
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, select the repository location whose properties you want to change.</li>
-  <li>Select <b>Properties</b> from the pop-up menu. The properties dialog will open.</li>
-  <li>Change one or more of the connection method, user name and password.</li>
-  <li>Click <b>OK</b> to change the properties.
-</ol>
-
-<p><b>Note:</b> The properties will be changed for all projects shared with the selected repository location.
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-117b.htm">Changing the sharing of a Project</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-96.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-96.htm
deleted file mode 100644
index 1fee05a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-96.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Checking out a project from a CVS repository</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Checking out a project from a CVS repository</H1>
-
-<P>To check out a project from a CVS repository to the Workbench:
-</P>
-
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, expand the repository location.</li>
-  <li>Expand <b>HEAD</b> and select the folders that you want to add as projects 
-    to the Workbench. If you are looking for a folder in a particular version: 
-    <ol type="a">
-      <li>Expand the <b> Versions</b> category and find the folder name 
-        that you want to add to the Workbench.</li>
-      <li>Expand the folder to reveal its versions.</li>
-    </ol>
-	<p>If you are looking for the latest folder in a branch:</p>
-    <ol type="a">
-      <li>Expand the <b> Branches</b> category.</li>
-      <li>Expand the branch that holds the folder that you want to add to the 
-        Workbench.</li>
-    </ol>
-  </li>
-  <li>From the pop-up menu for the selected folders, select one of the following: 
-    <ol type="a">
-      <li><b>Check Out as Project</b> to check out each of the selected folders 
-        as a project in the local workspace with the same name as the folder in 
-        the repository.</li>
-      <li><b>Check Out As...</b> to check out the selected folders into a custom 
-        configured project in the local workspace. <em>Note:</em> When multiple 
-        folders are selected, this operations only allows the specification of 
-        a custom parent location for the new projects.</li>
-    </ol>
-  </li>
-  <li>If <b>Check Out As...</b> was chosen on a single project, one of two possible 
-    dialogs is displayed depending on whether the folder in the repository contains 
-    a .project file or not. 
-    <ol type="a">
-      <li>If there is a .project file, the dialog will accept a custom project 
-        name and location.</li>
-      <li>Otherwise, the dialog will be the New Project wizard which allows full 
-        customization of the project (e.g. Java project).</li>
-    </ol>
-  </li>
-</ol>
-
-<p><em>Tip:</em> Any folder, including non-root folders, can be checked out from 
-a CVS repository.
-</p>
-  
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-96a.htm">Checking out a module from a CVS repository</a><br>
-<a href="tasks-96b.htm">Checking out a folder into an existing project</a><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-103.htm">Replacing resources in the Workbench</a><br>
-<a href="tasks-110.htm">Discovering branch and version tags</a><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-96a.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-96a.htm
deleted file mode 100644
index 729e95d..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-96a.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Checking out a module from a CVS repository</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Checking out a module from a CVS repository</H1>
-
-<P>Modules can be defined in the CVSROOT/modules file of a CVS repository. To check out such a module from a 
-CVS repository to the Workbench:
-</P>
-
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, expand the repository location.</li>
-  <li>Expand <b>HEAD</b> and select the modules that you want to add to the Workbench. 
-    <em>Note</em>: Modules appear as root folders of the repository but are associated 
-    with the <img src="../images/tasks-96b-module_rep.gif" alt="CVS module icon" border="0" width="16" height="16"> 
-    icon.</li>
-  <li>From the pop-up menu select <b>Check Out Module</b>. This will checkout 
-    the module into one or more projects in the local workspace, depending on 
-    how the module is defined in the repository.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
-<a href="tasks-96b.htm">Checking out a folder into an existing project</a><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-103.htm">Replacing resources in the Workbench</a><br>
-<a href="tasks-110.htm">Discovering branch and version tags</a><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-96b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-96b.htm
deleted file mode 100644
index 4df374a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-96b.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Checking out a folder into an existing project</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Checking out a folder into an existing project</H1>
-
-<P>To check out a folder from a CVS repository into an existing project in the 
-  Workbench: </P>
-
-<ol>
-  <li>Switch to the CVS Repository Exploring perspective or add the CVS Repositories 
-    view to the current perspective.</li>
-  <li>In the CVS Repositories view, expand the repository location.</li>
-  <li>Expand <b>HEAD</b> and select the folder that you want to check out. If 
-    you are looking for a folder in a particular version: 
-    <ol type="a">
-      <li>Expand the <b> Versions</b> category and find the folder name that you 
-        want to check out.</li>
-      <li>Expand the folder to reveal its versions.</li>
-    </ol>
-    <p>If you are looking for the latest folder in a branch:</p>
-    <ol type="a">
-      <li>Expand the <b> Branches</b> category.</li>
-      <li>Expand the branch that holds the folder that you want to check out.</li>
-    </ol>
-  </li>
-  <li> Select <strong>Check Out Into...</strong> from the pop-up menu for the 
-    selected folder. The <em>Check Out Into</em> dialog will open.</li>
-  <li>In the <em>Check Out Into</em> dialog, you can provide the following information: 
-    <ol>
-      <li><strong>Target folder name</strong>: The name of a local folder in which 
-        the contents of the remote folder will be placed. <em>Note</em>: If the 
-        local folder exists, its contents will be deleted and replaced by the 
-        contents of the remote folder.</li>
-      <li><strong>Parent of target folder</strong>: The existing local folder 
-        into which the target folder will be created.</li>
-      <li><strong>Checkout sub-folders</strong>s: The option to indicate whether 
-        the sub-folders of the remote folder should be checked out as children 
-        of the target folder.</li>
-    </ol>
-  </li>
-</ol>
-
-<p><em>Note:</em> Only folders within non-shared projects or projects shared with 
-  the same CVS repository as the selected remote folder are valid targets for 
-  the <em>Checkout Into</em> operation. Also, if the target project of the operation 
-  is an unshared project, the project will be connected to the CVS repository 
-  (i.e. the project will become a shared CVS project) but any pre-existing content 
-  will be ignored.</p>
-  
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27c.htm">CVS Repositories</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-96.htm">Checking out a project from a CVS repository</a><br>
-<a href="tasks-96a.htm">Checking out a module from a CVS repository</a><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-103.htm">Replacing resources in the Workbench</a><br>
-<a href="tasks-110.htm">Discovering branch and version tags</a><br>
-<a href="tasks-117.htm">Sharing a new project using CVS</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related references" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-32.htm">CVS Repositories view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9b.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9b.htm
deleted file mode 100644
index 99eab5c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9b.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Creating fast views</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Creating fast views</H1>
-
-<p>Fast views are hidden views that can be quickly opened and closed. They work 
-  like other views except they do not take up space in your Workbench window.
-</p>
-
-<p>To create a fast view:</p>
-<ol>
-  <li>Click the title bar of the view that you want. Hold the mouse button down.</li>
-  <li>Drag the view to the shortcut bar at the far left of the window and release the mouse button.</li>
-</ol>
-
-<p>The icon for the view that you dragged now appears on the shortcut 
-  bar. You can look at the view by clicking its icon on the shortcut bar. As soon 
-  as you click somewhere else outside the view, it is hidden again.
-</p>
-
-<p>To restore the view to its original location (to delete the fast 
-  view), click on the Fast View icon <img src="../images/tasks-7.gif" alt="Fast view icon" border="0" width="16" height="16">
-  in the title bar of the view.
-</p>
-
-<p>You can also create and restore fast views by selecting <b>Fast 
-  View</b> from the context menu that opens when you click the 
-  icon at the left side of the view's title bar.
-</p>
-  
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="../concepts/concepts-5.htm">Views</a><br>
-<a href="../concepts/concepts-21.htm">Fast views</a><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-9c.htm">Working with fast views</a><br>
-<a href="tasks-3.htm">Opening views</a><br>
-<a href="tasks-3e.htm">Moving and docking views</a><br>
-<a href="tasks-3i.htm">Maximizing a view or editor</a><br>
-<a href="tasks-9i.htm">Saving a user-defined perspective</a><br>
-<a href="tasks-9j.htm">Resetting perspectives</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9c.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9c.htm
deleted file mode 100644
index eb72ad6..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9c.htm
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Working with fast views</title>
-
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">
-Working with fast views</H1>
-<p CLASS="Head">If you have converted the Navigator to a fast view it will
-appear in the shortcut bar as shown below.&nbsp;</p>
-<blockquote>
-  <p CLASS="Head"><img src="../images/Image60_fast_view1.gif" alt="Show fast view" border="0" width="92" height="165"></p>
-</blockquote>
-  <p CLASS="Head">To work with a fast view proceed as follows.</p>
-<TABLE BORDER="0" cellspacing="0" cellpadding="3">
-<THEAD>
-</THEAD>
-<TBODY>
-<TR>
-<TD COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<b>
-1.</b>
-</P>
-</TD>
-<TD COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">In the shortcut bar click on the Navigator fast view button.</P>
-</TD>
-</TR>
-<TR>
-<TD COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<b>2.</b>
-</P>
-</TD>
-<TD COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-Observe the Navigator view slides out from the shortcut bar.&nbsp; </P>
-<P CLASS="Para">
-<img src="../images/Image61_nav_fast.gif" alt="Fast view" border="0" width="353" height="324"> </P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<b>3.</b>
-</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-You can use the Navigator fast view as you would normally.&nbsp;&nbsp; </P>
-</TD>
-</TR>
-<TR>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-<b>4.</b>
-</P>
-</TD>
-<TD ROWSPAN="1" COLSPAN="1" valign="top" align="left">
-<P CLASS="Para">
-To hide the fast view simply click off of it or click on the Minimize button on
-the fast view's toolbar </P>
-<P CLASS="Para">
-<img src="../images/Image61_fast_minimize.gif" alt="Minimize button" border="0" width="242" height="94"> </P>
-<P CLASS="Para">&nbsp; </P>
-<P CLASS="Para">Note: If you open a file from the Navigator fast view, the fast
-view will automatically hide itself to allow you to work with the
-file.&nbsp;&nbsp; </P>
-</TD>
-</TR>
-</TBODY>
-</TABLE>
-<P>&nbsp;To convert a fast view back to a regular view you can either:
-</P>
-
-
-<ul>
-  <li>Click the Restore button on the fast view's toolbar. <br>
-    <img src="../images/Image61_fast_restore.gif" alt="Pin button" border="0" width="241" height="102"><br>
-  </li>
-  <li>Choose Restore from the context menu of the icon in the top left corner of
-    the view. </li>
-  <li>Drag the fast view's title bar (or close the fast view and then drag its
-    button from the shortcut bar) and drop it on the workbench like a normal
-    view.&nbsp; </li>
-
-</ul>
-
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27" ><br>
-<a href="../concepts/concepts-5.htm">Views</a><br>
-<a href="../concepts/concepts-21.htm">Fast views</a><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27" ><br>
-<a href="tasks-9b.htm">Creating fast views</a><br>
-<a href="tasks-3.htm">Opening views</a><br>
-<a href="tasks-3e.htm">Docking views</a><br>
-<a href="tasks-3i.htm">Maximizing a view or editor</a><br>
-<a href="tasks-9i.htm">Saving a user defined perspective</a><br>
-<a href="tasks-9j.htm">Resetting perspectives</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9d.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9d.htm
deleted file mode 100644
index 58b8e7c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9d.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9f.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9f.htm
deleted file mode 100644
index ffd8e8d..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9f.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Opening perspectives</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Opening perspectives</H1>
-<p>Perspectives provide combinations of views and editors that are
-suited to performing a particular set of tasks. For example, you would normally
-open the Debug perspective to debug a Java program.
-</p>
-
-<p>To open a new perspective:</p>
-<ol>
-  <li>Click the <b>Open Perspective</b> button 
-      <img border="0" src="../images/ref-52.gif" width="16" height="16" alt="Open Perspective button"> 
-      on the shortcut bar on the left side of the Workbench window. (This provides 
-      the same function as the <b>Window &gt; Open Perspective</b> menu on the menu bar.)</li>
-  <li> To see a complete list of perspectives, select <b>Other</b>
-    from the drop-down menu.</li>
-  <li>Select the perspective that you want to open.</li>
-</ol>
-
-<p>When the perspective opens, the title bar of the window it is in changes to
-display the name of the perspective. In addition, an icon is added to the shortcut bar, 
-allowing you to quickly switch back to that perspective from other perspectives in the same
-window.
-</p>
-
-<p>
-By default, a perspective will open in the same window. If you would rather it opened in a new window, change the setting in <b>Window > Preferences > Workbench > Perspectives</b>.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-3.htm">Opening views</a><br>
-<a href="tasks-24.htm">Changing where perspectives open</a><br>
-<a href="tasks-31.htm">Specifying the default perspective</a><br>
-<a href="tasks-28.htm">Switching between perspectives</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9i.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9i.htm
deleted file mode 100644
index e4815de..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9i.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Saving a user defined perspective</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Saving a user defined perspective</H1>
-<P>If you have modified a perspective by adding, deleting, or
-moving (docking) views, you can save your changes for future use.
-</P>
-
-<ol>
-  <li>Switch to the perspective that you want to save.</li>
-  <li>Click <b>Window &gt; Save Perspective As</b>.</li>
-  <li>Type a new name for the perspective into the <b>Name</b> field.</li>
-  <li>Click <b>OK</b>.
-</ol>
-
-<p>The name of the new perspective is added to the <b>Window &gt; Open Perspective</b> menu.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a><br>
-<a href="../concepts/concepts-5.htm">Views</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-9j.htm">Resetting perspectives</a><br>
-<a href="tasks-9d.htm">Deleting a user defined perspective</a><br>
-<a href="tasks-3.htm">Opening views</a><br>
-<a href="tasks-3e.htm">Moving and docking views</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9j.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9j.htm
deleted file mode 100644
index a00704e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9j.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9k.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-9k.htm
deleted file mode 100644
index ab02dca..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-9k.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Configuring perspectives</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Configuring perspectives</H1>
-<p>In addition to configuring the layout of your perspective you
-can also control several other key aspects of a perspective. These include:
-</p>
-<ul>
-  <li>The options available on the <b>File &gt; New</b> submenu.</li>
-  <li>The options available on the <b>Window &gt; Open Perspective</b> submenu.</li>
-  <li>The options available on the <b>Window &gt; Show View</b> submenu.</li>
-  <li>Action sets (buttons and menu options) that show up on the toolbar and menu bar.</li>
-</ul>
-
-<p>To configure a perspective:</p>
-<ol>
-  <li>Switch to the perspective that you want to configure.</li>
-  <li>Select <b>Window &gt; Customize Perspective</b>.</li>
-  <li>Expand the item that you want to customize.</li>
-  <li>Use the check boxes to select which elements you want to see
-    on drop-down menus in the selected perspective. Items you do not select will still be
-    accessible by clicking the <b>Other</b> menu option.</li>
-  <li>Click <b>OK</b>.
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts." width="159" height="27"><br>
-<a href="../concepts/concepts-4.htm">Perspectives</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-24.htm">Changing where perspectives open</a><br>
-<a href="tasks-31.htm">Specifying the default perspective</a><br>
-<a href="tasks-9i.htm">Saving a user defined perspective</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-addtasksandtypes.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-addtasksandtypes.htm
deleted file mode 100644
index 8f3c15d..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-addtasksandtypes.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Adding new Ant tasks and types</title>
-<meta name="keyword" content="ant">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Adding new Ant tasks and types</H1>
-
-<p>Add new Ant tasks and types through the Ant preferences page. These tasks and 
-types will be available for buildfiles running in the Workbench without, having 
-to use taskdef or typedef in the script declaration (For more on taskdef or 
-typedef see the Ant documentation in
-<a href="http://ant.apache.org/index.html" target="_blank">http://ant.apache.org</a>).
-</p>
-
-<p>To add a new task or type:</p>
-
-<ol>
-  <li>Click <b>Window &gt; Preferences</b></li>
-  <li>Expand <b>Ant</b> and select <b>Runtime</b>.</li>
-  <li>Click the <b>Tasks</b> tab or the <b>Types</b> tab.</li>
-  <li>Click <b>Add Task</b> or <b>Add Type</b>.</li>
-  <li>Provide a name and class for the task or type.</li>
-  <li>Select the library where the task or type is declared. If the library is not present on the list, 
-    you must add it to the Ant classpath (see the Related task link below).</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-antsupport.htm">Ant Support</a><br>
-<a href="../concepts/concepts-22.htm">Builds</a><br>
-<a href="../concepts/concepts-exttools.htm">External tools</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-exttools-running.htm">Running external tools</a><br>
-<a href="../tasks/tasks-ant-classpath.htm">Modifying the Ant classpath</a><br>
-<a href="../tasks/tasks-ant-version.htm">Using a different version of Ant</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-classpath.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-classpath.htm
deleted file mode 100644
index 3f62db6..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-classpath.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Modifying the Ant classpath</title>
-<meta name="keyword" content="ant">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Modifying the Ant classpath</H1>
-
-<p>When using an optional or custom task it is usually necessary to add extra 
-  libraries to the classpath. The Ant classpath can be modified globally or per
-  launch configuration.
-</p>
-
-<p>To modify the Ant classpath globally:</p>
-<ol>
-  <li>Click <b>Window &gt; Preferences</b>.</li>
-  <li>Expand <b>Ant</b> and select <b>Runtime</b>. If you are not on it 
-    already, click the <b>Classpath</b> tab.</li>
-  <li>To add a JAR file to the classpath, click <b>Add Jar</b> and select the JAR file.</li>
-  <li>To add a folder to the classpath, click <b>Add Folder</b> and select the folder.</li>
-  <li>To remove an item from the classpath, select it and click <b>Remove</b>.</li>
-  <li>To restore the classpath to the default, click <b>Restore Defaults</b>.</li>
-</ol>
-
-<p>To modify the Ant classpath for a launch configuration:</p>
-<ol>
-  <li>Click <b>Run &gt; External Tools &gt; External Tools...</b></li>
-  <li>Select the Ant configuration whose classpath you wish to modify</li>
-  <li>Select the <b>Classpath</b> tab</li>
-  <li>Uncheck the option to use the global classpath as specified in the preferences</li>
-  <li>To add a JAR file to the classpath, click <b>Add Jar</b> and select the JAR file.</li>
-  <li>To add a folder to the classpath, click <b>Add Folder</b> and select the folder.</li>
-  <li>To remove an item from the classpath, select it and click <b>Remove</b>.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-antsupport.htm">Ant support</a><br>
-<a href="../concepts/concepts-exttools.htm">External tools</a><br>
-</P>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="./tasks-ant-running.htm">Running Ant buildfiles</a><br>
-<a href="../tasks/tasks-exttools-running.htm">Running external tools</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-running.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-running.htm
deleted file mode 100644
index 9f1908c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-running.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running Ant buildfiles</title>
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1>Running Ant buildfiles</H1>
-
-<p>To run an Ant buildfile in the Workbench:
-</p>
-<ol>
-  <li>In the Navigator view, select an XML file.</li>
-  <li>From the file's pop-up menu, select <b>Run Ant...</b>. The launch configuration
-  	dialog opens.</li>
-  <li>Select one or more targets from the <b>Targets</b> tab. The order 
-    in which you select the items is the order in which they will run. The order 
-    is displayed in the <b>Target execution order</b> box at the bottom of the tab.
-    You can change the order of the targets by clicking the <b>Order...</b> button.</li>
-  <li>(Optional) Configure options on the other tabs. For example, on the <b>Main</b> tab,
-    type any required arguments in the <b>Arguments</b> field.</li>
-  <li>Click <b>Run</b>.</li>
-</ol>
-
-<p>The Ant buildfile will run on the selected targets. Unless you disabled the <b>Capture
-output</b> option on the <b>Main</b> tab, the console displays any applicable execution results 
-as the buildfile runs.
-</p>
-
-<p>These steps create a persisted launch configuration. The newly created configuration will
-appear in the launch history under <b>Run &gt; External Tools</b> and will be available in the
-launch configuration dialog which is opened by clicking <b>Run &gt; External Tools &gt; External Tools...</b>.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-antsupport.htm">Ant support</a><br>
-<a href="../concepts/concepts-22.htm">Builds</a><br>
-<a href="../concepts/concepts-exttools.htm">External tools</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="../tasks/tasks-exttools-running.htm">Running external tools</a><br>
-<a href="../tasks/tasks-ant-classpath.htm">Modifying the Ant classpath</a><br>
-<a href="../tasks/tasks-ant-version.htm">Using a different version of Ant</a><br>
-<a href="../tasks/tasks-ant-addtasksandtypes.htm">Adding new Ant tasks and types</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-version.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-version.htm
deleted file mode 100644
index d4b0e18..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-ant-version.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Using a different version of Ant</title>
-<meta name="keyword" content="ant">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Using a different version of Ant</H1>
-
-<P> The Eclipse platform provides Ant 1.5.2 as a plug-in library. When running 
-an Ant buildfile in the Workbench, version 1.5.2 is used by default. It is possible 
-to use different versions, although they are not supported. There are at least 
-two ways of using a different version of Ant:
-</P>
-
-<dl>
-<dt><b>Changing the Ant runtime classpath:</b></dt>
-<dd>When Ant runs a buildfile, it looks for the necessary classes on the Ant classpath. 
-The Ant classpath consists of the plug-ins contributing new tasks, types or 
-libraries, plus the classpath defined in the Ant runtime classpath preferences. To 
-access the preferences, click <b>Window > Preferences > Ant > Runtime</b>. 
-The two JARs related to Ant 1.5.2 are <code>ant.jar</code> and <code>optional.jar</code>. 
-Remove these JARs and add the ones from the desired Ant version. 
-<p>Note that explicitly adding the Xerces
-JARs to the runtime Ant classpath is no longer required and will cause problems. The Xerces
-classes are loaded from the org.apache.xerces plug-in provided with Eclipse. For most Ant
-distributions, the Xerces JARs cannot even be in the same physical location as the ant.jar
-and optional.jar. This results from the Ant JARs containing manifest files which contain
-classpath entries pointing to the Xerces JARs.
-
-<p>After you change the Ant classpath, all future Ant builds will use the updated 
-version instead of the default. To restore the Ant classpath to its original 
-state, <b>Restore Defaults</b> button on the preference page.
-</p>
-</dd>
-<dt><b>Using Ant as an external tool:</b></dt>
-<dd>When changing the Ant classpath is not an option, or if you just want to test 
-a newer version or beta version of Ant, using it as an external tool can be 
-a better solution. Usually when it is running in the Workbench, the Ant buildfile 
-itself is considered to be a external tool, but this is not the only way. 
-To install a binary distribution of Ant as an external tool (<b>Note:</b> 
-These steps are for Windows, but similar methods can be used for other operating systems): 
-<ol type="a">
-  <li>Download and install the binary version of Ant from
-    <a href="http://ant.apache.org" target="_blank">http://ant.apache.org</a> .</li>
-  <li>Click <b>Run &gt; External Tools &gt; External Tools...</b>.</li>
-  <li>Click <b>Program</b></li>
-  <li>Click <b>New</b>.</li>
-  <li>Enter a name for your external tool (for example, External Ant).</li>
-  <li>For the <b>Location</b> field, click <b>Browse File System</b>.</li>
-  <li>Find and select a file called <code>ant.bat</code> (it should be 
-  in the <code>bin</code> folder of your Ant installation).</li>
-  <li>In the <b>Arguments</b> field enter the arguments for your 
-    buildfile that would normally enter for running the buildfile outside of the 
-    Workbench.</li>
-  <li>In the <b>Working Directory</b> field enter the directory of your buildfile.</li>
-  <li>Click <b>Run</b> to execute the buildfile.</li>
-</ol>
-
-<p>When you run Ant as an external tool, none of the tasks or types 
-contributed by Eclipse will work. Also, the Ant classpath preference has no 
-effect in the buildfile execution.
-</p>
-</dd>
-</dl>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-antsupport.htm">Ant Support</a><br>
-<a href="../concepts/concepts-exttools.htm">External tools</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="./tasks-ant-running.htm">Running Ant buildfiles</a><br>
-<a href="../tasks/tasks-exttools-running.htm">Running external tools</a><br>
-<a href="../tasks/tasks-ant-classpath.htm">Modifying the Ant classpath</a><br>
-<a href="../tasks/tasks-ant-addtasksandtypes.htm">Adding new Ant tasks and types</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-10.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-10.htm
deleted file mode 100644
index f79a517..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-10.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Disconnecting a project from CVS</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Disconnecting a project from CVS</H1>
-
-<P>Disconnect a project from CVS to disable the CVS operations that can be performed 
-  on the project and it resources and optionally to remove the CVS information 
-  (stored in the CVS folders) associated with the project. </P>
-
-<P>To disconnect a project from CVS:
-</P>
-
-<ol>
-  <li>In the Navigator view, select the project to be disconnected.</li>
-  <li>Select <b>Team &gt; Disconnect</b> from the project's pop-up menu. The Confirm 
-    Disconnect from CVS dialog opens.</li>
-  <li>In the dialog, choose one of: 
-    <ol type="a">
-      <li><b>Delete the CVS meta information</b> - disables the CVS team menu 
-        operations and removes the CVS folders and their contents from the file 
-        system.</li>
-      <li><b>Do not delete the CVS meta information</b> - disables the CVS team menu 
-        operations but leaves the CVS meta information.</li>
-    </ol></li>
-  <li>Click <b>Yes</b> to disconnect the project.</li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-96.htm">Checking out a project from the CVS repository</a><br>
-<a href="tasks-103.htm">Replacing resources in the Workbench</a><br>
-<a href="tasks-100a.htm">Branching</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-113.htm">Updating</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-100b.htm">Merging from a branch</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-11.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-11.htm
deleted file mode 100644
index f2b0787..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-11.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting the CVS keyword substitution mode</title>
-<meta name="keyword" content="team">
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head">Setting the CVS keyword substitution mode</H1>
-
-<P>CVS uses the keyword substitution mode of a file to differentiate binary files 
-from ASCII files and to indicate what type of keyword substitution is to take 
-place when files are committed and checked out.
-</P>
-  
-<P>To set the CVS keyword substitution mode:
-</P>
-
-<ol>
-  <li>In the Navigator view, select the files or containing folders for which 
-    a change in keyword substitution mode is desired. <b>Note</b>: Ensure that 
-    any new files that are to be committed are added to CVS version control as 
-    the keyword substitution mode can only be set for files that are already under 
-    CVS control.</li>
-  <li>From the pop-up menu, select<b> Team &gt; Change ASCII/Binary Property</b>. 
-    The Set Keyword Substitution Mode wizard will open.</li>
-  <li>On the first page of the wizard, select the mode to be applied to the selected 
-    files: 
-    <ul>
-      <li><b>Automatic</b> - uses the file type to determine whether selected 
-        resources should use binary or the default ASCII mode (the default ASCII 
-        mode is set on the Team > CVS preference page).</li>
-      <li><b>Binary</b> - sets all selected files to binary. Files that are binary 
-        are not altered in any way by CVS.</li>
-      <li><b>ASCII without keyword substitution</b> - sets all the selected files 
-        to ASCII but CVS does not perform any keyword substitution. The line endings 
-        of ASCII files may be altered by CVS to align with a platform's line-terminator 
-        convention.</li>
-      <li><b>ASCII with keyword substitution</b> - sets all the selected files 
-        to ASCII and CVS will perform the selected type of keyword substitution.</li>
-    </ul>
-    <p>Click <b>Next</b> to go to the next page.</p>
-  </li>
-  <li>On the <b>Include versioned files</b> page of the wizard, indicate whether 
-    files already shared in the repository are to be affected. If this setting 
-    is disabled, only files that have been added to CVS control but not committed 
-    will be affected. This page will only appear if there are files already shared 
-    with the repository. Click <b>Next</b> to go to the next page.</li>
-  <li>On the <b>Include files with outgoing changes</b> page of the wizard, indicate 
-    whether files that have outgoing changes are to be affected. This page will 
-    only appear if there are files with outgoing changes. Click <b>Next</b> to 
-    go to the next page.</li>
-  <li>On the <strong>Enter Commit Comment</strong> page of the wizard, enter the 
-    commit comment to be associated with any file commits. Files will need to 
-    be committed if changing the file type from Binary to ASCII results in a change 
-    in the file content due to line terminator adjustments. Click <b>Next</b> 
-    to go to the next page.</li>
-  <li>On the <b>Summary</b> page of the wizard, inspect the proposed keyword substitution 
-    mode settings to ensure they are correct. Click <b>Finish</b> to apply the 
-    changes. </li>
-</ol>
-
-<p><em>Tip:</em> On the Summary page, the assigned mode for a file can be changed 
-by clicking on the proposed mode in the table and selecting the desired mode 
-from the drop down list that becomes available.
-</p>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-26.htm">Team programming with CVS</a><br>
-<a href="../concepts/concepts-27b.htm">Branches</a><br>
-<a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a>
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="tasks-92.htm">Creating a CVS repository location</a><br>
-<a href="tasks-96.htm">Checking out a project from the CVS repository</a><br>
-<a href="tasks-103.htm">Replacing resources in the Workbench</a><br>
-<a href="tasks-100a.htm">Branching</a><br>
-<a href="tasks-115.htm">Synchronizing with the repository</a><br>
-<a href="tasks-113.htm">Updating</a><br>
-<a href="tasks-113b.htm">Resolving conflicts</a><br>
-<a href="tasks-100b.htm">Merging from a branch</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-47.htm">CVS</a><br>
-<a href="../reference/ref-20-fileContent.htm">File Content</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-16.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-16.htm
deleted file mode 100644
index 4de668e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-16.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Filtering in the CVS Resource History View</title>
-<meta name="keyword" content="team">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> Filtering in the CVS Resource History View</H1>
-<P CLASS="Para">Over time, the revision history for a file can grow drastically. 
-  As a result, it may be difficult to find the revision or revisions that you 
-  are looking for. Using the filtering mechanism of the CVS Resource History view 
-  can help.</P>
-<P CLASS="Para">To set a filter on the CVS Resource History view:</P>
-<ol>
-  <li>Select the <b>Filter History</b> action from the local toolbar of the CVS 
-    Resource History view.</li>
-  <li>Enter any author, comment, or date range that you would like the view to display.</li>
-  <li>Click <b>OK</b>.</li>
-</ol>
-<p>The view will now display only those revisions that match the criteria you 
-  entered.</p>
-<p><b>Tip:</b> You can remove a date range filter by selecting the first item 
-  (&quot;---&quot;) in the date and month fields.</p>
-<p><b>Tip:</b> You can choose whether the filter should match any or all of the 
-  criteria by selecting the appropriate radio button in the dialog.</p>
-  
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-<br><a href="../reference/ref-32a.htm">CVS Resource History view</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-watch.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-watch.htm
deleted file mode 100644
index 4a3f31a..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-cvs-watch.htm
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Finding out who's working on what: watch/edit</title>
-<meta name="keyword" content="team">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> Finding out who's working on what: watch/edit</H1>
-<P CLASS="Para">CVS provides a notification scheme which allows you to know if 
-  someone is modifying a file that you care about. This facility is known as <em>watches</em>. 
-  By setting a <em>watch</em> on a file, you can have CVS notify you via email 
-  (or other) if someone else starts to <em>edit</em> this file. </P>
-<p class="Para">There are two parts to CVS watches: <em>watch</em>, and <em>edit</em>. 
-  The first, <em>watch</em>, is how you specify which files you wish to be notified 
-  about. The second, <em>edit</em>, is how you inform the CVS server (and thus 
-  others) that you are about to modify a file.</p>
-<p class="Para"><em>Edit</em> is useful on its own without ever setting up any 
-  watches and lots of people work this way. This is because when you edit a file, 
-  you will be told immediately if someone else is already editing that file. Since 
-  most people just want to know up front that they may have to merge their changes 
-  on commit, <em>edit</em> on its own is sufficient for most. Another advantage 
-  to using just <em>edit</em> is that it doesn't require any administrative changes 
-  to the server, where as <em>watch</em> does. All that <em>watches</em> gives 
-  above this is the email notification that some file you are watching is being 
-  modified.</p>
-<p class="Para">For these reasons, <em>edit</em> is supported natively by Team 
-  CVS where as <em>watch</em> isn't.</p>
-<h3 class="Para">Setting up Watches</h3>
-<p class="Para">As mentioned, you can't set watches in Team CVS. If you are interested 
-  in doing this, you should consult your cvs documentation. In brief though, this 
-  is what's involved:</p>
-<ol>
-  <li>First, you or your CVS administrator will need to modify the CVSROOT/notify 
-    file. Consult the CVS documentation on watches for details on how to configure 
-    this file. </li>
-  <li>Next, you will need to perform a command line &quot;cvs watch add &lt;filename&gt;&quot; 
-    for each file that you wish to watch. If &lt;filename&gt; is a directory name, 
-    then all files within that directory will be watched.</li>
-</ol>
-<h3>Setting up a Project for Watch/Edit</h3>
-<p>Watches and editing are optional in CVS. To use this facility, you must turn 
-  on this option in the <strong>Team &gt; CVS &gt; Watch/Edit</strong> preferences 
-  page. Select &quot;Configure projects to use Watch/Edit on checkout&quot;, accept 
-  the preference dialog, and then checkout your project. All the files in the 
-  project will be checked out read-only. This tells the CVS client which files 
-  are being edited by you and which aren't (writeable files are being edited). 
-  If you've already checked out the project before you turned on this option, 
-  you can either check it out again or enable the &quot;Use Watch/Edit for this 
-  project&quot; option on the project's CVS properties page. Either of these operations 
-  will make the files in the project read-only.</p>
-<h3>Editing</h3>
-<p class="Para"></p>
-<p>Although typical CVS clients require you to perform an explicit edit, Team 
-  CVS automatically issues an edit as soon as you start to modify a file. This 
-  support is built deep into Eclipse, so typing in a text editor, performing Java 
-  refactoring, etc., will all issue a CVS edit for you. You can also perform an 
-  explicit edit via the <strong>Team &gt; Edit</strong> context menu on a resource.</p>
-<p>When an <em>edit</em> is issued, you will be informed immediately if someone 
-  is already editing that file. In addition, everyone who is <em>watching</em> 
-  that file will be notified by the CVS server via email etc. Since watches simply 
-  give you email notification, <em>edit</em> without ever setting up watch lists 
-  is still a useful (and popular) workflow.</p>
-<p>If you prefer, you can turn off automatic issuing of edits. This means you 
-  will need to manually perform a Team &gt; Edit for each file you are working 
-  on. To use this work mode, turn on the <strong>Team &gt; CVS &gt; Watch/Edit</strong> 
-  preference &quot;Edit the file without informing the server&quot;. </p>
-<p>Finally, you can see the list of editors of a file at any time by selecting 
-  <strong>Team &gt; Show Editors</strong> from the context menu of that file. 
-</p>
-<h3>Unediting</h3>
-<p>Just as you can tell CVS that you are editing a file, there also needs to be 
-  a way of telling CVS that you are no longer editing that file. This is referred 
-  to as <em>unedit</em>. This way, if someone checks the editors list for a file, 
-  they'll know if someone is still working on that file. This happens in one of 
-  two ways:</p>
-<ul>
-  <li>When you commit an edited file, an unedit is automatically issued.</li>
-  <li>If you discover that you want to back out of the changes to a file, you 
-    can explicit unedit the file. In addition to notifying the server, an explicit 
-    unedit will revert the file to its base (ie. the workspace will then contain 
-    the copy of the file before you started modifying it).</li>
-</ul>
-<p>&nbsp;</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"> 
-  <br>
-  <a href="../concepts/concepts-cvs-watch.htm">Watch/Edit</a></p>
-<p><a href="../concepts/concepts-26.htm">Team programming with CVS</a> </p>
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"> 
-  <br>
-  <a href="../reference/ref-47.htm">CVS</a> </p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-exttools-running.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-exttools-running.htm
deleted file mode 100644
index 47e3230..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-exttools-running.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Running external tools</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Running external tools</H1>
-
-<p>The Workbench provides a mechanism for running tools that are not part of it.
-To configure an external tool:
-</p>
-
-<ol>
-  <li>Click <b>Run &gt; External Tools &gt; Configure</b>.</li>
-  <li>Click the <b>New</b> button.</li>
-  <li>Enter a name for your external tool (for example, My External Tool).</li>
-  <li>Click the <b>Browse File System</b> button.</li>
-  <li>Find the tool you want to run (for example, on Windows it is usually a file 
-    with the extension .exe or .bat).</li>
-  <li>(Optional) In the <b>Tool Arguments</b> field enter the necessary arguments 
-    for the tool.</li>
-  <li>(Optional)In the <b>Working directory</b> field enter the working directory 
-    for the tool.</li>
-  <li>Click <b>OK</b>.</li>
-  <li>To run the tool, click <b>Run &gt; External Tools &gt; My External Tool</b>.</li>
-</ol>
-
-<p>It is also possible to set up and run an external tool to build a project.
-</p>
-
-<ol>
-  <li>Select the desired project.</li>
-  <li>From its pop-up menu choose <b>Properties</b>.</li>
-  <li>Click <b>External Tools Builders</b> from the list, and configure the tool as described above.</li>
-</ol>
-
-<P><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/concepts-exttools.htm">External tools</a><br>
-</P>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="./tasks-ant-running.htm">Running Ant buildfiles</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm">
-<img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-importproject.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-importproject.htm
deleted file mode 100644
index 56d16cb..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-importproject.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks-team-1.htm b/bundles/org.eclipse.platform.doc.user/tasks/tasks-team-1.htm
deleted file mode 100644
index 86cc589..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks-team-1.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting the content type of a file extension</title>
-<meta name="keyword" content="team">
-</HEAD>
-<BODY BGCOLOR="#ffffff">
-<H1 CLASS="Head"> Setting the content type of a file extension</H1>
-<P CLASS="Para">CVS repositories distinguish between files that contain ASCII 
-  data and those that do not. For ASCII files, additional helpful functionality 
-  is available to the user. This includes:</P>
-<ul>
-  <li>Proper end of line conversion between the client and the server. This ensures 
-    that a Windows user and a UNIX user can work on the same file without introducing 
-    incompatibilities.</li>
-  <li>Auto merging of conflicts. If a file contains both incoming and outgoing 
-    changes but none on the same line as another, then the file may be automatically 
-    merged when updating.</li>
-</ul>
-<p class="Para">Certain file types invariably contain either ASCII data or binary 
-  data. For example, *.txt files usually contain ASCII data, and *.exe files usually 
-  contain binary data. Eclipse comes with a pre-defined set of file types, which 
-  you may add to or modify.</p>
-<P CLASS="Para">To set the content type associated with a file extension: </P>
-<ol>
-  <li>From the main menu bar, select <b>Window &gt; Preferences</b> to open the 
-    Workbench Preferences dialog.</li>
-  <li>In the dialog, select the<b> Team &gt; File Content</b> preference page. 
-    This page displays a list of file extensions and content type (ASCII or Binary) 
-    for file extensions whose content type is known.</li>
-  <li> 
-    <p CLASS="Para">To add a file extension, click the <b>Add</b> button and enter 
-      the file extension in the text prompt that appears. Once <b>OK</b> is clicked, 
-      the extension will be added to the list with a content type of ASCII.
-  </li>
-  <li>To change the content type for an existing file extension, select the file 
-    extension entry and click the <b>Change</b> button. This will toggle the type 
-    from ASCII to Binary or vice versa.</li>
-  <li>To remove a file extension, select the file extension entry and click the 
-    <b>Remove</b> button.<br>
-  </li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<br><a href="../concepts/concepts-26.htm">Team programming with CVS</a>
-</p>
-
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27">
-<br><a href="../reference/ref-47.htm">CVS</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks.pdf b/bundles/org.eclipse.platform.doc.user/tasks/tasks.pdf
deleted file mode 100644
index 1f8c257..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks.pdf
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tasks_htmldoc_book.book b/bundles/org.eclipse.platform.doc.user/tasks/tasks_htmldoc_book.book
deleted file mode 100644
index 3b6c425..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tasks_htmldoc_book.book
+++ /dev/null
@@ -1,141 +0,0 @@
-#HTMLDOC 1.8.23
--t pdf13 -f tasks.pdf --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --title --linkstyle underline --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --portrait --color --no-pscommands --no-xrxcomments --compression=1 --jpeg=0 --fontsize 11.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Times --headfootsize 11.0 --headfootfont Helvetica --charset iso-8859-1 --links --no-embedfonts --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all  --owner-password ""  --user-password "" --browserwidth 680
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/running_eclipse.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-2.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-28.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-31.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9f.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-24.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9k.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9i.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9j.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-3.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-3e.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-3h.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-46.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-51.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-52.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-3g.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-3i.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/ttoolbars.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tkeybindings.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-20.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-9.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/topenmode.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1e.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-42.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-47.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-42b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-43.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-44.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-45.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-63.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-63cg.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-66.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-67.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-49.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-46ag.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-84b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-84.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-48.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-48b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-46bg.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-18.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-81.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-81b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-82.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-77.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-77b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-78.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-79.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tquickfix.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-68.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-68b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-68bg.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-68dg.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1f.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-70.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-87.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-87b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-88.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-53.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-importproject.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-55.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-55bg.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-57.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-59.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-59ag.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-73.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-16.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-75.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-17.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-14.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-exttools-running.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-ant-running.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-ant-classpath.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-ant-version.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-ant-addtasksandtypes.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1g.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tf1help.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/taccess.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tsearch.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tfonts.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tchgbrws.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1h.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1i.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-92.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-94.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-93.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-110.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-95.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-team-1.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1j.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-107b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-117.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-117a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-96.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-96a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-96b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-cvs-10.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-cvs-11.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-cvs-16.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-117b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-115.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-113.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-114.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-100d.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-100d1.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-100d2.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-100d1b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-113b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-100a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-100b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-119.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-1k.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-100.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-118.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-101.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-68c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-103.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-cvs-watch.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-105.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-105a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-105b.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-105c.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/task-team-cmdlineclient.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-36.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-33.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-37.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-38.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-35.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-34.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-34a.htm
-../../../Program Files/Eclipse/eclipse/workspace/org.eclipse.platform.doc.user/tasks/tasks-36a.htm
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tchgbrws.htm b/bundles/org.eclipse.platform.doc.user/tasks/tchgbrws.htm
deleted file mode 100644
index 612868c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tchgbrws.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tf1help.htm b/bundles/org.eclipse.platform.doc.user/tasks/tf1help.htm
deleted file mode 100644
index 5417e33..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tf1help.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Accessing context-sensitive help</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Accessing context-sensitive help</h1>
-
-<p>To access the context-sensitive help for a given widget:
-
-<ol>
-  <li>Select the widget by putting focus on it (see the table below).</li>
-  <li>Press F1.</li>
-</ol>
-
-<p>This displays an <i>infopop</i> with the description of the selected widget, 
-and usually, a list of links to related information. You can dismiss the 
-infopop by clicking outside it, or by pressing <b>Esc</b>.
-</p>
-
-<p> If you want more information than what is shown in the infopop, click a link 
-to the related information. This opens the Help browser to the selected topic and 
-closes the infopop. The list of related links stays in the left hand frame, 
-so you do not have to press F1 again if you are interested in other topics related 
-to the same widget.
-</p>
-
-<p>To access context sensitive help for a widget, you must put focus on it and 
-then press F1. The following table shows how to put focus on some of the different 
-kinds of widgets.
-</p>
-
-<table border="1" width="500" cellspacing="0" cellpadding="5" summary="Widget selection table">
-  <tr>
-    <th>Widget type</th>
-    <th>How to select it</th>
-  </tr>
-  <tr>
-    <td>Menu item (for example <strong>Save</strong> in the <strong>File</strong> menu)</td>
-    <td>Let your mouse pointer rest over it so that it is highlighted, but don't click on it.</td>
-  </tr>
-  <tr>
-    <td>Field</td>
-    <td>Put the cursor in the field.</td>
-  </tr>
-  <tr>
-    <td>Button (for example <b>Cancel</b> button on a Dialog)</td>
-    <td>Tab until the button is in focus.</td>
-  </tr>
-  <tr>
-    <td>List</td>
-    <td>Click an item in the list.</td>
-  </tr>
-  <tr>
-    <td>View or pane</td>
-    <td>Click the title bar of the View or pane.</td>
-  </tr>
-  <tr>
-    <td>Check box</td>
-    <td>Click the check box (which changes its state) or use the Tab key
-      to bring it into focus.</td>
-  </tr>
-</table>
-
-<p><em>Note:</em> Context-sensitive help via F1 is unavailable from toolbar
-buttons. Instead, let your mouse pointer hover over a toolbar button to view tooltip help
-for buttons.
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" WIDTH="159" HEIGHT="27"><br>
-<a href="taccess.htm">Accessing and navigating online help</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tfonts.htm b/bundles/org.eclipse.platform.doc.user/tasks/tfonts.htm
deleted file mode 100644
index 1fdad3c..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tfonts.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Setting help fonts and colors for accessibility</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Setting help fonts and colors for accessibility</h1>
-
-<p>The help browser uses your operating system's settings for the font colors,
-styles, and sizes. Users with visual impairments may wish to
-change some of these settings to increase the readability of the documentation.
-</p>
-
-<p> <img src="../images/win_only.gif" alt="The following information applies to Windows." border="0" width="51" height="13"> 
-In addition, on Windows platforms using Microsoft Internet Explorer, the help 
-browser uses a component of Internet Explorer to display documentation, so changes 
-you make to its display settings also affect the help display. To change the 
-help browser's font and color settings:
-</p>
-
-<ol>
-  <li>Open Microsoft Internet Explorer.</li>
-  <li>Select <b>Tools &gt; Internet Options</b>.</li>
-  <li>On the <b>General</b> page, click the <b>Colors</b>, <b>Fonts</b>, or <b>Accessibility</b> button.</li>
-  <li>Set the formatting options you desire.</li>
-  <li>Optionally, you can specify a cascading style sheet (CSS) to apply to the content.</li>
-  <li>Click <b>OK</b> and exit Internet Explorer.</li>
-  <li>Restart the Workbench. Open the Help perspective and browse the documentation to see the changes.</li>
-</ol>
-
-<p><b>Note:</b> The help system also uses the Icon font setting on the Display Properties <b>Appearance</b> tab.</p>
-
-<p>For more information about creating a CSS, consult a CSS reference. The W3 
-Consortium (www.w3.org) has an extensive collection of information about CSS 
-and links to valuable resources.
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" WIDTH="159" HEIGHT="27"><br>
-<a href="taccess.htm">Accessing and navigating online help</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tkeybindings.htm b/bundles/org.eclipse.platform.doc.user/tasks/tkeybindings.htm
deleted file mode 100644
index 8767aad..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tkeybindings.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Changing the key bindings</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Changing the key bindings</H1>
-<p>
-The function of the keyboard can be extensively customized in Eclipse.
-</p>
-<p> 
-Select <b>Window &gt; Preferences &gt; Workbench &gt; Keys</b> for the Keys preference page, 
-where you can <a href="../concepts/accessibility/keyboardshortcuts.htm">assign key sequences</a> to many of the commands in Eclipse.
-</p>
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
-<a href="../concepts/accessibility/keyboardshortcuts.htm">Keys</a><br>
-<a href="../concepts/accessibility/navigation.htm">Navigating the user interface by using the keyboard</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/topenmode.htm b/bundles/org.eclipse.platform.doc.user/tasks/topenmode.htm
deleted file mode 100644
index 53515f4..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/topenmode.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Controlling single and double click behavior</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Controlling single and double click behavior</H1>
-
-<p>You can control how the Workbench responds to single and double clicks. To do this:
-</p>
-
-<ol>
-  <li>On the main menu bar, click <b>Window &gt; Preferences</b>.</li>
-  <li>Select the <b>Workbench</b> category.</li>
-  <li>Select the behavior you want to change from the <b>Open mode</b> group.</li>
-  <li>Click <b>OK</b>.</li>
-</ol>
-
-<p>The effect of these selections varies by view. For example, in the navigator:
-</p>
-
-<dl>
-<dt>Double click</dt>
-<dd>Will cause a single click on a resource to select it, and a 
-double click to open it in an editor.</dd>
-<dt>Single click</dt>
-<dd>Will cause a single click on a resource to both select it and
-immediately open an editor on it.</dd>
-</dl>
-
-<p>The check boxes under the <b>Single click</b> radio button further refine
-the single click behavior. Checking <b>Select on hover</b> will cause the resource
-to be selected if you hover over it with the mouse. Checking <b>Open when using
-arrow keys</b> will cause the resource to be opened if you use the arrow keys to
-navigate to it.
-</p>
-
-<p><img border="0" src="../images/ngrelr.gif" alt="Related reference" width="159" height="27"><br>
-<a href="../reference/ref-10.htm">Workbench</a><br>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tquickfix.htm b/bundles/org.eclipse.platform.doc.user/tasks/tquickfix.htm
deleted file mode 100644
index e5b36f1..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tquickfix.htm
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/tsearch.htm b/bundles/org.eclipse.platform.doc.user/tasks/tsearch.htm
deleted file mode 100644
index d23d30f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/tsearch.htm
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Searching online help</title>
-</head>
-
-<BODY BGCOLOR="#ffffff">
-<h1>Searching online help</h1>
-
-<p>The help system includes a powerful text search engine that runs simple 
-or complex queries on the documentation to help you find the information you
-are looking for.
-</p>
-
-<p>To search the online help:
-</p>
-
-<ol>
-  <li>In the <b>Search</b> field at the top of the Help browser, 
-  type the term or terms for which you want to search.
-  </li>
-  <li>Click <b>Go</b> or press Enter. The result set will be shown in the 
-  Search Results view of the Help browser.</li>
-  <li>To view the content of a topic in the result set, select it. Hits within 
-  the selected topic are highlighted.</li>
-</ol>
-
-<p><em>Tip:</em> You can also search the documentation from inside the Workbench by
-selecting <b>Search &gt; Help</b>. Type in search terms, optionally select the books you
-want to search, and click <b>Search</b>. The results will be shown in the Search view. 
-Double-click a result to open the help browser to that topic.
-</p>
-
-<p>Remember the following search expression rules:
-</p>
-
-<ul>
-  <li>Unless otherwise stated, there is an implied AND between all search terms. 
-    In other words, topics that contain all the search terms will be returned. 
-    For example: 
-    <pre>Java project</pre>
-    <p>returns topics that contain the word <i>Java</i> and the word <i>project</i>, 
-      but does not return topics that contain only one of these words.</li>
-  <li>Use OR before optional terms . For example: 
-    <pre>applet OR application</pre>
-    <p>returns topics that contain the word <i>applet</i> or the word <i>application</i> 
-      (or both).</li>
-  <li>Use NOT before terms you want to exclude from search results. For example: 
-    <pre>servlet NOT ejb</pre>  
-    <p>returns topics that contain the word <i>servlet</i> and do not contain 
-      the word <i>ejb</i>. <b>Note:</b> NOT only works as a binary operator (that 
-      is, &quot;NOT servlet&quot; is not a valid expression).</li>
-  <li>Use ? for a single-character wildcard and * for a multi-character wildcard. 
-    For example: 
-    <pre>par?</pre>
-    <p>returns topics that contain <i>part</i> or <i>park</i>, but not <i> participate</i>. 
-      On the other hand:</p>
-    <pre>par*</pre>
-    <p>returns topics that contain <i>part</i>, <i>park</i>, <i>participate</i>,
-      <i>pardon</i>, and so on. <b>Note:</b> The search engine does not accept
-      terms with a wild card at first character position.</li>
-  <li>Use double quotation marks around terms you want treated as a phrase. For 
-    example: 
-    <pre>&quot;creating projects&quot;</pre>
-    <p>returns topics that contain the entire phrase <i>creating projects</i>, 
-      and not <i>creating</i> or <i>project</i> on its own.</li>
-  <li>Punctuation acts as term delimiters. For example:
-    <pre>plugin.xml</pre>
-    <p>returns hits on topics that contain <i>plugin.xml</i>, <i>plugin</i>, and 
-      <i>xml</i>, which is likely broader than you want. If you want to find just 
-      those topics containing <i>plugin.xml</i>, use double quotes, as in:</p>
-    <pre>&quot;plugin.xml&quot;</pre></li>
-  <li>The search engine ignores character case. For example: 
-    <pre>Workbench</pre>
-    <p>returns topics that contain 'workbench', 'Workbench', 'WorkBench', and 
-      'WORKBENCH'.</li>
-  <li>The following stop words are common English words which will be ignored 
-    (not searched for) if they appear in the search expression: a, and, are, as, 
-    at, be, but, by, in, into, is, it, no, not, of, on, or, s, such, t, that, 
-    the, their, then, there, these, they, to, was, will, with.</li>
-  <li>The search engine does &quot;fuzzy&quot; searches and word stemming. If 
-    you enter <i>create</i>, it will return hits on topics that contain <i>creates</i>, 
-    <i>creating</i>, <i>creator</i>, and so on.  To prevent search engine from stemming
-    terms, enclose them in double quotes.</li>
-</ul>
-	
-<h2>Refining the search results</h2>
-
-<p>If the result set is very large, the information you are looking for might
-not appear in the top 10 or 15 results. You can then refine the search to reduce
-the number of results.
-</p>
-
-<p>To refine a search:
-</p>
-
-<ol>
-  <li>Click the <b>Search scope</b> link.</li>
-  <li>Click <b>New</b> button to define a new search scope.</li>
-  <li>In the window that opened, <b>select</b> the topics to which you want to narrow the search.</li>
-  <li>Give the selected list a name and click <b>OK</b>.</li>
-  <li>Click <b>OK</b>, to activate the new search scope.</li>
-  <li>Click <b>Go</b> again. The results will be shown in the Search Results view 
-    in the Help browser.</li>
-</ol>
-
-<h2>Search index generation</h2>
-
-<p>The first time you search the online help, the help system might initiate an 
-index-generation process. This process builds the indexes for the search engine 
-to use. It may take several minutes, depending on the amount of documentation.
-</p>
-
-<p>Each time you add or modify the documentation set (for example, when you install 
-a new feature or update an existing one), the index will be updated to reflect 
-the new information set.
-</p>
-
-<p><img border="0" src="../images/ngrelt.gif" alt="Related tasks" width="159" height="27"><br>
-<a href="taccess.htm">Accessing and navigating online help</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/tasks/ttoolbars.htm b/bundles/org.eclipse.platform.doc.user/tasks/ttoolbars.htm
deleted file mode 100644
index 1483760..0000000
--- a/bundles/org.eclipse.platform.doc.user/tasks/ttoolbars.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
-<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
-<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-<title>Rearranging the main toolbar</title>
-</HEAD>
-
-<BODY BGCOLOR="#ffffff">
-<H1>Rearranging the main toolbar</H1>
-<p>
-You can rearrange sections of the main toolbar. Toolbar sections are divided
-by a thin vertical line.
-</p>
-
-<ol>
-  <li>
-    Make sure the toolbar is unlocked. The toolbar is unlocked
-    if it has thick vertical bars next to the thin vertical toolbar
-    dividers.<br>
-    <img src="../images/Image90_locked_toolbar.gif" alt="Locked toolbar" border="0" width="308" height="25">
-    <img src="../images/Image90_unlocked_toolbar.gif" alt="Unlocked toolbar" border="0" width="311" height="24"><br>
-    If it is locked, unlock the toolbar by selecting the <b>Window &gt; Lock the Toolbars</b> menu item.
-    </li>
-  <li>
-    Grab the section of the toolbar you want to rearrange by moving
-    the mouse over the thick vertical line on the left side of the desired segment.
-    The mouse cursor changes its shape to indicate that you can click to move the 
-    toolbar section.
-    </li>    
-  <li>
-    Click and hold the left mouse button to grab the toolbar section. 
-    </li> 
-  <li>
-    Move the section left and right or up and down. Release the 
-    mouse button to place it in the new location.
-    </li>
-  <li>
-    To prevent accidental changes to the toolbar lock it again by
-    selecting the <b>Window &gt; Lock the Toolbars</b> menu item.
-    </li>
-</ol>
-
-<p><img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27">
-<a href="../concepts/concepts-18.htm"><br>Toolbars</a>
-</p>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/add_bkmrk.gif b/bundles/org.eclipse.platform.doc.user/tips/images/add_bkmrk.gif
deleted file mode 100644
index a449549..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/add_bkmrk.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/backward_nav.gif b/bundles/org.eclipse.platform.doc.user/tips/images/backward_nav.gif
deleted file mode 100644
index 740419b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/bookmarks_view.gif b/bundles/org.eclipse.platform.doc.user/tips/images/bookmarks_view.gif
deleted file mode 100644
index e3f66cd..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/bookmarks_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/collapse-all.gif b/bundles/org.eclipse.platform.doc.user/tips/images/collapse-all.gif
deleted file mode 100644
index be2972f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/collapse-all.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/compare-showancestor.gif b/bundles/org.eclipse.platform.doc.user/tips/images/compare-showancestor.gif
deleted file mode 100644
index e87bd69..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/compare-showancestor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/editor-tiles.gif b/bundles/org.eclipse.platform.doc.user/tips/images/editor-tiles.gif
deleted file mode 100644
index 8fa5f0f..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/editor-tiles.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/help-working-set.gif b/bundles/org.eclipse.platform.doc.user/tips/images/help-working-set.gif
deleted file mode 100644
index 7a3d146..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/help-working-set.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/key-bindings.gif b/bundles/org.eclipse.platform.doc.user/tips/images/key-bindings.gif
deleted file mode 100644
index 91e22b9..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/key-bindings.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/keyboard-shortcut.gif b/bundles/org.eclipse.platform.doc.user/tips/images/keyboard-shortcut.gif
deleted file mode 100644
index b19ab55..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/keyboard-shortcut.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/last_edit_pos.gif b/bundles/org.eclipse.platform.doc.user/tips/images/last_edit_pos.gif
deleted file mode 100644
index 2a4829e..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/last_edit_pos.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/link-with-editor.gif b/bundles/org.eclipse.platform.doc.user/tips/images/link-with-editor.gif
deleted file mode 100644
index d477cdd..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/link-with-editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/path-vars.gif b/bundles/org.eclipse.platform.doc.user/tips/images/path-vars.gif
deleted file mode 100644
index e1e016b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/path-vars.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/perspective-other.gif b/bundles/org.eclipse.platform.doc.user/tips/images/perspective-other.gif
deleted file mode 100644
index c136244..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/perspective-other.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/pin-editor.gif b/bundles/org.eclipse.platform.doc.user/tips/images/pin-editor.gif
deleted file mode 100644
index 847f6ec..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/pin-editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/props-view.gif b/bundles/org.eclipse.platform.doc.user/tips/images/props-view.gif
deleted file mode 100644
index ed06baa..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/props-view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/restore-local.gif b/bundles/org.eclipse.platform.doc.user/tips/images/restore-local.gif
deleted file mode 100644
index 7067d8b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/restore-local.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/team-project-set.gif b/bundles/org.eclipse.platform.doc.user/tips/images/team-project-set.gif
deleted file mode 100644
index 44cebd4..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/team-project-set.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/images/team_contents_icon.gif b/bundles/org.eclipse.platform.doc.user/tips/images/team_contents_icon.gif
deleted file mode 100644
index 133140d..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/images/team_contents_icon.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/tips/platform_tips.html b/bundles/org.eclipse.platform.doc.user/tips/platform_tips.html
deleted file mode 100644
index 1faa92b..0000000
--- a/bundles/org.eclipse.platform.doc.user/tips/platform_tips.html
+++ /dev/null
@@ -1,554 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Platform Tips and Tricks</title>
-</head>
-
-<body>
-
-<h2>Tips and Tricks</h2>
-
-
-<p>The following tips and tricks give some helpful ideas for increasing your
-productivity.</p>
-
-
-<h3>Workbench</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Managing screen real estate
-      with fast views</b></td>
-    <td width="80%" valign="top" align="left">Use fast views to free up screen real estate while 
-    keeping views easily accessible. Clicking on the icon for a fast view
-      temporarily reveals it over top of the other views. The fast view retracts
-      as soon you click outside of it. The <b>Fast View</b> command in the view's system
-      menu toggles whether it is a fast view. You can also create a fast view by dragging
-      a view onto the
-	shortcut bar at the left.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Opening editors using drag and
-      drop</b></td>
-    <td width="80%" valign="top" align="left">You can open an editor on an
-      item by dragging the item from a view like the Navigator or Package Explorer 
-      and dropping it over the editor area.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Restoring deleted resources</b></td>
-    <td width="80%" valign="top" align="left">Select a container resource and use <b>Restore 
-    from Local History</b> to restore deleted files.  You can restore more than one
-      file at one time.
-    <p align="center"><img border="0" src="images/restore-local.gif" alt="Restore from local history dialog" align="left"></p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Like to start afresh each session?</b></td>
-    <td width="80%" valign="top" align="left">A setting on the <b>Workbench
-      &gt; Editors</b> preference page closes all open editors automatically
-      whenever you exit. This makes start-up cleaner and a bit faster.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Better UI for editor / view
-      synchronization</b></td>
-    <td width="80%" valign="top" align="left">The <b>Navigate &gt; Show In</b>
-      command provides a uniform way to navigate from an open editor to a view
-      showing the corresponding file (e.g., in the resource Navigator view), or
-      from a file selected in one view to the same file in a different view (e.g., 
-      from the resource Navigator view to the Packages Explorer view).</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>User customizable<br>
-      key bindings</b></td>
-    <td width="80%" valign="top" align="left">If you find yourself repeatedly
-      doing some command, you might be able to streamline things by assigning a key
-      sequence to trigger that command. Assigning new key bindings, and viewing
-      existing bindings, is done from the <b>Workbench &gt;
-      Keys</b> preference page.
-      <p><img src="images/key-bindings.gif" alt="Key bindings preference dialog" width="452" height="388" border="0"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Faster workspace navigation</b></td>
-    <td width="80%" valign="top" align="left"><b>Navigate &gt; Open Resource</b> (Ctrl+Shift+R) brings up a dialog that allows you to quickly locate and
-      open an editor on any file in the workspace. In the same vein, <b>Navigate &gt; Go To &gt; Resource</b> expands and selects the resource in the Navigator view itself, if it has
-      focus.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Tiling the editor work area</b></td>
-    <td width="80%" valign="top" align="left">You can use drag and drop to modify the layout of your editor
-      work area.  Grab an editor tab and drag it to the edge of the editor work
-      area.  The arrow dock icons 
-    (e.g., <img align="texttop" border="0" src="../images/drop_left_source.gif"  alt="Left arrow icon">) indicate which way the editor work area will split.
-      <p><img src="images/editor-tiles.gif" alt="Tiled editor work area" width="405" height="393" border="0"></p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Now where was I?</b></td>
-    <td width="80%" valign="top" align="left">Workbench editors keep a navigation 
-      history. If&nbsp; you open a second editor while you're editing away, you 
-      can press <b>Navigate &gt; Backward</b>  (Alt+Left Arrow, or the <img border="0" src="images/backward_nav.gif" alt="Left arrow icon">
-      back arrow 
-      on the workbench toolbar) to get back. This makes working with lots of open editors a whole lot easier.&nbsp;</td>
-  </tr>
-  <tr>
-	<td valign="top" align="right" width="20%">
-		<strong>Incrementally find a string</strong>
-	</td>
-    <td valign="top" align="left" width="80%">
-        Use <strong>Edit &gt; Incremental Find Next</strong>  (Ctrl+J) or <strong>Edit &gt; Incremental Find Previous</strong>
-        (Ctrl+Shift+J)
-        to enter incremental find mode, and start typing the string to match.
-        Matches are found incrementally as you type.
-        The search string is shown in the status line. Press Ctrl+J or
-        Ctrl+Shift+J to go to the next or previous match. Press Enter or Esc to
-        exit incremental find mode.
-	</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Go to last edit location</b></td>
-    <td width="80%" valign="top" align="left"><b>Navigate &gt; Go
-      to Last Edit Location</b> (Ctrl+Q) takes you back to
-      the place where you last made a change. A button marked <img border="0" src="images/last_edit_pos.gif" alt="Go to last edit position icon" width="16" height="16">
-      shows up in the toolbar when the Editor Navigation command is
-      enabled. If this command does not appear in your perspective, you can 
-    add it by selecting <b>Window &gt; Customize Perspective &gt; Other &gt;
-      Editor Navigation</b>.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Linking view to current open
-      editor</b></td>
-    <td width="80%" valign="top" align="left">
-      <p>The resource Navigator view (and similar views) is not tightly linked to the currently open editor by default. This means
-      that closing or switching editors does not change the selection in the
-      Navigator view. Toggling the <b>Link with
-      Editor</b> button in the Navigator view toolbar ties the view
-      to always show the current file being edited.
-      <p align="center"><img src="images/link-with-editor.gif" alt="Package explorer linked with editor" width="403" height="147" border="0"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Copying and moving resources</b></td>
-    <td width="80%" valign="top" align="left">You can drag and drop files and
-      folders within the Navigator view to move them around. Hold down the Ctrl
-      key to make copies.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Importing files</b></td>
-    <td width="80%" valign="top" align="left">You can quickly import files and folders
-      into your workspace by dragging them 
-    from the file system (e.g., from a Windows Explorer window) and dropping them into the Navigator view.
-      The files and folder are always copied into the project; the originals are
-      not affected. Copy and paste also work.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Exporting files</b></td>
-    <td width="80%" valign="top" align="left">Dragging files and folder from the
-      Navigator view to 
-    the file system (e.g., to a Windows Explorer window) exports the files and
-      folders. The files and folder are always copied; workspace resources are
-      not affected. Copy and paste also work.</td>
-  </tr>
-  <tr>
-	<td valign="top" align="right" width="20%">
-		<strong>Global find/replace</strong>
-	</td>
-    <td valign="top" align="left" width="80%">
-        Use <strong>Search &gt; File</strong> from the main menu to search for
-        text which should be replaced. In the Search view, select the entries that need to be
-        replaced and choose <strong>Replace Selected</strong> from the context menu..
-	</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Collapsing all open items</b></td>
-    <td width="80%" valign="top" align="left">Use the <b>Collapse All</b> button on the
-      toolbar of the Navigator view (and similar views) to collapse all expanded project and folder items.
-      <p align="center"><img src="images/collapse-all.gif" alt="Collapse all button on navigator toolbar" width="270" height="58" border="0" align="left"></p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Open editors with a single click</b></td>
-    <td width="80%" valign="top" align="left">Use the Open mode setting on the <b>Workbench
-      </b>
-    preference page to activate single click opening
-	for editors.  In single click mode, a single click on a file in the
-      Navigator view (and similar views) selects and immediately opens it. </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Next / previous navigation</b></td>
-    <td width="80%" valign="top" align="left">You can use Ctrl+.  and Ctrl+, 
-    to navigate to the next or previous search match, editor error, or compare
-      difference. These are the shortcut keys for <b>Navigate &gt; Next</b> and <b>Navigate
-      &gt; Previous</b>.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Describing your configuration</b></td>
-    <td width="80%" valign="top" align="left">When reporting a problem, it's
-      often important to be able to capture details about your particular setup. The <b> Configuration Details</b> button 
-      on the <b>Help &gt; About <i>Product</i></b> dialog opens a file containing various pieces of information about your setup,
-      including plug-in versions, preference settings, and the contents 
-      of the internal log file. You can save this, and attach the file
-      to your problem report.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Workspace project management</b></td>
-    <td width="80%" valign="top" align="left">Use the <b>Project &gt; Close Project</b>
-      command to 
-    manage projects within your workspace.  When a project is closed, its resources
-      are temporarily &quot;offline&quot; and no 
-    longer appear in the Workbench (they are still sitting in the local file
-      system). 
-    Closed projects require less memory. Also, since they are not examined during builds, 
-    closing a project can improve build times. </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Restoring a perspective's layout</b></td>
-    <td width="80%" valign="top" align="left">Rearranging and closing the views
-      in a perspective can sometimes render it unrecognizable and hard to work
-      with. To return it to a familiar state, use <b>Window &gt; Reset Perspective</b>. </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Pinning editors</b></td>
-    <td width="80%" valign="top" align="left">When the <b> Close editors
-      automatically</b> preference is active (found on the <b> Workbench &gt; Editors</b> preference page), you can stop an editor from being
-      closed by using the 
-    <b>Pin Editor</b>  button which appears in the workbench toolbar.
-      <p><img src="images/pin-editor.gif" alt="Pin editor button" width="89" height="52" border="0"></p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Importing an existing project</b></td>
-    <td width="80%" valign="top" align="left">If you import an existing project, the 
-    resources files for the project are <i>not</i> copied.  If you check the 
-    properties of the project, you'll see that the project's location in the
-      file system is the location you specified.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Reordering editor tabs</b></td>
-    <td width="80%" valign="top" align="left">You can rearrange the order of open editors by using drag and drop.  
-    Grab the editor tab and drag it to the position you want the editor to appear.
-      When positioning editors, the stack icon <img align="texttop" border="0" src="../images/drop_stack.gif"  alt="Stack icon">
-      indicates a valid spot to drop.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Deleting completed tasks</b></td>
-    <td width="80%" valign="top" align="left">Use the <b>Delete Completed Tasks</b>
-      command in the Task view context menu 
-    to remove all completed tasks from the Tasks view. This is more convenient
-      than individually 
-    selecting and deleting completed tasks.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Quick navigation between views, editors and perspectives</b></td>
-    <td width="80%" valign="top" align="left">A look at the <b>Window &gt; Keyboard Shortcuts</b> menu
-      reveals a number of ways to quickly navigate between the various views, editors, perspectives, and menus in the workbench.  
-    These commands have keyword accelerators such as <b>Ctrl+F6</b> for switching between editors, <b>Ctrl+F7</b> for switching between views, <b>Ctrl+F8</b> for switching
-      between perspectives, and <b>F12</b> for activating the editor.
-      <p><img src="images/keyboard-shortcut.gif" alt="Keyboard shortcuts menu" width="458" height="199" border="0"></p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Maximizing a view or editor</b></td>
-    <td width="80%" valign="top" align="left">You can maximize a view or editor by 
-    double-clicking on the view's title bar or the editor's tab. Double-click
-      again to restore it to its usual size.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Viewing resource properties</b></td>
-    <td width="80%" valign="top" align="left">Use the Properties view (<b>Window
-      &gt; Show View &gt; Properties</b>) when viewing the properties for many
-      resources. Using this view is faster than opening the Properties dialog for each resource.
-      <p><img src="images/props-view.gif" alt="Resource properties dialog" width="403" height="206" border="0"></p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Quickly find a resource</b></td>
-    <td width="80%" valign="top" align="left">Use the <b>Navigate &gt; Go To &gt; Resource</b>
-      command to quickly find 
-    a resource.  If the <b>Go To &gt; Resource</b> command does not appear in your perspective, you can 
-    add it by selecting <b>Window &gt; Customize Perspective &gt; Other &gt; Resource Navigation</b>.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Extra resource information</b></td>
-    <td width="80%" valign="top" align="left">Label decorations are a general
-      mechanism for showing extra information 
-    about a resource. Use the<b> Workbench &gt; Label Decorations</b> preference
-      page to select which of the available kinds of decorations you want to
-      see.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Filtering resources</b></td>
-    <td width="80%" valign="top" align="left">The Navigator and Tasks views both
-      support filtering of their items.  
-    You control which items are visible by applying filters or working sets. The <b>Filters</b>
-      commands are found on the view menu. The working set is selected using the <b>Select
-      Working Set</b> command in the Navigator view menu. In the Tasks view, a
-      working set can be selected from within the <b>Filters</b> dialog.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Customizing toolbar and menu
-      bar</b></td>
-    <td width="80%" valign="top" align="left">You can customize which items
-      appear on the main toolbar and menu bar using the <b>Window &gt; Customize Perspective</b> 
-      command.
-      <p><img src="images/perspective-other.gif" alt="Customizing toolbar and menu bar" width="455" height="460" border="0"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Quick fix in Tasks view</b></td>
-    <td width="80%" valign="top" align="left">You can use the <b>Quick Fix</b>
-      command in the Tasks view to suggest an automatic fix for the selected
-      item. The <b>Quick Fix</b>  command is only enabled when there is a
-      suggested fix.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Creating path variables</b></td>
-    <td width="80%" valign="top" align="left">When creating a linked folder or
-      file, you can specify the target location relative to a path variable.  By using path
-      variables, you can share projects containing linked 
-    resources without requiring team members to have exactly the same path in
-      the file system. You can define a path variable at the time you 
-    create a linked resource, or via the <b> Workbench 
-    &gt; Linked Resources</b> preference page.
-      <p align="center"><img src="images/path-vars.gif" alt="Path variables dialog" width="408" height="221" border="0" align="left"></p></td>
-  </tr>
-  
-  <tr>
-	<td valign="top" align="right" width="20%">
-		<strong>Comparing zip archives with each other or with a folder</strong>
-	</td>
-    <td valign="top" align="left" width="80%">
-        Select two zip archives or one archive and a folder in the resource Navigator view
-        and choose <strong>Compare With &gt; Each Other</strong> from the view's popup menu.
-        Any differences between the two inputs are opened in a Compare editor. The top pane
-        shows all the archive entries that differ. Double clicking on an item performs a
-        content compare in the bottom pane.
-        <p>
-        This works in any context where a file comparison is involved. So if a CVS Synchronize
-        operation lists an archive in the resource tree, you can double click on it in order
-        to drill down into changes within the archive.
-	</td>
-  </tr> 
-  
-</table>
-
-<h3>Ant</h3>
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Running Ant targets</b></td>
-    <td width="80%" valign="top" align="left">You can double click on a target
-      in the Ant view to run it (equivalent to selecting the target and choosing
-      the <b>Run</b> command from the context menu).</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Terminating Ant builds</b></td>
-    <td width="80%" valign="top" align="left">The <b>Terminate</b> command in the
-      console (or Debug view) can be used to terminate an Ant build running in
-      the background.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Ant output and hyperlinks</b></td>
-    <td width="80%" valign="top" align="left">The output from Ant builds is now
-      written to the <b>Console</b> view in the same hierarchical format seen
-      when running Ant from the command line. Ant tasks (for example &quot;[mkdir]&quot;)
-      are hyperlinked to the associated Ant buildfile, and javac error reports
-      are hyperlinked to the associated Java source file and line number.
-      <p>The Console now supports hyperlinks for javac and jikes as well as the
-        Eclipse Java compiler. All such error reports are hyperlinked to the associated 
-        Java source file and line number.</p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Ant can find it</b></td>
-    <td width="80%" valign="top" align="left"> When the <b>Run &gt; External Tools &gt; Run As &gt; Ant Build</b>
-      launch shortcut is used, it searches for the buildfile
-      to execute starting in the folder of the selected resource and working its way
-      upwards (some will recognize this as Ant's "-find"
-      feature).
-      The names of buildfiles to search for are specified in the Ant preference page.</td>
-  </tr>
-</table>
-
-<h3>Help</h3>
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Help bookmarks</b></td>
-    <td width="80%" valign="top" align="left">You can now keep your own list of
-      bookmarks to pages in help books. Create a bookmark with the <img border="0" src="images/add_bkmrk.gif" alt="Bookmark document icon">
-      <b>Bookmark Document</b>  button on the toolbar of the Help browser. The
-      bookmarks show up in the <img border="0" src="images/bookmarks_view.gif" alt="Bookmarks icon">
-      <b>Bookmarks</b>  tab.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Help working sets</b></td>
-    <td width="80%" valign="top" align="left">Help working sets allow narrowing searches down as far as a section of a
-      book. Working sets are persisted from one session 
-      to the next, and can be used in workbench help searches or from the Help 
-      browser. 
-      <p><img border="0" src="images/help-working-set.gif" align="left" width="435" height="321" alt="Help working set dialog">
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Configuring a custom help
-      browser</b></td>
-    <td width="80%" valign="top" align="left">If you have a favorite web
-      browser, you can configure Help to use it instead of the default
-      browser, via a setting on the<b> Help</b> preference page.</td>
-  </tr>
-</table>
-
-<h3>Team - CVS</h3>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <tr>
-    <td width="20%" valign="top" align="right"><b>CVS Watch/Edit</b></td>
-    <td width="80%" valign="top" align="left">The &quot;edit&quot; portion of
-      CVS Watch/Edit is now supported. Through settings on the 
-      <b>Team &gt; CVS &gt; Watch/Edit</b> preference page (which must be set 
-      before the projects are added to your workspace), you can choose to automatically 
-      notify the CVS server whenever you start to edit a file. In turn, the CVS
-      server will notify others on the watch list for that file. When you go to
-      edit a file, you are warned if there are others editing the same file. <b>Team
-      &gt; Show Editors</b> on a file's context menu lists everyone currently
-      working on the file. There are also <b>Team &gt; Edit</b> and <b>Unedit</b>
-      commands.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Working set for imported team
-      projects</b></td>
-    <td width="80%" valign="top" align="left">There is now an option to create 
-      a working set for projects imported into the workspace via <b>Import &gt; 
-      Team Project Set</b>. This works for all types of repositories.
-      <p><img border="0" src="images/team-project-set.gif" width="470" height="220" alt="Team project set import dialog"></p></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>CVS now supports working sets</b></td>
-    <td width="80%" valign="top" align="left">Users can now define working sets
-      which will limit the number of projects shown in the CVS Repositories view.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Comparing different versions</b></td>
-    <td width="80%" valign="top" align="left">Select any folder or file in the
-      CVS Repositories view and choose <b>Compare With</b> from context menu to
-      compare it against some other version.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Restoring deleted files from
-      CVS</b></td>
-    <td width="80%" valign="top" align="left">Deleted files can now be queried 
-      and restored from the CVS repository using the <b>Team &gt; Restore from
-      Repository </b>command, which is available on CVS projects and folders.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>CVS Quick Sync</b></td>
-    <td width="80%" valign="top" align="left">A new &quot;quick sync&quot;
-      action has been added to the CVS action set. The action lets you select
-      which CVS projects to synchronize. A new toolbar button shows up in the
-      CVS Repository Exploring perspective, but you can customize other
-      perspectives to place it within easy reach.</td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>More flexible CVS checkouts</b></td>
-    <td width="80%" valign="top" align="left">A new <b>Checkout Into</b> action
-      lets you check out a folder into an existing project. Also, any shared
-      folder in a project can be disconnected from CVS control so that it can be
-      changed in or deleted from a workspace without queuing up outgoing CVS
-      changes. And CVS projects can now be configured to not fetch absent
-      directories on update.</td>
-  </tr>
-  <tr> 
-    <td valign="top" align="right" width="20%"><strong>My SSH server only support SSH2 protocol</strong></td>
-    <td valign="top" align="left" width="80%"><p CLASS="Head">Eclipse comes with a built-in 
-        SSH connection method called 'extssh'. However this method only supports 
-        SSH1 servers. If your server is running SSH2 and you want to use Eclipse 
-        to connect to that server you have two options:</p>
-      <ol>
-        <li>use a command line SSH client that supports SSH2 with the 'ext' connection 
-          method</li>
-        <li>download a plugin created by <a href="http://www.jcraft.com/eclipse-cvsssh2/">JCraft</a> 
-          that provides a SSH2 connection method.</li>
-      </ol>
-      <p>To use the 'ext' connection method, download and install an SSH command line client 
-        for your operating environment. In the <strong> Team &gt; CVS &gt; Ext Connection Method</strong> preference page, configure the location of the SSH executable and how the executable
-      is to be called. For the ext method to work the CVS client on your server 
-        must support the server mode. You can verify this by running <em>cvs --help-commands</em> 
-        and ensure that the server command is supported.</p></td>
-  </tr>
-  <tr> 
-    <td valign="top" align="right" width="20%"><strong>Working with a CVS Synchronize view 
-      that contains many conflicts</strong></td>
-    <td valign="top" align="left" width="80%"><p CLASS="Head">If your sync view contains many 
-        <em>false</em> conflicts (e.g. file that are marked as conflicting but 
-        whose contents are actually the same).</p>
-      <ol>
-        <li>From the view's toolbar menu select <strong>Compare File Contents</strong>.</li>
-        <li>The synchronization will be refreshed and all false conflicts will 
-          be removed.</li>
-        <li>For any remaining real conflicts you can either accept the remote 
-          contents <strong>Override and Update</strong> or release your file to 
-          the server <strong>Override and Commit</strong>.</li>
-      </ol></td>
-  </tr>
-  <tr> 
-    <td valign="top" align="right" width="20%"><strong>Sharing your CVS lineup with others</strong></td>
-    <td valign="top" align="left" width="80%"><p CLASS="Head">You can save the list of projects 
-        shared with CVS into a team project set. This provides an easy way of 
-        re-creating your workspace with shared CVS projects. </p>
-      <ol>
-        <li>Once you have checked out the set of projects from the CVS repository, 
-          select <strong>File &gt; Export</strong> from the main menu.</li>
-        <li> Select <strong>Team Project Set</strong> from the list and then select 
-          the projects to be exported. The generated file can be shared with your 
-          team to allow quick setups of your development environment. </li>
-        <li>To import the project set select <strong>File &gt; Import</strong> 
-          and select <strong>Team Project Set</strong>. The projects will be checked 
-          out of CVS and a repository location will automatically be created.</li>
-      </ol></td>
-  </tr>
-  <tr>
-    <td valign="top" align="right" width="20%"><strong>Reverting a managed CVS file that was 
-      edited, but not committed</strong></td>
-    <td valign="top" align="left" width="80%"><p CLASS="Head">There are a two ways of doing 
-        this:</p>
-      <ol>
-        <li>Select the file and from the context menu select <b> Replace With &gt; 
-          Latest from HEAD</b>.</li>
-      </ol>
-      <p>or</p>
-      <ol>
-        <li>Select the file or a parent folder and from the context menu select 
-          <strong>Team &gt; Synchronize with Repository</strong>.</li>
-        <li>Next switch to incoming/outgoing mode using the toolbar button in 
-          the view.</li>
-        <li>Select the file and from the context menu select <strong>Override 
-          and Update</strong>.</li>
-      </ol>
-    </td>
-  </tr>
-  <tr>
-    <td valign="top" align="right" width="20%">
-    	<strong>Show ancestor pane in 3-way compares</strong>
-    </td>
-    <td valign="top" align="left" width="80%"><p CLASS="Head">
-    	Whenever a CVS synchronization results in a conflict, it is helpful
-    	to view the common ancestor on which the two conflicting versions are based.
-    	<p>
-    	You can show the common ancestor by toggling the <strong>Show Ancestor Pane</strong>
-    	button in the compare viewer's local toolbar.
-    	
-      <p> <img src="images/compare-showancestor.gif" alt="Show Ancestor Pane button in compare viewer" width="367" height="175" border="0"> 
-      <p>
-    	If you always want to have the ancestor pane open automatically for conflicts, 
-    	you can check the option <strong>Initially show ancestor pane</strong> on the
-    	Text Compare tab of the Compare/Patch preference page.
-    	<p>
-    </td>
-  </tr>
-</table>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src = "../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/toc.xml b/bundles/org.eclipse.platform.doc.user/toc.xml
deleted file mode 100644
index d2a57f2..0000000
--- a/bundles/org.eclipse.platform.doc.user/toc.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ============================================================================= -->
-<!-- Define the top level topics                                                   -->
-<!-- ============================================================================= -->
-
-<toc label="Workbench User Guide">
-	<topic label="Getting started">
-		<link toc="topics_GettingStarted.xml" />
-	</topic>
-	<topic label="Concepts">
-		<link toc="topics_Concepts.xml" />
-	</topic>
-	<topic label="Tasks">
-		<link toc="topics_Tasks.xml" />
-	</topic>
-	<topic label="Reference">
-		<link toc="topics_Reference.xml" />
-	</topic>
-	<topic label="Tips and tricks" href="tips/platform_tips.html"/>
-	<topic label="What's new" href="whatsNew/platform_whatsnew.html"/>
-</toc>
diff --git a/bundles/org.eclipse.platform.doc.user/topics_Concepts.xml b/bundles/org.eclipse.platform.doc.user/topics_Concepts.xml
deleted file mode 100644
index 3f8c34b..0000000
--- a/bundles/org.eclipse.platform.doc.user/topics_Concepts.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the Concepts -->
-<!-- ========================== -->
-<toc label="Concepts">
-<!-- <topic label="What's new in this release" /> -->
-<topic label="Workbench" href="concepts/concepts-2.htm" >
-
-<!--  <topic label="Workspace" /> -->
-
-  <topic label="Resources" href="concepts/concepts-12.htm" />
-  <topic label="Resource hierarchies" href="concepts/concepts-17.htm" />
-  <topic label="Linked resources" href="concepts/concepts-13.htm" />
-  <topic label="Path variables" href="concepts/cpathvars.htm" />
-  <topic label="Working sets" href="concepts/cworkset.htm"/>
-<!--  <topic label="Projects and project natures" /> -->
-  <topic label="Builds" href="concepts/concepts-22.htm" />
-  <topic label="Local history" href="concepts/concepts-17a.htm" />
-<!--  <topic label="Class path and build class path" /> -->
-</topic>
-<anchor id="c_afterworkbench" />
-<topic label="Perspectives" href="concepts/concepts-4.htm" >
-<!--  <topic label="Resource perspective" /> -->
-</topic>
-<anchor id="c_afterperspectives" />
-<topic label="Editors" href="concepts/concepts-6.htm" >
-  <topic label="External editors" href="concepts/concepts-6a.htm" />
-</topic>
-<anchor id="c_aftereditors" />
-<topic label="Views" href="concepts/concepts-5.htm" >
-  <topic label="Fast views" href="concepts/concepts-21.htm" />
-  <topic label="Navigator view" href="concepts/cnav.htm" />
-  <topic label="Tasks view" href="concepts/ctskview.htm" />
-  <topic label="Outline view" href="concepts/coutline.htm" />
-  <topic label="Properties view" href="concepts/cpropview.htm" />
-  <topic label="Search view" href="concepts/csearchview.htm" />
-</topic>
-<anchor id="c_afterviews" />
-<topic label="Toolbars" href="concepts/concepts-18.htm" />
-<anchor id="c_aftertoolbars" />
-<topic label="Markers" href="concepts/concepts-11.htm" />
-<anchor id="c_aftermarkers" />
-<topic label="Bookmarks" href="concepts/cbookmrk.htm" />
-<anchor id="c_afterbookmarks" />
-<topic label="Label decorations" href="concepts/cdecorations.htm" />
-<anchor id="c_afterdecorations" />
-<topic label="Help system" href="concepts/chelpsys.htm" />
-<anchor id="c_afterhelp" />
-<topic label="External tools" href="concepts/concepts-exttools.htm" >
-  <topic label="Ant support" href="concepts/concepts-antsupport.htm"/>
-</topic>
-<anchor id="c_afterexternaltools" />
-<topic label="Team programming with CVS" href="concepts/concepts-26.htm" >
-  <topic label="Versions" href="concepts/concepts-27.htm" />
-  <topic label="Branches" href="concepts/concepts-27b.htm" />
-  <topic label="CVS Repositories" href="concepts/concepts-27c.htm" />
-  <topic label="Three way comparisons" href="concepts/concepts-29.htm" />
-  <topic label="Synchronizing with a CVS repository" href="concepts/concepts-30.htm" />
-  <topic label="Watch/Edit" href="concepts/concepts-cvs-watch.htm" />
-</topic>
-<anchor id="c_afterteam" />
-
-<topic label="Accessibility features in Eclipse" href="concepts/accessibility/accessmain.htm">
-    <topic label="Navigating the user interface using the keyboard"  href="concepts/accessibility/navigation.htm"/>
-    <topic label="Fonts and colors in Eclipse"  href="concepts/accessibility/fontsandcolors.htm"/>
-</topic>
-<anchor id="c_afteraccessibility" />
-
-<topic label="Features" href="concepts/concepts-25.htm" >
-</topic>
-<anchor id="c_afterfeatures" />
-
-</toc>
diff --git a/bundles/org.eclipse.platform.doc.user/topics_GettingStarted.xml b/bundles/org.eclipse.platform.doc.user/topics_GettingStarted.xml
deleted file mode 100644
index 98e9707..0000000
--- a/bundles/org.eclipse.platform.doc.user/topics_GettingStarted.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the GettingStarted -->
-<!-- ========================== -->
-<toc label="GettingStarted">
-   <topic label="Basic tutorial" href="gettingStarted/qs-01.htm">
-      <topic label="The Workbench" href="gettingStarted/qs-02a.htm"/>
-      <topic label="Editors and views" href="gettingStarted/qs-02b.htm">
-         <topic label="Editors" href="gettingStarted/qs-02d.htm"/>
-         <topic label="Views" href="gettingStarted/qs-02e.htm"/>
-      </topic>
-          
-      <topic label="A simple project" href="gettingStarted/qs-07a.htm">
-         <topic label="Using the File menu" href="gettingStarted/qs-07b.htm"/>
-         <topic label="Using the popup" href="gettingStarted/qs-07c.htm"/>
-         <topic label="Using the New button" href="gettingStarted/qs-07d.htm"/>
-      </topic>
- 
-      <topic label="Closing an editor" href="gettingStarted/qs-10b.htm"/>
-
-      <topic label="Navigating resources" href="gettingStarted/qs-12.htm">
-         <topic label="Opening resources in the Navigator" href="gettingStarted/qs-12b.htm"/>
-         <topic label="Go To" href="gettingStarted/qs-12c.htm"/>
-         <topic label="Go Into" href="gettingStarted/qs-12d.htm"/>
-      </topic>
-
-      <topic label="Show me the files" href="gettingStarted/qs-13.htm"/>
-
-      <topic label="Exporting files" href="gettingStarted/qs-24a.htm">
-         <topic label="Drag and drop or copy and paste" href="gettingStarted/qs-24b.htm"/>
-         <topic label="Export wizard" href="gettingStarted/qs-24c.htm"/>
-      </topic>
-
-      <topic label="Importing files" href="gettingStarted/qs-31a.htm">
-         <topic label="Drag and drop or copy and paste" href="gettingStarted/qs-31b.htm"/>
-         <topic label="Import wizard" href="gettingStarted/qs-31c.htm"/>
-      </topic>
-
-      <topic label="Deleting resources" href="gettingStarted/qs-32.htm"/>
-
-      <topic label="Working with other editors" href="gettingStarted/qs-34a.htm">
-         <topic label="External editors" href="gettingStarted/qs-34b.htm"/>
-         <topic label="Embedded editors" href="gettingStarted/qs-34c.htm"/>
-         <topic label="Editing files outside the Workbench" href="gettingStarted/qs-34d.htm"/>
-      </topic>
-
-      <topic label="Copying, renaming and moving" href="gettingStarted/qs-35.htm">
-         <topic label="Copying" href="gettingStarted/qs-35b.htm"/>
-         <topic label="Renaming" href="gettingStarted/qs-35c.htm"/>
-         <topic label="Moving" href="gettingStarted/qs-35d.htm"/>
-      </topic>
-
-      <topic label="Searching" href="gettingStarted/qs-36.htm">
-         <topic label="Starting a search" href="gettingStarted/qs-36a.htm"/>
-         <topic label="The Search view" href="gettingStarted/qs-36b.htm"/>
-      </topic>
-
-      <topic label="Tasks and markers" href="gettingStarted/qs-37-2b.htm">
-         <topic label="Unassociated tasks" href="gettingStarted/qs-37-2d.htm"/>
-         <topic label="Associated tasks" href="gettingStarted/qs-37-2d2.htm"/>
-         <topic label="Opening files" href="gettingStarted/qs-37-2f.htm"/>
-      </topic>
-
-      <topic label="Bookmarks" href="gettingStarted/qs-37-3b.htm">
-         <topic label="Adding and viewing bookmarks" href="gettingStarted/qs-37-3c.htm"/>
-         <topic label="Using bookmarks" href="gettingStarted/qs-37-3e.htm"/>
-        <topic label="Removing bookmarks" href="gettingStarted/qs-37-3f.htm"/>
-      </topic>
-
-      <topic label="Rearranging views and editors" href="gettingStarted/qs-39.htm">
-         <topic label="Drop cursors" href="gettingStarted/qs-39c.htm"/>
-         <topic label="Rearranging views" href="gettingStarted/qs-39d.htm"/>
-         <topic label="Tiling editors" href="gettingStarted/qs-39e.htm"/>
-         <topic label="Rearranging tabbed views" href="gettingStarted/qs-39f.htm" />
-         <topic label="Maximizing" href="gettingStarted/qs-39g.htm"/>
-      </topic>
-
-      <topic label="Fast views" href="gettingStarted/qs-40.htm">
-         <topic label="Creating fast views" href="gettingStarted/qs-40a.htm"/>
-         <topic label="Working with fast views" href="gettingStarted/qs-40b.htm"/>
-      </topic>
-
-      <topic label="Perspectives" href="gettingStarted/qs-43.htm">
-         <topic label="New perspectives" href="gettingStarted/qs-43b.htm"/>
-         <topic label="New windows" href="gettingStarted/qs-43c.htm"/>
-         <topic label="Saving perspectives" href="gettingStarted/qs-43e.htm"/>
-         <topic label="Configuring perspectives" href="gettingStarted/qs-43f.htm"/>
-      </topic>
-
-      <topic label="Comparing" href="gettingStarted/qs-52.htm">
-         <topic label="Simple compare" href="gettingStarted/qs-52c.htm"/>
-         <topic label="Understanding the comparison" href="gettingStarted/qs-52d.htm"/>
-         <topic label="Working with the comparison" href="gettingStarted/qs-52e.htm"/>
-      </topic>
-
-      <topic label="Local history" href="gettingStarted/qs-55.htm"/>
-
-      <topic label="Exiting the Workbench" href="gettingStarted/qs-55b.htm"/>
-
-   </topic>
-   
-   <anchor id="gs_afterbasic" />
-
-   <topic label="Team CVS tutorial" href="gettingStarted/qs-60_team.htm">
-      <topic label="Setting up a CVS repository" href="gettingStarted/qs-60a_setup.htm"/>
-      <topic label="Starting offline" href="gettingStarted/qs-61c_offline.htm"/>
-
-      <topic label="Sharing the project" href="gettingStarted/qs-61d_repoloca.htm">
-         <topic label="Specifying a repository location" href="gettingStarted/qs-61d_repolocb.htm"/>
-         <topic label="Repository locations" href="gettingStarted/qs-61e_whatisloc.htm"/>
-         <topic label="Synchronizing a project" href="gettingStarted/qs-61f_syncproject.htm"/>
-         <topic label="Synchronize view" href="gettingStarted/qs-62b_sync.htm"/>
-         <topic label="Committing" href="gettingStarted/qs-62c_releasing.htm"/>
-      </topic>
-
-      <topic label="Working with another user" href="gettingStarted/qs-64a_another.htm">
-         <topic label="Checking out a project" href="gettingStarted/qs-64b_fredadd.htm"/>
-         <topic label="Another user making changes" href="gettingStarted/qs-64b_fredmod.htm"/>
-         <topic label="Making our own changes" href="gettingStarted/qs-64c_catch_mod.htm"/>
-         <topic label="Synchronize view" href="gettingStarted/qs-64c_catch_sync_view.htm"/>
-         <topic label="Updating" href="gettingStarted/qs-64c_catch_sync2.htm"/>
-         <topic label="Committing" href="gettingStarted/qs-64c_catch_sync3_rel.htm"/>
-         <topic label="Replacing" href="gettingStarted/qs-70_replace.htm"/>
-         <topic label="Versioning your project" href="gettingStarted/qs-74_version.htm"/>
-         <topic label="A quick review" href="gettingStarted/qs-74_review.htm"/>
-      </topic>
-
-   </topic>
-
-   <anchor id="gs_afterteam" />
-
-   <topic label="Ant &amp; external tools tutorial" href="gettingStarted/qs-80_ant.htm">
-     <topic label="Eclipse Ant basics" href="gettingStarted/qs-81_basics.htm">
-       <topic label="Creating Ant buildfiles" href="gettingStarted/qs-82_create.htm"/>
-       <topic label="Editing Ant buildfiles" href="gettingStarted/qs-83_edit.htm"/>
-       <topic label="Running Ant buildfiles" href="gettingStarted/qs-84_run_ant.htm"/>
-       <topic label="Saving &amp; Reusing Ant options" href="gettingStarted/qs-85_ant_configs.htm"/>
-       <topic label="Using the Ant view" href="gettingStarted/qs-85a_ant_view.htm"/>
-     </topic>
-     <topic label="Use cases for Ant in Eclipse" href="gettingStarted/qs-86_use_cases.htm">     
-       <topic label="Deploying Eclipse plug-ins" href="gettingStarted/qs-87_plugin_deploy.htm">
-         <topic label="Creating a HelloWorld plug-in" href="gettingStarted/qs-88_create_plugin.htm"/>
-         <topic label="Generating the build.xml file" href="gettingStarted/qs-89_generate_buildxml.htm"/>
-         <topic label="Building a .jar file for the plug-in" href="gettingStarted/qs-90_build_jar.htm"/>
-         <topic label="More plug-in deployment options" href="gettingStarted/qs-91_build_options.htm"/>
-       </topic>      
-       <topic label="Ant buildfiles as project builders" href="gettingStarted/qs-92_project_builders.htm">
-         <topic label="Creating a project builder Ant buildfile" href="gettingStarted/qs-93_project_builder.htm"/>
-         <topic label="Executing project builders" href="gettingStarted/qs-94_run_pj.htm"/>       
-       </topic>      
-     </topic>	
-     <topic label="External tools" href="gettingStarted/qs-95_external_tools.htm">
-       <topic label="Non-Ant project builders" href="gettingStarted/qs-96_non_ant_pjs.htm"/>
-       <topic label="Stand-alone external tools" href="gettingStarted/qs-97_standalone_ets.htm"/>
-     </topic>	
-   </topic>
-   
-   <anchor id="gs_afterant" />
-   
-</toc>
diff --git a/bundles/org.eclipse.platform.doc.user/topics_Reference.xml b/bundles/org.eclipse.platform.doc.user/topics_Reference.xml
deleted file mode 100644
index 8beba99..0000000
--- a/bundles/org.eclipse.platform.doc.user/topics_Reference.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the Reference -->
-<!-- ========================== -->
-<toc label="Reference">
-
-<!-- <topic label="Keyboard shortcuts" /> -->
-<topic label="Crash recovery" href="reference/ref-8.htm" />
-
-<anchor id="r_aftercrash" />
-
-	<topic label="Preferences" href="reference/ref-72.htm">
-		<topic label="Workbench" href="reference/ref-10.htm"></topic>
-		<topic label="Appearance" href="reference/ref-16.htm"></topic>
-		<topic label="Compare/Patch" href="reference/ref-11.htm"></topic>
-		<topic label="Editors" href="reference/ref-12.htm"></topic>
-		<topic label="Text editor" href="reference/ref-texteditorprefs.htm"></topic>
-		<topic label="External Tools" href="reference/ref-exttoolsprefs.htm"></topic>
-		<topic label="File Associations" href="reference/ref-13.htm"></topic>
-		<topic label="Fonts" href="reference/ref-fonts.htm"></topic>
-		<topic label="Keys" href="concepts/accessibility/keyboardshortcuts.htm"/>
-		<topic label="Label Decorations" href="reference/ref-decorations.htm"></topic>
-		<topic label="Linked Resources" href="reference/ref-14b.htm"></topic>
-		<topic label="Local History" href="reference/ref-14.htm"></topic>
-		<topic label="Perspectives" href="reference/ref-15.htm"></topic>
-		<topic label="Search" href="reference/ref-search.htm"></topic>
-		<topic label="Startup" href="reference/ref-startup.htm"></topic>
-		<topic label="Ant" href="reference/ref-antprefs.htm"></topic>
-		<topic label="Ant Editor" href="reference/ref-anteditorprefs.htm"></topic>		
-		<topic label="Ant Runtime" href="reference/ref-antruntimeprefs.htm"></topic>		
-		<topic label="Build Order" href="reference/ref-17.htm"></topic>
-		<topic label="Help" href="reference/ref-18.htm"></topic>
-		<topic label="Help Server" href="reference/ref-helpserver.htm"></topic>
-		<topic label="Install/Update" href="reference/ref-21.htm"></topic>
-		<topic label="Web-triggered Updates" href="reference/ref-21a.htm"></topic>
-		<topic label="Team" href="reference/ref-19.htm"></topic>
-		<topic label="CVS" href="reference/ref-19cvs.htm"></topic>
-		<topic label="Ignored Resources" href="reference/ref-20.htm"></topic>
-		<topic label="File Content" href="reference/ref-20-fileContent.htm"></topic>
-	</topic>
-    
-    <anchor id="r_afterpref" />
-	
-	<topic label="Team support with CVS">
-		<topic label="CVS" href="reference/ref-47.htm"></topic>
-		<topic label="CVS Repositories view" href="reference/ref-32.htm"></topic>
-		<topic label="Synchronize view" href="reference/ref-33.htm"></topic>
-		<topic label="CVS Resource History view" href="reference/ref-32a.htm"></topic>
-		<topic label="CVS Console view" href="reference/ref-32b.htm"></topic>
-		<topic label="New CVS Repository Location wizard" href="reference/ref-40.htm"></topic>
-		<topic label="Merge wizard" href="reference/ref-41a.htm"></topic>
-		<topic label="Ignoring resources from version control" href="reference/ref-48a.htm" />
-		<topic label="CVS Label Decorations" href="reference/ref-cvs-decorations.htm" />
-	</topic>
-	
-	<anchor id="r_afterteam" />
-	
-<topic label="User interface information" >
-	<topic label="Development environment">
-		<topic label="Workbench toolbar" href="reference/ref-2.htm"></topic>
-		<topic label="Shortcut bar" href="reference/ref-3.htm"></topic>
-		<topic label="View toolbars" href="reference/ref-4.htm"></topic>
-		<topic label="Builds" href="reference/ref-5.htm"></topic>
-		<topic label="Perspectives" href="reference/ref-6.htm"></topic>
-		<topic label="Local history" href="reference/ref-6a.htm"></topic>		
-	</topic>
-
-
-	<topic label="Views and editors">
-		<topic label="Workbench window layout" href="reference/ref-23.htm"></topic>
-		<topic label="Editor area" href="reference/ref-24.htm"></topic>
-		<topic label="Compare editor" href="reference/ref-25.htm"></topic>
-		<topic label="Search view" href="reference/ref-26.htm"></topic>
-		<topic label="Navigator view" href="reference/ref-27.htm"></topic>
-		<topic label="Bookmarks view" href="reference/ref-28.htm"></topic>
-		<topic label="Properties view" href="reference/ref-29.htm"></topic>
-		<topic label="Outline view" href="reference/ref-30.htm"></topic>
-		<topic label="CVS views" href="reference/ref-30a.htm"></topic>
-                <topic label="Tasks view" href="reference/ref-31.htm"></topic>
-		<topic label="Ant editor" href="reference/ref-anteditor.htm"></topic>
-		<topic label="Ant view" href="reference/ref-antview.htm"></topic>
-		<topic label="Help view" href="reference/ref-34.htm"></topic>
-		<topic label="Update manager views" href="reference/ref-35uma.htm">		
-			<topic label="Install Configuration view" href="reference/ref-35umb.htm"></topic>	
-			<topic label="Feature Updates view" href="reference/ref-35umc.htm"></topic>	
-			<topic label="Preview" href="reference/ref-35umd.htm"></topic>	
-			<topic label="External Preview" href="reference/ref-35ume.htm"></topic>
-		</topic>
-	</topic>
-
-	<topic label="Wizards">
-		<topic label="New Project wizard" href="reference/ref-37.htm"></topic>
-		<topic label="New Folder wizard" href="reference/ref-38.htm"></topic>
-		<topic label="New File wizard" href="reference/ref-39.htm"></topic>
-		<topic label="CVS Wizards" href="reference/ref-39a.htm"></topic>
-                <topic label="Import wizard" href="reference/ref-70.htm"></topic>
-		<topic label="Export wizard" href="reference/ref-71.htm"></topic>
-	</topic>
-
-
-	<topic label="Help contents">
-		<topic label="Workbench User Guide" href="reference/ref-43.htm"></topic>
-	</topic>
-
-	<topic label="Search">
-		<topic label="File search" href="reference/ref-45.htm"></topic>
-		<topic label="Help search" href="reference/ref-searchw.htm"></topic>
-	</topic>
-
-	<topic label="Workbench menus">
-		<topic label="File menu" href="reference/ref-56.htm"></topic>
-		<topic label="Edit menu" href="reference/ref-57.htm"></topic>
-		<topic label="Navigate menu" href="reference/ref-58.htm"></topic>
-		<topic label="Project menu" href="reference/ref-59.htm"></topic>
-		<topic label="Window menu" href="reference/ref-60.htm"></topic>
-		<topic label="Help menu" href="reference/ref-61.htm"></topic>
-	</topic>
-
-	<topic label="Icons and buttons">
-		<topic label="Navigator view icons" href="reference/ref-65.htm"></topic>
-		<topic label="Editor area marker bar" href="reference/ref-66.htm"></topic>
-		<topic label="Tasks view" href="reference/ref-67.htm"></topic>
-		<topic label="Toolbar buttons" href="reference/ref-68.htm"></topic>
-		<topic label="External Tools and Ant Icons" href="reference/ref-anticons.htm"></topic>
-	</topic>
-</topic>
-
-<anchor id="r_afteruser" />
-
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.platform.doc.user/topics_Tasks.xml b/bundles/org.eclipse.platform.doc.user/topics_Tasks.xml
deleted file mode 100644
index 36458d1..0000000
--- a/bundles/org.eclipse.platform.doc.user/topics_Tasks.xml
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<!-- ========================== -->
-<!-- Define topics for the Tasks -->
-<!-- ========================== -->
-<toc label="Tasks">
-
-<topic label="Running Eclipse" href="tasks/running_eclipse.htm" />
-
-<anchor id="t_afterrunning" />
-
-<topic label="Upgrading Eclipse" href="tasks/tasks-2.htm" />
-
-<anchor id="t_afterupgrading" />
-
-<topic label="Working with perspectives" href="tasks/tasks-1a.htm" >
-  <topic label="Switching between perspectives" href="tasks/tasks-28.htm" />
-  <topic label="Specifying the default perspective" href="tasks/tasks-31.htm" />
-  <topic label="Opening perspectives" href="tasks/tasks-9f.htm" />
-  <topic label="Changing where perspectives open" href="tasks/tasks-24.htm" />
-  <topic label="Configuring perspectives" href="tasks/tasks-9k.htm" />
-  <topic label="Saving a user defined perspective" href="tasks/tasks-9i.htm" />
-  <topic label="Deleting a user defined perspective" href="tasks/tasks-9d.htm" />
-  <topic label="Resetting perspectives" href="tasks/tasks-9j.htm" />
-</topic>
-
-<anchor id="t_afterworking_perspectives" />
-
-<topic label="Working with views and editors"  href="tasks/tasks-1b.htm" >
-  <topic label="Opening views" href="tasks/tasks-3.htm" />
-  <topic label="Moving and docking views" href="tasks/tasks-3e.htm" />
-  <topic label="Rearranging tabbed views" href="tasks/tasks-3h.htm" />
-  <topic label="Creating fast views" href="tasks/tasks-9b.htm" />
-  <topic label="Working with fast views" href="tasks/tasks-9c.htm" />
-  <topic label="Opening files for editing" href="tasks/tasks-46.htm" />
-  <topic label="Associating editors with file types" href="tasks/tasks-51.htm" />
-  <topic label="Editing files outside the Workbench" href="tasks/tasks-52.htm" />
-  <topic label="Tiling editors" href="tasks/tasks-3g.htm" />
-  <topic label="Maximizing a view or editor" href="tasks/tasks-3i.htm" />
-</topic>
-
-<anchor id="t_afterworking_views" />
-
-<topic label="Customizing the Workbench" href="tasks/tasks-1.htm" >
-  <topic label="Rearranging the main toolbar" href="tasks/ttoolbars.htm" />
-  <topic label="Changing the key bindings" href="tasks/tkeybindings.htm" />
-  <topic label="Changing fonts and colors" href="tasks/tasks-20.htm" />
-  <topic label="Changing the placement of the tabs" href="tasks/tasks-9.htm" />
-  <topic label="Controlling single and double click behavior" href="tasks/topenmode.htm" />
-</topic>
-
-<anchor id="t_aftercustomizing" />
-
-<topic label="Working with projects, folders and files" href="tasks/tasks-1e.htm" >
-  <topic label="Creating a project" href="tasks/tasks-42.htm" />
-  <topic label="Closing projects" href="tasks/tasks-47.htm" />
-  <topic label="Deleting projects" href="tasks/tasks-42b.htm" />
-  <topic label="Creating a folder" href="tasks/tasks-43.htm" />
-  <topic label="Creating a file" href="tasks/tasks-44.htm" />
-  <topic label="Creating linked resources" href="tasks/tasks-45.htm" />
-  <topic label="Moving resources" href="tasks/tasks-63.htm" />
-  <topic label="Copying resources" href="tasks/tasks-63cg.htm" />
-  <topic label="Renaming resources" href="tasks/tasks-66.htm" />
-  <topic label="Deleting resources" href="tasks/tasks-67.htm" />
-  <topic label="Viewing resources properties" href="tasks/tasks-49.htm" />
-</topic>
-
-<anchor id="t_afterworking_projects" />
-
-
-<topic label="Navigating and finding resources" href="tasks/tasks-1c.htm" >
-  <topic label="Finding a resource quickly" href="tasks/tasks-46ag.htm" />
-  <topic label="Searching for files" href="tasks/tasks-84b.htm" />  
-  <topic label="Searching for text within a file" href="tasks/tasks-84.htm" />
-  <topic label="Sorting resources in the Navigator view" href="tasks/tasks-48.htm" />
-  <topic label="Showing or hiding files in the Navigator view" href="tasks/tasks-48b.htm" />
-  <topic label="Narrowing the scope of the Navigator view" href="tasks/tasks-46bg.htm" />
-  <topic label="Linking the Navigator view to the active editor" href="tasks/tasks-18.htm" />
-</topic>
-
-<anchor id="t_afternavigating" />
-
-<topic label="Bookmarks, tasks and other markers" href="tasks/tasks-1d.htm" >
-  <topic label="Creating a bookmark within a file" href="tasks/tasks-81.htm" />
-  <topic label="Creating a bookmark for an entire file" href="tasks/tasks-81b.htm" />
-  <topic label="Deleting a bookmark" href="tasks/tasks-82.htm" />
-  <topic label="Adding line items in the Tasks view" href="tasks/tasks-77.htm" />
-  <topic label="Associating a task with a resource" href="tasks/tasks-77b.htm" />
-  <topic label="Deleting tasks" href="tasks/tasks-78.htm" />
-  <topic label="Filtering the Tasks view" href="tasks/tasks-79.htm" />
-  <topic label="Automatically fixing problems" href="tasks/tquickfix.htm" />
-</topic>
-
-<anchor id="t_afterbookmarks" />
-
-<topic label="Comparing resources" href="tasks/tasks-68.htm" >
-  <topic label="Setting preferences for comparing files" href="tasks/tasks-68b.htm" />
-  <topic label="Understanding the comparison" href="tasks/tasks-68bg.htm" />
-  <topic label="Merging changes in the compare editor" href="tasks/tasks-68dg.htm" />
-</topic>
-
-<anchor id="t_aftercomparing" />
-
-<topic label="Working with local history" href="tasks/tasks-1f.htm" >
-  <topic label="Comparing resources with the local history" href="tasks/tasks-70.htm" />
-  <topic label="Replacing a resource with local history" href="tasks/tasks-87.htm" />
-  <topic label="Restoring deleted resources from local history" href="tasks/tasks-87b.htm" />
-  <topic label="Setting local history preferences" href="tasks/tasks-88.htm" />
-</topic>
-
-<anchor id="t_afterworking_local" />
-
-<topic label="Importing" href="tasks/tasks-53.htm" >
-  <topic label="Importing existing projects" href="tasks/tasks-importproject.htm" />
-  <topic label="Importing resources from the file system" href="tasks/tasks-55.htm" />
-  <topic label="Importing resources from a ZIP file" href="tasks/tasks-55bg.htm" />
-</topic>
-
-<anchor id="t_afterimporting" />
-
-<topic label="Exporting" href="tasks/tasks-57.htm" >
-  <topic label="Exporting resources to the file system" href="tasks/tasks-59.htm" />
-  <topic label="Exporting resources to a ZIP file" href="tasks/tasks-59ag.htm" />
-</topic>
-
-<anchor id="t_afterexporting" />
-
-<topic label="Building resources" href="tasks/tasks-73.htm" >
-  <topic label="Performing builds automatically" href="tasks/tasks-16.htm" />
-  <topic label="Performing builds manually" href="tasks/tasks-75.htm" />
-  <topic label="Saving resources automatically before a manual build" href="tasks/tasks-17.htm" />
-  <topic label="Changing build order" href="tasks/tasks-14.htm" />
-  <topic label="Running external tools" href="tasks/tasks-exttools-running.htm" />
-  <topic label="Running Ant buildfiles" href="tasks/tasks-ant-running.htm">
-    <topic label="Modifying the Ant classpath" href="tasks/tasks-ant-classpath.htm"/>
-    <topic label="Using a different version of Ant" href="tasks/tasks-ant-version.htm"/>
-    <topic label="Adding new Ant tasks and types" href="tasks/tasks-ant-addtasksandtypes.htm"/>
-  </topic>
-</topic>
-
-<anchor id="t_afterbuilding" />
-
-<!-- help topics -->
-<topic label="Using the help system" href="tasks/tasks-1g.htm" >
-  <topic label="Accessing context-sensitive help" href="tasks/tf1help.htm" />
-  <topic label="Accessing and navigating online help" href="tasks/taccess.htm" />
-  <topic label="Searching online help" href="tasks/tsearch.htm" />
-  <topic label="Setting help fonts and colors for accessibility" href="tasks/tfonts.htm" />
-  <topic label="Changing the web browser used by the help system" href="tasks/tchgbrws.htm" />
-</topic>
-
-<anchor id="t_afterusing" />
-
-<!-- team topics -->
-<topic label="Working in the team environment with CVS" href="tasks/tasks-1h.htm" >
-  <topic label="Working with a CVS repository" href="tasks/tasks-1i.htm" >
-    <topic label="Creating a CVS repository location" href="tasks/tasks-92.htm" />
-    <topic label="Discarding a CVS repository location" href="tasks/tasks-94.htm" />
-    <topic label="Refreshing the CVS Repositories View" href="tasks/tasks-93.htm" />
-    <topic label="Discovering branch and version tags" href="tasks/tasks-110.htm" />
-    <topic label="Changing the properties of a CVS repository location" href="tasks/tasks-95.htm" />
-    <topic label="Setting the content type of a file extension" href="tasks/tasks-team-1.htm" />
-  </topic>
-  <topic label="Working with projects shared with CVS" href="tasks/tasks-1j.htm" >
-      <topic label="Enabling the CVS resource decorations" href="tasks/tasks-107b.htm" />
-	  <topic label="Sharing a new project using CVS" href="tasks/tasks-117.htm" />
-	  <topic label="Project checked out with another CVS tool" href="tasks/tasks-117a.htm" />
-	  <topic label="Checking out a project from a CVS repository" href="tasks/tasks-96.htm" />
-	  <topic label="Checking out a module from a CVS repository" href="tasks/tasks-96a.htm" />
-	  <topic label="Checking out a folder into an existing project" href="tasks/tasks-96b.htm" />
-	  <topic label="Disconnecting a project from CVS" href="tasks/tasks-cvs-10.htm" />
-	  <topic label="Setting the CVS keyword substitution mode" href="tasks/tasks-cvs-11.htm" />
-	  <topic label="Filtering in the CVS Resource History view" href="tasks/tasks-cvs-16.htm" />
-	  <topic label="Changing the sharing of a project" href="tasks/tasks-117b.htm" />
-  </topic>
-  <topic label="Synchronizing with the repository" href="tasks/tasks-115.htm" >
-    <topic label="Updating" href="tasks/tasks-113.htm" />
-    <topic label="Committing" href="tasks/tasks-114.htm" />
-    <topic label="Version control life cycle: adding and ignoring resources" href="tasks/tasks-100d.htm" >
-      <topic label="Creating a global pattern" href="tasks/tasks-100d1.htm" />
-      <topic label="Authoring the CVS .cvsignore file" href="tasks/tasks-100d2.htm" />
-      <topic label="Overriding or removing resource ignore patterns" href="tasks/tasks-100d1b.htm" />
-    </topic>
-    <topic label="Resolving conflicts" href="tasks/tasks-113b.htm" />
-    <topic label="Branching" href="tasks/tasks-100a.htm" />
-    <topic label="Merging from a branch" href="tasks/tasks-100b.htm" />
-    <topic label="Viewing a file's revision history" href="tasks/tasks-119.htm" />
-  </topic>
-  <topic label="Versioning" href="tasks/tasks-1k.htm" >
-    <topic label="Creating a version of a project" href="tasks/tasks-100.htm" />    
-    <topic label="Versioning projects in the repository" href="tasks/tasks-118.htm" />
-  </topic>
-  <topic label="Comparing resources with repository versions" href="tasks/tasks-101.htm" />
-  <topic label="Working with patches" href="tasks/tasks-68c.htm" />
-  <topic label="Replacing resources in the workbench" href="tasks/tasks-103.htm" />
-  <topic label="Finding out who's working on what: watch/edit" href="tasks/tasks-cvs-watch.htm" />
-  <topic label="Changing CVS team settings" href="tasks/tasks-105.htm" />
-  <topic label="Restoring deleted files from the repository" href="tasks/tasks-105a.htm" />
-  <topic label="Reverting a branch to a previous version" href="tasks/tasks-105b.htm" />
-  <topic label="Moving version tags" href="tasks/tasks-105c.htm" />
-  <topic label="Running the CVS command-line client outside of Eclipse" href="tasks/task-team-cmdlineclient.htm" />
-</topic>
-
-<anchor id="t_afterworking_team" />
-
-
-<!-- install update topics -->
-<topic label="Updating features with the update manager" href="tasks/tasks-36.htm" >
-  <topic label="Inspecting the current configuration" href="tasks/tasks-33.htm" />
-  <topic label="Saving a configuration" href="tasks/tasks-37.htm" />
-  <topic label="Restoring a saved configuration" href="tasks/tasks-38.htm" />
-  <topic label="Picking up pending changes" href="tasks/tasks-35.htm" />
-  <topic label="Installing new features with the update manager" href="tasks/tasks-34.htm" />
-  <topic label="Installing several features at once using group updates" href="tasks/tasks-34a.htm" />
-  <topic label="Searching for features" href="tasks/tasks-36a.htm" />
-</topic>
-
-<anchor id="t_afterupdating" />
-
-</toc>
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/ant-editor.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/ant-editor.gif
deleted file mode 100644
index 901b0b5..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/ant-editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/ant-tabs.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/ant-tabs.gif
deleted file mode 100644
index 5b91e32..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/ant-tabs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/key-bindings.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/key-bindings.gif
deleted file mode 100644
index 3757d44..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/key-bindings.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/link-with-editor.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/link-with-editor.gif
deleted file mode 100644
index 2cf1138..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/link-with-editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/linked-resource.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/linked-resource.gif
deleted file mode 100644
index b4c2135..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/linked-resource.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/navigate-back.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/navigate-back.gif
deleted file mode 100644
index 83992c0..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/navigate-back.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/show-in.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/show-in.gif
deleted file mode 100644
index 66c50bb..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/show-in.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/text-editor.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/text-editor.gif
deleted file mode 100644
index aedea84..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/text-editor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/images/tips-and-tricks.gif b/bundles/org.eclipse.platform.doc.user/whatsNew/images/tips-and-tricks.gif
deleted file mode 100644
index 895f13f..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/images/tips-and-tricks.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html b/bundles/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html
deleted file mode 100644
index d26f28b..0000000
--- a/bundles/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
-<title>Eclipse Platform What's New</title>
-</head>
-
-<body>
-
-<h2>What's New in 2.1</h2>
-
-<p>Here are some of the more interesting or significant changes made to the
-Eclipse Platform for the 2.1 release of
-Eclipse since 2.0:</p>
-
-<table border="1" cellpadding="10" cellspacing="0" width="600">
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Tips and tricks</b></td>
-    <td width="80%" valign="top" align="left">For some helpful ideas for 
-      increasing your productivity, use <b>Help &gt; Tips and Tricks</b>
-      then chose which page you are interested in.
-      <p><img border="0" src="images/tips-and-tricks.gif" width="350" height="272" alt="Tips and tricks selection dialog"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>User customizable<br>
-      key bindings</b></td>
-    <td width="80%" valign="top" align="left">You can now customize key bindings
-      using <b>Workbench &gt; Keys</b> preference page. Emacs users will find a
-      predefined set of key bindings awaiting them.
-      <p><img border="0" src="images/key-bindings.gif" width="408" height="426" alt="Key bindings preference dialog"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Editor navigation history</b></td>
-    <td width="80%" valign="top" align="left">Workbench editors now keep a
-      navigation history. If you open a second editor while you're editing away,
-      you can use <b>Navigate &gt; Back</b> to get back, or press the back
-      button on the workbench toolbar. The back button on your mouse also does
-      the trick as along as it sends the standard Alt + Left Arrow key sequence.
-      <p align="center"><img border="0" src="images/navigate-back.gif" width="386" height="180" alt="Editor navigation history"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Improved default text editor</b></td>
-    <td width="80%" valign="top" align="left">The default text editor now
-      supports line numbers, cursor-line highlighting, print margin, annotation
-      highlighting, and an overview ruler. All of these can be configured from
-      the <b>Workbench &gt; Editors &gt; Text Editor</b> preference page.
-      <p align="center"><img border="0" src="images/text-editor.gif" width="464" height="507" alt="Test editor preference dialog"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Improved editor linking behavior</b></td>
-    <td width="80%" valign="top" align="left">The resource Navigator view is no
-      longer tightly linked to the currently open editor by default. This means
-      that closing or switching editors does not change the selection in the
-      Navigator view, which many found disorienting. Toggle the <b>Link with
-      Editor</b> button in the view toolbar to tie the Navigator view (or
-      similar views)
-      to always show the current file being edited.
-      <p align="center"><img border="0" src="images/link-with-editor.gif" width="427" height="128" alt="Package explorer linked with editor"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Better UI for editor / view
-      synchronization</b></td>
-    <td width="80%" valign="top" align="left">The new <b>Navigate &gt; Show In</b>
-      command provides a uniform way to navigate from an open editor to a view
-      showing the corresponding file (e.g., in the resource Navigator view), or
-      from a file selected in one view to the same file in a different view
-      (e.g., from the resource Navigator view to the Package Explorer
-      view).
-      <p align="center"><img border="0" src="images/show-in.gif" width="437" height="280" alt="Navigate &gt; Show In menu"></p>
-    </td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Ant view</b></td>
-    <td width="80%" valign="top" align="left">There is a new Ant view (<b>Window
-      &gt; Show View &gt; Ant</b>) that makes it easier to run Ant buildfiles. The
-      Ant view allows you to view your Ant buildfiles in one place and simplifies
-      running a single Ant target. The view includes a search button for
-      finding Ant buildfiles in the workspace to add to the view.
-      <p align="center"><img border="0" src="../images/ant-view.gif" width="255" height="257" alt="Ant view"></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>Ant editor</b></td>
-    <td width="80%" valign="top" align="left">
-      <p>There is a new Ant editor that makes it easier to edit Ant buildfiles.
-      The Ant editor provides content assist, syntax highlighting, an outline, and error reporting.</p>
-      <p align="center"><img border="0" src="images/ant-editor.gif" width="444" height="144" alt="Ant editor"></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>External tools &amp; launch
-      configurations</b></td>
-    <td width="80%" valign="top" align="left">
-      <p>External tools now use debugger-style launch
-      configurations. The <b>Run &gt; External Tools</b> drop-down menu now
-      appears and works in the same fashion as the run and debug drop-down
-      menus. The output from external tools now appears in the standard Console
-      view. External tools can now be run in the background, by a separate
-      thread. This means that you can let an Ant build run or launch an external
-      program and still continue to work in the Eclipse IDE.</p>
-      <p align="center"><img border="0" src="images/ant-tabs.gif" width="474" height="572" alt="Launch configuration dialog"></td>
-  </tr>
-  <tr>
-    <td width="20%" valign="top" align="right"><b>More flexible project layouts</b></td>
-    <td width="80%" valign="top" align="left">There is now improved support for
-      dealing with externally imposed restrictions on how the files in a
-      workspace project are laid out in the local file system. When creating a
-      folder or file, you can link it to an existing location in the file
-      system outside of the workspace. This is done using the Advanced section
-      on the New Folder and New File wizards. These <a href="../concepts/concepts-13.htm">linked
-      resources</a> are useful for integrating with external libraries or source
-      code directories that cannot readily be copied into an Eclipse workspace.
-      <p align="center"><img border="0" src="images/linked-resource.gif" width="438" height="651" alt="Linked resource"></td>
-  </tr>
-</table>
-
-<p>&nbsp;<br>
-<a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright IBM Corporation and others 2000, 2003" border="0" width="324" height="14"></a>
-</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.platform.doc.user/workbench.gif b/bundles/org.eclipse.platform.doc.user/workbench.gif
deleted file mode 100644
index d4125ed..0000000
--- a/bundles/org.eclipse.platform.doc.user/workbench.gif
+++ /dev/null
Binary files differ
