Get rid of eclipse views, help and etc.

So badly outdated that not helpful at all.

Change-Id: I5891975199608ea9df9fe62b7a8f229e8f8d0016
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/bundles/org.eclipse.test.performance.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.test.performance.ui/META-INF/MANIFEST.MF
index 012312a..2e40a62 100644
--- a/bundles/org.eclipse.test.performance.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.test.performance.ui/META-INF/MANIFEST.MF
@@ -9,13 +9,10 @@
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.swt,
  org.junit,
  org.eclipse.ui.views;bundle-version="3.4.0";resolution:=optional,
  org.eclipse.test.performance;bundle-version="3.14.0",
- org.eclipse.ui;bundle-version="3.5.0";resolution:=optional,
- org.eclipse.ui.ide;bundle-version="3.5.0";resolution:=optional,
- org.eclipse.core.resources;bundle-version="3.5.0"
+ org.eclipse.ui;bundle-version="3.5.0";resolution:=optional
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.test.internal.performance.results.db;x-internal:=true,
  org.eclipse.test.internal.performance.results.model;x-internal:=true,
diff --git a/bundles/org.eclipse.test.performance.ui/build.properties b/bundles/org.eclipse.test.performance.ui/build.properties
index f0b5824..8519760 100644
--- a/bundles/org.eclipse.test.performance.ui/build.properties
+++ b/bundles/org.eclipse.test.performance.ui/build.properties
@@ -16,19 +16,13 @@
                readme.html,\
                scripts/,\
                icons/,\
-               html/,\
-               toc.xml,\
-               contexts.xml,\
                doc/,\
                plugin.properties,\
                .
 src.includes = about.html,\
-               contexts.xml,\
                doc/,\
-               html/,\
                icons/,\
                images/,\
                readme.html,\
-               toc.xml,\
                scripts/
 source.. = src/
diff --git a/bundles/org.eclipse.test.performance.ui/contexts.xml b/bundles/org.eclipse.test.performance.ui/contexts.xml
deleted file mode 100644
index c205f96..0000000
--- a/bundles/org.eclipse.test.performance.ui/contexts.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<contexts>
- <context id="components" title="Components View">
-    <description>This view shows the performance results in a hierarchical tree:
-Component
-   + Scenario
-      + Test machine
-         + Build
-            + Performance numbers
-
-Typically, the Eclipse builder runs performance tests for each component after the build is made on several performance test machines. Each component defines one or several specific performance test suites made of several test (aka scenario). Several performance numbers (e.g. Elapsed Process Time and CPU Time) are stored for each scenario and all build results are available in the performance results database.
-
-This structure is roughly the same than the one used to generate performance results, hence make it easy to match the numbers in the corresponding page HTML page.</description>
- </context>
- <context id="builds" title="Builds view">
-    <description>This view shows the list of all the builds contained in the connected database or in the local data files if no database is connected.
-
-Different fonts are used to display build names depending on the level of knowledge about the corresponding build:
- - gray+italic: connected to a database but no available local data
- - gray: connected to a database and local data do not contain any information for this build
- - black: local data contain information about this build</description>
- </context>
- <context id="results" title="Component Results view">
-    <description>This view show for each of the performance machine the entire results since the beginning.
-
-Each tab of this view represent a performance machine (also named config).
-The name of the machine is the name of the tab. The results are displayed in
-a table where each column represents a scenario and each line a build.
-The lines are ordered in descending order (from the most recent to the oldest build).</description>
- </context>
-</contexts>
diff --git a/bundles/org.eclipse.test.performance.ui/html/builds-comparison.html b/bundles/org.eclipse.test.performance.ui/html/builds-comparison.html
deleted file mode 100644
index 68770bd..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/builds-comparison.html
+++ /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">
-    <title>Builds Comparison view</title>
-</head>
-
-<body>
-<h1>Builds Comparison view</h1>
-<p>
-This view shows the scenarios status table of the difference between two builds
-selected in the <a href="builds.html">Builds view</a>.
-</p><p>
-The comparison between the two builds is shown for each component in a
-separated tab which contains a table made of all scenarios (lines) and all
-configuration (columns).<br>
-<i>Note that this format is similar than the one used to generate performance
-results HTML pages...</i>
-</p>
-
-<h2>Filters</h2>
-<p>
-
-<h3>Scenarios filter</h3>
-<ul>
-<li>Advanced scenarios: hide the scenarios which are not in the fingerprints</li>
-</ul>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/builds.html b/bundles/org.eclipse.test.performance.ui/html/builds.html
deleted file mode 100644
index 509c2b5..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/builds.html
+++ /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">
-    <title>Builds view</title>
-</head>
-
-<body>
-<h1>Builds view</h1>
-<p>
-This view shows the list of all the builds contained in the connected database
-or in the local data files if no database is connected.
-</p>
-
-<h2>Information status</h2>
-<p>
-When starting the tool for the first time, this view is empty as no data has been
-populated, neither from the <a href="local_data.html">local data</a> files
-nor from the performance results database.
-</p><p>
-The typical usage of the performance tools is to read local data files copied
-from the server (see <a href="local_data.html">local data</a>). When this has
-been done, build names are displayed in this view using normal black color.
-</p>
-Some or all build names of the list may be displayed in a different font when
-a performance results database is connected:
-<ul>
-<li>
-<i><font color="#888888">gray and italic</font></i>: no local data files
-were read
-<p><img src="images/builds-nolocaldata.png" alt="Builds view with no local data"/></p>
-</li>
-<li>
-<i><font color="#888888">gray</font></i>: the local data files were read but contain
-no information about this build (typically new performance tests ran but the local
-data files were not copied since then):
-<p><img src="images/builds-missinglocaldata.png" alt="Builds view with missing local data"/></p>
-In this case it's possible to update those builds using the popup-menu:
-<p><img src="images/builds-update.png" alt="Update local data builds"/></p>
-It's also possible to rewrite the local data files from the database contents
-in one shot using the toolbar pull-up menu:
-<p><img src="images/builds-updateall.png" alt="Update all local data"/></p>
-</li>
-</ul>
-
-<h2>Generate</h2>
-<p>
-From this view, it is also possible to generate HTML pages using the generate
-command accessible from the popup-menu:
-<p><img src="images/builds-generate-menu.png" alt="Generate results: menu item"/></p>
-<p>
-After having selected the directory where to put the generated files, it's possible
-to choose the baseline to compare with:
-<p><img src="images/builds-generate-baseline.png" alt="Generate results: baseline selection"/></p>
-<p>
-And also whether you only want to generate the fingerprints or all the data:
-<p><img src="images/builds-generate-fingerprints.png" alt="Generate results: fingerprints"/></p>
-<p>
-After the generation ends, there should be in the specified directory similar
-files than the one generated on eclipsebuildserv.
-</p><p>
-<i>Note that a PHP server is neeeded to be able to read these files as it's done on
-eclipsebuildserv or fullmoon...</i>
-</p>
-
-<h2><a name="writecomparison">Write comparison</a></h2>
-<p>
-From this view, it is also possible to write the comparison between two 
-selected builds using the <b>Write comparison</b> item of the View menu:
-</p>
-<p><img src="images/write-comparison-menu.png" alt="Write comparison menu item"/></p>
-<p>
-The written HTML file will contain the Scenario Status Table as it would
-have been generated but comparing the two selected build instead of comparing
-a build vs a baseline.
-</p><p>
-This is helpful to see if a regression occurs after having made a change with 
-possible impact performance...
-</p>
-<p>Note that this comparison can also be shown in the
-<a href="builds-comparison.html">Builds Comparison view</a>...
-</p>
-
-<h2>Filters</h2>
-<p>
-There are several possible filters in this view.
- 
-<h3>Builds filters</h3>
-<ul>
-<li>Baseline: hide the baselines (starting with R-3.x)</li>
-<li>Old: hide all builds before last milestone except earlier milestones</li>
-</ul>
-<p>
-In this view baselines filter is not activated by default. It's because it may
-be interesting to know which baselines have results in the DB.
-Note that this filter is not synchronized with the one in Components view.
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/components.html b/bundles/org.eclipse.test.performance.ui/html/components.html
deleted file mode 100644
index 356bbc7..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/components.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!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>Components view</title>
-</head>
-
-<body>
-<h1>Components view</h1>
-<p>
-This view shows the performance results in similar way than the one used to generate
-the performance results, hence make it easy to match the numbers in the corresponding
-page HTML page.
-</p><p>
-When starting the tool for the first time, this view is empty as no data has been
-populated, neither from the <a href="local_data.html">local data</a> files
-nor from the performance results database.
-</p>
-
-
-<h2>Hierarchical tree</h2>
-<p>
-Typically, the Eclipse builder runs performance tests for each component after
-the build is made on several performance test machines. Each component defines one
-or several specific performance test suites made of several test (aka scenario).
-</p><p>
-Several performance numbers (e.g. Elapsed Process Time and CPU Time) are stored
-for each scenario and all build results are available in the performance results
-database.
-</p><p>
-Hence the tree structure is made as follow:
-<pre>
-Component
-   + Scenario
-      + Test machine
-         + Build
-            + Performance numbers
-</pre>
-and may look as follow:
-<p><img src="images/components.png" alt="Components view"/></p>
-
-<h2>Icons</h2>
-<p>
-Several icons are displayed on tree element, here are their meaning.
-</p><p>
-The red cross means that there's at least one scenario on one machine for
-the last build with a failure (i.e. a regression over 10%).
-</p><p>
-The warning icon means that some warnings occur for some results.
-The current possible warning are:</p>
-<ul>
-<li>error over the 3% threshold on test(s)</li>
-<li>unreliable test(s): the deviation through the test(s) history is over 20%</li>
-<li>unstable test(s): the deviation through the test(s) history is between 10 and 20%</li>
-<li>no baseline for test(s)</li>
-<li>only one run on test(s)</li>
-</ul>
-<p>
-The information icon gives some other interesting information:</p>
-<ul>
-<li>the Student T-test fails on test(s)</li>
-<li>the test(s) value or its delta is less than 100ms</li>
-</ul>
-<p>
-Note that for component and scenario level, the status is the aggregation of
-the children status. That means that as soon as one scenario is in error then
-the component is also flagged in error. And of course the higher severity is
-displayed masking lower possible icons.
-</p>
-
-<h2>Filters</h2>
-<p>
-There are several possible filters in this view:
-
-<h3>Builds filters</h3>
-<ul>
-<li>Baseline: hide the baselines (starting with R-3.x)</li>
-<li>Old: hide all builds before last milestone except earlier milestones</li>
-</ul>
-
-<h3>Scenarios filter</h3>
-<ul>
-<li>Advanced scenarios: hide the scenarios which are not in the fingerprints</li>
-</ul>
-<p>
-As baselines results are not really useful for the survey, the filter is activated
-by default in this view. Currently the survey only concerns the fingerprint
-scenario, hence the corresponding filter is also activated by default.
-</p>
-
-<h2><a name="writestatus">Write status</a></h2>
-<p>
-From this view, it is also possible to write the status file for the last
-active build (see <a href="preferences.html#lastbuild">Last build</a>) by
-using the <b>Write status</b> item of the View menu:
-</p>
-<p><img src="images/write-status-menu.png" alt="Write status menu item"/></p>
-<p>
-The written status file will contain all scenarios which have failures,
-except those excluded by the status preferences set in the preferences page
-(see <a href="preferences.html#status">Status</a>)
-</p><p>
-Then it's easy to see the new regression occurring in a build when comparing
-to the previous build status file:
-</p>
-<p><img src="images/write-status-comparison.png" alt="Compare write status files"/></p>
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-baseline.png b/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-baseline.png
deleted file mode 100644
index 42af1f4..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-baseline.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-fingerprints.png b/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-fingerprints.png
deleted file mode 100644
index 5a746ca..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-fingerprints.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-menu.png b/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-menu.png
deleted file mode 100644
index c2d8a62..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/builds-generate-menu.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/builds-missinglocaldata.png b/bundles/org.eclipse.test.performance.ui/html/images/builds-missinglocaldata.png
deleted file mode 100644
index c49239c..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/builds-missinglocaldata.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/builds-nolocaldata.png b/bundles/org.eclipse.test.performance.ui/html/images/builds-nolocaldata.png
deleted file mode 100644
index a745a51..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/builds-nolocaldata.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/builds-update.png b/bundles/org.eclipse.test.performance.ui/html/images/builds-update.png
deleted file mode 100644
index d3935e5..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/builds-update.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/builds-updateall.png b/bundles/org.eclipse.test.performance.ui/html/images/builds-updateall.png
deleted file mode 100644
index 7740942..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/builds-updateall.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/components.png b/bundles/org.eclipse.test.performance.ui/html/images/components.png
deleted file mode 100644
index 5a41cc7..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/components.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/perspective.png b/bundles/org.eclipse.test.performance.ui/html/images/perspective.png
deleted file mode 100644
index a010ac4..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/perspective.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences-database.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences-database.png
deleted file mode 100644
index 3cbceb4..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences-database.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences-default-dim.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences-default-dim.png
deleted file mode 100644
index cbc02d6..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences-default-dim.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences-eclipse-versions.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences-eclipse-versions.png
deleted file mode 100644
index 2771215..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences-eclipse-versions.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences-lastbuild.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences-lastbuild.png
deleted file mode 100644
index 26d85c0..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences-lastbuild.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences-milestones.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences-milestones.png
deleted file mode 100644
index 7f666af..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences-milestones.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences-results-dim.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences-results-dim.png
deleted file mode 100644
index dbb6726..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences-results-dim.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences-status.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences-status.png
deleted file mode 100644
index 6aa53dd..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences-status.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/preferences.png b/bundles/org.eclipse.test.performance.ui/html/images/preferences.png
deleted file mode 100644
index 321ba22..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/preferences.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/properties-survey-comment.png b/bundles/org.eclipse.test.performance.ui/html/images/properties-survey-comment.png
deleted file mode 100644
index 71255cb..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/properties-survey-comment.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/properties-warnings.png b/bundles/org.eclipse.test.performance.ui/html/images/properties-warnings.png
deleted file mode 100644
index 9954107..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/properties-warnings.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/verification-comment.png b/bundles/org.eclipse.test.performance.ui/html/images/verification-comment.png
deleted file mode 100644
index 7594237..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/verification-comment.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/verification-components.png b/bundles/org.eclipse.test.performance.ui/html/images/verification-components.png
deleted file mode 100644
index 2369c2e..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/verification-components.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/verification-failures.png b/bundles/org.eclipse.test.performance.ui/html/images/verification-failures.png
deleted file mode 100644
index 7c739c4..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/verification-failures.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/write-comparison-menu.png b/bundles/org.eclipse.test.performance.ui/html/images/write-comparison-menu.png
deleted file mode 100644
index d34b368..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/write-comparison-menu.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/write-status-comparison.png b/bundles/org.eclipse.test.performance.ui/html/images/write-status-comparison.png
deleted file mode 100644
index 51cc333..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/write-status-comparison.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/images/write-status-menu.png b/bundles/org.eclipse.test.performance.ui/html/images/write-status-menu.png
deleted file mode 100644
index 41bb7fa..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/images/write-status-menu.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.ui/html/local_data.html b/bundles/org.eclipse.test.performance.ui/html/local_data.html
deleted file mode 100644
index c2aa4e2..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/local_data.html
+++ /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">
-    <title>Local data</title>
-</head>
-
-<body>
-<h1>Local data</h1>
-<p>
-As the connection to the server database is too slow, local files containing
-all necessary information are written while generating performance results on
-the server.
-</p><p>
-The performance results tool then can read these files to avoid long distance
-access to data information. Of course, it's first necessary to copy these files
-on a location easily accessible from the machine where the tool is launched.
-</p>
-<div style="font-style: italic;">
-<p>Notes</p>
-<ul>
-<li>these files are accessible for some authorized users onto
-<b>ottcvs1.ottawa.ibm.com</b> at <b>/home/users/ecperf</b> directory</li>
-<li>SFTP is necessary to copy these files from that location</li>
-</ul>
-</div>
-<p>
-To read the local files, select the <b>Local data -> Read...</b> menu item and
-chose the directory where the files have been copied.
-</p>
-<div style="font-style: italic;">
-<p>Notes</p>
-<ul>
-<li>this manual read action only has to be done once, as it will be automatically
-done at the next start of the tool</li>
-<li>no verification is currently done that the local files matches
-the connected DB (if any). Mixing them should give unpredictable results!</li>
-</ul>
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/overview.html b/bundles/org.eclipse.test.performance.ui/html/overview.html
deleted file mode 100644
index 17d173a..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/overview.html
+++ /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">
-    <title>Overview</title>
-</head>
-
-<body>
-<h1>Overview</h1>
-The performance results tool provide an easy way to look at results collected
-while running performance tests on a build. It is accessible using the
-<b>Performance Results</b> perspective:
-<p><img src="images/perspective.png" alt="Performance Results perspective"/></p>
-<p>
-There are 4 views in this perspective:</p>
-<ul>
-<li><a href="components.html">Components view</a>: This is the view to see
-the results in details for each components</li>
-<li><a href="builds.html">Builds view</a>: This is the view to see all builds,
-update local data and generate results when necessary</li>
-<li><a href="results.html">Components Results view</a>: This is the view to
-see whole results for each machine in a single table</li>
-<li><a href="properties.html">Properties view</a>: Display element properties
-(typically results numbers and other database information)</li>
-</ul>
-<p>
-The goal of this tool is both to look at performance results database numbers
-and to verify whether a build result have scenarios showing performance regression.
-</p><p>
-The view to use to look at performance results number is the
-<a href="components.html">Components view</a>. In this view, results are
-displayed in a hierarchical tree which have a similar structure than
-the generated HTML pages (e.g.
-<a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/performance/performance.php">Eclipse 3.6.0</a>).
-The complete performance results information is provided on each element of the tree in the
-<a href="properties.html">Properties view</a>. This is typically useful when a scenario
-results looks weird to have the ability to verify that the numbers looks correct
-or not.
-</p><p>
-The view to verify whether a regression occurs is the <a href="results.html">Components Results view</a>.
-All results for one component are shown in a single table which also provides
-all necessary information to decide whether a noticed regression could be confirmed
-or not.
-</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/preferences.html b/bundles/org.eclipse.test.performance.ui/html/preferences.html
deleted file mode 100644
index 41b2643..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/preferences.html
+++ /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">
-    <title>Preferences</title>
-</head>
-
-<body>
-<h1>Preferences</h1>
-<p>
-The tool have some preferences which may be configured by advanced users.
-This must be done carefully otherwise, either no data could be read by the tool
-and/or generated results could be puzzled.
-</p><p>
-
-<h3><a name="eclipse_version">Eclipse version</a></h3>
-<p><img src="images/preferences-eclipse-versions.png" alt="Preferences Eclipse versions"/></p>
-<p>
-The Eclipse version on which the performance results belongs to. There are
-only two possible choice: the maintenance and the current versions.
-</p>
-
-<h3><a name="database">Database</a></h3>
-<p><img src="images/preferences-database.png" alt="Preferences Database"/></p>
-<p>
-By default the tool does not connect to any performance results database as common
-users might not have enough rights to access it. However, users having these
-rights may want to look at the database contents and update the local data files
-with it. Hence, it is possible to configure the tool to connect to a database
-which may be either local or on the releng server (<code><b>minsky</b></code>).
-</p><p>
-Note that the folder for the local database must be the parent of the
-<code>perfDb3x</code> folder otherwise you'll get an error message.
-</p>
-
-<h3><a name="status">Status</a></h3>
-<p><img src="images/preferences-status.png" alt="Preferences Status"/></p>
-<p>
-The status preferences can be set to exclude some tests while written
-the status file (see <a href="components.html#writestatus">Write status</a>).
-</p><p>
-Flying over each check-box or radio buttons gives a short explanation of each
-preference value
-</p><p>
-Here are the detailed explanation of these status preferences:
-</p>
-<ul>
-<li><b>Values</b>: Check-box to include the values of the failing tests in the
-status file. Note that is not recommended to do so when status want to be
-compared between builds</li>
-<li><b>Error level</b>: Level of the error from which the test result is
-excluded from the file:
-<ul>
-<li>None: the test is always included in the status file whatever the error
-level is</li>
-<li>Invalid: the test is not included when the error level is over 100%</li>
-<li>Weird: the test is not included when the error level is over 50%</li>
-<li>Suspicious: the test is not included when the error level is over 25%</li>
-<li>Noticeable: the test is not included when the error level is over 3%</li>
-</ul>
-</li>
-<li><b>Small value</b>: The test is not included when a small value is detected:
-<ul>
-<li>Build value: the test is not included when the value for this build test value
-is below than 100ms (<i>as the test duration is below the recommended minimum
-value it's not necessary to strongly survey it...</i>)</li>
-<li>Delta value: the test is not included when the value of the difference between
-the build and the baseline is below than 100ms (<i>as the regression is below
-what a normal user can detect, it may not be necessary to report it...</i>)</li>
-</ul>
-</li>
-<li><b>Statistics</b>: Level of deviation of test history since the first build
-from which the test result is not included in the status file:
-<ul>
-<li>None: the test is always included in the status file whatever the deviation
-is</li>
-<li>Unstable: the test is not included when the deviation is over 10%</li>
-<li>Erratic: the test is not included when the error level is over 20%</li>
-</ul>
-</li>
-<li><b>Builds to confirm</b>: The number of builds to confirm a regression.
-As tests may have <i>natural</i> variation, it's often necessary to have several
-builds to confirm that a regression really occurs. This preference allow to
-define how many consecutive builds must show a regression before including
-a test result in the status file...
-</li>
-</ul>
-
-<h3><a name="milestones">Milestones</a></h3>
-<p><img src="images/preferences-milestones.png" alt="Preferences Milestones"/></p>
-<p>
-These are the list of the version milestones. Each milestone is a date string
-using the <b>yyyymmddHHMM</b> format. When a new milestone is shipped, then a new
-date must be added to this preference to let the tool to identify it in the builds
-list and emphasize it...
-</p>
-
-<h3><a name="lastbuild">Last build</a></h3>
-<p><img src="images/preferences-lastbuild.png" alt="Preferences Last build"/></p>
-<p>
-The last build on which verifications and/or generation want to be done. When
-not set (which is the default value) the last build of the database is taken
-into account.
-</p><p>
-All builds after the selected one are ignored by the tool likewise they would
-have no local data. Changing this value will trigger the initialization of
-the local data which will be read again.
-</p>
-
-<h2><a name="defaultdim">Default dimension</a></h2>
-<p><img src="images/preferences-default-dim.png" alt="Preferences Default dimension"/></p>
-<p>
-This is the dimension used to compute delta and make the verification. Currently
-this is the <b>Elapsed Process Time</b> dimension.
-</p><p>
-<i>Note that the default dimension must belong to the <b>Results dimensions</b>
-described below, hence a new selected dimensions will always be automatically
-added to the list...</i>
-</p>
-
-<h2><a name="resultsdim">Results dimensions</a></h2>
-<p><img src="images/preferences-results-dim.png" alt="Preferences Results dimension"/></p>
-<p>
-These are dimensions displayed in the scenario data HTML pages. Currently there
-are the <b>Elapsed Process Time</b> and the <b>CPU Time</b>. Having these dimensions
-configurable may be interesting to display others dimensions and see whether their
-numbers may be relevant or not (e.g. <b>Used Hava Heap</b>).
-</p><p>
-<i>Note that the default dimension described above must belong to the selected
-dimensions, hence it will always be automatically added to the new selected list...</i>
-</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/properties.html b/bundles/org.eclipse.test.performance.ui/html/properties.html
deleted file mode 100644
index c1a5f53..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/properties.html
+++ /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">
-    <title>Properties view</title>
-</head>
-
-<body>
-<h1>Properties view</h1>
-<p>
-Properties view contents is different for each select element of the component hierarchy.
-But they all have three sections:
-<ul>
-<li>Results:    Performances results information</li>
-<li>Status:    Various severity messages</li>
-<li>Survey:    Comment added while surveying</li>
-</ul>
-<p>
-Note that the status may have multiple warning messages. So, this property is
-in fact a combo-box, to display all the messages, click on the drop-down button:
-<p><img src="images/properties-warnings.png" alt="Properties warnings"/></p>
-<p>
-It's also possible to add a text into the survey comment on each properties:
-<p><img src="images/properties-survey-comment.png" alt="Properties survey comment"/></p>
-<p>
-This allow to remember what was the conclusion of the last survey concerning an element of the tree...
-</p>
-
-<h2>Component properties</h2>
-TODO
-
-<h2>Scenario properties</h2>
-TODO
-
-<h2>Config properties</h2>
-TODO
-
-<h2>Build properties</h2>
-TODO
-
-<h2>Dimension properties</h2>
-TODO
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/results.html b/bundles/org.eclipse.test.performance.ui/html/results.html
deleted file mode 100644
index 253d93b..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/results.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">
-    <title>Components Results view</title>
-</head>
-
-<body>
-<h1>Components Results view</h1>
-<p>
-This view show for each of the performance machine the entire results since the beginning.
-</p>
-
-<h2>Config tab</h2>
-<p>
-Each tab of this view represent a performance machine (also named config).
-The name of the machine is the name of the tab. The results are displayed in
-a table where each column represents a scenario and each line a build.
-The lines are ordered in descending order (from the most recent to the oldest build).
-</p><p>
-Here are some tips about this view:
-<ul>
-<li>when old builds are not filtered, the milestone build are highlighted in bold
-+ blueref color background</li>
-<li>results color depends on the diff of the delta with the baseline:
-<ul>
-<li>red: <code>diff &lt;= -5%</code></li>
-<li>magenta: <code>-5% &lt; diff &lt; 0%</code></li>
-<li>black: <code>0% &lt;= diff &lt; +10%</code></li>
-<li>blue: <code>+10% &lt;= diff &lt; +25%</code></li>
-<li>green: <code>diff &gt;= +25%</code></li>
-</ul></li>
-<li>icons have the same meaning than in the Components view</li>
-<li>more information are available in the cell tooltip when either there's a
-warning/information icon and/or when the result is in displayed italic</li>
-</ul>
-
-<h2>Filters</h2>
-<p>
-There are 3 possible filters in this view:
-</p>
-<h3>Builds filters</h3>
-<ul>
-<li>Old: hide all builds before last milestone except earlier milestones</li>
-</ul>
-
-<h3>Scenarios filter</h3>
-<ul>
-<li>Advanced scenarios: hide the scenarios which are not in the fingerprints</li>
-</ul>
-<p>
-These filters are synchronized with the Components view, hence have the same default.
-</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/html/verification.html b/bundles/org.eclipse.test.performance.ui/html/verification.html
deleted file mode 100644
index ce750b3..0000000
--- a/bundles/org.eclipse.test.performance.ui/html/verification.html
+++ /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">
-    <title>Verification</title>
-</head>
-
-<body>
-<h1>Verification</h1>
-<p>
-While verifying a build results, the first thing to do is to look for failures.
-The tool helps to know rapidly which components have failure showing a red-cross
-icon in the <a href="components.html">Components view</a>:</p>
-<p><img src="images/verification-components.png" alt="Verification: failing components"/></p>
-<p>
-When clicking on one of the component having error(s), the tool automatically
-selects the first configuration (i.e. test machine) which has an error in its
-last build results. Then, flying over the failures may give a first indication
-whether the regressions are confirmed or not.
-</p><p>
-In the following example, a tool tip is displayed saying that the deviation has
-a small value and may be not enough important to report a bug:
-<p><img src="images/verification-failures.png" alt="Verification: failing test"/></p>
-<p>
-Then this analyze can be stored to see whether this scenario will still have
-a similar error on the next build performance run:
-<p><img src="images/verification-comment.png" alt="Verification: failure comment"/></p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/plugin.xml b/bundles/org.eclipse.test.performance.ui/plugin.xml
index 7ab9919..a874429 100644
--- a/bundles/org.eclipse.test.performance.ui/plugin.xml
+++ b/bundles/org.eclipse.test.performance.ui/plugin.xml
@@ -21,81 +21,11 @@
          </run>
       </application>
    </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            class="org.eclipse.test.internal.performance.results.ui.PerformanceResultsPreferencePage"
-            id="org.eclipse.test.performance.ui.prpp"
-            name="%page.name">
-      </page>
-   </extension>
 
    <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%category.name"
-            id="Performances">
-      </category>
-      <view
-            category="Performances"
-            class="org.eclipse.test.internal.performance.results.ui.ComponentsView"
-            icon="$nl$/icons/components.gif"
-            id="org.eclipse.test.internal.performance.results.ui.ComponentsView"
-            name="%view.name">
-      </view>
-      <view
-            category="Performances"
-            class="org.eclipse.test.internal.performance.results.ui.BuildsView"
-            icon="$nl$/icons/builds.gif"
-            id="org.eclipse.test.internal.performance.results.ui.BuildsView"
-            name="%view.name.0">
-      </view>
-      <view
-            category="Performances"
-            class="org.eclipse.test.internal.performance.results.ui.ComponentResultsView"
-            icon="$nl$/icons/results.gif"
-            id="org.eclipse.test.internal.performance.results.ui.ComponentsResultsView"
-            name="%view.name.1"
-            restorable="true">
-      </view>
-      <view
-            category="Performances"
-            class="org.eclipse.test.internal.performance.results.ui.BuildsComparisonView"
-            icon="$nl$/icons/compare_view.gif"
-            id="org.eclipse.test.internal.performance.results.ui.BuildsComparisonView"
-            name="%view.name.2"
-            restorable="true">
-      </view>
-   </extension>
-   <extension
          point="org.eclipse.core.runtime.preferences">
       <initializer
             class="org.eclipse.test.internal.performance.results.ui.PerformanceResultsPreferenceInitializer">
       </initializer>
    </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.test.internal.performance.results.ui.PerformanceResultsPerspective"
-            icon="$nl$/icons/perfs.gif"
-            id="org.eclipse.test.performance.ui.perspectives.PerformanceResultsPerspective"
-            name="%perspective.name">
-         <description>
-            %perspective.description
-         </description>
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.help.contexts">
-      <contexts
-            file="contexts.xml">
-      </contexts>
-   </extension>
-   <extension
-         point="org.eclipse.help.toc">
-      <toc
-            file="toc.xml"
-            primary="true">
-      </toc>
-   </extension>
 </plugin>
diff --git a/bundles/org.eclipse.test.performance.ui/readme.html b/bundles/org.eclipse.test.performance.ui/readme.html
index 393e745..77b3b74 100644
--- a/bundles/org.eclipse.test.performance.ui/readme.html
+++ b/bundles/org.eclipse.test.performance.ui/readme.html
@@ -1,77 +1,159 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html lang="en">
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-        <title>org.eclipse.test.performance.ui readme</title>
-    </head>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>org.eclipse.test.performance.ui readme</title>
+</head>
 
-<p><b><font size="+2">README</font></b><br> </p><p>Last updated: October 26, 2005<br> 
-</p><p><b>Introduction</b><br> <br> This readme describes how to create performance 
-charts and tables similar to those available on the eclipse platform download 
-pages using the stand-alone java program <b>org.eclipse.test.performance.ui.Main</b> 
-stored in this project. Although the program is currently geared to generating 
-results for the Eclipse Platform builds, the program may work for you given the 
-following conditions:</p><ul> <li>The &quot;eclipse.perf.config&quot; system property 
-used to run tests used three keys config, build and jvm <ul> <li>for example, 
-"eclipse.perf.config=config=relengbuildwin2;build=I20050219-1500;jvm=sun1.4.2_06". 
-<br> <br> </li></ul></li><li>Values for the "build" key begin with either an 'I' 
-or 'N' with the exception of the reference builds (for example, 3.0). <ul> <li>The 
-line graphs plot the reference build, all builds starting with 'I' and the seven 
-'N' builds preceding the current build.</li><li>This can be overriden with the use of the &quot;-current.prefix&quot; parameter where you can specify a comma-separated list of prefixes for build ids to include in the main line graph.<br> <br> </li></ul></li><li>Scenario names 
-all contain a prefix &quot;&lt;component&gt;.test&quot; <ul> <li>For example, 
-it is assumed that the scenario &quot;org.eclipse.help.tests.performance.appserver.TestAppserver#testAppserverCycle()&quot; 
-belongs to the &quot;org.eclipse.help&quot; component. </li><li>Unique scenario 
-prefixes are derived from all the scenarios in the database and are used to group 
-results.</li></ul></li></ul><p><br> For purposes of this document, the term &quot;<a href="images/descriptions.html#fp">fingerprint</a>&quot; 
-will be used to refer to a bar graph which represents the performance summary 
-at a global or component level for each test configuration.<br> <br> The term 
-&quot;<a href="images/descriptions.html#sst">scenario status table</a>&quot; will 
-be used to refer to a table of scenarios with green checks and red x indicators 
-below a component fingerprint. This table gives an overall view of the status 
-for all scenarios for a component for all configurations.<br> </p><p>The term 
-&quot;<a href="images/descriptions.html#sr">scenario results</a>&quot; will be 
-used to refer to a web page comparing current performance measurements to the 
-baseline measurements for one scenario on one configuration. The web page displays 
-the raw data for the current and baseline measurements and also displays line 
-graphs showing the measured values over the course of builds between the current 
-and baseline.</p><p><br> <b>Requirements</b> </p><ul> <li>Windows or Linux (x86) 
-operating system</li><li>Cloudscape or Derby plug-in</li><li>org.eclipse.releng.basebuilder</li><li>1.4 
-level jvm installed and on path</li></ul><p><b>Setup</b><br> </p><ul> <li>Checkout 
-org.eclipse.releng.basebuilder from cvs repository dev.eclipse.org:/home/eclipse 
-(HEAD should be fine).</li><li>Create a Cloudscape or derby plug-in as described 
-<A HREF="http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/org.eclipse.test.performance/doc/Performance%20Tests%20HowTo.html?rev=HEAD&content-type=text/html#cloudscape">here</A>.</li><li>Set 
-the environment variable &quot;dbloc&quot; to the location of the database containing 
-the performance data<br> For example:<br> <ul> <li> export dbloc=net://minsky.ottawa.ibm.com 
-(Linux)</li><li>set dbloc==net://minsky.ottawa.ibm.com (Windows)<br> </li></ul></li></ul><p><b>Running 
-the program</b></p><p>From a terminal or dos prompt,<br> </p><OL><LI>Set the environment 
-variable &quot;dbloc&quot; to the location of the database containing the performance 
-data<BR> For example:<UL><LI>export dbloc=net://minsky.ottawa.ibm.com (Linux)</LI><LI>set 
-dbloc==net://minsky.ottawa.ibm.com (Windows)<BR><BR></LI></UL></LI><LI>cd 
-to org.eclipse.releng.basebuilder\plugins\org.eclipse.test.performance.ui\scripts<BR></LI><LI>If 
-running on Linux, execute &quot;chmod 755 genresults&quot;</LI><LI>Execute the 
-following command:<b><br> <br> genresults -baseline &lt;baseline build id&gt; 
--current &lt;current build id&gt; -config &lt;comma-separated list of configs&gt; 
--jvm &lt;jvm name&gt; -output &lt;output dir&gt; [-config.properties &lt;properties&gt;] 
-[highlight &lt;buildid patterns&gt;] [scenario.pattern &lt;scenario prefix 
-patterns&gt;] [-fingerprints][-scenarioresults][-current.prefix &lt;comma-separated list of build id prefixes&gt;][-baseline.prefix &lt;comma-separated list of build id prefixes&gt;]</b></LI></OL><br> Parameter descriptions: 
-<blockquote> <p>-baseline &lt;baseline build id. A previous value used in the 
-&quot;build&quot; key in the eclipse.perf.config system property or the eclipse.perf.assertAgainst 
-property. &gt; <br> -current &lt;current build id. The value used in the &quot;build&quot; 
-key in the eclipse.perf.config system property.&gt;<br> -config &lt;a comma-separated 
-list of names of configurations for which to produce results. The values used 
-should be the same as values specified for the &quot;config&quot; key in the eclipse.perf.config 
-system property.&gt;<br> -jvm &lt;jvm description. The value used in the &quot;jvm&quot; 
-key in the eclipse.perf.config system property.&gt;<br> -output &lt;path to an 
-output directory for fingerprints and scenarios for each configuration specified 
-in -config parameter. Fingerprint gifs and html files are generated in the directory 
-specified, configuration specific subdirectories are created to store scenario 
-results and line graphs.&gt;</p></blockquote><p><br> Optional arguments:</p><blockquote> 
-<p>-config.properties &lt;semi-colon separated list of: config, alternate config 
-description.  The value should be quoted if there are spaces in the value.&gt;<BR>of builds which match any prefix in this list.  When omitted, a magenta line is draw on the graph which represents the baseline value specified in the -baseline parameter.&gt;<br> -highlight &lt;Comma-separated 
-list of build Id prefixes(excluding 'I' and 'N'), which are used to add and highlight 
-the most recent matching buildId on line graphs.&quot;&gt;<br> -scenario.pattern 
-&lt;Scenario prefix pattern used to query performance results database. Can be 
-used to generate results for a single component or subset of scenarios.&gt;<br> 
--fingerprints or -scenarioresults &lt;use one or the other to generate fingerprints 
-or scenario results only. Not specifying either will execute both.&gt;<BR>-baseline.prefix &lt;semi-colon separated list of: build id prefixes used in eclipse.perf.assertAgainst property or eclipse.perf.config system property.  Values used to generate a second line graph representing changes in repeated baseline test runs&gt;.<BR>-current.prefix &lt;semi-colon separated list of: build id prefixes used in eclipse.perf.config system property.  Values here used to override default of &quot;N,I&quot;.  Used to select build id's to include in main line graph.&gt;</p></blockquote>
+<p>
+	<b><font size="+2">README</font></b><br>
+</p>
+<p>
+	Last updated: October 26, 2005<br>
+</p>
+<p>
+	<b>Introduction</b><br> <br> This readme describes how to
+	create performance charts and tables similar to those available on the
+	eclipse platform download pages using the stand-alone java program <b>org.eclipse.test.performance.ui.Main</b>
+	stored in this project. Although the program is currently geared to
+	generating results for the Eclipse Platform builds, the program may
+	work for you given the following conditions:
+</p>
+<ul>
+	<li>The &quot;eclipse.perf.config&quot; system property used to
+		run tests used three keys config, build and jvm
+		<ul>
+			<li>for example,
+				"eclipse.perf.config=config=relengbuildwin2;build=I20050219-1500;jvm=sun1.4.2_06".
+				<br> <br>
+			</li>
+		</ul>
+	</li>
+	<li>Values for the "build" key begin with either an 'I' or 'N'
+		with the exception of the reference builds (for example, 3.0).
+		<ul>
+			<li>The line graphs plot the reference build, all builds
+				starting with 'I' and the seven 'N' builds preceding the current
+				build.</li>
+			<li>This can be overriden with the use of the
+				&quot;-current.prefix&quot; parameter where you can specify a
+				comma-separated list of prefixes for build ids to include in the
+				main line graph.<br> <br>
+			</li>
+		</ul>
+	</li>
+	<li>Scenario names all contain a prefix
+		&quot;&lt;component&gt;.test&quot;
+		<ul>
+			<li>For example, it is assumed that the scenario
+				&quot;org.eclipse.help.tests.performance.appserver.TestAppserver#testAppserverCycle()&quot;
+				belongs to the &quot;org.eclipse.help&quot; component.</li>
+			<li>Unique scenario prefixes are derived from all the scenarios
+				in the database and are used to group results.</li>
+		</ul>
+	</li>
+</ul>
+<p>
+	<br> For purposes of this document, the term &quot;<a
+		href="images/descriptions.html#fp">fingerprint</a>&quot; will be used
+	to refer to a bar graph which represents the performance summary at a
+	global or component level for each test configuration.<br> <br>
+	The term &quot;<a href="images/descriptions.html#sst">scenario
+		status table</a>&quot; will be used to refer to a table of scenarios with
+	green checks and red x indicators below a component fingerprint. This
+	table gives an overall view of the status for all scenarios for a
+	component for all configurations.<br>
+</p>
+<p>
+	The term &quot;<a href="images/descriptions.html#sr">scenario
+		results</a>&quot; will be used to refer to a web page comparing current
+	performance measurements to the baseline measurements for one scenario
+	on one configuration. The web page displays the raw data for the
+	current and baseline measurements and also displays line graphs showing
+	the measured values over the course of builds between the current and
+	baseline.
+</p>
+<p>
+	<br> <b>Requirements</b>
+</p>
+<ul>
+	<li>Windows or Linux (x86) operating system</li>
+	<li>org.eclipse.releng.basebuilder</li>
+	<li>JVM 11 installed and on path</li>
+</ul>
+<p>
+	<b>Running the program</b>
+</p>
+<p>
+	From a terminal or dos prompt,<br>
+</p>
+<OL>
+	<LI>cd to
+		org.eclipse.releng.basebuilder\plugins\org.eclipse.test.performance.ui\scripts<BR>
+	</LI>
+	<LI>If running on Linux, execute &quot;chmod 755 genresults&quot;</LI>
+	<LI>Execute the following command:<b><br> <br>
+			genresults -baseline &lt;baseline build id&gt; -current &lt;current
+			build id&gt; -config &lt;comma-separated list of configs&gt; -jvm
+			&lt;jvm name&gt; -output &lt;output dir&gt; [-config.properties
+			&lt;properties&gt;] [highlight &lt;buildid patterns&gt;]
+			[scenario.pattern &lt;scenario prefix patterns&gt;]
+			[-fingerprints][-scenarioresults][-current.prefix &lt;comma-separated
+			list of build id prefixes&gt;][-baseline.prefix &lt;comma-separated
+			list of build id prefixes&gt;]</b></LI>
+</OL>
+<p>
+	<br> Parameter descriptions:
+</p>
+<blockquote>
+	<ul>
+		<li>-baseline - baseline build id. A previous value used in the
+			&quot;build&quot; key in the eclipse.perf.config system property or
+			the eclipse.perf.assertAgainst property.</li>
+		<li>-current - current build id. The value used in the
+			&quot;build&quot; key in the eclipse.perf.config system property.</li>
+		<li>-config - a comma-separated list of names of configurations
+			for which to produce results. The values used should be the same as
+			values specified for the &quot;config&quot; key in the
+			eclipse.perf.config system property.&gt;<br> -jvm &lt;jvm
+			description. The value used in the &quot;jvm&quot; key in the
+			eclipse.perf.config system property.
+		</li>
+		<li>-output - path to an output directory for fingerprints and
+			scenarios for each configuration specified in -config parameter.
+			Fingerprint gifs and html files are generated in the directory
+			specified, configuration specific subdirectories are created to store
+			scenario results and line graphs.</li>
+	</ul>
+</blockquote>
+<p>
+	<br> Optional arguments:
+</p>
+<blockquote>
+	<ul>
+		<li>-config.properties - semi-colon separated list of: config,
+			alternate config description. The value should be quoted if there are
+			spaces in the value.<BR>of builds which match any prefix in this
+			list. When omitted, a magenta line is draw on the graph which
+			represents the baseline value specified in the -baseline parameter.
+		</li>
+		<li>-highlight - Comma-separated list of build Id
+			prefixes(excluding 'I' and 'N'), which are used to add and highlight
+			the most recent matching buildId on line graphs.</li>
+		<li>-scenario.pattern - Scenario prefix pattern used to query
+			performance results database. Can be used to generate results for a
+			single component or subset of scenarios.</li>
+		<li>-fingerprints or -scenarioresults - use one or the other to
+			generate fingerprints or scenario results only. Not specifying either
+			will execute both.</li>
+		<li>-baseline.prefix - semi-colon separated list of: build id
+			prefixes used in eclipse.perf.assertAgainst property or
+			eclipse.perf.config system property. Values used to generate a second
+			line graph representing changes in repeated baseline test run.</li>
+		<li>-current.prefix - semi-colon separated list of: build id
+			prefixes used in eclipse.perf.config system property. Values here
+			used to override default of &quot;N,I&quot;. Used to select build
+			id's to include in main line graph.</li>
+	</ul>
+</blockquote>
 </html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsComparisonTab.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsComparisonTab.java
deleted file mode 100644
index f3ed434..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsComparisonTab.java
+++ /dev/null
@@ -1,542 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.ToolTip;
-import org.eclipse.test.internal.performance.results.db.AbstractResults;
-import org.eclipse.test.internal.performance.results.db.BuildResults;
-import org.eclipse.test.internal.performance.results.db.ConfigResults;
-import org.eclipse.test.internal.performance.results.db.PerformanceResults;
-import org.eclipse.test.internal.performance.results.db.ScenarioResults;
-import org.eclipse.test.internal.performance.results.model.BuildResultsElement;
-import org.eclipse.test.internal.performance.results.model.PerformanceResultsElement;
-import org.eclipse.test.internal.performance.results.model.ResultsElement;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.test.internal.performance.results.utils.Util;
-
-
-/**
- * Tab to display all performances results numbers for a configuration (i.e a performance machine).
- */
-public class BuildsComparisonTab {
-
-	// Colors
-	static final Display DEFAULT_DISPLAY = Display.getDefault();
-	static final Color BLUE= DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_BLUE);
-	static final Color DARK_GREEN= DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_DARK_GREEN);
-	static final Color GRAY = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_GRAY);
-	static final Color MAGENTA = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_MAGENTA);
-	static final Color RED = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_RED);
-
-	// SWT resources
-	Shell shell;
-	Display display;
-	Table table;
-	private GC gc;
-	private Color lightred;
-	private Color lightyellow;
-	private Color darkyellow;
-	private Color blueref;
-	private Font boldFont;
-	private Font italicFont;
-	private Font boldItalicFont;
-	Map<Point, ToolTip> toolTips;
-
-	// Information
-	String componentName;
-	double[][] allValues;
-	double[][] allErrors;
-
-	// Cells management
-	Point tableOrigin, tableSize;
-	int columnsCount, rowsCount;
-	List<List<Object>> firstLine;
-
-	// Eclipse preferences
-	private IEclipsePreferences preferences;
-
-/*
- * Default constructor.
- */
-public BuildsComparisonTab(String name) {
-    this.componentName = name;
-	this.preferences = InstanceScope.INSTANCE.getNode(IPerformancesConstants.PLUGIN_ID);
-}
-
-/**
- * Creates the tab folder page.
- *
- * @param view The view on which to create the tab folder page
- * @return the new page for the tab folder
- */
-Composite createTabFolderPage (BuildsComparisonView view) {
-	// Cache the shell and display.
-	this.shell = view.tabFolder.getShell();
-	this.display = this.shell.getDisplay();
-
-	// Remove old table if present
-	boolean initResources = this.table == null;
-	if (this.table != null) {
-		disposeTable();
-	}
-
-	// Create the "children" table
-	int style = SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION;
-	this.table = new Table(view.tabFolder, style);
-	this.table.setLinesVisible (true);
-	this.table.setHeaderVisible (true);
-	GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
-	gridData.heightHint = 150;
-	this.table.setLayoutData (gridData);
-	this.gc = new GC(this.table);
-
-	// Init resources
-	if (initResources) initResources();
-
-	// Add columns to the table
-	TableColumn firstColumn = new TableColumn(this.table, SWT.CENTER);
-	firstColumn.setText("");
-	PerformanceResultsElement results = view.getResults();
-	String [] configDescriptions = results.getConfigDescriptions();
-	int length = configDescriptions.length;
-	for (int i = 0; i < length; i++) {
-		TableColumn column = new TableColumn(this.table, SWT.CENTER);
-		column.setText(configDescriptions[i]);
-	}
-
-	// Add lines to the table
-	this.toolTips = new HashMap<>();
-	boolean fingerprints = this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS);
-	fillTable(results, view.currentBuild, view.referenceBuild, fingerprints);
-
-	// Updated columns
-	for (int i=0; i<=length; i++) {
-		TableColumn column = this.table.getColumn(i);
-		column.setWidth(i==0?120:100);
-	}
-
-	// Store table info
-	this.columnsCount = length;
-
-	// Listen to mouse track events to display the table cell corresponding tooltip.
-	MouseTrackListener mouseTrackListener = new MouseTrackListener() {
-		ToolTip currentTooltip;
-		@Override
-    public void mouseHover(MouseEvent e) {
-			if (this.currentTooltip != null) {
-				this.currentTooltip.setVisible(false);
-				this.currentTooltip = null;
-			}
-			Point cellPosition = currentCellPosition(e.x, e.y);
-			if (cellPosition != null) {
-				ToolTip tooltip = BuildsComparisonTab.this.toolTips.get(cellPosition);
-				if (tooltip != null) {
-					Point location = BuildsComparisonTab.this.table.toDisplay(new Point(e.x, e.y));
-					tooltip.setLocation(location);
-					tooltip.setVisible(true);
-					this.currentTooltip = tooltip;
-				}
-			}
-		}
-		@Override
-    public void mouseEnter(MouseEvent e) {
-		}
-		@Override
-    public void mouseExit(MouseEvent e) {
-		}
-	};
-	this.table.addMouseTrackListener(mouseTrackListener);
-
-	// Select the first line by default (as this is the current build)
-	this.table.select(0);
-
-	// Return the built composite
-	return this.table;
-}
-
-/*
- * Create and store a tooltip with the given information and at the given position.
- */
-void createToolTip(String toolTipText, String toolTipMessage, int toolTipStyle, Point position) {
-	ToolTip toolTip = new ToolTip(this.table.getShell(), toolTipStyle);
-	toolTip.setAutoHide(true);
-	toolTip.setText(toolTipText);
-	toolTip.setMessage(/*"("+col+","+row+") "+*/toolTipMessage);
-	this.toolTips.put(position, toolTip);
-}
-
-/*
- * Get the current cell position (column, row) from a point position.
- */
-Point currentCellPosition(int x, int y) {
-
-	// Compute the origin of the visible area
-	if (this.tableOrigin == null) {
-		this.tableOrigin = new Point(0, this.table.getHeaderHeight());
-	}
-
-	// Increment width until over current y position
-	int height= this.tableOrigin.y;
-	int row = this.table.getTopIndex();
-	while (row<this.rowsCount && height<y) {
-		height += this.table.getItemHeight();
-		row++;
-	}
-	if (height < y) {
-		// return when position is over the last line
-		return null;
-	}
-	row--;
-
-	// Increment width until being over current x position
-	int col = 0;
-	TableItem tableItem = this.table.getItem(row);
-	Rectangle bounds = tableItem.getBounds(col);
-	while (col<this.columnsCount) {
-		int max = bounds.x + bounds.width + this.table.getGridLineWidth();
-		if (x <= max) break;
-		if (col == this.columnsCount) {
-			// return when position is over the last column
-			return null;
-		}
-		col++;
-		bounds = tableItem.getBounds(col);
-	}
-
-	// Return the found table cell position
-	return new Point(col, row);
-}
-
-/*
- * Dispose all SWT resources.
- */
-public void dispose() {
-	if (this.boldFont != null) {
-		this.boldFont.dispose();
-	}
-	if (this.italicFont != null) {
-		this.italicFont.dispose();
-	}
-	if (this.boldItalicFont != null) {
-		this.boldItalicFont.dispose();
-	}
-	if (this.darkyellow != null) {
-		this.darkyellow.dispose();
-	}
-	if (this.lightyellow != null) {
-		this.lightyellow.dispose();
-	}
-	if (this.lightred != null) {
-		this.lightred.dispose();
-	}
-	if (this.blueref != null) {
-		this.blueref.dispose();
-	}
-	disposeTable();
-}
-
-/*
- * Dispose all SWT controls associated with the table.
- */
-private void disposeTable() {
-	if (this.toolTips != null) {
-		Iterator<Point> cells = this.toolTips.keySet().iterator();
-		while (cells.hasNext()) {
-			ToolTip toolTip = this.toolTips.get(cells.next());
-			toolTip.dispose();
-		}
-	}
-	this.table.dispose();
-	this.tableOrigin = null;
-	this.firstLine = null;
-}
-
-/*
- * Fill the lines of the tables.
- * Get all the information from the model which are returned in a list (lines) of lists (columns).
- */
-private void fillTable(PerformanceResultsElement results, String currentBuild, String referenceBuild, boolean fingerprints) {
-
-	// Get all the scenario for the component
-	final PerformanceResults performanceResults = results.getPerformanceResults();
-	List<AbstractResults> scenarios = performanceResults.getComponentScenarios(this.componentName);
-	int size = scenarios.size();
-
-	// Get thresholds
-	int failurePref = this.preferences.getInt(IPerformancesConstants.PRE_COMPARISON_THRESHOLD_FAILURE, IPerformancesConstants.DEFAULT_COMPARISON_THRESHOLD_FAILURE);
-	int errorPref = this.preferences.getInt(IPerformancesConstants.PRE_COMPARISON_THRESHOLD_ERROR, IPerformancesConstants.DEFAULT_COMPARISON_THRESHOLD_ERROR);
-	int improvementPref = this.preferences.getInt(IPerformancesConstants.PRE_COMPARISON_THRESHOLD_IMPROVEMENT, IPerformancesConstants.DEFAULT_COMPARISON_THRESHOLD_IMPROVEMENT);
-	final double failureThreshold = -failurePref / 100.0;
-	final double errorThreshold = errorPref / 100.0;
-	final double improvementThreshold = improvementPref / 100.0;
-
-	// Build the map made of one line per scenario results
-	final String[] configs = performanceResults.getConfigNames(true/*sort*/);
-	for (int i=0; i<size; i++) {
-		ScenarioResults scenarioResults = (ScenarioResults) scenarios.get(i);
-		if (!scenarioResults.isValid()) continue;
-		final boolean fingerprint = scenarioResults.hasSummary();
-		if (!fingerprints || fingerprint) {
-
-			// The first column is the scenario name
-			String scenarioName = scenarioResults.getShortName();
-			TableItem item = new TableItem (this.table, SWT.NONE);
-			item.setText(scenarioName);
-
-			// Bold font and blue ref background color if this is a fingerprint test
-			Font italic;
-			if (fingerprint) {
-				item.setFont(0, this.boldFont);
-				item.setBackground(this.blueref);
-				italic = this.boldItalicFont;
-			} else {
-				italic = this.italicFont;
-			}
-
-			// Fill config columns
-			int length = configs.length;
-			for (int j=0; j<length; j++) {
-
-				// See whether there's available numbers
-				int col = j+1;
-				final ConfigResults configResults = scenarioResults.getConfigResults(configs[j]);
-				if (configResults == null || !configResults.isValid()) {
-					item.setText(col, "Invalid");
-					item.setForeground(col, GRAY);
-					item.setFont(col, italic);
-					continue;
-				}
-				final BuildResults buildResults = configResults.getBuildResults(currentBuild);
-				if (buildResults == null) {
-					item.setText(col, "Missing results");
-					item.setForeground(col, GRAY);
-					item.setFont(col, italic);
-					continue;
-				}
-				final BuildResults referenceResults = configResults.getBuildResults(referenceBuild);
-				if (referenceResults == null) {
-					item.setText(col, "Missing ref");
-					item.setForeground(col, GRAY);
-					item.setFont(col, italic);
-					continue;
-				}
-
-				// Get numbers and infos
-				double[] values = configResults.getNumbers(buildResults, referenceResults);
-
-				// Reset tooltip info
-				String toolTipText = null;
-				String toolTipMessage = null;
-				int toolTipStyle = SWT.BALLOON;
-
-				// Get values array
-				final double buildValue = values[AbstractResults.BUILD_VALUE_INDEX];
-				final double referenceValue = values[AbstractResults.BASELINE_VALUE_INDEX];
-				final double delta = values[AbstractResults.DELTA_VALUE_INDEX];
-				final double error = values[AbstractResults.DELTA_ERROR_INDEX];
-
-				// Set text with delta value
-				final StringBuilder address = new StringBuilder("http://fullmoon.ottawa.ibm.com/downloads/drops/");
-				address.append(currentBuild);
-				address.append("/performance/");
-				address.append(configResults.getName());
-				address.append('/');
-				address.append(scenarioResults.getFileName());
-				address.append(".html");
-				StringBuilder buffer = new StringBuilder("<a href=\"");
-				buffer.append(address);
-				buffer.append("\">");
-				final String itemText = Util.PERCENTAGE_FORMAT.format(delta);
-				buffer.append(itemText);
-				buffer.append("</a>");
-
-				// Simple text
-				item.setText(col, itemText);
-
-				/* Link + Editor
-				Link link = new Link(this.table, SWT.CENTER);
-				link.setText(buffer.toString());
-				link.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						Program.launch(address.toString());
-					}
-				});
-				final TableEditor editor = new TableEditor(this.table);
-				editor.grabHorizontal = editor.grabVertical = true;
-				editor.verticalAlignment = SWT.CENTER;
-				editor.horizontalAlignment = SWT.CENTER;
-				editor.setEditor(link, item, col);
-				*/
-
-				// Compute the tooltip to display on the cell
-				if (error > errorThreshold) {
-					// error is over the threshold
-					item.setForeground(col, this.darkyellow);
-					toolTipText = "May be not reliable";
-					toolTipMessage = "The error on this result is "+Util.PERCENTAGE_FORMAT.format(error)+", hence it may be not reliable";
-					toolTipStyle |= SWT.ICON_WARNING;
-				}
-				if (delta < -0.1) {
-					// delta < -10%: failure shown by an red-cross icon + text in red
-					item.setImage(col, ResultsElement.ERROR_IMAGE);
-				}
-				if (delta < failureThreshold) {
-					// negative delta over the threshold shown in red
-					item.setForeground(col, RED);
-				} else if (delta > improvementThreshold) {
-					// positive delta over the threshold are shown in green
-					item.setForeground(col, DARK_GREEN);
-				}
-
-				// Moderate the status if the build value or the difference is small
-				if (buildValue < 100 || referenceValue < 100) {
-					if (toolTipText == null) {
-						toolTipText = "";
-					} else {
-						toolTipText += ", ";
-					}
-					toolTipText += "Small value";
-					if (toolTipMessage == null) {
-						toolTipMessage = "";
-					} else {
-						toolTipMessage += ".\n";
-					}
-					toolTipMessage += "This test has a small value ("+buildValue+"ms)";
-					toolTipStyle |= SWT.ICON_WARNING;
-					item.setImage(col, ResultsElement.WARN_IMAGE);
-				}
-
-				// Add information in tooltip when history shows big variation
-				double deviation = configResults.getStatistics(Util.BASELINE_BUILD_PREFIXES)[3];
-				if (deviation > 0.2) {
-					// deviation is over 20% over the entire history
-					if (toolTipText == null) {
-						toolTipText = "";
-					} else {
-						toolTipText += ", ";
-					}
-					toolTipText += "History shows erratic values";
-					if (toolTipMessage == null) {
-						toolTipMessage = "";
-					} else {
-						toolTipMessage += ".\n";
-					}
-					toolTipMessage += "The results history shows that the variation of its delta is over 20% ("+Util.PERCENTAGE_FORMAT.format(deviation)+"), hence its result is surely not reliable";
-					// set the text in italic
-					item.setFont(col, italic);
-					toolTipStyle |= SWT.ICON_INFORMATION;
-				} else if (deviation > 0.1) { // moderate the status when the test
-					// deviation is between 10% and 20% over the entire history
-					if (toolTipText == null) {
-						toolTipText = "";
-					} else {
-						toolTipText += ", ";
-					}
-					toolTipText += "History shows unstable values";
-					if (toolTipMessage == null) {
-						toolTipMessage = "";
-					} else {
-						toolTipMessage += ".\n";
-					}
-					toolTipMessage += "The results history shows that the variation of its delta is between 10% and 20% ("+Util.PERCENTAGE_FORMAT.format(deviation)+"), hence its result may not be really reliable";
-					// set the text in italic
-					item.setFont(col, italic);
-					if (toolTipStyle == SWT.BALLOON && delta >= -0.1) {
-						toolTipStyle |= SWT.ICON_INFORMATION;
-					} else {
-						// reduce icon severity from error to warning
-						toolTipStyle |= SWT.ICON_WARNING;
-					}
-				}
-
-				// Set tooltip
-				if (toolTipText != null) {
-					createToolTip(toolTipText, toolTipMessage, toolTipStyle, new Point(col, i));
-				}
-			}
-		}
-	}
-	this.rowsCount = size;
-}
-
-protected Shell getShell() {
-	return this.shell;
-}
-
-/*
- * The tab text is the full machine name.
- */
-public String getTabText() {
-	return Util.componentDisplayName(this.componentName);
-}
-
-/*
- * Init the SWT resources
- */
-private void initResources() {
-	// Fonts
-	String fontDataName = this.gc.getFont().getFontData()[0].toString();
-	FontData fdItalic = new FontData(fontDataName);
-	fdItalic.setStyle(SWT.ITALIC);
-	this.italicFont = new Font(this.display, fdItalic);
-	FontData fdBold = new FontData(fontDataName);
-	fdBold.setStyle(SWT.BOLD);
-	this.boldFont = new Font(this.display, fdBold);
-	FontData fdBoldItalic = new FontData(fontDataName);
-	fdBoldItalic.setStyle(SWT.BOLD | SWT.ITALIC);
-	this.boldItalicFont = new Font(this.display, fdBoldItalic);
-
-	// Colors
-	this.lightred = new Color(DEFAULT_DISPLAY, 220, 50, 50);
-	this.lightyellow = new Color(DEFAULT_DISPLAY, 255, 255, 160);
-	this.darkyellow = new Color(DEFAULT_DISPLAY, 160, 160, 0);
-	this.blueref = new Color(DEFAULT_DISPLAY, 200, 200, 255);
-}
-
-/*
- * Select the line corresponding to the given build.
- */
-void select(BuildResultsElement buildResultsElement) {
-	int count = this.table.getItemCount();
-	String buildName = buildResultsElement.getName();
-	TableItem[] items = this.table.getItems();
-	for (int i=0; i<count; i++) {
-		if (items[i].getText().endsWith(buildName)) {
-			this.table.deselect(this.table.getSelectionIndex());
-			this.table.select(i);
-			return;
-		}
-	}
-}
-}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsComparisonView.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsComparisonView.java
deleted file mode 100644
index ed54f0f..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsComparisonView.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.test.internal.performance.results.model.BuildResultsElement;
-import org.eclipse.test.internal.performance.results.model.PerformanceResultsElement;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-
-/**
- * This view shows the difference between two selected builds.
- * <p>
- * Each component are shown in a separate tab.
- * </p><p>
- * The displayed results can be written in a file, either all component or only
- * the current one.
- * </p><p>
- * It's also possible to filter the scenario to display only the fingerprint ones.
- * <br>
- * Note that this filter is synchronized with the one applied in the
- * {@link ComponentsView Components view}.
- * </p>
- *
- * @see ConfigTab Folder tab containing all the results for a configuration.
- */
-public class BuildsComparisonView extends ViewPart implements ISelectionChangedListener, IPreferenceChangeListener {
-
-	// SWT resources
-	Shell shell;
-	CTabFolder tabFolder;
-
-	// Model information
-	BuildsComparisonTab[] tabs;
-	PerformanceResultsElement results;
-
-	// Action
-	Action filterAdvancedScenarios;
-	Action writeComparison;
-
-	// Write Status
-	static int WRITE_STATUS;
-
-	// Views
-	BuildsView buildsView;
-	IMemento viewState;
-
-	// Eclipse preferences
-	IEclipsePreferences preferences;
-
-	// Comparison
-	String currentBuild;
-	String referenceBuild;
-
-/*
- * Default constructor:
- * 	- create the image descriptor
- * 	- register the view as a properties listener
- */
-public BuildsComparisonView() {
-	this.preferences = InstanceScope.INSTANCE.getNode(IPerformancesConstants.PLUGIN_ID);
-	this.preferences.addPreferenceChangeListener(this);
-}
-
-/*
- * Contribute the local tools bar and the pull-down menu to the action bars.
- */
-void contributeToActionBars() {
-	IActionBars bars = getViewSite().getActionBars();
-	fillLocalPullDown(bars.getMenuManager());
-	fillLocalToolBar(bars.getToolBarManager());
-}
-
-@Override
-public void createPartControl(Composite parent) {
-
-	// Create the tab folder
-	this.shell = parent.getShell ();
-	this.tabFolder = new CTabFolder(parent, SWT.BORDER);
-
-	// Add results view as listener to viewer selection changes
-	Display.getDefault().asyncExec(() -> {
-  	PerformancesView performancesView = (PerformancesView) PerformancesView.getWorkbenchView("org.eclipse.test.internal.performance.results.ui.ComponentsView");
-  	if (performancesView != null) {
-  		performancesView.viewer.addSelectionChangedListener(BuildsComparisonView.this);
-  	}
-  });
-
-	// Set actions
-	PlatformUI.getWorkbench().getHelpSystem().setHelp(this.tabFolder, "org.eclipse.test.performance.ui.results");
-	makeActions();
-	contributeToActionBars();
-
-	// Restore state
-	restoreState();
-
-	// Create tabs
-	createTabs();
-
-	// Set selections (tab and line)
-	this.tabFolder.setSimple(false);
-}
-
-/*
- * Create the tab folder pages. There's one tab per performance machine.
- * The list of these machines is got from the DB_Results contants.
- */
-void createTabs() {
-	if (this.currentBuild == null || this.referenceBuild == null) return;
-	PerformanceResultsElement performanceResultsElement = getBuildsView().results;
-	String[] components = performanceResultsElement.getComponents();
-	int length = components.length;
-	this.tabs = new BuildsComparisonTab[length];
-	for (int i=0; i<length; i++) {
-		this.tabs[i] = new BuildsComparisonTab(components[i]);
-	}
-	for (BuildsComparisonTab tab : this.tabs) {
-		CTabItem item = new CTabItem (this.tabFolder, SWT.NONE);
-		item.setText (tab.getTabText ());
-		item.setControl (tab.createTabFolderPage(this));
-		item.setData (tab);
-	}
-	this.tabFolder.setSelection(0);
-}
-
-@Override
-public void dispose() {
-	this.tabFolder.dispose();
-	int length = this.tabs==null ? 0 : this.tabs.length;
-	for (int i=0; i<length; i++) {
-		this.tabs[i].dispose();
-	}
-	super.dispose();
-}
-
-/*
- * Fill the filters drop-down menu with:
- * 	- filter non-milestone builds
- *	- filter non-fingerprint scenarios
- */
-void fillFiltersDropDown(IMenuManager manager) {
-	manager.add(this.filterAdvancedScenarios);
-}
-
-/*
- * Fill the local pull down menu.
- */
-void fillLocalPullDown(IMenuManager manager) {
-	MenuManager filtersManager= new MenuManager("Filters");
-	fillFiltersDropDown(filtersManager);
-	manager.add(filtersManager);
-}
-
-/*
- * Fill the local tool bar with:
- * 	- change line selection display
- */
-void fillLocalToolBar(IToolBarManager manager) {
-	manager.add(this.writeComparison);
-}
-
-/*
- * Return the components results view.
- */
-PerformanceResultsElement getResults() {
-	if (this.results == null) {
-		this.results = getBuildsView().results;
-	}
-	return this.results;
-}
-
-/*
- * Return the components results view.
- */
-BuildsView getBuildsView() {
-	if (this.buildsView == null) {
-		this.buildsView = (BuildsView) PerformancesView.getWorkbenchView("org.eclipse.test.internal.performance.results.ui.BuildsView");
-	}
-	return this.buildsView;
-}
-
-@Override
-public void init(IViewSite site, IMemento memento) throws PartInitException {
-	super.init(site, memento);
-	this.viewState = memento;
-}
-
-/*
- * Make the actions of the view:
- * 	- change table line selection display
- * 	- filter non-milestone builds
- *	- filter non-fingerprint scenarios
- */
-void makeActions() {
-
-	// Filter non-fingerprints action
-  this.filterAdvancedScenarios = new Action("Advanced &Scenarios", IAction.AS_CHECK_BOX) {
-
-    @Override
-    public void run() {
-      BuildsComparisonView.this.preferences.putBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, isChecked());
-      resetTabFolders();
-    }
-  };
-	this.filterAdvancedScenarios.setChecked(true);
-	this.filterAdvancedScenarios.setToolTipText("Filter advanced scenarios (i.e. not fingerprint ones)");
-
-	// Write comparison
-	this.writeComparison = new Action("Write comparison") {
-		@Override
-    public void run() {
-
-			// Get write directory
-			BuildsView bView = getBuildsView();
-			String filter = (bView.resultsDir == null) ? null : bView.resultsDir.getPath();
-			final File writeDir = bView.changeDir(filter, "Select a directory to write the comparison between two builds");
-			if (writeDir != null) {
-				writeComparison(writeDir);
-			}
-        }
-	};
-	this.writeComparison.setEnabled(false);
-	this.writeComparison.setToolTipText("Write comparison between two builds");
-}
-
-@Override
-public void preferenceChange(PreferenceChangeEvent event) {
-	String propertyName = event.getKey();
-	Object newValue = event.getNewValue();
-
-	// Filter non-fingerprints change
-	if (propertyName.equals(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS)) {
-		boolean checked = newValue == null ? IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS : "true".equals(newValue);
-		this.filterAdvancedScenarios.setChecked(checked);
-		resetTabFolders();
-	}
-}
-
-/*
- * Reset the table tab folders by re-create all the pages.
- * Selections are set onto the first found error if this is the first tab creation (typically on a component change event from the ComponentsView)
- * or to the previous one if this is just a refresh.
- */
-void resetTabFolders() {
-
-	// Store current indexes
-	int tabIndex = this.tabFolder.getSelectionIndex();
-	int lineIndex = tabIndex<0 ? -1 : this.tabs[tabIndex].table.getSelectionIndex();
-
-	// Create tab folders
-	CTabItem[] tabItems = this.tabFolder.getItems();
-	int length = tabItems.length;
-	if (length == 0) {
-		createTabs();
-	} else {
-		for (int i=0; i<length; i++) {
-			tabItems[i].setControl(this.tabs [i].createTabFolderPage(this));
-		}
-	}
-
-	// Set part name
-	setPartName(this.currentBuild+" vs. "+this.referenceBuild);
-
-	// Set the selection
-	if (tabIndex >= 0 && lineIndex >= 0) {
-		this.tabFolder.setSelection(tabIndex);
-		Table table = this.tabs[tabIndex].table;
-		table.setSelection(lineIndex);
-	}
-}
-
-/*
- * Restore the view state from the memento information.
- */
-void restoreState() {
-
-	// Filter non fingerprints action state
-	boolean checked = this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS);
-	this.filterAdvancedScenarios.setChecked(checked);
-}
-
-@Override
-public void selectionChanged(SelectionChangedEvent event) {
-	final Object[] selection = ((TreeSelection) event.getSelection()).toArray();
-	String firstBuildResults = null;
-	String secondBuildResults = null;
-	if (selection.length == 2) {
-		this.tabFolder.setVisible(true);
-		if (selection[0] instanceof BuildResultsElement) {
-			firstBuildResults = ((BuildResultsElement) selection[0]).getName();
-		}
-		if (selection[1] instanceof BuildResultsElement) {
-			secondBuildResults = ((BuildResultsElement) selection[1]).getName();
-		}
-		if ((firstBuildResults != null && !firstBuildResults.equals(this.currentBuild)) || (secondBuildResults != null && !secondBuildResults.equals(this.referenceBuild))) {
-			this.currentBuild = firstBuildResults;
-			this.referenceBuild = secondBuildResults;
-			resetTabFolders();
-		}
-		this.writeComparison.setEnabled(true);
-	} else {
-		this.writeComparison.setEnabled(false);
-		this.tabFolder.setVisible(false);
-	}
-}
-
-@Override
-public void setFocus() {
-	// do nothing
-}
-
-protected void writeComparison(File writeDir) {
-	getBuildsView().resultsDir = writeDir;
-	writeDir = new File(writeDir, "values");
-	if (this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, false)) {
-		writeDir = new File(writeDir, "fingerprints");
-	} else {
-		writeDir = new File(writeDir, "all");
-	}
-	writeDir.mkdirs();
-	String buildDate = this.currentBuild.substring(1);
-	String buildPrefix = "Comparison" + buildDate + "_" + this.currentBuild.charAt(0);
-	File resultsFile = new File(writeDir, buildPrefix+".html");
-	if (resultsFile.exists()) {
-		int i=0;
-		File saveDir = new File(writeDir, "save");
-		saveDir.mkdir();
-		while (true) {
-			String newFileName = buildPrefix+"_";
-			if (i<10) newFileName += "0";
-			newFileName += i;
-			File renamedFile = new File(saveDir, newFileName+".html");
-			if (resultsFile.renameTo(renamedFile)) {
-				break;
-			}
-			i++;
-		}
-	}
-	this.results.writeComparison(resultsFile, this.currentBuild, this.referenceBuild);
-}
-
-}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsView.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsView.java
deleted file mode 100644
index 19fdc8c..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/BuildsView.java
+++ /dev/null
@@ -1,813 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-
-import java.io.BufferedOutputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.test.internal.performance.results.db.DB_Results;
-import org.eclipse.test.internal.performance.results.model.BuildResultsElement;
-import org.eclipse.test.internal.performance.results.model.ResultsElement;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.test.internal.performance.results.utils.Util;
-import org.eclipse.test.performance.ui.GenerateResults;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-
-/**
- * View to see all the builds which have performance results stored in the database.
- * <p>
- * Typical actions from this view are update local data files with builds results
- * and generated the HTML pages.
- * </p>
- */
-public class BuildsView extends PerformancesView {
-
-	/**
-	 * Action to generate results.
-	 */
-	final class GenerateAction extends Action {
-		IStatus status;
-
-		@Override
-    public void run() {
-
-			// Ask for output directory
-			String resultGenerationDir = BuildsView.this.preferences.get(IPerformancesConstants.PRE_RESULTS_GENERATION_DIR, "");
-			String pathFilter = (BuildsView.this.outputDir == null) ? resultGenerationDir : BuildsView.this.outputDir.getPath();
-			File dir = changeDir(pathFilter, "Select directory to write comparison files");
-			if (dir == null) {
-				return;
-			}
-			BuildsView.this.outputDir = dir;
-			BuildsView.this.preferences.put(IPerformancesConstants.PRE_RESULTS_GENERATION_DIR, dir.getAbsolutePath());
-
-			// Select the reference
-			String[] baselines = BuildsView.this.results.getBaselines();
-			int bLength = baselines.length;
-			String selectedBaseline;
-			switch (bLength) {
-				case 0:
-					// no baseline, nothing to do...
-					selectedBaseline = BuildsView.this.results.getPerformanceResults().getBaselineName();
-					break;
-				case 1:
-					// only one baseline, no selection to do
-					selectedBaseline = baselines[0];
-					break;
-				default:
-					// select the baseline from list
-					ElementListSelectionDialog dialog = new ElementListSelectionDialog(getSite().getShell(), new LabelProvider());
-					dialog.setTitle(getTitleToolTip());
-					dialog.setMessage("Select the baseline to use while generating results:");
-					Object[] defaultBaseline = new String[] { baselines[baselines.length - 1] };
-					dialog.setInitialSelections(defaultBaseline);
-					dialog.setElements(baselines);
-					dialog.open();
-					Object[] selected = dialog.getResult();
-					if (selected == null)
-						return;
-					selectedBaseline = (String) selected[0];
-					break;
-			}
-			final String baselineName = selectedBaseline;
-			BuildsView.this.results.getPerformanceResults().setBaselineName(baselineName);
-
-			// Ask for fingerprints
-			final boolean fingerprints = MessageDialog.openQuestion(BuildsView.this.shell, getTitleToolTip(), "Generate only fingerprints?");
-
-			// Generate all selected builds
-			IRunnableWithProgress runnable = monitor -> {
-      	try {
-      		monitor.beginTask("Generate performance results", BuildsView.this.buildsResults.length*2);
-      		generate(baselineName, fingerprints, monitor);
-      		monitor.done();
-      	} catch (Exception e) {
-      		e.printStackTrace();
-      	}
-      };
-			ProgressMonitorDialog readProgress = new ProgressMonitorDialog(getSite().getShell());
-			try {
-				readProgress.run(true, true, runnable);
-			} catch (InvocationTargetException e) {
-				// skip
-			} catch (InterruptedException e) {
-				// skip
-			}
-
-		}
-
-		void generate(final String baselineName, final boolean fingerprints, IProgressMonitor monitor) {
-
-			// Generate result for the build
-			GenerateResults generation = new GenerateResults(fingerprints, BuildsView.this.dataDir);
-
-			// Loop on selected builds
-			final String lastBuildName = BuildsView.this.lastBuild == null ? DB_Results.getLastCurrentBuild() : BuildsView.this.lastBuild;
-			String previousBuild = lastBuildName;
-			int length = BuildsView.this.buildsResults.length;
-			for (int i=0; i<length; i++) {
-
-				BuildResultsElement currentBuild = BuildsView.this.buildsResults[i];
-				String buildName = currentBuild.getName();
-				monitor.setTaskName("Generate perf results for build "+buildName);
-
-				// Create output directory
-				File genDir = new File(BuildsView.this.outputDir, buildName);
-				if (!genDir.exists() && !genDir.mkdir()) {
-					MessageDialog.openError(BuildsView.this.shell, getTitleToolTip(), "Cannot create " + genDir.getPath() + " to generate results!");
-					return;
-				}
-
-				// See if it's necessary to refresh data
-				if (!buildName.equals(previousBuild)) {
-					monitor.subTask("Get local data...");
-					BuildsView.this.results.readLocal(BuildsView.this.dataDir, null, buildName);
-					monitor.worked(1);
-				}
-
-				// Generate result for the build
-				GenerateAction.this.status = generation.run(BuildsView.this.results.getPerformanceResults(), buildName, baselineName, genDir, monitor);
-
-				// Store previous build
-				previousBuild = buildName;
-				if (monitor.isCanceled()) {
-					break;
-				}
-			}
-
-			// Refresh data if necessary
-			if (!lastBuildName.equals(previousBuild)) {
-				monitor.subTask("Put back local data for "+lastBuildName+"...");
-				BuildsView.this.results.readLocal(BuildsView.this.dataDir, null, BuildsView.this.lastBuild);
-				monitor.worked(1);
-			}
-
-			// Results
-			if (!this.status.isOK()) {
-				StringWriter swriter = new StringWriter();
-				PrintWriter pwriter = new PrintWriter(swriter);
-				swriter.write(this.status.getMessage());
-				Throwable ex = this.status.getException();
-				if (ex != null) {
-					swriter.write(": ");
-					swriter.write(ex.getMessage());
-					swriter.write('\n');
-					ex.printStackTrace(pwriter);
-				}
-				MessageDialog.open(this.status.getSeverity(),
-				    BuildsView.this.shell,
-				    getTitleToolTip(),
-				    swriter.toString(),
-				    SWT.NONE);
-			}
-		}
-	}
-
-	/**
-	 * Action to update local data files with the performance results of a build.
-	 *
-	 * This may be done lazily (i.e. not done if the local data already knows
-	 * the build) or forced (i.e. done whatever the local data files contain).
-	 */
-	class UpdateBuildAction extends Action {
-
-		boolean force;
-
-		UpdateBuildAction(boolean force) {
-			this.force = force;
-		}
-
-		@Override
-    public void run() {
-
-			// Verify that directories are set
-			if (BuildsView.this.dataDir == null) {
-				if (changeDataDir(null) == null) {
-					if (!MessageDialog.openConfirm(BuildsView.this.shell, getTitleToolTip(), "No local files directory is set, hence the update could not be written! OK to continue?")) {
-						return;
-					}
-				}
-			}
-
-			// Progress dialog
-			IRunnableWithProgress runnable = monitor -> {
-      	try {
-      		updateBuilds(monitor);
-      	} catch (Exception e) {
-      		e.printStackTrace();
-      	}
-      };
-			ProgressMonitorDialog readProgress = new ProgressMonitorDialog(getSite().getShell());
-			try {
-				readProgress.run(true, true, runnable);
-			} catch (InvocationTargetException e) {
-				return;
-			} catch (InterruptedException e) {
-				return;
-			}
-
-			// Reset Components and Builds views input
-			refreshInput();
-			getSiblingView().refreshInput();
-		}
-
-		void updateBuilds(IProgressMonitor monitor) {
-			BuildsView.this.updateBuilds(monitor, this.force);
-		}
-	}
-
-	/**
-	 * Action to update local data files with the performance results of all builds.
-	 *
-	 * This may be done lazily (i.e. not done if the local data already knows
-	 * the build) or forced (i.e. done whatever the local data files contain).
-	 */
-	class UpdateAllBuildsAction extends UpdateBuildAction {
-
-		UpdateAllBuildsAction(boolean force) {
-			super(force);
-		}
-//
-//		public boolean isEnabled() {
-//			String[] elements = buildsToUpdate();
-//			return elements != null;
-//		}
-
-		@Override
-    void updateBuilds(IProgressMonitor monitor) {
-			BuildsView.this.updateAllBuilds(monitor, this.force);
-		}
-	}
-
-	/**
-	 * Class to compare builds regarding their date instead of their name.
-	 *
-	 * @see Util#getBuildDate(String)
-	 */
-	class BuildDateComparator implements Comparator<String> {
-		@Override
-    public int compare(String s1, String s2) {
-	        return Util.getBuildDate(s1).compareTo(Util.getBuildDate(s2));
-	    }
-	}
-
-	// Views
-	ComponentsView componentsView;
-	BuildsComparisonView buildsComparisonView = null;
-
-	// Results model
-	BuildResultsElement[] buildsResults;
-	String lastBuild;
-
-	// Directories
-	File outputDir;
-
-	// Actions
-	Action generate;
-	UpdateBuildAction updateBuild, updateAllBuilds;
-//	UpdateBuildAction forceUpdateBuild, forceUpdateAllBuilds;
-	Action writeBuildsFailures;
-
-	// SWT resources
-	Font italicFont;
-
-/*
- * Default constructor.
- */
-public BuildsView() {
-	this.preferences = InstanceScope.INSTANCE.getNode(IPerformancesConstants.PLUGIN_ID);
-	this.preferences.addPreferenceChangeListener(this);
-}
-
-/*
- * Compute the list of builds to update based on their status.
- */
-String[] buildsToUpdate() {
-	Object[] elements = this.results.getBuilds();
-	int length = elements.length;
-	String[] buildsToUpdate = new String[length];
-	int count = 0;
-	for (int i=0; i<length; i++) {
-		BuildResultsElement element = (BuildResultsElement) elements[i];
-		if (element.getStatus() == 0) {
-	        buildsToUpdate[count++] = element.getName();
-		}
-	}
-	if (count == 0) return null;
-	if (count < length) {
-		System.arraycopy(buildsToUpdate, 0, buildsToUpdate = new String[count], 0, count);
-	}
-	return buildsToUpdate;
-}
-
-@Override
-public void createPartControl(Composite parent) {
-	super.createPartControl(parent);
-
-	// Create the viewer
-	this.viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-
-	// Set the content provider: first level is builds list
-	WorkbenchContentProvider contentProvider = new WorkbenchContentProvider() {
-		@Override
-    public Object[] getElements(Object o) {
-			return getBuilds();
-		}
-	};
-	this.viewer.setContentProvider(contentProvider);
-
-	// Set the label provider
-	WorkbenchLabelProvider labelProvider = new WorkbenchLabelProvider() {
-
-		// Set an italic font when no local data have been read
-		@Override
-    public Font getFont(Object element) {
-			Font font = super.getFont(element);
-			if (element instanceof BuildResultsElement) {
-				if (((BuildResultsElement) element).isUnknown()) {
-					if (BuildsView.this.italicFont == null) {
-						FontData[] defaultFont = JFaceResources.getDefaultFont().getFontData();
-						FontData italicFontData = new FontData(defaultFont[0].getName(), defaultFont[0].getHeight(), SWT.ITALIC);
-						BuildsView.this.italicFont = new Font(DEFAULT_DISPLAY, italicFontData);
-					}
-					return BuildsView.this.italicFont;
-				}
-			}
-			return font;
-		}
-
-		// Set font in gray when no local data is available (i.e. local data needs to be updated)
-		@Override
-    public Color getForeground(Object element) {
-			Color color = super.getForeground(element);
-			if (element instanceof BuildResultsElement) {
-				if (!((BuildResultsElement) element).isRead()) {
-					color = DARK_GRAY;
-				}
-			}
-			return color;
-		}
-	};
-	this.viewer.setLabelProvider(labelProvider);
-
-	// Set the children sorter
-	ViewerComparator nameSorter = new ViewerComparator() {
-
-		// Sort children using specific comparison (see the implementation
-		// of the #compareTo(Object) in the ResultsElement hierarchy
-		@Override
-    public int compare(Viewer view, Object e1, Object e2) {
-			if (e1 instanceof ResultsElement && e2 instanceof ResultsElement) {
-				return ((ResultsElement) e2).compareTo((ResultsElement) e1);
-			}
-			return super.compare(view, e1, e2);
-		}
-	};
-	this.viewer.setComparator(nameSorter);
-
-	// Add results view as listener to viewer selection changes
-	Display.getDefault().asyncExec(() -> {
-  	ISelectionChangedListener listener = getComparisonView();
-  	if (listener != null) {
-  		BuildsView.this.viewer.addSelectionChangedListener(listener);
-  	}
-  });
-
-	// Finalize viewer initialization
-	PlatformUI.getWorkbench().getHelpSystem().setHelp(this.viewer.getControl(), "org.eclipse.test.performance.ui.builds");
-	finalizeViewerCreation();
-}
-
-@Override
-public void dispose() {
-	if (this.italicFont != null) {
-		this.italicFont.dispose();
-	}
-	super.dispose();
-}
-
-@Override
-void fillContextMenu(IMenuManager manager) {
-	super.fillContextMenu(manager);
-	manager.add(this.generate);
-	manager.add(this.updateBuild);
-//	manager.add(this.forceUpdateBuild);
-	manager.add(new Separator());
-	manager.add(this.writeBuildsFailures);
-}
-
-/*
- * Fill the local data drop-down menu
- */
-@Override
-void fillLocalDataDropDown(IMenuManager manager) {
-	super.fillLocalDataDropDown(manager);
-	manager.add(new Separator());
-	manager.add(this.updateAllBuilds);
-//	manager.add(this.forceUpdateAllBuilds);
-}
-
-/*
- * Get all builds from the model.
- */
-Object[] getBuilds() {
-	if (this.results == null) {
-//		initResults(this.lastBuild);
-		initResults();
-	}
-	return this.results.getBuilds();
-}
-
-/*
- * Return the components results view.
- */
-BuildsComparisonView getComparisonView() {
-	if (this.buildsComparisonView == null) {
-		this.buildsComparisonView = (BuildsComparisonView) getWorkbenchView("org.eclipse.test.internal.performance.results.ui.BuildsComparisonView");
-	}
-	return this.buildsComparisonView;
-}
-
-/*
- * Return the components view.
- */
-@Override
-PerformancesView getSiblingView() {
-	if (this.componentsView == null) {
-		this.componentsView = (ComponentsView) getWorkbenchView("org.eclipse.test.internal.performance.results.ui.ComponentsView");
-	}
-	return this.componentsView;
-}
-
-@Override
-void makeActions() {
-
-	super.makeActions();
-
-	// Generate action
-	this.generate = new GenerateAction();
-	this.generate.setText("&Generate");
-
-	// Update build actions
-	boolean connected = this.preferences.getBoolean(IPerformancesConstants.PRE_DATABASE_CONNECTION, IPerformancesConstants.DEFAULT_DATABASE_CONNECTION);
-	this.updateBuild = new UpdateBuildAction(false);
-	this.updateBuild.setText("&Update from DB");
-	this.updateBuild.setEnabled(connected);
-//	this.forceUpdateBuild = new UpdateBuildAction(true);
-//	this.forceUpdateBuild.setText("Force Update");
-
-	// Update build action
-	this.updateAllBuilds = new UpdateAllBuildsAction(false);
-	this.updateAllBuilds.setText("&Update from DB (all)");
-	this.updateAllBuilds.setEnabled(connected);
-//	this.forceUpdateAllBuilds = new UpdateAllBuildsAction(true);
-//	this.forceUpdateAllBuilds.setText("Force Update all");
-
-	// Write status
-	this.writeBuildsFailures = new Action("Write failures") {
-		@Override
-    public void run() {
-			String filter = (BuildsView.this.resultsDir == null) ? null : BuildsView.this.resultsDir.getPath();
-			final File writeDir = changeDir(filter, "Select a directory to write the files");
-			if (writeDir != null) {
-
-				// Create runnable
-				IRunnableWithProgress runnable = monitor -> {
-        	try {
-        		monitor.beginTask("Write failures", BuildsView.this.buildsResults.length*2);
-        		writeBuildsFailures(writeDir, monitor);
-        		monitor.done();
-        	} catch (Exception e) {
-        		e.printStackTrace();
-        	}
-        };
-
-				// Run with progress monitor
-				ProgressMonitorDialog readProgress = new ProgressMonitorDialog(getSite().getShell());
-				try {
-					readProgress.run(true, true, runnable);
-				} catch (InvocationTargetException e) {
-					// skip
-				} catch (InterruptedException e) {
-					// skip
-				}
-
-				// Refresh views
-				refreshInput();
-				getSiblingView().refreshInput();
-			}
-        }
-	};
-	this.writeBuildsFailures.setEnabled(true);
-	this.writeBuildsFailures.setToolTipText("Write component status to a file");
-
-	// Set filters default
-	this.filterBaselineBuilds.setChecked(false);
-}
-
-/**
- * Reset the views.
- */
-public void resetView() {
-
-	boolean debug = true;
-
-	// Look whether database constants has changed or not
-	int eclipseVersion = this.preferences.getInt(IPerformancesConstants.PRE_ECLIPSE_VERSION, IPerformancesConstants.DEFAULT_ECLIPSE_VERSION);
-	boolean connected = this.preferences.getBoolean(IPerformancesConstants.PRE_DATABASE_CONNECTION, IPerformancesConstants.DEFAULT_DATABASE_CONNECTION);
-	String databaseLocation = this.preferences.get(IPerformancesConstants.PRE_DATABASE_LOCATION, IPerformancesConstants.NETWORK_DATABASE_LOCATION);
-	if (debug) {
-		System.out.println("Reset View:");
-		System.out.println("	- eclispe version = "+eclipseVersion);
-		System.out.println("	- connected       = "+connected);
-		System.out.println("	- db location     = "+databaseLocation);
-	}
-	final boolean sameVersion = DB_Results.getDbVersion().endsWith(Integer.toString(eclipseVersion));
-	final boolean sameConnection = connected == DB_Results.DB_CONNECTION;
-	final boolean sameDB = sameVersion && databaseLocation.equals(DB_Results.getDbLocation());
-	if (debug) {
-		System.out.println("	- same version:    "+sameVersion);
-		System.out.println("	- same connection: "+sameConnection);
-		System.out.println("	- same DB:         "+sameDB);
-	}
-	final PerformancesView siblingView = getSiblingView();
-	if (sameConnection && sameDB) {
-		// No database preferences has changed do nothing
-		return;
-	}
-
-	// Update database constants
-	boolean updated = DB_Results.updateDbConstants(connected, eclipseVersion, databaseLocation);
-	if (debug) {
-		System.out.println("	- updated:         "+updated);
-	}
-	if (!connected) {
-		if (!updated) {
-			MessageDialog.openError(this.shell, getTitleToolTip(), "Error while updating database results constants!\nOpen error log to see more details on this error");
-		}
-	} else if (updated) {
-		StringBuilder message = new StringBuilder("Database connection has been correctly ");
-		message.append( connected ? "opened." : "closed.");
-		MessageDialog.openInformation(this.shell, getTitleToolTip(), message.toString());
-	} else {
-		MessageDialog.openError(this.shell, getTitleToolTip(), "The database connection cannot be established!\nOpen error log to see more details on this error");
-		DB_Results.updateDbConstants(false, eclipseVersion, databaseLocation);
-	}
-	setTitleToolTip();
-	siblingView.setTitleToolTip();
-
-	// Refresh view
-	if (sameVersion) {
-		// Refresh only builds view as the sibling view (Components) contents is based on local data files contents
-		this.results.resetBuildNames();
-		refreshInput();
-	} else {
-		// Reset views content
-		resetInput();
-		siblingView.resetInput();
-
-		// May be read local data now
-		if (MessageDialog.openQuestion(this.shell, getTitleToolTip(), "Do you want to read local data right now?")) {
-			changeDataDir(this.lastBuild);
-		} else {
-			this.dataDir = null;
-			siblingView.dataDir = null;
-		}
-	}
-
-	// Update actions
-	this.updateBuild.setEnabled(connected);
-	this.updateAllBuilds.setEnabled(connected);
-}
-
-@Override
-public void selectionChanged(SelectionChangedEvent event) {
-	super.selectionChanged(event);
-
-	// Update selected element
-	Object selection = this.viewer.getSelection();
-	int length = 0;
-	this.writeBuildsFailures.setEnabled(false);
-	if (selection instanceof IStructuredSelection) {
-		Object[] elements = ((IStructuredSelection)selection).toArray();
-		length = elements == null ? 0 : elements.length;
-		this.buildsResults = new BuildResultsElement[length];
-		if (length == 0) {
-			this.updateAllBuilds.setText("&Update from DB (all)");
-			return;
-		}
-		for (int i=0; i<length; i++) {
-		    if (elements == null) {
-		        throw new RuntimeException("elements was unexpected null. Programming error?");
-		    }
-			this.buildsResults[i] = (BuildResultsElement) elements[i];
-		}
-		this.writeBuildsFailures.setEnabled(true);
-	} else {
-		return;
-	}
-
-	// Update update build action
-//	boolean enableUpdateBuild = true;
-//	boolean enableGenerate = true;
-	int readBuilds = 0;
-	for (int i=0; i<length; i++) {
-		if (this.buildsResults[i].isRead()) {
-//			enableUpdateBuild = false;
-			readBuilds++;
-		} else {
-//			enableGenerate = false;
-		}
-	}
-//	this.updateBuild.setEnabled(enableUpdateBuild);
-//	this.forceUpdateBuild.setEnabled(!enableUpdateBuild);
-	final boolean force = readBuilds < length;
-	this.updateBuild.force = force;
-	this.updateAllBuilds.force = force;
-	this.updateAllBuilds.setText("&Update from DB");
-
-	// Update generate action
-	boolean enableGenerate = true;
-	if (enableGenerate) {
-		for (int i=0; i<length; i++) {
-			if (this.buildsResults[i].getName().startsWith(DB_Results.getDbBaselinePrefix())) {
-				enableGenerate = false;
-				break;
-			}
-		}
-	}
-	this.generate.setEnabled(enableGenerate);
-}
-
-void updateAllBuilds(IProgressMonitor monitor, boolean force) {
-	if (this.dataDir == null) {
-		changeDataDir(null);
-	}
-	String[] builds = buildsToUpdate();
-	if (builds == null) {
-		this.results.updateBuild(null, true, this.dataDir, monitor);
-	} else {
-		this.results.updateBuilds(builds, force, this.dataDir, monitor);
-	}
-}
-
-void updateBuilds(IProgressMonitor monitor, boolean force) {
-	if (this.dataDir == null) {
-		changeDataDir(null);
-	}
-	int length = this.buildsResults.length;
-	String[] builds = new String[length];
-	for (int i = 0; i < length; i++) {
-		builds[i] = this.buildsResults[i].getName();
-	}
-	this.results.updateBuilds(builds, force, this.dataDir, monitor);
-}
-
-protected void writeBuildsFailures(File writeDir, IProgressMonitor monitor) {
-
-	// Loop on selected builds
-	final String lastBuildName = this.lastBuild == null ? DB_Results.getLastCurrentBuild() : this.lastBuild;
-	String previousBuild = lastBuildName;
-	int length = this.buildsResults.length;
-	for (int i=0; i<length; i++) {
-
-		// See if it's necessary to refresh data
-		BuildResultsElement currentBuild = this.buildsResults[i];
-		String currentBuildName = currentBuild.getName();
-		monitor.setTaskName("Write failures for build "+currentBuildName);
-		if (!currentBuildName.equals(previousBuild)) {
-			monitor.subTask("Get local data...");
-			this.results.readLocal(this.dataDir, null, currentBuildName);
-			monitor.worked(1);
-		}
-
-		// Write the failures for the selected build
-		monitor.subTask("write file...");
-		writeFailures(writeDir, currentBuildName);
-		monitor.worked(1);
-
-		// Store previous build
-		previousBuild = currentBuildName;
-		if (monitor.isCanceled()) {
-			return;
-		}
-	}
-
-	// Refresh data if necessary
-	if (!lastBuildName.equals(previousBuild)) {
-		monitor.subTask("Put back local data for "+lastBuildName+"...");
-		this.results.readLocal(this.dataDir, null, this.lastBuild);
-		monitor.worked(1);
-	}
-}
-
-protected void writeFailures(File writeDir, String buildName) {
-
-	// Set the write directory
-	this.resultsDir = writeDir;
-	boolean filterAdvancedScenarios = 	this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS);
-	if (filterAdvancedScenarios) {
-		writeDir = new File(writeDir, "fingerprints");
-	} else {
-		writeDir = new File(writeDir, "all");
-	}
-	writeDir.mkdir();
-	int writeStatusValue = this.preferences.getInt(IPerformancesConstants.PRE_WRITE_STATUS, IPerformancesConstants.DEFAULT_WRITE_STATUS);
-	if ((writeStatusValue & IPerformancesConstants.STATUS_VALUES) != 0) {
-		writeDir = new File(writeDir, "values");
-	}
-	int buildsNumber = writeStatusValue & IPerformancesConstants.STATUS_BUILDS_NUMBER_MASK;
-	if (buildsNumber > 1) {
-		writeDir = new File(writeDir, Integer.toString(buildsNumber));
-	}
-	writeDir.mkdirs();
-
-	// Create the written file
-	String buildDate = buildName.substring(1);
-	String buildPrefix = buildDate + "_" + buildName.charAt(0);
-	File resultsFile = new File(writeDir, buildPrefix+".log");
-	File exclusionDir = new File(writeDir, "excluded");
-	exclusionDir.mkdir();
-	File exclusionFile = new File(exclusionDir, buildPrefix+".log");
-	if (resultsFile.exists()) {
-		int i=0;
-		File saveDir = new File(writeDir, "save");
-		saveDir.mkdir();
-		while (true) {
-			String newFileName = buildPrefix+"_";
-			if (i<10) newFileName += "0";
-			newFileName += i;
-			File renamedFile = new File(saveDir, newFileName+".log");
-			if (resultsFile.renameTo(renamedFile)) {
-				File renamedExclusionFile = new File(exclusionDir, newFileName+".log");
-				exclusionFile.renameTo(renamedExclusionFile);
-				break;
-			}
-			i++;
-		}
-	}
-
-	// Write status
-	StringBuilder excluded = this.results.writeFailures(resultsFile, writeStatusValue);
-	if (excluded == null) {
-		MessageDialog.openWarning(this.shell, getTitleToolTip(), "The component is not read, hence no results can be written!");
-	}
-
-	// Write exclusion file
-	try (DataOutputStream stream = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(exclusionFile)))){
-    if (excluded == null) {
-      throw new RuntimeException("excluded was unexpected null. Program error?");
-    }
-		stream.write(excluded.toString().getBytes());
-	} catch (FileNotFoundException e) {
-		System.err.println("Can't create exclusion file"+exclusionFile); //$NON-NLS-1$
-	} catch (IOException e) {
-		e.printStackTrace();
-	}
-}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ComponentResultsView.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ComponentResultsView.java
deleted file mode 100644
index bccfd90..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ComponentResultsView.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.test.internal.performance.results.model.BuildResultsElement;
-import org.eclipse.test.internal.performance.results.model.ComponentResultsElement;
-import org.eclipse.test.internal.performance.results.model.ConfigResultsElement;
-import org.eclipse.test.internal.performance.results.model.DimResultsElement;
-import org.eclipse.test.internal.performance.results.model.PerformanceResultsElement;
-import org.eclipse.test.internal.performance.results.model.ResultsElement;
-import org.eclipse.test.internal.performance.results.model.ScenarioResultsElement;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.test.internal.performance.results.utils.Util;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-
-/**
- * This view show for each performance machine the results of all builds
- * run since the beginning of the current version development.
- * <p>
- * Each machine results are show in a separate tab.
- * </p><p>
- * There's no real action available action from this view, only the possibility
- * to change how is displayed the line selection (full or only first column)
- * and also filter the results:
- * </p><ul>
- *	<li>Filter for builds:
- *		<ul>
- *		<li>Filter non-important builds:	hide all non-important builds, which means non-milestone builds and those after the last milestone</li>
- *		</ul>
- *	</li>
- *	<li>Filter for scenarios:
- *		<ul>
- *		<li>Filter non-fingerprints: hide the scenarios which are not in the fingerprints</li>
- *		</ul>
- *	</li>
- *	</ul>
- * <p>
- * Note that these filters are synchronized with the ones applied in the
- * {@link ComponentsView Components view}.
- * </p>
- *
- * @see ConfigTab Folder tab containing all the results for a configuration.
- */
-public class ComponentResultsView extends ViewPart implements ISelectionChangedListener, IPreferenceChangeListener {
-
-	// SWT resources
-	CTabFolder tabFolder;
-
-	// Model information
-	ConfigTab[] tabs;
-	ComponentResultsElement componentResultsElement;
-
-	// Action
-	Action fullLineSelection;
-	Action filterAdvancedScenarios;
-	Action filterOldBuilds;
-	ImageDescriptor fullSelectionImageDescriptor;
-
-	// Views
-	IMemento viewState;
-
-	// Eclipse preferences
-	IEclipsePreferences preferences;
-
-/*
- * Default constructor:
- * 	- create the image descriptor
- * 	- register the view as a properties listener
- */
-public ComponentResultsView() {
-	this.fullSelectionImageDescriptor = ImageDescriptor.createFromFile(getClass(), "icallout_obj.gif");
-	this.preferences = InstanceScope.INSTANCE.getNode(IPerformancesConstants.PLUGIN_ID);
-	this.preferences.addPreferenceChangeListener(this);
-}
-
-/*
- * Contribute the local tools bar and the pull-down menu to the action bars.
- */
-void contributeToActionBars() {
-	IActionBars bars = getViewSite().getActionBars();
-	fillLocalPullDown(bars.getMenuManager());
-	fillLocalToolBar(bars.getToolBarManager());
-}
-
-@Override
-public void createPartControl(Composite parent) {
-
-	// Create the tab folder
-	this.tabFolder = new CTabFolder(parent, SWT.BORDER);
-
-	// Add results view as listener to viewer selection changes
-	Display.getDefault().asyncExec(() -> {
-  	PerformancesView performancesView = (PerformancesView) PerformancesView.getWorkbenchView("org.eclipse.test.internal.performance.results.ui.ComponentsView");
-  	if (performancesView != null) {
-  		performancesView.viewer.addSelectionChangedListener(ComponentResultsView.this);
-  	}
-  });
-
-	// Set actions
-	PlatformUI.getWorkbench().getHelpSystem().setHelp(this.tabFolder, "org.eclipse.test.performance.ui.results");
-	makeActions();
-	contributeToActionBars();
-
-	// Restore state
-	restoreState();
-
-	// Create tabs
-	createTabs();
-
-	// Set selections (tab and line)
-	this.tabFolder.setSimple(false);
-}
-
-/*
- * Create the tab folder pages. There's one tab per performance machine.
- * The list of these machines is got from the DB_Results contants.
- */
-void createTabs() {
-	if (this.componentResultsElement == null) return;
-	PerformanceResultsElement performanceResultsElement = (PerformanceResultsElement) this.componentResultsElement.getParent(null);
-	String[] configNames = performanceResultsElement.getConfigs();
-	String[] configDescriptions = performanceResultsElement.getConfigDescriptions();
-	int length = configNames.length;
-	this.tabs = new ConfigTab[length];
-	for (int i=0; i<length; i++) {
-		this.tabs[i] = new ConfigTab(configNames[i], configDescriptions[i]);
-	}
-	for (ConfigTab tab : this.tabs) {
-		CTabItem item = new CTabItem (this.tabFolder, SWT.NONE);
-		item.setText (tab.getTabText ());
-		item.setControl (tab.createTabFolderPage(this.componentResultsElement, this.tabFolder, this.fullLineSelection.isChecked()));
-		item.setData (tab);
-	}
-	this.tabFolder.setSelection(0);
-}
-
-@Override
-public void dispose() {
-	this.tabFolder.dispose();
-	int length = this.tabs==null ? 0 : this.tabs.length;
-	for (int i=0; i<length; i++) {
-		this.tabs[i].dispose();
-	}
-	JFaceResources.getResources().destroyImage(this.fullSelectionImageDescriptor);
-	super.dispose();
-}
-
-/*
- * Fill the filters drop-down menu with:
- * 	- filter non-milestone builds
- *	- filter non-fingerprint scenarios
- */
-void fillFiltersDropDown(IMenuManager manager) {
-	manager.add(this.filterOldBuilds);
-	manager.add(new Separator());
-	manager.add(this.filterAdvancedScenarios);
-}
-
-/*
- * Fill the local pull down menu.
- */
-void fillLocalPullDown(IMenuManager manager) {
-	MenuManager filtersManager= new MenuManager("Filters");
-	fillFiltersDropDown(filtersManager);
-	manager.add(filtersManager);
-}
-
-/*
- * Fill the local tool bar with:
- * 	- change line selection display
- */
-void fillLocalToolBar(IToolBarManager manager) {
-	manager.add(this.fullLineSelection);
-}
-
-@Override
-public void init(IViewSite site, IMemento memento) throws PartInitException {
-	super.init(site, memento);
-	this.viewState = memento;
-}
-
-/*
- * Make the actions of the view:
- * 	- change table line selection display
- * 	- filter non-milestone builds
- *	- filter non-fingerprint scenarios
- */
-void makeActions() {
-
-	// Full line selection action
-	this.fullLineSelection = new Action("", IAction.AS_CHECK_BOX) {
-		@Override
-    public void run() {
-			resetTabFolders(false/*refresh*/);
-		}
-	};
-	this.fullLineSelection.setImageDescriptor(this.fullSelectionImageDescriptor);
-	this.fullLineSelection.setToolTipText("Full line selection");
-//	this.fullLineSelection.setChecked(true);
-
-	// Filter non-fingerprints action
-	this.filterAdvancedScenarios = new Action("Advanced &Scenarios", IAction.AS_CHECK_BOX) {
-		@Override
-    public void run() {
-			ComponentResultsView.this.preferences.putBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, isChecked());
-			resetTabFolders(false/*refresh*/);
-        }
-	};
-	this.filterAdvancedScenarios.setChecked(true);
-	this.filterAdvancedScenarios.setToolTipText("Filter advanced scenarios (i.e. not fingerprint ones)");
-
-	// Filter non-important builds action
-	this.filterOldBuilds = new Action("&Old Builds", IAction.AS_CHECK_BOX) {
-		@Override
-    public void run() {
-			ComponentResultsView.this.preferences.putBoolean(IPerformancesConstants.PRE_FILTER_OLD_BUILDS, isChecked());
-			resetTabFolders(false/*refresh*/);
-		}
-	};
-	this.filterOldBuilds.setChecked(false);
-	this.filterOldBuilds.setToolTipText("Filter old builds (i.e. before last milestone) but keep all previous milestones)");
-
-}
-
-@Override
-public void preferenceChange(PreferenceChangeEvent event) {
-	String propertyName = event.getKey();
-	Object newValue = event.getNewValue();
-
-	// Filter non-fingerprints change
-	if (propertyName.equals(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS)) {
-		boolean checked = newValue == null ? IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS : "true".equals(newValue);
-		this.filterAdvancedScenarios.setChecked(checked);
-		resetTabFolders(false/*refresh*/);
-	}
-
-	// Filter non-milestone change
-	if (propertyName.equals(IPerformancesConstants.PRE_FILTER_OLD_BUILDS)) {
-		boolean checked = newValue == null ? IPerformancesConstants.DEFAULT_FILTER_OLD_BUILDS : "true".equals(newValue);
-		this.filterOldBuilds.setChecked(checked);
-		resetTabFolders(false/*refresh*/);
-	}
-
-}
-
-/*
- * Reset the table tab folders by re-create all the pages.
- * Selections are set onto the first found error if this is the first tab creation (typically on a component change event from the ComponentsView)
- * or to the previous one if this is just a refresh.
- */
-void resetTabFolders(boolean init) {
-
-	// Store current indexes
-	int tabIndex = this.tabFolder.getSelectionIndex();
-	int lineIndex = tabIndex<0 ? -1 : this.tabs[tabIndex].table.getSelectionIndex();
-
-	// Create tab folders
-	CTabItem[] tabItems = this.tabFolder.getItems();
-	int length = tabItems.length;
-	if (length == 0) {
-		createTabs();
-	} else {
-		for (int i=0; i<length; i++) {
-			tabItems[i].setControl(this.tabs [i].createTabFolderPage(this.componentResultsElement, this.tabFolder, this.fullLineSelection.isChecked()));
-		}
-	}
-
-	// Set the part name when possible
-	if (this.componentResultsElement != null) {
-		setPartName(Util.componentDisplayName(this.componentResultsElement.getName()));
-	}
-
-	// If this is the first display then look for the first error to set the selection on it
-	if (init)  {
-		if (this.componentResultsElement != null) {
-			// If the component has
-			if (this.componentResultsElement.hasError()) {
-				ResultsElement[] children = this.componentResultsElement.getChildren(); // get scenarios
-				int childrenLength = children.length;
-				for (int s=0; s<childrenLength; s++) {
-					if (children[s].hasError()) {
-						children = children[s].getChildren(); // get configs
-						for (int c=0; c<childrenLength; c++) {
-							if (children[c].hasError()) {
-								tabIndex = c;
-								break;
-							}
-						}
-						break;
-					}
-				}
-			}
-		}
-		lineIndex = 0;
-	}
-
-	// Set the selection
-	if (tabIndex >= 0 && lineIndex >= 0) {
-		this.tabFolder.setSelection(tabIndex);
-		Table table = this.tabs[tabIndex].table;
-		table.setSelection(lineIndex);
-	}
-}
-
-/*
- * Restore the view state from the memento information.
- */
-void restoreState() {
-
-	// Filter baselines action state
-	if (this.viewState != null) {
-		Boolean state = this.viewState.getBoolean(IPerformancesConstants.PRE_FULL_LINE_SELECTION);
-		boolean fullLine = state == null ? true : state.booleanValue();
-		this.fullLineSelection.setChecked(fullLine);
-	}
-
-	// Filter non fingerprints action state
-	boolean checked = this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS);
-	this.filterAdvancedScenarios.setChecked(checked);
-
-	// Filter non important builds action state
-	checked = this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_OLD_BUILDS, IPerformancesConstants.DEFAULT_FILTER_OLD_BUILDS);
-	this.filterOldBuilds.setChecked(checked);
-}
-
-@Override
-public void saveState(IMemento memento) {
-	super.saveState(memento);
-	memento.putBoolean(IPerformancesConstants.PRE_FULL_LINE_SELECTION, this.fullLineSelection.isChecked());
-}
-
-@Override
-public void selectionChanged(SelectionChangedEvent event) {
-	ResultsElement selectedElement = (ResultsElement) ((TreeSelection) event.getSelection()).getFirstElement();
-	ComponentResultsElement componentElement = null;
-	ScenarioResultsElement scenarioResultsElement = null;
-	ConfigResultsElement configResultsElement = null;
-	BuildResultsElement buildResultsElement = null;
-	if (selectedElement instanceof ComponentResultsElement) {
-		componentElement = (ComponentResultsElement) selectedElement;
-	} else if (selectedElement instanceof ScenarioResultsElement) {
-		scenarioResultsElement = (ScenarioResultsElement) selectedElement;
-		componentElement = (ComponentResultsElement) scenarioResultsElement.getParent(null);
-	} else if (selectedElement instanceof ConfigResultsElement) {
-		configResultsElement = (ConfigResultsElement) selectedElement;
-		scenarioResultsElement = (ScenarioResultsElement) configResultsElement.getParent(null);
-		componentElement = (ComponentResultsElement) scenarioResultsElement.getParent(null);
-	} else if (selectedElement instanceof BuildResultsElement) {
-		buildResultsElement = (BuildResultsElement) selectedElement;
-		configResultsElement = (ConfigResultsElement) buildResultsElement.getParent(null);
-		scenarioResultsElement = (ScenarioResultsElement) configResultsElement.getParent(null);
-		componentElement = (ComponentResultsElement) scenarioResultsElement.getParent(null);
-	} else if (selectedElement instanceof DimResultsElement) {
-		buildResultsElement = (BuildResultsElement) selectedElement.getParent(null);
-		configResultsElement = (ConfigResultsElement) buildResultsElement.getParent(null);
-		scenarioResultsElement = (ScenarioResultsElement) configResultsElement.getParent(null);
-		componentElement = (ComponentResultsElement) scenarioResultsElement.getParent(null);
-	}
-	if (componentElement != this.componentResultsElement) {
-		this.componentResultsElement = componentElement;
-		if (componentElement == null || this.componentResultsElement.getChildren(null).length > 0) {
-			resetTabFolders(true);
-		}
-	}
-	if (configResultsElement != null) {
-		ConfigTab configTab = this.tabs[this.tabFolder.getSelectionIndex()];
-		if (!configResultsElement.getName().equals(configTab.configName)) {
-			int length = this.tabs.length;
-			for (int i=0; i<length; i++) {
-				if (this.tabs[i].configName.equals(configResultsElement.getName())) {
-					this.tabFolder.setSelection(i);
-				}
-			}
-		}
-		if (buildResultsElement != null) {
-			configTab = this.tabs[this.tabFolder.getSelectionIndex()];
-			configTab.select(buildResultsElement);
-		}
-	}
-}
-
-@Override
-public void setFocus() {
-	// do nothing
-}
-
-}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ComponentsView.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ComponentsView.java
deleted file mode 100644
index dfe24bd..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ComponentsView.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.test.internal.performance.results.model.BuildResultsElement;
-import org.eclipse.test.internal.performance.results.model.ComponentResultsElement;
-import org.eclipse.test.internal.performance.results.model.ConfigResultsElement;
-import org.eclipse.test.internal.performance.results.model.ResultsElement;
-import org.eclipse.test.internal.performance.results.model.ScenarioResultsElement;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * View to see the performance results of all the components in a hierarchical tree.
- * <p>
- * A component defines several performance scenarios which are run on several
- * machines (aka config). All builds results are stored onto each configuration
- * and 2 dimensions have been stored for each result: the "Elapsed Process Time"
- * and the "CPU Time".
- * </p><p>
- * There's only one available action from this view: read the local data files. This
- * populates the hierarchy with the numbers stored in these files.
- * </p><p>
- * There's also the possibility to filter the results:
- * </p><ul>
- *	<li>Filter for builds:
- *		<ul>
- *		<li>Filter baselines:	hide the baselines (starting with R-4.x)</li>
- *		<li>Filter non-important builds:	hide all non-important builds, which means non-milestone builds and those after the last milestone</li>
- *		</ul>
- *	</li>
- *	<li>Filter for scenarios:
- *		<ul>
- *		<li>Filter non-fingerprints: hide the scenarios which are not in the fingerprints</li>
- *		</ul>
- *	</li>
- *	</ul>
- * @see ComponentResultsView
- */
-public class ComponentsView extends PerformancesView {
-
-	// Viewer filters
-	final static ViewerFilter FILTER_ADVANCED_SCENARIOS = new ViewerFilter() {
-		@Override
-    public boolean select(Viewer v, Object parentElement, Object element) {
-			if (element instanceof ScenarioResultsElement) {
-				ScenarioResultsElement scenarioElement = (ScenarioResultsElement) element;
-				return scenarioElement.hasSummary();
-			}
-	        return true;
-        }
-	};
-
-	// Views
-	BuildsView buildsView;
-	ComponentResultsView componentResultsView = null;
-
-	// Internal
-	Set<ResultsElement> expandedComponents = new HashSet<>();
-
-	// Actions
-	Action filterAdvancedScenarios;
-
-	// SWT resources
-	Font boldFont;
-
-/**
- * Default constructor.
- */
-public ComponentsView() {
-	// Get preferences
-	this.preferences = InstanceScope.INSTANCE.getNode(IPerformancesConstants.PLUGIN_ID);
-}
-
-@Override
-public void createPartControl(Composite parent) {
-	super.createPartControl(parent);
-
-	// Create the viewer
-	this.viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-
-	// Set the content provider: first level is components list
-	WorkbenchContentProvider contentProvider = new WorkbenchContentProvider() {
-		@Override
-    public Object[] getElements(Object o) {
-			return ComponentsView.this.getElements();
-		}
-	};
-	this.viewer.setContentProvider(contentProvider);
-
-	// Set the label provider
-	WorkbenchLabelProvider labelProvider = new WorkbenchLabelProvider() {
-
-		@Override
-    protected String decorateText(String input, Object element) {
-			return super.decorateText(input, element);
-		}
-
-		// When all scenarios are displayed, then set fingerprints one in bold.
-		@Override
-    public Font getFont(Object element) {
-			Font font = super.getFont(element);
-			if (element instanceof ScenarioResultsElement) {
-				boolean fingerprints = ComponentsView.this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS);
-				if (!fingerprints) {
-					ScenarioResultsElement scenarioElement = (ScenarioResultsElement) element;
-					if (scenarioElement.hasSummary()) {
-						return getBoldFont(font);
-					}
-				}
-			}
-			return font;
-		}
-	};
-	this.viewer.setLabelProvider(labelProvider);
-
-	// Set the children sorter
-	ViewerComparator nameSorter = new ViewerComparator() {
-
-		// Sort children using specific comparison (see the implementation
-		// of the #compareTo(Object) in the ResultsElement hierarchy
-		@Override
-    public int compare(Viewer view, Object e1, Object e2) {
-			// Config and Build results are sorted in reverse order
-			if (e1 instanceof BuildResultsElement) {
-				ResultsElement element = (ResultsElement) e2;
-				return element.compareTo((ResultsElement) e1);
-			}
-			if (e1 instanceof ResultsElement) {
-				ResultsElement element = (ResultsElement) e1;
-				return element.compareTo((ResultsElement) e2);
-			}
-			return super.compare(view, e1, e2);
-		}
-	};
-	this.viewer.setComparator(nameSorter);
-
-	// Add results view as listener to viewer selection changes
-	Display.getDefault().asyncExec(() -> {
-  	ISelectionChangedListener listener = getResultsView();
-  	if (listener != null) {
-  		ComponentsView.this.viewer.addSelectionChangedListener(listener);
-  	}
-  });
-
-	// Finalize viewer initialization
-	PlatformUI.getWorkbench().getHelpSystem().setHelp(this.viewer.getControl(), "org.eclipse.test.performance.ui.components");
-	finalizeViewerCreation();
-}
-
-@Override
-public void dispose() {
-	if (this.boldFont != null) {
-		this.boldFont.dispose();
-	}
-	super.dispose();
-}
-
-@Override
-void fillFiltersDropDown(IMenuManager manager) {
-	super.fillFiltersDropDown(manager);
-	manager.add(this.filterOldBuilds);
-	manager.add(new Separator());
-	manager.add(this.filterAdvancedScenarios);
-}
-
-/*
- * Filter non fingerprints scenarios action run.
- */
-void filterAdvancedScenarios(boolean fingerprints) {
-	this.results.setFingerprints(fingerprints);
-	if (fingerprints) {
-		this.viewFilters.add(FILTER_ADVANCED_SCENARIOS);
-	} else {
-		this.viewFilters.remove(FILTER_ADVANCED_SCENARIOS);
-	}
-	this.preferences.putBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, fingerprints);
-	updateFilters();
-}
-
-/*
- * Returns the bold font.
- */
-Font getBoldFont(Font font) {
-	if (this.boldFont == null) {
-		FontData[] fontData = (font==null ? JFaceResources.getDefaultFont() : font).getFontData();
-		FontData boldFontData = new FontData(fontData[0].getName(), fontData[0].getHeight(), SWT.BOLD);
-		this.boldFont = new Font(this.display, boldFontData);
-	}
-	return this.boldFont;
-}
-
-/*
- * Get all the components from the model.
- */
-Object[] getElements() {
-	if (this.results == null) {
-		initResults();
-		if (this.filterAdvancedScenarios != null) {
-			this.results.setFingerprints(this.filterAdvancedScenarios.isChecked());
-		}
-	}
-	return this.results.getElements();
-}
-
-/*
- * Return the components results view.
- */
-ComponentResultsView getResultsView() {
-	if (this.componentResultsView == null) {
-		this.componentResultsView = (ComponentResultsView) getWorkbenchView("org.eclipse.test.internal.performance.results.ui.ComponentsResultsView");
-	}
-	return this.componentResultsView;
-}
-
-/*
- * Return the builds view.
- */
-@Override
-PerformancesView getSiblingView() {
-	if (this.buildsView == null) {
-		this.buildsView = (BuildsView) getWorkbenchView("org.eclipse.test.internal.performance.results.ui.BuildsView");
-	}
-	return this.buildsView;
-}
-
-@Override
-void makeActions() {
-
-	super.makeActions();
-
-	// Filter non-fingerprints action
-	this.filterAdvancedScenarios = new Action("Advanced &Scenarios", IAction.AS_CHECK_BOX) {
-		@Override
-    public void run() {
-			filterAdvancedScenarios(isChecked());
-        }
-	};
-	this.filterAdvancedScenarios.setChecked(true);
-	this.filterAdvancedScenarios.setToolTipText("Filter advanced scenarios (i.e. not fingerprint ones)");
-
-	// Set filters default
-	this.filterBaselineBuilds.setChecked(true);
-}
-
-@Override
-public void preferenceChange(PreferenceChangeEvent event) {
-	String propertyName = event.getKey();
-	Object newValue = event.getNewValue();
-
-	// Filter non-fingerprints change
-	if (propertyName.equals(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS)) {
-		boolean checked = newValue == null ? IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS : "true".equals(newValue);
-		filterAdvancedScenarios(checked);
-		this.filterAdvancedScenarios.setChecked(checked);
-	}
-
-	// Filter non-milestone change
-	if (propertyName.equals(IPerformancesConstants.PRE_FILTER_OLD_BUILDS)) {
-		boolean checked = newValue == null ? IPerformancesConstants.DEFAULT_FILTER_OLD_BUILDS : "true".equals(newValue);
-		filterOldBuilds(checked);
-		this.filterOldBuilds.setChecked(checked);
-	}
-
-	super.preferenceChange(event);
-}
-
-@Override
-void restoreState() {
-	super.restoreState();
-
-	// Filter baselines action default
-	if (this.viewState == null) {
-		this.filterBaselineBuilds.setChecked(true);
-		this.viewFilters.add(FILTER_BASELINE_BUILDS);
-	}
-
-	// Filter non fingerprints action state
-	boolean checked = this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS, IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS);
-	this.filterAdvancedScenarios.setChecked(checked);
-	if (checked) {
-		this.viewFilters.add(FILTER_ADVANCED_SCENARIOS);
-	}
-}
-
-@Override
-public void saveState(IMemento memento) {
-	super.saveState(memento);
-}
-
-/**
- * Select a results element in the tree.
- */
-public void select(ComponentResultsElement componentResults, String configName, String scenarioName, String buildName) {
-
-	// Collapse previous expanded components except the requested one
-	// TODO (frederic) also collapse expanded components children elements
-	this.expandedComponents.remove(componentResults);
-	Iterator<ResultsElement> iterator = this.expandedComponents.iterator();
-	while (iterator.hasNext()) {
-		this.viewer.collapseToLevel(iterator.next(), AbstractTreeViewer.ALL_LEVELS);
-	}
-	this.expandedComponents.clear();
-
-	// Set the tree selection
-	ScenarioResultsElement scenarioResultsElement = (ScenarioResultsElement) componentResults.getResultsElement(scenarioName);
-	if (scenarioResultsElement != null) {
-		ConfigResultsElement configResultsElement = (ConfigResultsElement) scenarioResultsElement.getResultsElement(configName);
-		if (configResultsElement != null) {
-			BuildResultsElement buildResultsElement = (BuildResultsElement) configResultsElement.getResultsElement(buildName);
-			if (buildResultsElement != null) {
-				this.viewer.setSelection(new StructuredSelection(buildResultsElement), true);
-				this.setFocus();
-			}
-		}
-	}
-}
-
-@Override
-public void selectionChanged(SelectionChangedEvent event) {
-	super.selectionChanged(event);
-	ResultsElement eventResultsElement = (ResultsElement) ((StructuredSelection)event.getSelection()).getFirstElement();
-	if (eventResultsElement != null) {
-		ResultsElement eventComponentElement = eventResultsElement;
-		if (!(eventComponentElement instanceof ComponentResultsElement)) {
-			while (!(eventComponentElement instanceof ComponentResultsElement)) {
-				eventComponentElement = (ResultsElement) eventComponentElement.getParent(null);
-			}
-			this.expandedComponents.add(eventComponentElement);
-		}
-	}
-}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ConfigTab.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ConfigTab.java
deleted file mode 100644
index 167be2a..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ConfigTab.java
+++ /dev/null
@@ -1,590 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.test.internal.performance.results.ui;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.ToolTip;
-import org.eclipse.test.internal.performance.results.db.AbstractResults;
-import org.eclipse.test.internal.performance.results.model.BuildResultsElement;
-import org.eclipse.test.internal.performance.results.model.ComponentResultsElement;
-import org.eclipse.test.internal.performance.results.model.ConfigResultsElement;
-import org.eclipse.test.internal.performance.results.model.ResultsElement;
-import org.eclipse.test.internal.performance.results.model.ScenarioResultsElement;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.test.internal.performance.results.utils.Util;
-
-/**
- * Tab to display all performances results numbers for a configuration (i.e a
- * performance machine).
- */
-public class ConfigTab {
-
-	// Colors
-	static final Display DEFAULT_DISPLAY = Display.getDefault();
-	static final Color BLUE = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_BLUE);
-	static final Color DARK_GREEN = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_DARK_GREEN);
-	static final Color GRAY = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_GRAY);
-	static final Color MAGENTA = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_MAGENTA);
-	static final Color RED = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_RED);
-
-	// SWT resources
-	Shell shell;
-	Display display;
-	Table table;
-	private GC gc;
-	private Color lightred;
-	private Color lightyellow;
-	private Color darkyellow;
-	private Color blueref;
-	private Font boldFont;
-	private Font italicFont;
-	private Font boldItalicFont;
-	Map<Point, ToolTip> toolTips;
-
-	// Information
-	String configBox, configName;
-	ComponentResultsElement results;
-	double[][] allValues;
-	double[][] allErrors;
-
-	// Cells management
-	Point tableOrigin, tableSize;
-	int columnsCount, rowsCount;
-	List<Object> firstLine;
-
-	// Eclipse preferences
-	private IEclipsePreferences preferences;
-
-	/*
-	 * Default constructor.
-	 */
-	public ConfigTab(String name, String box) {
-		this.configName = name;
-		int idx = box.indexOf(" (");
-		this.configBox = idx > 0 ? box.substring(0, idx) : box;
-		this.preferences = InstanceScope.INSTANCE.getNode(IPerformancesConstants.PLUGIN_ID);
-	}
-
-	/**
-	 * Creates the tab folder page.
-	 *
-	 * @param tabFolder     org.eclipse.swt.widgets.TabFolder
-	 * @param fullSelection Tells whether the table should have a full line
-	 *                      selection or not
-	 * @return the new page for the tab folder
-	 */
-	Composite createTabFolderPage(ComponentResultsElement componentResultsElement, CTabFolder tabFolder,
-			boolean fullSelection) {
-		// Cache the shell and display.
-		this.shell = tabFolder.getShell();
-		this.display = this.shell.getDisplay();
-
-		// Remove old table is present
-		boolean initResources = this.table == null;
-		if (this.table != null) {
-			disposeTable();
-		}
-
-		// Store results
-		this.results = componentResultsElement;
-
-		// Create the "children" table
-		int style = SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;
-		if (fullSelection)
-			style |= SWT.FULL_SELECTION;
-		this.table = new Table(tabFolder, style);
-		this.table.setLinesVisible(true);
-		this.table.setHeaderVisible(true);
-		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
-		gridData.heightHint = 150;
-		this.table.setLayoutData(gridData);
-		this.gc = new GC(this.table);
-
-		// Init resources
-		if (initResources)
-			initResources();
-
-		// Add columns to the table
-		boolean fingerprints = this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_ADVANCED_SCENARIOS,
-				IPerformancesConstants.DEFAULT_FILTER_ADVANCED_SCENARIOS);
-		String[] columnHeaders = getLayoutDataFieldNames(fingerprints);
-		int length = columnHeaders.length;
-		for (int i = 0; i < length; i++) {
-			TableColumn column = new TableColumn(this.table, SWT.CENTER);
-			column.setText(columnHeaders[i]);
-		}
-
-		// Add lines to the table
-		this.toolTips = new HashMap<>();
-		fillTableLines(fingerprints);
-
-		// Updated columns
-		for (int i = 0; i < length; i++) {
-			TableColumn column = this.table.getColumn(i);
-			column.setWidth(i == 0 ? 120 : 100);
-			if (i > 0) {
-				String text = (String) this.firstLine.get(i);
-				column.setToolTipText(text);
-			}
-		}
-
-		// Store table info
-		this.columnsCount = length;
-
-		// Listen to mouse events to select the corresponding build in the components
-		// view
-		// when a click is done in the table cell.
-		final ComponentsView componentsView = (ComponentsView) PerformancesView
-				.getWorkbenchView("org.eclipse.test.internal.performance.results.ui.ComponentsView");
-		MouseListener mouseListener = MouseListener.mouseDownAdapter(e -> {
-			Point cellPosition = currentCellPosition(e.x, e.y);
-			Table tabTable = ConfigTab.this.table;
-			componentsView.select(ConfigTab.this.results, ConfigTab.this.configName,
-					(String) ConfigTab.this.firstLine.get(cellPosition.x), tabTable.getItem(cellPosition.y).getText());
-		}
-
-		);
-		this.table.addMouseListener(mouseListener);
-
-		// Listen to mouse track events to display the table cell corresponding tooltip.
-		MouseTrackListener mouseTrackListener = new MouseTrackListener() {
-
-			ToolTip currentTooltip;
-
-			@Override
-			public void mouseHover(MouseEvent e) {
-				if (this.currentTooltip != null) {
-					this.currentTooltip.setVisible(false);
-					this.currentTooltip = null;
-				}
-				Point cellPosition = currentCellPosition(e.x, e.y);
-				if (cellPosition != null) {
-					ToolTip tooltip = ConfigTab.this.toolTips.get(cellPosition);
-					if (tooltip != null) {
-						Point location = ConfigTab.this.table.toDisplay(new Point(e.x, e.y));
-						tooltip.setLocation(location);
-						tooltip.setVisible(true);
-						this.currentTooltip = tooltip;
-					}
-				}
-			}
-
-			@Override
-			public void mouseEnter(MouseEvent e) {
-			}
-
-			@Override
-			public void mouseExit(MouseEvent e) {
-			}
-		};
-		this.table.addMouseTrackListener(mouseTrackListener);
-
-		// Select the first line by default (as this is the current build)
-		this.table.select(0);
-
-		// Return the built composite
-		return this.table;
-	}
-
-	/*
-	 * Create and store a tooltip with the given information and at the given
-	 * position.
-	 */
-	void createToolTip(String toolTipText, String toolTipMessage, int toolTipStyle, Point position) {
-		ToolTip toolTip = new ToolTip(this.table.getShell(), toolTipStyle);
-		toolTip.setAutoHide(true);
-		toolTip.setText(toolTipText);
-		toolTip.setMessage(/* "("+col+","+row+") "+ */toolTipMessage);
-		this.toolTips.put(position, toolTip);
-	}
-
-	/*
-	 * Get the current cell position (column, row) from a point position.
-	 */
-	Point currentCellPosition(int x, int y) {
-
-		// Compute the origin of the visible area
-		if (this.tableOrigin == null) {
-			this.tableOrigin = new Point(0, this.table.getHeaderHeight());
-		}
-
-		// Increment width until over current y position
-		int height = this.tableOrigin.y;
-		int row = this.table.getTopIndex();
-		while (row < this.rowsCount && height < y) {
-			height += this.table.getItemHeight();
-			row++;
-		}
-		if (height < y) {
-			// return when position is over the last line
-			return null;
-		}
-		row--;
-
-		// Increment width until being over current x position
-		int col = 0;
-		TableItem tableItem = this.table.getItem(row);
-		Rectangle bounds = tableItem.getBounds(col);
-		while (col < this.columnsCount) {
-			int max = bounds.x + bounds.width + this.table.getGridLineWidth();
-			if (x <= max)
-				break;
-			if (col == this.columnsCount) {
-				// return when position is over the last column
-				return null;
-			}
-			col++;
-			bounds = tableItem.getBounds(col);
-		}
-
-		// Return the found table cell position
-		return new Point(col, row);
-	}
-
-	/*
-	 * Dispose all SWT resources.
-	 */
-	public void dispose() {
-		if (this.boldFont != null) {
-			this.boldFont.dispose();
-		}
-		if (this.italicFont != null) {
-			this.italicFont.dispose();
-		}
-		if (this.boldItalicFont != null) {
-			this.boldItalicFont.dispose();
-		}
-		if (this.darkyellow != null) {
-			this.darkyellow.dispose();
-		}
-		if (this.lightyellow != null) {
-			this.lightyellow.dispose();
-		}
-		if (this.lightred != null) {
-			this.lightred.dispose();
-		}
-		if (this.blueref != null) {
-			this.blueref.dispose();
-		}
-		disposeTable();
-	}
-
-	/*
-	 * Dispose all SWT controls associated with the table.
-	 */
-	private void disposeTable() {
-		if (this.toolTips != null) {
-			Iterator<Point> cells = this.toolTips.keySet().iterator();
-			while (cells.hasNext()) {
-				ToolTip toolTip = this.toolTips.get(cells.next());
-				toolTip.dispose();
-			}
-		}
-		this.table.dispose();
-		this.tableOrigin = null;
-		this.firstLine = null;
-	}
-
-	/*
-	 * Fill the lines of the tables. Get all the information from the model which
-	 * are returned in a list (lines) of lists (columns).
-	 */
-	private void fillTableLines(boolean fingerprints) {
-
-		// Get model information
-		if (this.results == null)
-			return;
-		List<List<Object>> differences = this.results.getConfigNumbers(this.configName, fingerprints);
-		if (differences == null)
-			return;
-
-		// Store first information line which are the scenarios full names
-		Iterator<List<Object>> lines = differences.iterator();
-		this.firstLine = lines.next();
-
-		// Read each information line (one line per build results)
-		Object[] scenarios = this.results.getChildren(null);
-		ConfigResultsElement[] configs = new ConfigResultsElement[scenarios.length];
-		int row = 0;
-		while (lines.hasNext()) {
-			List<Object> line = lines.next();
-			int size = line.size();
-
-			// The first column is the build name
-			String buildName = (String) line.get(0);
-			TableItem item = null;
-
-			// Set item if the line is not filtered
-			Font italic;
-			item = new TableItem(this.table, SWT.NONE);
-			item.setText(0, buildName);
-			italic = this.italicFont;
-
-			// Read each column value
-			String baselineName = null;
-			for (int col = 1; col < size; col++) {
-
-				// Reset tooltip info
-				String toolTipText = null;
-				String toolTipMessage = null;
-				int toolTipStyle = SWT.BALLOON;
-
-				// Otherwise get values for a scenario
-				Font italic2 = italic;
-				ScenarioResultsElement scenarioResultsElement = (ScenarioResultsElement) scenarios[col - 1];
-				if ((!fingerprints && scenarioResultsElement.hasSummary())) {
-					italic2 = this.boldItalicFont;
-					item.setFont(col, this.boldFont);
-				}
-				// Otherwise get values for a scenario
-				double[] values = (double[]) line.get(col);
-				if (values == AbstractResults.NO_BUILD_RESULTS) {
-					item.setText(col, "Missing");
-					item.setForeground(col, GRAY);
-					item.setFont(col, italic2);
-				} else if (values == AbstractResults.INVALID_RESULTS) {
-					item.setText(col, "Invalid");
-					item.setForeground(col, RED);
-					item.setFont(col, italic2);
-				} else {
-					// Get values array
-					double buildValue = values[AbstractResults.BUILD_VALUE_INDEX];
-					double baselineValue = values[AbstractResults.BASELINE_VALUE_INDEX];
-					double delta = values[AbstractResults.DELTA_VALUE_INDEX];
-					double error = values[AbstractResults.DELTA_ERROR_INDEX];
-
-					// Set text with delta value
-					item.setText(col, Util.PERCENTAGE_FORMAT.format(delta));
-
-					// Compute the tooltip to display on the cell
-					if (error > 0.03) {
-						// error is over the 3% threshold
-						item.setImage(col, ResultsElement.WARN_IMAGE);
-						item.setForeground(col, this.darkyellow);
-						toolTipText = "May be not reliable";
-						toolTipMessage = "The error on this result is " + Util.PERCENTAGE_FORMAT.format(error)
-								+ ", hence it may be not reliable";
-						toolTipStyle |= SWT.ICON_WARNING;
-					}
-					if (delta < -0.1) {
-						// delta < -10%: failure shown by an red-cross icon + text in red
-						item.setImage(col, ResultsElement.ERROR_IMAGE);
-						item.setForeground(col, RED);
-					} else if (delta < -0.05) {
-						// negative delta over 5% shown in red
-						item.setForeground(col, RED);
-					} else if (delta < 0) {
-						// negative delta shown in magenta
-						item.setForeground(col, MAGENTA);
-					} else if (delta > 0.2) {
-						// positive delta over 20% shown in green
-						item.setForeground(col, DARK_GREEN);
-					} else if (delta > 0.1) {
-						// positive delta between 10% and 20% shown in blue
-						item.setForeground(col, BLUE);
-					}
-
-					// Moderate the status if the build value or the difference is small
-					if (delta < 0) {
-						double diff = Math.abs(baselineValue - buildValue);
-						if (buildValue < 100 || diff < 100) {
-							if (toolTipText == null) {
-								toolTipText = "";
-							} else {
-								toolTipText += ", ";
-							}
-							toolTipText += "Small value";
-							if (toolTipMessage == null) {
-								toolTipMessage = "";
-							} else {
-								toolTipMessage += ".\n";
-							}
-							if (buildValue < 100) {
-								toolTipMessage += "This test has a small value (" + buildValue + "ms)";
-							} else {
-								toolTipMessage += "This test variation has a small value (" + diff + "ms)";
-							}
-							toolTipMessage += ", hence it may not be necessary to spend time on fixing this possible regression";
-							// set the text in italic
-							item.setFont(col, italic2);
-							toolTipStyle |= SWT.ICON_INFORMATION;
-						}
-					}
-
-					// Add information in tooltip when history shows big variation
-					ConfigResultsElement configResultsElement = configs[col - 1];
-					if (configResultsElement == null) {
-						configResultsElement = (ConfigResultsElement) scenarioResultsElement
-								.getResultsElement(this.configName);
-						configs[col - 1] = configResultsElement;
-					}
-					double deviation = configResultsElement == null ? 0 : configResultsElement.getStatistics()[3];
-					if (deviation > 0.2) {
-						// deviation is over 20% over the entire history
-						if (toolTipText == null) {
-							toolTipText = "";
-						} else {
-							toolTipText += ", ";
-						}
-						toolTipText += "History shows erratic values";
-						if (toolTipMessage == null) {
-							toolTipMessage = "";
-						} else {
-							toolTipMessage += ".\n";
-						}
-						toolTipMessage += "The results history shows that the variation of its delta is over 20% ("
-								+ Util.PERCENTAGE_FORMAT.format(deviation)
-								+ "), hence its result is surely not reliable";
-						// set the text in italic
-						item.setFont(col, italic2);
-						toolTipStyle |= SWT.ICON_INFORMATION;
-					} else if (deviation > 0.1) { // moderate the status when the test
-						// deviation is between 10% and 20% over the entire history
-						if (toolTipText == null) {
-							toolTipText = "";
-						} else {
-							toolTipText += ", ";
-						}
-						toolTipText += "History shows unstable values";
-						if (toolTipMessage == null) {
-							toolTipMessage = "";
-						} else {
-							toolTipMessage += ".\n";
-						}
-						toolTipMessage += "The results history shows that the variation of its delta is between 10% and 20% ("
-								+ Util.PERCENTAGE_FORMAT.format(deviation)
-								+ "), hence its result may not be really reliable";
-						// set the text in italic
-						item.setFont(col, italic2);
-						if (toolTipStyle == SWT.BALLOON && delta >= -0.1) {
-							toolTipStyle |= SWT.ICON_INFORMATION;
-						} else {
-							// reduce icon severity from error to warning
-							toolTipStyle |= SWT.ICON_WARNING;
-						}
-					}
-				}
-
-				// Set tooltip
-				if (toolTipText != null) {
-					createToolTip(toolTipText, toolTipMessage, toolTipStyle, new Point(col, row));
-				}
-
-				// Baseline name
-				ConfigResultsElement configResultsElement = (ConfigResultsElement) scenarioResultsElement
-						.getResultsElement(this.configName);
-				if (configResultsElement != null) {
-					String configBaselineName = configResultsElement.getBaselineBuildName(buildName);
-					if (baselineName == null) {
-						baselineName = configBaselineName;
-					} else if (baselineName.indexOf(configBaselineName) < 0) {
-						baselineName += ", " + configBaselineName;
-					}
-				}
-			}
-
-			// Set the tooltip over the build name
-			if (baselineName != null) {
-				createToolTip(buildName, "Baseline: " + baselineName, SWT.BALLOON | SWT.ICON_INFORMATION,
-						new Point(0, row));
-			}
-
-			// Increment row counter
-			row++;
-		}
-		this.rowsCount = row;
-	}
-
-	/*
-	 * Get the columns name.
-	 */
-	private String[] getLayoutDataFieldNames(boolean fingerprints) {
-		if (this.results == null) {
-			return new String[0];
-		}
-		List<String> labels = this.results.getScenariosLabels(fingerprints);
-		labels.add(0, "Build");
-		String[] names = new String[labels.size()];
-		labels.toArray(names);
-		return names;
-	}
-
-	/*
-	 * The tab text is the full machine name.
-	 */
-	public String getTabText() {
-		return this.configBox;
-	}
-
-	/*
-	 * Init the SWT resources
-	 */
-	private void initResources() {
-		// Fonts
-		String fontDataName = this.gc.getFont().getFontData()[0].toString();
-		FontData fdItalic = new FontData(fontDataName);
-		fdItalic.setStyle(SWT.ITALIC);
-		this.italicFont = new Font(this.display, fdItalic);
-		FontData fdBold = new FontData(fontDataName);
-		fdBold.setStyle(SWT.BOLD);
-		this.boldFont = new Font(this.display, fdBold);
-		FontData fdBoldItalic = new FontData(fontDataName);
-		fdBoldItalic.setStyle(SWT.BOLD | SWT.ITALIC);
-		this.boldItalicFont = new Font(this.display, fdBoldItalic);
-
-		// Colors
-		this.lightred = new Color(DEFAULT_DISPLAY, 220, 50, 50);
-		this.lightyellow = new Color(DEFAULT_DISPLAY, 255, 255, 160);
-		this.darkyellow = new Color(DEFAULT_DISPLAY, 160, 160, 0);
-		this.blueref = new Color(DEFAULT_DISPLAY, 200, 200, 255);
-	}
-
-	/*
-	 * Select the line corresponding to the given build.
-	 */
-	void select(BuildResultsElement buildResultsElement) {
-		int count = this.table.getItemCount();
-		String buildName = buildResultsElement.getName();
-		TableItem[] items = this.table.getItems();
-		for (int i = 0; i < count; i++) {
-			if (items[i].getText().endsWith(buildName)) {
-				this.table.deselect(this.table.getSelectionIndex());
-				this.table.select(i);
-				return;
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPerspective.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPerspective.java
deleted file mode 100644
index 7f7d2cd..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPerspective.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- *  Defines the 'Performances' perspective.
- */
-public class PerformanceResultsPerspective implements IPerspectiveFactory {
-
-	private IPageLayout factory;
-
-@Override
-public void createInitialLayout(IPageLayout layout) {
-	this.factory = layout;
-	addViews();
-}
-
-/*
- * Add views to the perspective
- */
-private void addViews() {
-
-	// Component results view put on bottom
-	IFolderLayout bottom =
-		this.factory.createFolder(
-			"bottomRight", //NON-NLS-1
-			IPageLayout.BOTTOM,
-			0.5f,
-			this.factory.getEditorArea());
-	bottom.addView("org.eclipse.test.internal.performance.results.ui.ComponentsResultsView");
-	bottom.addView("org.eclipse.test.internal.performance.results.ui.BuildsComparisonView");
-
-	// Components and Builds view put on perspective top left
-	IFolderLayout topLeft =
-		this.factory.createFolder(
-			"topLeft", //NON-NLS-1
-			IPageLayout.LEFT,
-			0.5f,
-			this.factory.getEditorArea());
-	topLeft.addView("org.eclipse.test.internal.performance.results.ui.ComponentsView"); //NON-NLS-1
-	topLeft.addView("org.eclipse.test.internal.performance.results.ui.BuildsView"); //NON-NLS-1
-	topLeft.addView(IPageLayout.ID_PROJECT_EXPLORER); //NON-NLS-1
-
-	// Properties view put on perspective top right
-	IFolderLayout topRight =
-		this.factory.createFolder(
-			"topRight", //NON-NLS-1
-			IPageLayout.RIGHT,
-			0.5f,
-			this.factory.getEditorArea());
-	topRight.addView(IPageLayout.ID_PROP_SHEET); //NON-NLS-1
-
-	this.factory.setEditorAreaVisible(false);
-}
-
-}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPreferencePage.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPreferencePage.java
deleted file mode 100644
index 98037fa..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPreferencePage.java
+++ /dev/null
@@ -1,998 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-import java.io.File;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.results.db.DB_Results;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.test.performance.ui.UiPlugin;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * Defines the 'Performances' preferences page.
- */
-public class PerformanceResultsPreferencePage extends PreferencePage
-	implements IWorkbenchPreferencePage, SelectionListener, ModifyListener, IPerformancesConstants {
-
-	private Button mVersionRadioButton;
-	private Button dVersionRadionButton;
-	private CCombo databaseLocationCombo;
-	private Button dbConnectionCheckBox;
-	private Button dbLocalBrowseButton;
-	private Button dbRelengRadioButton;
-	private Button dbLocalRadioButton;
-	private CCombo defaultDimensionCombo;
-//	private CCombo lastBuildCombo;
-	private List resultsDimensionsList;
-	private Label dbLocationLabel;
-
-	// Status SWT objects
-	private Button statusValuesCheckBox;
-	private Button statusErrorNoneRadioButton;
-	private Button statusErrorNoticeableRadioButton;
-	private Button statusErrorSuspiciousRadioButton;
-	private Button statusErrorWeirdRadioButton;
-	private Button statusErrorInvalidRadioButton;
-	private Button statusSmallBuildValueCheckBox;
-	private Button statusSmallDeltaValueCheckBox;
-	private Button statusStatisticNoneRadioButton;
-	private Button statusStatisticErraticRadioButton;
-	private Button statusStatisticUnstableRadioButton;
-	private Text statusBuildsToConfirm;
-	private Text comparisonThresholdFailure;
-	private Text comparisonThresholdError;
-	private Text comparisonThresholdImprovement;
-
-	// TODO See whether config descriptors need to be set as preferences or not...
-	// private Table configDescriptorsTable;
-
-	private BuildsView buildsView;
-
-/**
- * Utility method that creates a push button instance and sets the default
- * layout data.
- *
- * @param parent
- *            the parent for the new button
- * @param label
- *            the label for the new button
- * @return the newly-created button
- */
-private Button createCheckBox(Composite parent, String label) {
-	Button button = new Button(parent, SWT.CHECK);
-	button.setText(label);
-	button.addSelectionListener(this);
-	GridData data = new GridData();
-	data.horizontalAlignment = GridData.FILL;
-	data.horizontalSpan = 5;
-	button.setLayoutData(data);
-	return button;
-}
-
-/**
- * Create a text field specific for this application
- *
- * @param parent
- *            the parent of the new text field
- * @return the new text field
- */
-private CCombo createCombo(Composite parent) {
-	CCombo combo= new CCombo(parent, SWT.BORDER);
-	combo.addModifyListener(this);
-	GridData data = new GridData();
-	data.horizontalSpan = 3;
-	data.horizontalAlignment = GridData.FILL;
-	data.grabExcessHorizontalSpace = true;
-	data.verticalAlignment = GridData.CENTER;
-	data.grabExcessVerticalSpace = false;
-	combo.setLayoutData(data);
-	return combo;
-}
-
-
-/**
- * Creates composite control and sets the default layout data.
- *
- * @param parent
- *            the parent of the new composite
- * @param numColumns
- *            the number of columns for the new composite
- * @param hSpan TODO
- * @return the newly-created coposite
- */
-private Composite createComposite(Composite parent, int numColumns, int hSpan) {
-	Composite composite = new Composite(parent, SWT.NULL);
-
-	// GridLayout
-	GridLayout layout = new GridLayout();
-	layout.numColumns = numColumns;
-	composite.setLayout(layout);
-
-	// GridData
-	GridData data = new GridData();
-	data.verticalAlignment = GridData.FILL;
-	data.horizontalAlignment = GridData.FILL;
-	data.horizontalSpan = hSpan;
-	composite.setLayoutData(data);
-	return composite;
-}
-
-@Override
-protected Control createContents(Composite parent) {
-
-	this.buildsView = (BuildsView) PerformancesView.getWorkbenchView("org.eclipse.test.internal.performance.results.ui.BuildsView");
-	if (this.buildsView == null) {
-		Label errorLabel = createLabel(parent, "No performances preferences can be set because the build view has not been created yet!", false);
-		errorLabel.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_RED));
-	} else {
-		// Eclipse version choice
-		Composite composite_eclipseVersion = createComposite(parent, 5, 1);
-		createLabel(composite_eclipseVersion, "Eclipse version", false);
-		Composite composite_versionChoice = createComposite(composite_eclipseVersion, 5, 1);
-		this.mVersionRadioButton = createRadioButton(composite_versionChoice, "v"+ECLIPSE_MAINTENANCE_VERSION);
-		this.dVersionRadionButton = createRadioButton(composite_versionChoice, "v"+ECLIPSE_DEVELOPMENT_VERSION);
-
-		// Database location
-		Composite compositeDatabase = createComposite(parent, 5, 1);
-		Group databaseGroup = createGroup(compositeDatabase, "Database", 5);
-		Composite compositeDatabaseConnection = createComposite(databaseGroup, 3, 5);
-		this.dbConnectionCheckBox = createCheckBox(compositeDatabaseConnection, "Connected");
-		this.dbRelengRadioButton = createRadioButton(compositeDatabaseConnection, "Releng");
-		this.dbLocalRadioButton = createRadioButton(compositeDatabaseConnection, "Local");
-		this.dbLocationLabel = createLabel(databaseGroup, "Location", false);
-		this.databaseLocationCombo = createCombo(databaseGroup);
-		this.databaseLocationCombo.setEditable(false);
-	    this.dbLocalBrowseButton = createPushButton(databaseGroup, "Browse");
-
-		// Status
-		Composite compositeStatus = createComposite(parent, 1, 3);
-		Group statusGroup = createGroup(compositeStatus, "Status", 1);
-		this.statusValuesCheckBox = createCheckBox(statusGroup, "Values");
-		this.statusValuesCheckBox.setToolTipText("Include numbers while writing status");
-		Group statusErrorGroup = createGroup(statusGroup, "Error level", 5);
-		statusErrorGroup.setToolTipText("Exclude from the written status failures depending on their build result error...");
-		this.statusErrorNoneRadioButton = createRadioButton(statusErrorGroup, "None");
-		this.statusErrorNoneRadioButton.setToolTipText("Do not exclude failures if they have a noticeable error");
-		this.statusErrorInvalidRadioButton = createRadioButton(statusErrorGroup, "Invalid");
-		this.statusErrorInvalidRadioButton.setToolTipText("Exclude all invalid failures (i.e. result error is over 100%)");
-		this.statusErrorWeirdRadioButton = createRadioButton(statusErrorGroup, "Weird");
-		this.statusErrorWeirdRadioButton.setToolTipText("Exclude all weird failures (i.e. result error is over 50%)");
-		this.statusErrorSuspiciousRadioButton = createRadioButton(statusErrorGroup, "Suspicious");
-		this.statusErrorSuspiciousRadioButton.setToolTipText("Exclude all suspicious failures (i.e. result error is over 25%)");
-		this.statusErrorNoticeableRadioButton = createRadioButton(statusErrorGroup, "Noticeable");
-		this.statusErrorNoticeableRadioButton.setToolTipText("Exclude all failures which have a noticeable error (i.e result error is over 3%)");
-		Group statusSmallGroup = createGroup(statusGroup, "Small value", 5);
-		statusErrorGroup.setToolTipText("Exclude from the written status failures depending on their value");
-		this.statusSmallBuildValueCheckBox = createCheckBox(statusSmallGroup, "Build value");
-		this.statusSmallBuildValueCheckBox.setToolTipText("Exclude all failures which have a build result value smaller than 100ms");
-		this.statusSmallDeltaValueCheckBox = createCheckBox(statusSmallGroup, "Delta value");
-		this.statusSmallDeltaValueCheckBox.setToolTipText("Exclude all failures which have a delta result value smaller than 100ms");
-		Group statusStatisticsGroup = createGroup(statusGroup, "Statistics", 5);
-		statusStatisticsGroup.setToolTipText("Exclude from the written status failures depending on build results statistics...");
-		this.statusStatisticNoneRadioButton = createRadioButton(statusStatisticsGroup, "None");
-		this.statusStatisticNoneRadioButton.setToolTipText("Do not exclude failures which have bad baseline results statistics (i.e. variation is over 10%)");
-		this.statusStatisticUnstableRadioButton = createRadioButton(statusStatisticsGroup, "Unstable");
-		this.statusStatisticUnstableRadioButton.setToolTipText("Exclude all failures which have unstable baseline results statistics (i.e. variation is between 10% and 20%)");
-		this.statusStatisticErraticRadioButton = createRadioButton(statusStatisticsGroup, "Erratic");
-		this.statusStatisticErraticRadioButton.setToolTipText("Exclude all failures which have erratic baseline results statistics (i.e. variation is over 20%)");
-		createLabel(statusGroup, "Builds to confirm:", false);
-		this.statusBuildsToConfirm = createTextField(statusGroup);
-		this.statusBuildsToConfirm.setToolTipText("The number of previous builds to take into account to confirm a regression");
-
-		// Comparison
-		Composite compositeComparison = createComposite(parent, 1, 3);
-		Group comparisonGroup = createGroup(compositeComparison, "Comparison", 1);
-		Group thresholdsGroup = createGroup(comparisonGroup, "Thresholds", 6);
-//		Composite compositeFailureThreshold = createComposite(comparisonGroup, 2, 2);
-		createLabel(thresholdsGroup, "Failure:", false);
-		this.comparisonThresholdFailure = createTextField(thresholdsGroup);
-		this.comparisonThresholdFailure.setToolTipText("The threshold in percentage to report a failure");
-		createLabel(thresholdsGroup, "Error:", false);
-		this.comparisonThresholdError = createTextField(thresholdsGroup);
-		this.comparisonThresholdError.setToolTipText("The threshold in percentage to report an error");
-		createLabel(thresholdsGroup, "Improvement:", false);
-		this.comparisonThresholdImprovement = createTextField(thresholdsGroup);
-		this.comparisonThresholdImprovement.setToolTipText("The threshold in percentage to report an improvement");
-
-		// Default dimension layout
-		StringBuilder tooltip = new StringBuilder("Select the default dimension which will be used for performance results\n");
-		tooltip.append("When changed, the new selected dimension is automatically added to the dimensions list below...");
-		String tooltipText = tooltip.toString();
-		Composite compositeDefaultDimension = createComposite(parent, 3, 1);
-		createLabel(compositeDefaultDimension, "Default dimension: ", false);
-		this.defaultDimensionCombo = createCombo(compositeDefaultDimension);
-		this.defaultDimensionCombo.setEditable(false);
-		this.defaultDimensionCombo.setToolTipText(tooltipText);
-
-		// Results dimensions layout
-		tooltip = new StringBuilder("Select the dimensions which will be used while generating performance results\n");
-		tooltip.append("When changed, the default dimension above is automatically added to the new list...");
-		tooltipText = tooltip.toString();
-		Composite compositeResultsDimensions = createComposite(parent, 3, 1);
-		createLabel(compositeResultsDimensions, "Results dimensions: ", true/*beginning*/);
-		this.resultsDimensionsList = createList(compositeResultsDimensions);
-		this.resultsDimensionsList.setToolTipText(tooltipText);
-
-		// Config descriptors layout
-		/* TODO See whether config descriptors need to be set as preferences or not...
-		Composite compositeConfigDescriptors = createComposite(parent, 3);
-		createLabel(compositeConfigDescriptors, "Config descriptors: ", false);
-		this.configDescriptorsTable = createTable(compositeConfigDescriptors);
-		TableColumn firstColumn = new TableColumn(this.configDescriptorsTable, SWT.LEFT);
-		firstColumn.setText ("Name");
-		firstColumn.setWidth(50);
-		TableColumn secondColumn = new TableColumn(this.configDescriptorsTable, SWT.FILL | SWT.LEFT);
-		secondColumn.setText ("Description");
-		secondColumn.setWidth(300);
-		*/
-
-		// init values
-		initializeValues();
-	}
-
-	// font = null;
-	Composite contents = new Composite(parent, SWT.NULL);
-	contents.pack(true);
-	return contents;
-}
-
-/**
- * Utility method that creates a label instance and sets the default layout
- * data.
- *
- * @param parent
- *            the parent for the new label
- * @param text
- *            the text for the new label
- * @return the new label
- */
-private Group createGroup(Composite parent, String text, int columns) {
-	Group group = new Group(parent, SWT.NONE);
-	group.setLayout(new GridLayout(columns, false));
-	group.setText(text);
-	GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
-//	data.horizontalSpan = 1;
-	group.setLayoutData(data);
-	return group;
-}
-
-/**
- * Utility method that creates a label instance and sets the default layout
- * data.
- *
- * @param parent
- *            the parent for the new label
- * @param text
- *            the text for the new label
- * @param beginning TODO
- * @return the new label
- */
-private Label createLabel(Composite parent, String text, boolean beginning) {
-	Label label = new Label(parent, SWT.BEGINNING|SWT.LEFT);
-	label.setText(text);
-	GridData data = new GridData();
-	data.horizontalAlignment = GridData.FILL;
-	data.verticalAlignment = beginning ? GridData.BEGINNING : GridData.CENTER;
-	label.setLayoutData(data);
-	return label;
-}
-
-/**
- * Create a text field specific for this application
- *
- * @param parent
- *            the parent of the new text field
- * @return the new text field
- */
-private List createList(Composite parent) {
-	List list = new List(parent, SWT.MULTI | SWT.BORDER);
-	list.addSelectionListener(this);
-	GridData data = new GridData();
-	data.horizontalSpan = 2;
-	data.horizontalAlignment = GridData.FILL;
-	data.grabExcessHorizontalSpace = true;
-	data.verticalAlignment = GridData.CENTER;
-	data.grabExcessVerticalSpace = false;
-	list.setLayoutData(data);
-	return list;
-}
-
-/**
- * Utility method that creates a push button instance and sets the default
- * layout data.
- *
- * @param parent
- *            the parent for the new button
- * @param label
- *            the label for the new button
- * @return the newly-created button
- */
-private Button createPushButton(Composite parent, String label) {
-	Button button = new Button(parent, SWT.PUSH);
-	button.setText(label);
-	button.addSelectionListener(this);
-	GridData data = new GridData();
-	data.horizontalAlignment = SWT.LEFT;
-	data.grabExcessHorizontalSpace = true;
-//	data.horizontalSpan = 2;
-	data.minimumWidth = 100;
-	button.setLayoutData(data);
-	return button;
-}
-
-/**
- * Utility method that creates a radio button instance and sets the default
- * layout data.
- *
- * @param parent
- *            the parent for the new button
- * @param label
- *            the label for the new button
- * @return the newly-created button
- */
-private Button createRadioButton(Composite parent, String label) {
-	Button button = new Button(parent, SWT.RADIO | SWT.LEFT);
-	button.setText(label);
-	button.addSelectionListener(this);
-	GridData data = new GridData();
-	button.setLayoutData(data);
-	return button;
-}
-
-/*
- * Create a text field specific for this application
- *
- * @param parent
- *            the parent of the new text field
- * @return the new text field
- *
-private Table createTable(Composite parent) {
-	Table table = new Table(parent, SWT.BORDER);
-	table.setLinesVisible (true);
-	table.setHeaderVisible (true);
-	GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
-	gridData.heightHint = 150;
-	table.setLayoutData(gridData);
-	return table;
-}
-*/
-
-/*
- * Create a text field specific for this application
- *
- * @param parent
- *            the parent of the new text field
- * @return the new text field
- */
-private Text createTextField(Composite parent) {
-	Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-	text.addModifyListener(this);
-	GridData data = new GridData();
-	data.horizontalAlignment = GridData.FILL;
-	data.grabExcessHorizontalSpace = true;
-	data.verticalAlignment = GridData.CENTER;
-	data.grabExcessVerticalSpace = false;
-	text.setLayoutData(data);
-	return text;
-}
-
-/**
- * The <code>ReadmePreferencePage</code> implementation of this
- * <code>PreferencePage</code> method returns preference store that belongs to
- * the our plugin. This is important because we want to store our preferences
- * separately from the workbench.
- */
-@Override
-protected IPreferenceStore doGetPreferenceStore() {
-	return UiPlugin.getDefault().getPreferenceStore();
-}
-
-String getDialogTitle() {
-	String title = DB_Results.getDbTitle();
-	if (title == null) {
-		// DB is not connected
-		int version;
-		if (this.mVersionRadioButton.getSelection()) {
-			version = ECLIPSE_MAINTENANCE_VERSION;
-		} else {
-			version = ECLIPSE_DEVELOPMENT_VERSION;
-		}
-		title = "Eclipse " + version + " - DB not connected";
-	}
-	return title;
-}
-
-/*
- * Get the directory path using the given location as default.
- */
-private String getDirectoryPath(String location) {
-	DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.OPEN);
-	dialog.setText(getDialogTitle());
-	dialog.setMessage("Select local database directory:");
-	dialog.setFilterPath(location);
-	String path = dialog.open();
-	if (path != null) {
-		File dir = new File(path);
-		if (dir.exists() && dir.isDirectory()) {
-			return dir.getAbsolutePath();
-		}
-	}
-	return null;
-}
-
-@Override
-public void init(IWorkbench workbench) {
-	// do nothing
-}
-
-/*
- * Init he contents of the dimensions list controls.
- */
-void initDimensionsLists() {
-	// Dimensions lists
-	java.util.List<String> dimensions = PerformanceTestPlugin.getDimensions();
-	Iterator<String> names = dimensions.iterator();
-	while (names.hasNext()) {
-		String name = names.next();
-		this.defaultDimensionCombo.add(name);
-		this.resultsDimensionsList.add(name);
-	}
-}
-
-/**
- * Initializes states of the controls using default values in the preference
- * store.
- */
-private void initializeDefaults() {
-	IPreferenceStore store = getPreferenceStore();
-
-	// Init default database values
-	this.dbConnectionCheckBox.setSelection(store.getDefaultBoolean(PRE_DATABASE_CONNECTION));
-	this.dbRelengRadioButton.setSelection(false);
-	this.dbLocalRadioButton.setSelection(false);
-	final boolean dbLocal = store.getDefaultBoolean(PRE_DATABASE_LOCAL);
-	if (dbLocal) {
-		this.dbLocalRadioButton.setSelection(true);
-	} else {
-		this.dbRelengRadioButton.setSelection(true);
-	}
-	this.databaseLocationCombo.removeAll();
-	this.databaseLocationCombo.setText(store.getDefaultString(PRE_DATABASE_LOCATION));
-	updateDatabaseGroup();
-
-	// Init default status values
-	int writeStatus = store.getDefaultInt(PRE_WRITE_STATUS);
-	initStatusValues(writeStatus);
-
-	// Init comparison thresholds
-	this.comparisonThresholdFailure.setText(String.valueOf(store.getDefaultInt(PRE_COMPARISON_THRESHOLD_FAILURE)));
-	this.comparisonThresholdError.setText(String.valueOf(store.getDefaultInt(PRE_COMPARISON_THRESHOLD_ERROR)));
-	this.comparisonThresholdImprovement.setText(String.valueOf(store.getDefaultInt(PRE_COMPARISON_THRESHOLD_IMPROVEMENT)));
-
-	// Init eclipse version
-	this.mVersionRadioButton.setSelection(false);
-	this.dVersionRadionButton.setSelection(false);
-	int version = store.getDefaultInt(PRE_ECLIPSE_VERSION);
-	if (version == ECLIPSE_MAINTENANCE_VERSION) {
-		this.mVersionRadioButton.setSelection(true);
-	} else {
-		this.dVersionRadionButton.setSelection(true);
-	}
-    updateBrowseButtonToolTip(version);
-
-	// Init default default dimension
-	String defaultDimension = store.getDefaultString(PRE_DEFAULT_DIMENSION);
-	this.defaultDimensionCombo.setText(defaultDimension);
-
-	// Init default generated dimensions
-	this.resultsDimensionsList.add(store.getDefaultString(PRE_RESULTS_DIMENSION+".0"));
-	this.resultsDimensionsList.add(store.getDefaultString(PRE_RESULTS_DIMENSION+".1"));
-}
-
-/**
- * Initializes states of the controls from the preference store.
- */
-private void initializeValues() {
-	IPreferenceStore store = getPreferenceStore();
-
-	// Init database info
-	this.dbConnectionCheckBox.setSelection(store.getBoolean(PRE_DATABASE_CONNECTION));
-	final boolean dbLocal = store.getBoolean(PRE_DATABASE_LOCAL);
-	if (dbLocal) {
-		this.dbLocalRadioButton.setSelection(true);
-		this.dbRelengRadioButton.setToolTipText("");
-	} else {
-		this.dbRelengRadioButton.setSelection(true);
-		this.dbRelengRadioButton.setToolTipText(NETWORK_DATABASE_LOCATION);
-	}
-	this.databaseLocationCombo.removeAll();
-	this.databaseLocationCombo.setText(store.getString(PRE_DATABASE_LOCATION));
-	for (int i = 0; i < 3; i++) {
-		String history = store.getString(PRE_DATABASE_LOCATION + "." + i);
-		if (history.length() == 0)
-			break;
-		this.databaseLocationCombo.add(history);
-	}
-	updateDatabaseGroup();
-
-	// Init status values
-	int writeStatus = store.getInt(PRE_WRITE_STATUS);
-	initStatusValues(writeStatus);
-
-	// Init comparison thresholds
-	this.comparisonThresholdFailure.setText(String.valueOf(store.getInt(PRE_COMPARISON_THRESHOLD_FAILURE)));
-	this.comparisonThresholdError.setText(String.valueOf(store.getInt(PRE_COMPARISON_THRESHOLD_ERROR)));
-	this.comparisonThresholdImprovement.setText(String.valueOf(store.getInt(PRE_COMPARISON_THRESHOLD_IMPROVEMENT)));
-
-	// Init eclipse version
-	int version = store.getInt(PRE_ECLIPSE_VERSION);
-	if (version == ECLIPSE_MAINTENANCE_VERSION) {
-		this.mVersionRadioButton.setSelection(true);
-	} else {
-		this.dVersionRadionButton.setSelection(true);
-	}
-    updateBrowseButtonToolTip(version);
-
-	// Init composite lists
-	initDimensionsLists();
-
-	// Init default dimension
-	String defaultDimension = store.getString(PRE_DEFAULT_DIMENSION);
-	this.defaultDimensionCombo.setText(defaultDimension);
-
-	// Init generated dimensions
-	int count = this.resultsDimensionsList.getItemCount();
-	int[] indices = new int[count];
-	int n = 0;
-	String resultsDimension = store.getString(PRE_RESULTS_DIMENSION + "." + n);
-	while (resultsDimension.length() > 0) {
-		indices[n++] = this.resultsDimensionsList.indexOf(resultsDimension);
-		resultsDimension = store.getString(PRE_RESULTS_DIMENSION + "." + n);
-	}
-	if (n < count) {
-		System.arraycopy(indices, 0, indices = new int[n], 0, n);
-	}
-	this.resultsDimensionsList.select(indices);
-
-	// Init config descriptors
-	/* TODO See whether config descriptors need to be set as preferences or not...
-	this.configDescriptorsTable.clearAll();
-	int d = 0;
-	String descriptorName = store.getString(PRE_CONFIG_DESCRIPTOR_NAME + "." + d);
-	String descriptorDescription = store.getString(PRE_CONFIG_DESCRIPTOR_DESCRIPTION + "." + d++);
-	while (descriptorName.length() > 0) {
-		TableItem tableItem = new TableItem (this.configDescriptorsTable, SWT.NONE);
-		tableItem.setText (0, descriptorName);
-		tableItem.setText (1, descriptorDescription);
-		descriptorName = store.getString(PRE_CONFIG_DESCRIPTOR_NAME + "." + d);
-		descriptorDescription = store.getString(PRE_CONFIG_DESCRIPTOR_DESCRIPTION + "." + d++);
-	}
-	*/
-}
-
-private void initStatusValues(int writeStatus) {
-	this.statusValuesCheckBox.setSelection((writeStatus & STATUS_VALUES) != 0);
-	this.statusErrorNoneRadioButton.setSelection(false);
-	this.statusErrorNoticeableRadioButton.setSelection(false);
-	this.statusErrorSuspiciousRadioButton.setSelection(false);
-	this.statusErrorWeirdRadioButton.setSelection(false);
-	this.statusErrorInvalidRadioButton.setSelection(false);
-	switch (writeStatus & STATUS_ERROR_LEVEL_MASK) {
-		case STATUS_ERROR_NONE:
-			this.statusErrorNoneRadioButton.setSelection(true);
-			break;
-		case STATUS_ERROR_NOTICEABLE:
-			this.statusErrorNoticeableRadioButton.setSelection(true);
-			break;
-		case STATUS_ERROR_SUSPICIOUS:
-			this.statusErrorSuspiciousRadioButton.setSelection(true);
-			break;
-		case STATUS_ERROR_WEIRD:
-			this.statusErrorWeirdRadioButton.setSelection(true);
-			break;
-		case STATUS_ERROR_INVALID:
-			this.statusErrorInvalidRadioButton.setSelection(true);
-			break;
-	}
-	this.statusSmallBuildValueCheckBox.setSelection(false);
-	this.statusSmallDeltaValueCheckBox.setSelection(false);
-	switch (writeStatus & STATUS_SMALL_VALUE_MASK) {
-		case STATUS_SMALL_VALUE_BUILD:
-			this.statusSmallBuildValueCheckBox.setSelection(true);
-			break;
-		case STATUS_SMALL_VALUE_DELTA:
-			this.statusSmallDeltaValueCheckBox.setSelection(true);
-			break;
-	}
-	this.statusStatisticNoneRadioButton.setSelection(false);
-	this.statusStatisticErraticRadioButton.setSelection(false);
-	this.statusStatisticUnstableRadioButton.setSelection(false);
-	switch (writeStatus & STATUS_STATISTICS_MASK) {
-		case 0:
-			this.statusStatisticNoneRadioButton.setSelection(true);
-			break;
-		case STATUS_STATISTICS_ERRATIC:
-			this.statusStatisticErraticRadioButton.setSelection(true);
-			break;
-		case STATUS_STATISTICS_UNSTABLE:
-			this.statusStatisticUnstableRadioButton.setSelection(true);
-			break;
-	}
-	this.statusBuildsToConfirm.setText(String.valueOf(writeStatus & STATUS_BUILDS_NUMBER_MASK));
-}
-
-@Override
-public void modifyText(ModifyEvent event) {
-
-	// Add default dimension to results if necessary
-	if (event.getSource() == this.defaultDimensionCombo) {
-		String[] resultsDimensions = this.resultsDimensionsList.getSelection();
-		int length = resultsDimensions.length;
-		String defaultDimension = this.defaultDimensionCombo.getText();
-		for (int i = 0; i < length; i++) {
-			if (resultsDimensions[i].equals(defaultDimension)) {
-				// Default dim is already set as a results dimension, hence nothing has to be done
-				return;
-			}
-		}
-		System.arraycopy(resultsDimensions, 0, resultsDimensions = new String[length + 1], 0, length);
-		resultsDimensions[length] = defaultDimension;
-		this.resultsDimensionsList.setSelection(resultsDimensions);
-	}
-
-	// Verify the 'builds to confirm' number
-	if (event.getSource() == this.statusBuildsToConfirm) {
-		try {
-			int number = Integer.parseInt(this.statusBuildsToConfirm.getText());
-			if (number < 0) {
-				this.statusBuildsToConfirm.setText("0");
-			} else {
-				int buildsNumber = DB_Results.getBuildsNumber();
-				if (number > buildsNumber) {
-					this.statusBuildsToConfirm.setText(String.valueOf(buildsNumber));
-				}
-			}
-		}
-		catch (NumberFormatException nfe) {
-			this.statusBuildsToConfirm.setText("1");
-		}
-	}
-}
-
-
-/**
- * @param milestone
- */
-void openMilestoneErrorMessage(String milestone) {
-	MessageDialog.openError(getShell(), getDialogTitle(), milestone+" is an invalid milestone date. Only 'yyyymmddHHMM' format is accepted!");
-}
-
-@Override
-protected void performDefaults() {
-	super.performDefaults();
-	initializeDefaults();
-}
-
-@Override
-public boolean performOk() {
-	final boolean hasBuildsView = this.buildsView != null;
-	if (hasBuildsView) {
-		storeValues();
-		try {
-			IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode(PLUGIN_ID);
-			preferences.flush();
-			this.buildsView.resetView();
-		} catch (BackingStoreException e) {
-			e.printStackTrace();
-			return false;
-		}
-	}
-	return true;
-}
-
-/**
- * Stores the values of the controls back to the preference store.
- */
-private void storeValues() {
-	IPreferenceStore store = getPreferenceStore();
-
-	// Set version
-	int version;
-	if (this.mVersionRadioButton.getSelection()) {
-		version = ECLIPSE_MAINTENANCE_VERSION;
-	} else {
-		version = ECLIPSE_DEVELOPMENT_VERSION;
-	}
-	store.setValue(PRE_ECLIPSE_VERSION, version);
-
-	// Set database values
-	store.setValue(PRE_DATABASE_CONNECTION, this.dbConnectionCheckBox.getSelection());
-	final boolean dbLocal = this.dbLocalRadioButton.getSelection();
-	store.setValue(PRE_DATABASE_LOCAL, dbLocal);
-	String location = this.databaseLocationCombo.getText();
-	if (dbLocal) {
-		store.setValue(PRE_DATABASE_LOCATION, location);
-	} else {
-		store.setValue(PRE_DATABASE_LOCATION, NETWORK_DATABASE_LOCATION);
-	}
-	int count = this.databaseLocationCombo.getItemCount();
-	for (int i=0; i<count; i++) {
-		String item = this.databaseLocationCombo.getItem(i);
-		if (item.equals(location)) {
-			this.databaseLocationCombo.remove(i);
-			break;
-		}
-	}
-	if (dbLocal) {
-		this.databaseLocationCombo.add(location, 0);
-	}
-	int i=0;
-	for (; i<count; i++) {
-		String item = this.databaseLocationCombo.getItem(i);
-		if (item.length() == 0) break;
-		store.setValue(PRE_DATABASE_LOCATION+"."+i, item);
-	}
-	while (store.getString(PRE_DATABASE_LOCATION+"."+i).length() > 0) {
-		store.setToDefault(PRE_DATABASE_LOCATION+"."+i);
-		i++;
-	}
-
-	// Set status values
-	int writeStatus = 0;
-	if (this.statusValuesCheckBox.getSelection()) {
-		writeStatus |= STATUS_VALUES;
-	}
-	if (this.statusErrorNoneRadioButton.getSelection()) {
-		writeStatus |= STATUS_ERROR_NONE;
-	} else if (this.statusErrorNoticeableRadioButton.getSelection()) {
-		writeStatus |= STATUS_ERROR_NOTICEABLE;
-	} else if (this.statusErrorSuspiciousRadioButton.getSelection()) {
-		writeStatus |= STATUS_ERROR_SUSPICIOUS;
-	} else if (this.statusErrorWeirdRadioButton.getSelection()) {
-		writeStatus |= STATUS_ERROR_WEIRD;
-	} else if (this.statusErrorInvalidRadioButton.getSelection()) {
-		writeStatus |= STATUS_ERROR_INVALID;
-	}
-	if (this.statusSmallBuildValueCheckBox.getSelection()) {
-		writeStatus |= STATUS_SMALL_VALUE_BUILD;
-	}
-	if (this.statusSmallDeltaValueCheckBox.getSelection()) {
-		writeStatus |= STATUS_SMALL_VALUE_DELTA;
-	}
-	if (this.statusStatisticNoneRadioButton.getSelection()) {
-		writeStatus &= ~STATUS_STATISTICS_MASK;
-	} else if (this.statusStatisticErraticRadioButton.getSelection()) {
-		writeStatus |= STATUS_STATISTICS_ERRATIC;
-	} else if (this.statusStatisticUnstableRadioButton.getSelection()) {
-		writeStatus |= STATUS_STATISTICS_UNSTABLE;
-	}
-	writeStatus += Integer.parseInt(this.statusBuildsToConfirm.getText());
-	store.setValue(PRE_WRITE_STATUS, writeStatus);
-
-	// Init comparison thresholds
-	store.setValue(PRE_COMPARISON_THRESHOLD_FAILURE, Integer.parseInt(this.comparisonThresholdFailure.getText()));
-	store.setValue(PRE_COMPARISON_THRESHOLD_ERROR, Integer.parseInt(this.comparisonThresholdError.getText()));
-	store.setValue(PRE_COMPARISON_THRESHOLD_IMPROVEMENT, Integer.parseInt(this.comparisonThresholdImprovement.getText()));
-
-	// Set milestones
-	String prefix = PRE_MILESTONE_BUILDS + "." + version;
-
-	// Unset previous additional milestones
-	String milestone = store.getString(prefix + count);
-	while (milestone != null && milestone.length() > 0) {
-		store.putValue(prefix + count++, "");
-		milestone = store.getString(prefix + count);
-	}
-
-	// Set default dimension
-	String defaultDimension = this.defaultDimensionCombo.getText();
-	store.putValue(PRE_DEFAULT_DIMENSION, defaultDimension);
-	DB_Results.setDefaultDimension(defaultDimension);
-
-	// Set generated dimensions
-	int[] indices = this.resultsDimensionsList.getSelectionIndices();
-	int length = indices.length;
-	String[] dimensions = new String[length];
-	if (length > 0) {
-		for (i = 0; i < indices.length; i++) {
-			dimensions[i] = this.resultsDimensionsList.getItem(indices[i]);
-			store.putValue(PRE_RESULTS_DIMENSION + "." + i, dimensions[i]);
-		}
-	}
-	int currentLength = DB_Results.getResultsDimensions().length;
-	if (currentLength > length) {
-		for (i = currentLength - 1; i >= length; i--) {
-			store.putValue(PRE_RESULTS_DIMENSION + "." + i, ""); // reset extra dimensions
-		}
-	}
-	DB_Results.setResultsDimensions(dimensions);
-
-}
-
-@Override
-public void widgetDefaultSelected(SelectionEvent event) {
-}
-
-@Override
-public void widgetSelected(SelectionEvent event) {
-
-	// As for directory when 'Local' button is pushed
-	final Object source = event.getSource();
-	if (source == this.dbLocalBrowseButton) {
-		String location = this.databaseLocationCombo.getText();
-		String path = getDirectoryPath(location);
-		if (path != null) {
-			// First verify that the selected dir was correct
-			int version;
-			if (this.mVersionRadioButton.getSelection()) {
-				version = ECLIPSE_MAINTENANCE_VERSION;
-			} else {
-				version = ECLIPSE_DEVELOPMENT_VERSION;
-			}
-			File dbDir = new File(path, "perfDb"+version);
-			if (!dbDir.exists() || !dbDir.isDirectory()) {
-				StringBuilder message = new StringBuilder("Invalid performance database directory\n");
-				message.append(path+" should contain 'perfDb");
-				message.append(version);
-				message.append("' directory and none was found!");
-				MessageDialog.openError(getShell(), getDialogTitle(), message.toString());
-				return;
-			}
-
-			// Look for selected dir in combo box list
-			int count = this.databaseLocationCombo.getItemCount();
-			int index = -1;
-			for (int i = 0; i < count; i++) {
-				String item = this.databaseLocationCombo.getItem(i);
-				if (item.length() == 0) { // nothing in the combo-box list
-					break;
-				}
-				if (item.equals(path)) {
-					index = i;
-					break;
-				}
-			}
-			// Set the selected dir the more recent in the previous dirs list
-			if (index !=  0) {
-				if (index > 0) {
-					// the dir was used before, but not recently => remove it from previous dirs list
-					this.databaseLocationCombo.remove(index);
-				}
-				// add the selected dir on the top of the previous dirs list
-				this.databaseLocationCombo.add(path, 0);
-			}
-			// Set combo box text
-			this.databaseLocationCombo.setText(path);
-			updateLocalDb();
-		}
-	}
-
-	// Reset dabase location when 'Releng' button is pushed
-	if (source == this.dbConnectionCheckBox) {
-		updateDatabaseGroup();
-	}
-
-	// Reset dabase location when 'Releng' check-box is checked
-	if (source == this.dbLocalRadioButton) {
-		updateLocalDb();
-	}
-
-	// Add default dimension to results if necessary
-	if (source == this.resultsDimensionsList) {
-		String[] resultsDimensions = this.resultsDimensionsList.getSelection();
-		int length = resultsDimensions.length;
-		String defaultDimension = this.defaultDimensionCombo.getText();
-		for (int i = 0; i < length; i++) {
-			if (resultsDimensions[i].equals(defaultDimension)) {
-				// Default dim is already set as a results dimension, hence nothing has to be done
-				return;
-			}
-		}
-		System.arraycopy(resultsDimensions, 0, resultsDimensions = new String[length + 1], 0, length);
-		resultsDimensions[length] = defaultDimension;
-		this.resultsDimensionsList.setSelection(resultsDimensions);
-	}
-
-//	if (source == this.lastBuildCheckBox) {
-//		this.lastBuildCombo.setEnabled(this.lastBuildCheckBox.getSelection());
-//	}
-
-	if (source == this.mVersionRadioButton) {
-		if (this.mVersionRadioButton.getSelection()) {
-		    updateBrowseButtonToolTip(ECLIPSE_MAINTENANCE_VERSION);
-		}
-	}
-
-	if (source == this.dVersionRadionButton) {
-		if (this.dVersionRadionButton.getSelection()) {
-		    updateBrowseButtonToolTip(ECLIPSE_DEVELOPMENT_VERSION);
-		}
-	}
-}
-
-/*
- * Update browse tooltip
- */
-void updateBrowseButtonToolTip(int version) {
-	this.dbLocalBrowseButton.setToolTipText("Select the directory where the database was unzipped\n(i.e. should contain the perfDb"+version+" subdirectory)");
-}
-
-/*
- * Update database group controls.
- */
-void updateDatabaseGroup() {
-	if (this.dbConnectionCheckBox.getSelection()) {
-		this.dbRelengRadioButton.setEnabled(true);
-		this.dbLocalRadioButton.setEnabled(true);
-		updateLocalDb();
-	} else {
-		this.dbRelengRadioButton.setEnabled(false);
-		this.dbLocalRadioButton.setEnabled(false);
-		this.databaseLocationCombo.setEnabled(false);
-		this.dbLocalBrowseButton.setEnabled(false);
-		setValid(true);
-	}
-}
-
-/*
- * Update database location controls.
- */
-void updateLocalDb() {
-	if (this.dbLocalRadioButton.getSelection()) {
-		this.databaseLocationCombo.setEnabled(true);
-		this.dbLocalBrowseButton.setEnabled(true);
-		if (this.databaseLocationCombo.getItemCount() == 0) {
-			this.databaseLocationCombo.setText("");
-			setValid(false);
-		} else {
-			this.databaseLocationCombo.select(0);
-			setValid(true);
-		}
-		this.dbRelengRadioButton.setToolTipText("");
-		this.dbLocationLabel.setEnabled(true);
-	} else {
-		this.dbRelengRadioButton.setToolTipText(NETWORK_DATABASE_LOCATION);
-		this.databaseLocationCombo.setText("");
-		this.databaseLocationCombo.setEnabled(false);
-		this.dbLocalBrowseButton.setEnabled(false);
-		setValid(true);
-		this.dbLocationLabel.setEnabled(false);
-	}
-}
-
-}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformancesView.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformancesView.java
deleted file mode 100644
index 74783b2..0000000
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformancesView.java
+++ /dev/null
@@ -1,580 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.results.ui;
-
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.text.NumberFormat;
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Set;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.test.internal.performance.results.db.DB_Results;
-import org.eclipse.test.internal.performance.results.model.BuildResultsElement;
-import org.eclipse.test.internal.performance.results.model.PerformanceResultsElement;
-import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.osgi.service.prefs.BackingStoreException;
-
-
-/**
- * Abstract view for performance results.
- */
-public abstract class PerformancesView extends ViewPart implements ISelectionChangedListener, IPreferenceChangeListener {
-
-	// Format
-	static final NumberFormat DOUBLE_FORMAT = NumberFormat.getNumberInstance(Locale.US);
-	static {
-		DOUBLE_FORMAT.setMaximumFractionDigits(3);
-	}
-
-	// Graphic constants
-	static final Display DEFAULT_DISPLAY = Display.getDefault();
-	static final Color BLACK= DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_BLACK);
-	static final Color BLUE= DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_BLUE);
-	static final Color GREEN= DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_GREEN);
-	static final Color RED = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_RED);
-	static final Color GRAY = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_GRAY);
-	static final Color DARK_GRAY = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_DARK_GRAY);
-	static final Color YELLOW = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_YELLOW);
-	static final Color WHITE = DEFAULT_DISPLAY.getSystemColor(SWT.COLOR_WHITE);
-
-	// Viewer filters
-	static final ViewerFilter[] NO_FILTER = new ViewerFilter[0];
-	final static ViewerFilter FILTER_BASELINE_BUILDS = new ViewerFilter() {
-		@Override
-    public boolean select(Viewer v, Object parentElement, Object element) {
-			if (element instanceof BuildResultsElement) {
-				BuildResultsElement buildElement = (BuildResultsElement) element;
-				return !buildElement.getName().startsWith(DB_Results.getDbBaselinePrefix());
-			}
-			return true;
-		}
-	};
-	final static ViewerFilter FILTER_OLD_BUILDS = new ViewerFilter() {
-		@Override
-    public boolean select(Viewer v, Object parentElement, Object element) {
-			if (element instanceof BuildResultsElement) {
-				BuildResultsElement buildElement = (BuildResultsElement) element;
-				return buildElement.isImportant();
-			}
-	        return true;
-        }
-	};
-	Set<ViewerFilter> viewFilters = new HashSet<>();
-
-	// SWT resources
-	Shell shell;
-	Display display;
-	TreeViewer viewer;
-	IPropertySheetPage propertyPage;
-
-	// Directories
-	File dataDir;
-	File resultsDir = null;
-
-	// Views
-	IMemento viewState;
-
-	// Results model information
-	PerformanceResultsElement results;
-
-	// Actions
-	Action changeDataDir;
-	Action filterBaselineBuilds;
-	Action filterOldBuilds;
-//	Action dbConnection;
-
-	// Eclipse preferences
-	IEclipsePreferences preferences;
-
-/**
- * Get a view from its ID.
- *
- * @param viewId The ID of the view
- * @return The found view or <code>null</code> if not found.
- */
-static IViewPart getWorkbenchView(String viewId) {
-	IWorkbench workbench = PlatformUI.getWorkbench();
-	IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
-	int length = windows.length;
-	for (int i=0; i<length; i++) {
-		IWorkbenchWindow window = windows[i];
-		IWorkbenchPage[] pages = window.getPages();
-		int pLength = pages.length;
-		for (int j=0; j<pLength; j++) {
-			IWorkbenchPage page = pages[i];
-			IViewPart view = page.findView(viewId);
-			if (view != null) {
-				return view;
-			}
-		}
-	}
-	return null;
-}
-
-/**
- * The constructor.
- */
-public PerformancesView() {
-
-	// Get preferences
-	this.preferences = InstanceScope.INSTANCE.getNode(IPerformancesConstants.PLUGIN_ID);
-
-	// Init db constants
-	int eclipseVersion = this.preferences.getInt(IPerformancesConstants.PRE_ECLIPSE_VERSION, IPerformancesConstants.DEFAULT_ECLIPSE_VERSION);
-	String databaseLocation = this.preferences.get(IPerformancesConstants.PRE_DATABASE_LOCATION, IPerformancesConstants.NETWORK_DATABASE_LOCATION);
-	boolean connected = this.preferences.getBoolean(IPerformancesConstants.PRE_DATABASE_CONNECTION, IPerformancesConstants.DEFAULT_DATABASE_CONNECTION);
-	DB_Results.updateDbConstants(connected, eclipseVersion, databaseLocation);
-	this.preferences.addPreferenceChangeListener(this);
-
-	// Init tool tip
-	setTitleToolTip();
-
-}
-
-File changeDataDir(String lastBuild) {
-	String localDataDir = this.preferences.get(IPerformancesConstants.PRE_LOCAL_DATA_DIR, "");
-	String filter = (this.dataDir == null) ? localDataDir : this.dataDir.getPath();
-	File dir = this.dataDir;
-	this.dataDir = changeDir(filter, "Select directory for data local files");
-	boolean refresh = false;
-	if (this.dataDir != null) {
-		this.preferences.put(IPerformancesConstants.PRE_LOCAL_DATA_DIR, this.dataDir.getAbsolutePath());
-		if (dir != null && dir.getPath().equals(this.dataDir.getPath())) {
-			refresh = MessageDialog.openQuestion(this.shell, getTitleToolTip(), "Do you want to read local file again?");
-		} else {
-			refresh = true;
-		}
-		if (refresh) {
-			// Confirm the read when there's a last build set
-			if (lastBuild != null) {
-				if (!MessageDialog.openConfirm(PerformancesView.this.shell, getTitleToolTip(), "Only builds before "+lastBuild+" will be taken into account!\nDo you want to continue?")) {
-					return null;
-				}
-			}
-			refresh(lastBuild);
-			return getSiblingView().dataDir = this.dataDir;
-		}
-	}
-	return null;
-}
-
-/*
- * Select a directory.
- */
-File changeDir(String filter, String msg) {
-    DirectoryDialog dialog = new DirectoryDialog(getSite().getShell(), SWT.OPEN);
-    dialog.setText(getTitleToolTip());
-    dialog.setMessage(msg);
-    if (filter != null) {
-    	dialog.setFilterPath(filter);
-    }
-    String path = dialog.open();
-    if (path != null) {
-	    File dir = new File(path);
-	    if (dir.exists() && dir.isDirectory()) {
-    		return dir;
-	    }
-    }
-    return null;
-}
-
-/*
- * Contribute actions to bars.
- */
-void contributeToActionBars() {
-	IActionBars bars = getViewSite().getActionBars();
-	fillLocalPullDown(bars.getMenuManager());
-	fillLocalToolBar(bars.getToolBarManager());
-}
-
-@Override
-public void createPartControl(Composite parent) {
-	// Cache the shell and display.
-	this.shell = parent.getShell ();
-	this.display = this.shell.getDisplay ();
-}
-
-/*
- * Fill the context menu.
- */
-void fillContextMenu(@SuppressWarnings("unused") IMenuManager manager) {
-	// no default contextual action
-}
-
-/*
- * Fill the filters drop-down menu.
- */
-void fillFiltersDropDown(IMenuManager manager) {
-	manager.add(this.filterBaselineBuilds);
-}
-
-/*
- * Fill the local data drop-down menu
- */
-void fillLocalDataDropDown(IMenuManager manager) {
-	manager.add(this.changeDataDir);
-}
-
-/*
- * Fill the local pull down menu.
- */
-void fillLocalPullDown(IMenuManager manager) {
-
-	// Filters menu
-	MenuManager filtersManager= new MenuManager("Filters");
-	fillFiltersDropDown(filtersManager);
-	manager.add(filtersManager);
-
-	// Local data menu
-	MenuManager localDataManager= new MenuManager("Local data");
-	fillLocalDataDropDown(localDataManager);
-	manager.add(localDataManager);
-}
-
-/*
- * Fill the local toolbar.
- */
-void fillLocalToolBar(@SuppressWarnings("unused") IToolBarManager manager) {
-	// no default toolbar action
-}
-
-/*
- * Filter non milestone builds action run.
- */
-void filterOldBuilds(boolean filter) {
-	if (filter) {
-		this.viewFilters.add(FILTER_OLD_BUILDS);
-	} else {
-		this.viewFilters.remove(FILTER_OLD_BUILDS);
-	}
-	this.preferences.putBoolean(IPerformancesConstants.PRE_FILTER_OLD_BUILDS, filter);
-	updateFilters();
-}
-
-/*
- * Finalize the viewer creation
- */
-void finalizeViewerCreation() {
-	makeActions();
-	hookContextMenu();
-	contributeToActionBars();
-	restoreState();
-	updateFilters();
-	this.viewer.setInput(getViewSite());
-	this.viewer.addSelectionChangedListener(this);
-}
-
-@Override
-public <T> T getAdapter(Class<T> adapter) {
-    if (adapter.equals(IPropertySheetPage.class)) {
-        return adapter.cast(getPropertySheet());
-    }
-    return super.getAdapter(adapter);
-}
-
-/**
- * Returns the property sheet.
- */
-protected IPropertySheetPage getPropertySheet() {
-	if (this.propertyPage == null) {
-		this.propertyPage = new PropertySheetPage();
-	}
-    return this.propertyPage;
-}
-
-/*
- * Get the sibling view (see subclasses).
- */
-abstract PerformancesView getSiblingView();
-
-/*
- * Hook the context menu.
- */
-void hookContextMenu() {
-	MenuManager menuMgr = new MenuManager("#PopupMenu");
-	menuMgr.setRemoveAllWhenShown(true);
-	menuMgr.addMenuListener(this::fillContextMenu);
-	Menu menu = menuMgr.createContextMenu(this.viewer.getControl());
-	this.viewer.getControl().setMenu(menu);
-	getSite().registerContextMenu(menuMgr, this.viewer);
-}
-
-@Override
-public void init(IViewSite site, IMemento memento) throws PartInitException {
-	super.init(site, memento);
-	this.viewState = memento;
-}
-
-/*
- * Init results
- */
-void initResults() {
-	this.results = PerformanceResultsElement.PERF_RESULTS_MODEL;
-	if (this.results.isInitialized()) {
-		this.dataDir = getSiblingView().dataDir;
-	} else {
-		String localDataDir = this.preferences.get(IPerformancesConstants.PRE_LOCAL_DATA_DIR, null);
-		if (localDataDir != null) {
-			File dir = new File(localDataDir);
-			if (dir.exists() && dir.isDirectory()) {
-				this.dataDir = dir;
-				readLocalFiles(null);
-			}
-		}
-	}
-}
-
-/*
- * Make common actions to performance views.
- */
-void makeActions() {
-
-	// Change data dir action
-	this.changeDataDir = new Action("&Read...") {
-		@Override
-    public void run() {
-			changeDataDir(null);
-		}
-	};
-	this.changeDataDir.setToolTipText("Change the directory of the local data files");
-//	this.changeDataDir.setImageDescriptor(ResultsElement.FOLDER_IMAGE_DESCRIPTOR);
-
-	// Filter baselines action
-	this.filterBaselineBuilds = new Action("&Baselines", IAction.AS_CHECK_BOX) {
-		@Override
-    public void run() {
-			if (isChecked()) {
-				PerformancesView.this.viewFilters.add(FILTER_BASELINE_BUILDS);
-			} else {
-				PerformancesView.this.viewFilters.remove(FILTER_BASELINE_BUILDS);
-			}
-			updateFilters();
-        }
-	};
-	this.filterBaselineBuilds.setToolTipText("Filter baseline builds");
-
-	// Filter non-important builds action
-	this.filterOldBuilds = new Action("&Old Builds", IAction.AS_CHECK_BOX) {
-		@Override
-    public void run() {
-			filterOldBuilds(isChecked());
-		}
-	};
-	this.filterOldBuilds.setChecked(false);
-	this.filterOldBuilds.setToolTipText("Filter old builds (i.e. before last milestone) but keep all previous milestones)");
-}
-
-@Override
-public void preferenceChange(PreferenceChangeEvent event) {
-	// do nothing
-}
-
-/*
- * Read local files
- */
-void readLocalFiles(final String lastBuild) {
-
-	// Create runnable to read local files
-	IRunnableWithProgress runnable = monitor -> {
-  	try {
-  		monitor.beginTask("Read local files", 1000);
-  		PerformancesView.this.results.readLocal(PerformancesView.this.dataDir, monitor, lastBuild);
-  		monitor.done();
-  	} catch (Exception e) {
-  		e.printStackTrace();
-  	}
-  };
-
-	// Execute the runnable with progress
-	ProgressMonitorDialog readProgress = new ProgressMonitorDialog(getSite().getShell());
-	try {
-		readProgress.run(true, true, runnable);
-	} catch (InvocationTargetException e) {
-		// skip
-	} catch (InterruptedException e) {
-		// skip
-	}
-}
-
-/*
- * Refresh the views.
- */
-void refresh(String lastBuild) {
-
-	// Read local files
-	readLocalFiles(lastBuild);
-
-	// Refresh views
-	refreshInput();
-	getSiblingView().refreshInput();
-}
-
-/*
- * Refresh the entire view by resetting its input.
- */
-void refreshInput() {
-	this.viewer.setInput(getViewSite());
-	this.viewer.refresh();
-}
-
-/*
- * Clear view content.
- */
-void resetInput() {
-	this.results.reset(null);
-	this.viewer.setInput(getViewSite());
-	this.viewer.refresh();
-}
-
-/*
- * Restore the view state from the memento information.
- */
-void restoreState() {
-
-	// Filter baselines action state
-	if (this.viewState != null) {
-		Boolean filterBaselinesState = this.viewState.getBoolean(IPerformancesConstants.PRE_FILTER_BASELINE_BUILDS);
-		boolean filterBaselinesValue = filterBaselinesState == null ? false : filterBaselinesState.booleanValue();
-		this.filterBaselineBuilds.setChecked(filterBaselinesValue);
-		if (filterBaselinesValue) {
-			this.viewFilters.add(FILTER_BASELINE_BUILDS);
-		}
-		String dir = this.viewState.getString(IPerformancesConstants.PRE_WRITE_RESULTS_DIR);
-		if (dir != null) {
-			this.resultsDir = new File(dir);
-		}
-	}
-
-	// Filter non important builds action state
-	boolean checked = this.preferences.getBoolean(IPerformancesConstants.PRE_FILTER_OLD_BUILDS, IPerformancesConstants.DEFAULT_FILTER_OLD_BUILDS);
-	this.filterOldBuilds.setChecked(checked);
-	if (checked) {
-		this.viewFilters.add(FILTER_OLD_BUILDS);
-	}
-}
-
-@Override
-public void saveState(IMemento memento) {
-	super.saveState(memento);
-	memento.putBoolean(IPerformancesConstants.PRE_FILTER_BASELINE_BUILDS, this.filterBaselineBuilds.isChecked());
-	try {
-		this.preferences.flush();
-	} catch (BackingStoreException e) {
-		// ignore
-	}
-	if (this.resultsDir != null) {
-		memento.putString(IPerformancesConstants.PRE_WRITE_RESULTS_DIR, this.resultsDir.getPath());
-	}
-}
-
-@Override
-public void selectionChanged(SelectionChangedEvent event) {
-	if (this.propertyPage != null) {
-		this.propertyPage.selectionChanged(this, event.getSelection());
-	}
-}
-
-/**
- * Passing the focus request to the viewer's control.
- */
-@Override
-public void setFocus() {
-	this.viewer.getControl().setFocus();
-}
-
-/*
- * Set the view tooltip to reflect the DB connection kind.
- */
-void setTitleToolTip() {
-	String title = DB_Results.getDbTitle();
-	if (title == null) {
-		// DB is not connected
-		int version = this.preferences.getInt(IPerformancesConstants.PRE_ECLIPSE_VERSION, IPerformancesConstants.DEFAULT_ECLIPSE_VERSION);
-		title = "Eclipse v" + version + " - DB not connected";
-	}
-	setTitleToolTip(title);
-}
-
-/*
- * Set/unset the database connection.
- *
-void toogleDbConnection() {
-
-	// Toogle DB connection and store new state
-	boolean dbConnected = this.preferences.getBoolean(IPerformancesConstants.PRE_DATABASE_CONNECTION, IPerformancesConstants.DEFAULT_DATABASE_CONNECTION);
-	DB_Results.DB_CONNECTION = !dbConnected;
-	getSiblingView().dbConnection.setChecked(DB_Results.DB_CONNECTION);
-	this.preferences.putBoolean(IPerformancesConstants.PRE_DATABASE_CONNECTION, DB_Results.DB_CONNECTION);
-
-	// First close DB connection
-	if (!DB_Results.DB_CONNECTION) {
-		DB_Results.shutdown();
-	}
-
-	// Read local files if any
-	if (this.dataDir != null) {
-		readLocalFiles();
-	}
-
-	// Refresh views
-	refreshInput();
-	getSiblingView().refreshInput();
-}
-*/
-
-/*
- * Update the filters from the stored list and apply them to the view.
- */
-final void updateFilters() {
-	ViewerFilter[] filters = new ViewerFilter[this.viewFilters.size()];
-	this.viewFilters.toArray(filters);
-	this.viewer.setFilters(filters);
-}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.ui/toc.xml b/bundles/org.eclipse.test.performance.ui/toc.xml
deleted file mode 100644
index e6becb2..0000000
--- a/bundles/org.eclipse.test.performance.ui/toc.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Performance Results Guide">
-    <topic label="Overview"  href="html/overview.html"> 
-        <topic label="Preferences" href="html/preferences.html"/> 
-        <topic label="Local data" href="html/local_data.html"/> 
-    </topic>
-    <topic label="Views">
-        <topic label="Components" href="html/components.html"/> 
-        <topic label="Properties" href="html/properties.html"/> 
-        <topic label="Builds" href="html/builds.html"/> 
-        <topic label="Results" href="html/results.html"/>
-        <topic href="html/builds-comparison.html" label="Builds Comparison"/>
-    </topic>
-    <topic label="Verification" href="html/verification.html"/> 
-</toc>