Bug 572888: Remove deprecated APIs due move o.e.swtchart

Remove also dependency from org.swtchart since it's not needed anymore.

Deprecated in patch:
https://git.eclipse.org/r/157739

Change-Id: I5c9041765c58eab604df6509ef72cdda8b375dde
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/c/tracecompass/org.eclipse.tracecompass/+/179942
Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
diff --git a/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/META-INF/MANIFEST.MF
index 7421508..a7478ac 100644
--- a/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -29,7 +29,6 @@
 Import-Package: org.apache.commons.io,
  org.eclipse.swt.graphics,
  org.eclipse.swtchart,
- org.eclipse.tracecompass.analysis.counters.core,
- org.swtchart
+ org.eclipse.tracecompass.analysis.counters.core
 Automatic-Module-Name: org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests
 Export-Package: org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests;x-internal:=true
diff --git a/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/counters/ui/swtbot/tests/CounterViewPinAndCloneTest.java b/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/counters/ui/swtbot/tests/CounterViewPinAndCloneTest.java
deleted file mode 100644
index 0012c27..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/counters/ui/swtbot/tests/CounterViewPinAndCloneTest.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarDropDownButton;
-import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager;
-import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
-import org.eclipse.tracecompass.tmf.ctf.core.tests.shared.CtfTmfTestTraceUtils;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.XYDataProviderBaseTest;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
-import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXAxisChartViewer;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-import org.eclipse.ui.IViewPart;
-import org.junit.Test;
-
-/**
- * SWTBot tests for pin & clone for xy-charts using Counters view example.
- *
- * @author Bernd Hufmann
- * @deprecated replaced by {@link NewCounterViewPinAndCloneTest}
- */
-@Deprecated
-public class CounterViewPinAndCloneTest extends XYDataProviderBaseTest {
-
-    private static final String TRACETYPE_ID = "org.eclipse.linuxtools.lttng2.kernel.tracetype";
-    private static final String TRACE_NAME = "kernel_vm";
-    private static final @NonNull String COUNTERS_VIEW_TITLE = "Counters (Legacy)";
-    private static final @NonNull String MAIN_SERIES_NAME = "kernel_vm/Ungrouped/minor_faults";
-    private static final @NonNull String COUNTERS_VIEW_ID = "org.eclipse.tracecompass.analysis.counters.ui.view.counters";
-    private static final String PINNED_TO_TRACE_COUNTERS_VIEW_TITLE = COUNTERS_VIEW_TITLE + " <" + TRACE_NAME + ">";
-    private static final String PINNED_TO_CTX_SWITCH_VIEW_TITLE = COUNTERS_VIEW_TITLE + " <context-switches-kernel>";
-
-    private static final String PIN_VIEW_BUTTON_NAME = "Pin View";
-    private static final String UNPIN_VIEW_BUTTON_NAME = "Unpin View";
-    private static final String PIN_TO_PREFIX = "Pin to ";
-    private static final String NEW_COUNTER_STACK_MENU = "New " + COUNTERS_VIEW_TITLE + " view";
-    private static final String PINNED_TO_PREFIX = "pinned to ";
-    private static final String CLONED_TRACE_SUFFIX = " | 2";
-    private static final String CLONED_VIEW_TITLE_NAME = COUNTERS_VIEW_TITLE + " <" + TRACE_NAME + " | 2>";
-
-    private static final int SECOND = 1000000000;
-    private static final long KERNEL_START = 1363700740555978750L;
-    private static final long KERNEL_TEST_START = KERNEL_START + SECOND;
-    private static final long KERNEL_TEST_END = KERNEL_START + 2 * SECOND;
-    private static final long KERNEL_TEST_INITIAL_END = KERNEL_START + 100000000L;
-
-    private static final long KERNEL_INITIAL_END = KERNEL_START + 100000000L;
-
-    private static final @NonNull TmfTimeRange RANGE = new TmfTimeRange(TmfTimestamp.fromNanos(KERNEL_TEST_START), TmfTimestamp.fromNanos(KERNEL_TEST_END));
-
-    /**
-     * Ensure the data displayed in the chart viewer reflects the tree viewer's
-     * selected entries.
-     */
-    @Test
-    public void testPinSingleTrace() {
-        SWTBotView originalViewBot = getSWTBotView();
-
-        // ensure that the view name is correct before
-        assertEquals(COUNTERS_VIEW_TITLE, originalViewBot.getTitle());
-
-        // ensure that the pin drop down is present, pin the view.
-        fBot.waitUntil(new DefaultCondition() {
-            WidgetNotFoundException fException;
-
-            @Override
-            public boolean test() throws Exception {
-                try {
-                    SWTBotToolbarDropDownButton toolbarDropDownButton = originalViewBot.toolbarDropDownButton(PIN_VIEW_BUTTON_NAME);
-                    toolbarDropDownButton.menuItem(PIN_TO_PREFIX + getTestTrace().getName()).click();
-                    return true;
-                } catch (WidgetNotFoundException e) {
-                    fException = e;
-                    return false;
-                }
-            }
-
-            @Override
-            public String getFailureMessage() {
-                return "Traces not available in toolbar drop down menu: " + fException;
-            }
-        });
-
-        // Ensure that the view has been renamed. Get the view by title and ensure i    private static final int SECOND = 1000000000;
-        // has the same widget as there is a renaming bug.
-        assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
-
-        originalViewBot.toolbarButton(UNPIN_VIEW_BUTTON_NAME).click();
-
-        // Ensure that the view has been renamed. Get the view by title and ensure it
-        // has the same widget as there is a renaming bug.
-        assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
-
-        // Ensure that the pin button is present, pin the view.
-        originalViewBot.toolbarButton(PIN_VIEW_BUTTON_NAME).click();
-
-        // Ensure that the view has been renamed. Get the view by title and ensure it
-        // has the same widget as there is a renaming bug.
-        assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
-
-        // Ensure that the pin button is present, unpin the view.
-        originalViewBot.toolbarButton(UNPIN_VIEW_BUTTON_NAME).click();
-        assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
-    }
-
-    /**
-     * Test the behavior with two traces.
-     */
-    @Test
-    public void testPinTwoTraces() {
-        SWTBotView originalViewBot = getSWTBotView();
-
-        ITmfTrace activeTrace = TmfTraceManager.getInstance().getActiveTrace();
-        assertNotNull(activeTrace);
-        ITmfTrace kernelTestTrace = CtfTmfTestTraceUtils.getTrace(CtfTestTrace.CONTEXT_SWITCHES_KERNEL);
-        SWTBotUtils.openTrace(TRACE_PROJECT_NAME, kernelTestTrace.getPath(), TRACETYPE_ID);
-
-        /// Finish waiting for the trace to index
-        WaitUtils.waitForJobs();
-        // wait for the editor to be ready.
-        fBot.editorByTitle(kernelTestTrace.getName());
-
-        // Assert that the pin to drop down menuItems are present for both traces.
-        fBot.waitUntil(new DefaultCondition() {
-            WidgetNotFoundException fException;
-
-            @Override
-            public boolean test() throws Exception {
-                try {
-                    SWTBotToolbarDropDownButton toolbarDropDownButton = originalViewBot.toolbarDropDownButton(PIN_VIEW_BUTTON_NAME);
-                    toolbarDropDownButton.menuItem(PIN_TO_PREFIX + kernelTestTrace.getName());
-                    toolbarDropDownButton.menuItem(PIN_TO_PREFIX + getTestTrace().getName()).click();
-                    return true;
-                } catch (WidgetNotFoundException e) {
-                    fException = e;
-                    return false;
-                }
-            }
-
-            @Override
-            public String getFailureMessage() {
-                return "Traces not available in toolbar drop down menu: " + fException;
-            }
-        });
-
-        /*
-         * Assert that the pinned view is the kernel_vm trace despite the active trace being
-         * the context-switch trace.
-         */
-        assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
-        activeTrace = TmfTraceManager.getInstance().getActiveTrace();
-        assertNotNull("There should be an active trace", activeTrace);
-        assertEquals("context-switches-kernel should be the active trace", kernelTestTrace.getName(), activeTrace.getName());
-
-        // Get the window range of the kernel trace
-        TmfTraceManager traceManager = TmfTraceManager.getInstance();
-        ITmfTrace kernelTrace = traceManager.getActiveTrace();
-        assertNotNull(kernelTrace);
-
-        // Switch back and forth
-        SWTBotUtils.activateEditor(fBot, getTestTrace().getName());
-        assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
-
-        SWTBotUtils.activateEditor(fBot, kernelTestTrace.getName());
-        assertOriginalViewTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
-
-        IViewPart viewPart = originalViewBot.getViewReference().getView(false);
-        assertTrue(viewPart instanceof TmfChartView);
-        final TmfCommonXAxisChartViewer chartViewer = (TmfCommonXAxisChartViewer) getChartViewer(viewPart);
-        assertNotNull(chartViewer);
-        TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, RANGE, kernelTrace));
-
-        // Assert that the original views trace's window range did not change
-        SWTBotUtils.activateEditor(fBot, getTestTrace().getName());
-        SWTBotUtils.waitUntil(v -> (v.getWindowStartTime() == KERNEL_START && v.getWindowEndTime() == KERNEL_TEST_INITIAL_END), chartViewer, "Range of cloned view changed");
-
-        // Unpin from active trace
-        SWTBotUtils.activateEditor(fBot, kernelTrace.getName());
-        originalViewBot.toolbarButton(UNPIN_VIEW_BUTTON_NAME).click();
-        assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
-
-        originalViewBot.toolbarButton(PIN_VIEW_BUTTON_NAME).click();
-
-        assertOriginalViewTitle(PINNED_TO_CTX_SWITCH_VIEW_TITLE);
-
-        // Close the pinned trace
-        SWTBotEditor kernelTable = fBot.editorByTitle(kernelTestTrace.getName());
-        kernelTable.close();
-
-        // Verify that view title is reset
-        SWTBotUtils.waitUntil(v -> v.getReference().getPartName().equals(COUNTERS_VIEW_TITLE), originalViewBot, "View name didn't change");
-        kernelTestTrace.dispose();
-    }
-
-    /**
-     * Test the cloning feature.
-     */
-    @Test
-    public void testCloneSingleTrace() {
-        SWTBotView originalViewBot = getSWTBotView();
-        SWTBotMenu cloneMenu = originalViewBot.viewMenu().menu(NEW_COUNTER_STACK_MENU);
-
-        /*
-         * Assert that the original editor was not renamed and that the cloned one
-         * exists and is pinned to the kernel_vm trace.
-         */
-        cloneMenu.menu(PINNED_TO_PREFIX + getTestTrace().getName()).click();
-        assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
-        SWTBotView clonedView = fBot.viewByTitle(PINNED_TO_TRACE_COUNTERS_VIEW_TITLE);
-        assertEquals("Should not have created a new instance", 1, fBot.editors().size());
-        clonedView.close();
-
-         // Assert that a new instance is created.
-        cloneMenu.menu(PINNED_TO_PREFIX + getTestTrace().getName() + " | new instance").click();
-        assertOriginalViewTitle(COUNTERS_VIEW_TITLE);
-        clonedView = fBot.viewByTitle(CLONED_VIEW_TITLE_NAME);
-        assertEquals("Should have created a new instance", 2, fBot.editors().size());
-        SWTBotEditor cloneEditor = fBot.editorByTitle(getTestTrace().getName() + CLONED_TRACE_SUFFIX);
-
-        // Get the window range of the cloned trace
-        TmfTraceManager traceManager = TmfTraceManager.getInstance();
-        ITmfTrace cloneTrace = traceManager.getActiveTrace();
-        assertNotNull(cloneTrace);
-
-        // Go back to original trace, pin it
-        SWTBotUtils.activateEditor(fBot, getTestTrace().getName());
-        originalViewBot.toolbarButton(PIN_VIEW_BUTTON_NAME).click();
-
-        // Assert that the cloned trace's window range did not change
-        SWTBotUtils.activateEditor(fBot, cloneTrace.getName() + CLONED_TRACE_SUFFIX);
-        IViewPart viewPart = clonedView.getViewReference().getView(false);
-        assertTrue(viewPart instanceof TmfChartView);
-        final TmfCommonXAxisChartViewer chartViewer = (TmfCommonXAxisChartViewer) getChartViewer(viewPart);
-        assertNotNull(chartViewer);
-
-        fBot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(chartViewer));
-        TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, RANGE, getTestTrace()));
-        fBot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(chartViewer));
-        SWTBotUtils.waitUntil(v -> (v.getWindowStartTime() == KERNEL_START && v.getWindowEndTime() == KERNEL_INITIAL_END), chartViewer, "Range of cloned view changed");
-
-        cloneEditor.close();
-    }
-
-    private void assertOriginalViewTitle(String newName) {
-        Widget expectedWidget = getSWTBotView().getWidget();
-        assertNotNull(expectedWidget);
-        SWTBotView actualView = fBot.viewByTitle(newName);
-        Widget actualWidget = actualView.getWidget();
-        assertNotNull(actualWidget);
-        assertEquals(expectedWidget, actualWidget);
-    }
-
-    @Override
-    protected @NonNull String getMainSeriesName() {
-        return MAIN_SERIES_NAME;
-    }
-
-    @Override
-    protected @NonNull String getTitle() {
-        return COUNTERS_VIEW_TITLE;
-    }
-
-    @Override
-    protected String getViewID() {
-        return COUNTERS_VIEW_ID;
-    }
-
-    @Override
-    protected ITmfTrace getTestTrace() {
-        return CtfTmfTestTraceUtils.getTrace(CtfTestTrace.KERNEL_VM);
-    }
-
-    @Override
-    protected void disposeTestTrace() {
-        CtfTmfTestTraceUtils.dispose(CtfTestTrace.KERNEL_VM);
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/counters/ui/swtbot/tests/CounterViewTest.java b/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/counters/ui/swtbot/tests/CounterViewTest.java
deleted file mode 100644
index 07587d0..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/counters/ui/swtbot/tests/CounterViewTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.counters.ui.swtbot.tests;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.eclipse.tracecompass.analysis.counters.ui.CounterView;
-import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.ctf.core.tests.shared.CtfTmfTestTraceUtils;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.XYDataProviderBaseTest;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
-import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXAxisChartViewer;
-import org.eclipse.ui.IViewPart;
-import org.junit.Test;
-import org.swtchart.Chart;
-import org.swtchart.ISeries;
-import org.swtchart.LineStyle;
-
-/**
- * SWTBot tests for Counters view.
- *
- * @author Mikael Ferland
- * @deprecated replaced by {@link NewCounterViewTest}
- */
-@Deprecated
-public class CounterViewTest extends XYDataProviderBaseTest {
-
-    private static final int NUMBER_OF_POINTS = 50;
-    private static final RGB BLUE = new RGB(0, 0, 255);
-    private static final @NonNull String TRACE_NAME = "kernel_vm";
-    private static final @NonNull String COUNTER_NAME = "minor_faults";
-    private static final @NonNull String COUNTERS_VIEW_TITLE = "Counters (Legacy)";
-    private static final @NonNull String MAIN_SERIES_NAME = "kernel_vm/Ungrouped/minor_faults";
-    private static final @NonNull String COUNTERS_VIEW_ID = "org.eclipse.tracecompass.analysis.counters.ui.view.counters";
-
-    /**
-     * Ensure the data displayed in the chart viewer reflects the tree viewer's
-     * selected entries.
-     */
-    @Test
-    public void testManipulatingTreeViewer() {
-        final Chart chart = getChart();
-        assertNotNull(chart);
-        assertEquals(0, chart.getSeriesSet().getSeries().length);
-
-        SWTBotTree treeBot = getSWTBotView().bot().tree();
-        WaitUtils.waitUntil(tree -> tree.rowCount() >= 1, treeBot, "The tree viewer did not finish loading.");
-        SWTBotTreeItem root = treeBot.getTreeItem(TRACE_NAME);
-        assertNotNull(root);
-        SWTBotTreeItem counter = retrieveTreeItem(root, COUNTER_NAME);
-        assertNotNull(counter);
-
-        // Check all elements of the tree
-        root.check();
-        WaitUtils.waitUntil(SWTBotTreeItem::isChecked, root, "Root entry was not checked");
-        assertTrue(counter.isChecked());
-        assertFalse(root.isGrayed());
-        assertFalse(counter.isGrayed());
-        WaitUtils.waitUntil(c -> c.getSeriesSet().getSeries().length >= 3, chart, "The data series did not load.");
-
-        // Uncheck a leaf of the tree
-        counter.uncheck();
-        assertTrue(root.isChecked());
-        assertTrue(root.isGrayed());
-        assertFalse(counter.isChecked());
-        assertFalse(counter.isGrayed());
-        WaitUtils.waitUntil(c -> c.getSeriesSet().getSeries().length >= 2, chart,
-                "A data series has not been removed.");
-    }
-
-    /**
-     * Validate the Counters view data model.
-     */
-    @Test
-    public void testDisplayingDataSeries() {
-        // Setup the chart viewer
-        IViewPart viewPart = getSWTBotView().getViewReference().getView(true);
-        assertTrue(viewPart instanceof CounterView);
-        final TmfCommonXAxisChartViewer chartViewer = (TmfCommonXAxisChartViewer) getChartViewer(viewPart);
-        assertNotNull(chartViewer);
-        fBot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(chartViewer));
-        chartViewer.setNbPoints(NUMBER_OF_POINTS);
-        fBot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(chartViewer));
-
-        final Chart chart = getChart();
-        assertNotNull(chart);
-        assertEquals(0, chart.getSeriesSet().getSeries().length);
-
-        // Check the counter entry
-        SWTBotTree treeBot = getSWTBotView().bot().tree();
-        WaitUtils.waitUntil(tree -> tree.rowCount() >= 1, treeBot, "The tree viewer did not finish loading.");
-        SWTBotTreeItem root = treeBot.getTreeItem(TRACE_NAME);
-        SWTBotTreeItem counter = retrieveTreeItem(root, COUNTER_NAME);
-        assertNotNull(counter);
-        counter.check();
-        fBot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(chartViewer));
-        WaitUtils.waitUntil(c -> c.getSeriesSet().getSeries().length >= 1, chart, "The data series did not load.");
-
-        // Ensure the data series has the correct styling
-        verifySeriesStyle(MAIN_SERIES_NAME, ISeries.SeriesType.LINE, BLUE, LineStyle.SOLID, false);
-
-        // Ensure the data model is valid
-        WaitUtils.waitUntil(json -> isChartDataValid(chart, json, MAIN_SERIES_NAME),
-                "resources/minor_faults-res50.json", "The chart data is not valid.");
-    }
-
-    private @Nullable SWTBotTreeItem retrieveTreeItem(SWTBotTreeItem rootItem, @NonNull String id) {
-        if (rootItem.getNodes().contains(id)) {
-            return rootItem.getNode(id);
-        }
-
-        for (SWTBotTreeItem child : rootItem.getItems()) {
-            SWTBotTreeItem grandChild = retrieveTreeItem(child, id);
-            if (grandChild != null) {
-                return grandChild;
-            }
-        }
-
-        return null;
-    }
-
-    @Override
-    protected @NonNull String getMainSeriesName() {
-        return MAIN_SERIES_NAME;
-    }
-
-    @Override
-    protected @NonNull String getTitle() {
-        return COUNTERS_VIEW_TITLE;
-    }
-
-    @Override
-    protected String getViewID() {
-        return COUNTERS_VIEW_ID;
-    }
-
-    @Override
-    protected ITmfTrace getTestTrace() {
-        return CtfTmfTestTraceUtils.getTrace(CtfTestTrace.KERNEL_VM);
-    }
-
-    @Override
-    protected void disposeTestTrace() {
-        CtfTmfTestTraceUtils.dispose(CtfTestTrace.KERNEL_VM);
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.counters.ui/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.counters.ui/META-INF/MANIFEST.MF
index 669cf9a..55c6a3b 100644
--- a/analysis/org.eclipse.tracecompass.analysis.counters.ui/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.counters.ui/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Bundle-Vendor: %Bundle-Vendor
 Bundle-SymbolicName: org.eclipse.tracecompass.analysis.counters.ui;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 2.0.0.qualifier
 Bundle-Localization: plugin
 Bundle-Activator: org.eclipse.tracecompass.internal.analysis.counters.ui.Activator
 Bundle-ActivationPolicy: lazy
@@ -19,10 +19,8 @@
 Import-Package: com.google.common.base,
  com.google.common.collect,
  com.google.common.primitives,
- org.apache.commons.lang3,
- org.swtchart
-Export-Package: org.eclipse.tracecompass.analysis.counters.ui,
- org.eclipse.tracecompass.analysis.counters.ui.views,
+ org.apache.commons.lang3
+Export-Package: org.eclipse.tracecompass.analysis.counters.ui.views,
  org.eclipse.tracecompass.internal.analysis.counters.ui;x-internal:=true
 Automatic-Module-Name: org.eclipse.tracecompass.analysis.counters.ui
 
diff --git a/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterChartViewer.java b/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterChartViewer.java
deleted file mode 100644
index aae7ca9..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterChartViewer.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2018 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.counters.ui;
-
-import java.util.Map;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.internal.analysis.counters.core.CounterDataProvider;
-import org.eclipse.tracecompass.internal.tmf.core.model.filters.FetchParametersUtils;
-import org.eclipse.tracecompass.tmf.core.model.filters.SelectionTimeQueryFilter;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfFilteredXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfXYChartSettings;
-
-/**
- * XY line chart which displays the counters data.
- *
- * @author Matthew Khouzam
- * @author Mikael Ferland
- * @deprecated use {@link org.eclipse.tracecompass.analysis.counters.ui.views.CounterChartViewer}
- */
-@Deprecated
-public final class CounterChartViewer extends TmfFilteredXYChartViewer {
-
-    private boolean fIsCumulative = false;
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            Parent composite
-     * @param settings
-     *            See {@link TmfXYChartSettings} to know what it contains
-     */
-    public CounterChartViewer(Composite parent, TmfXYChartSettings settings) {
-        // Avoid displaying chart title and axis titles (to reduce wasted space)
-        super(parent, settings, CounterDataProvider.ID);
-    }
-
-    /**
-     * Display the counters data cumulatively or not.
-     */
-    public void toggleCumulative() {
-        cancelUpdate();
-        fIsCumulative ^= true;
-        updateContent();
-    }
-
-    @Override
-    protected @NonNull Map<String, Object> createQueryParameters(long start, long end, int nb) {
-        Map<@NonNull String, @NonNull Object> parameters = FetchParametersUtils.selectionTimeQueryToMap(new SelectionTimeQueryFilter(start, end, nb, getSelected()));
-        parameters.put(CounterDataProvider.CUMULATIVE_COUNTER_KEY, fIsCumulative);
-        return parameters;
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterTreeViewer.java b/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterTreeViewer.java
deleted file mode 100644
index 016896a..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterTreeViewer.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2018 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.counters.ui;
-
-import java.util.Comparator;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.internal.analysis.counters.core.CounterDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.AbstractSelectTreeViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.ITmfTreeColumnDataProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfGenericTreeEntry;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfTreeColumnData;
-
-import com.google.common.collect.Lists;
-
-/**
- * Display the state system as a filtered checkbox tree:
- *
- * <pre>
- * {trace name}
- *   +- Grouped
- *   |   +- {group id}
- *   |   |   +- {group element}
- *   |   |       +- ...
- *   |   +- {group id}
- *   |       +- ...
- *   +- Ungrouped
- *       +- {counter}
- *       +- ...
- * </pre>
- *
- * @author Matthew Khouzam
- * @author Mikael Ferland
- * @deprecated use {@link org.eclipse.tracecompass.analysis.counters.ui.views.CounterTreeViewer}
- */
-@Deprecated
-public class CounterTreeViewer extends AbstractSelectTreeViewer {
-
-    private final class CounterTreeLabelProvider extends DataProviderTreeLabelProvider {
-
-        @Override
-        public Image getColumnImage(Object element, int columnIndex) {
-            if (columnIndex == 1 && element instanceof TmfGenericTreeEntry && isChecked(element)) {
-                TmfGenericTreeEntry<TmfTreeDataModel> genericEntry = (TmfGenericTreeEntry<TmfTreeDataModel>) element;
-                if (genericEntry.hasChildren()) {
-                    return null;
-                }
-                return getLegendImage(genericEntry.getModel().getId());
-            }
-            return null;
-        }
-    }
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            Parent composite
-     */
-    public CounterTreeViewer(Composite parent) {
-        super(parent, 1, CounterDataProvider.ID);
-        setLabelProvider(new CounterTreeLabelProvider());
-    }
-
-    @Override
-    protected ITmfTreeColumnDataProvider getColumnDataProvider() {
-        return () -> Lists.newArrayList(createColumn("Counters", Comparator.comparing(TmfGenericTreeEntry::getName)), new TmfTreeColumnData("Legend")); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterView.java b/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterView.java
deleted file mode 100644
index 72f0a3c..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.counters.ui/src/org/eclipse/tracecompass/analysis/counters/ui/CounterView.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.counters.ui;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.internal.analysis.counters.ui.Messages;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfXYChartSettings;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Main implementation for the counters view.
- *
- * <p>
- * The view is composed of two parts:
- * <ol>
- * <li>CounterTreeViewer (left-hand side)</li>
- * <li>CounterChartViewer (right-hand side)</li>
- * </ol>
- * </p>
- *
- * @author Matthew Khouzam
- * @author Mikael Ferland
- * @deprecated use {@link org.eclipse.tracecompass.analysis.counters.ui.views.CounterView}
- */
-@Deprecated
-public class CounterView extends TmfChartView {
-
-    /** View ID. */
-    public static final String ID = "org.eclipse.tracecompass.analysis.counters.ui.view.counters"; //$NON-NLS-1$
-
-    /**
-     * Title of the chart viewer
-     */
-    public static final String VIEW_TITLE = "Counters (Legacy)"; //$NON-NLS-1$
-
-    /**
-     * Constructor
-     */
-    public CounterView() {
-        super(VIEW_TITLE);
-    }
-
-    @Override
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-
-        // Add a tool bar button to display counters data cumulatively
-        IActionBars bars = getViewSite().getActionBars();
-        bars.getToolBarManager().appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, getCumulativeAction());
-    }
-
-    @Override
-    protected TmfXYChartViewer createChartViewer(Composite parent) {
-        return new CounterChartViewer(parent, new TmfXYChartSettings(null, null, null, 1));
-    }
-
-    @Override
-    protected @NonNull TmfViewer createLeftChildViewer(Composite parent) {
-        return new CounterTreeViewer(parent);
-    }
-
-    private Action getCumulativeAction() {
-        Action action = new Action(Messages.CounterView_CumulativeAction_Text, IAction.AS_CHECK_BOX) {
-
-            @Override
-            public void run() {
-                boolean isCumulative = isChecked();
-                setToolTipText(isCumulative ? Messages.CounterView_CumulativeAction_DifferentialTooltipText : Messages.CounterView_CumulativeAction_CumulativeTooltipText);
-                TmfXYChartViewer chart = getChartViewer();
-                if (chart instanceof CounterChartViewer) {
-                    ((CounterChartViewer) chart).toggleCumulative();
-                }
-            }
-        };
-
-        action.setToolTipText(Messages.CounterView_CumulativeAction_CumulativeTooltipText);
-        action.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.tracecompass.tmf.ui", "icons/elcl16/sigma.gif")); //$NON-NLS-1$ //$NON-NLS-2$
-        return action;
-    }
-
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.lami.ui/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.lami.ui/META-INF/MANIFEST.MF
index 9aab563b..3634dfe 100644
--- a/analysis/org.eclipse.tracecompass.analysis.lami.ui/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.lami.ui/META-INF/MANIFEST.MF
@@ -23,6 +23,5 @@
  org.eclipse.tracecompass.internal.provisional.analysis.lami.ui.handler;x-internal:=true,
  org.eclipse.tracecompass.internal.provisional.analysis.lami.ui.viewers;x-internal:=true,
  org.eclipse.tracecompass.internal.provisional.analysis.lami.ui.views;x-friends:="org.eclipse.tracecompass.analysis.lami.ui.swtbot.tests"
-Import-Package: com.google.common.collect,
- org.swtchart
+Import-Package: com.google.common.collect
 Automatic-Module-Name: org.eclipse.tracecompass.analysis.lami.ui
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF
index 77435a0..e584b9e 100644
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -38,6 +38,5 @@
 Import-Package: com.google.common.collect,
  org.apache.commons.io,
  org.eclipse.swtchart,
- org.eclipse.tracecompass.testtraces.ctf,
- org.swtchart
+ org.eclipse.tracecompass.testtraces.ctf
 Automatic-Module-Name: org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/META-INF/MANIFEST.MF
index 379c043..b2d93ce 100644
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/META-INF/MANIFEST.MF
@@ -24,8 +24,7 @@
 Import-Package: com.google.common.annotations,
  com.google.common.base,
  com.google.common.collect,
- org.eclipse.swtchart,
- org.swtchart
+ org.eclipse.swtchart
 Export-Package: org.eclipse.tracecompass.internal.analysis.os.linux.ui;x-friends:="org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests",
  org.eclipse.tracecompass.internal.analysis.os.linux.ui.actions;x-internal:=true,
  org.eclipse.tracecompass.internal.analysis.os.linux.ui.perspectives;x-internal:=true,
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/memory/MemoryUsageTreeViewer.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/memory/MemoryUsageTreeViewer.java
deleted file mode 100644
index 1efb2dd..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/memory/MemoryUsageTreeViewer.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2016, 2018 Polytechnique de Montréal
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-package org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.memory;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.analysis.os.linux.core.memory.MemoryUsageTreeModel;
-import org.eclipse.tracecompass.internal.tmf.core.model.filters.FetchParametersUtils;
-import org.eclipse.tracecompass.tmf.core.model.filters.FilterTimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.AbstractSelectTreeViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.ITmfTreeColumnDataProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.ITmfTreeViewerEntry;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfGenericTreeEntry;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfTreeColumnData;
-
-import com.google.common.collect.ImmutableList;
-
-/**
- * Tree viewer to select which process to display in the kernel memory usage
- * chart.
- *
- * @since 2.2
- * @author Mahdi Zolnouri
- * @author Wassim Nasrallah
- * @author Najib Arbaoui
- *
- * @deprecated use {@link MemoryUsageTreeViewer2} instead
- */
-@Deprecated
-public class MemoryUsageTreeViewer extends AbstractSelectTreeViewer {
-
-    /** Provides label for the Kernel memory usage tree viewer cells */
-    private class MemoryLabelProvider extends DataProviderTreeLabelProvider {
-
-        @Override
-        public String getColumnText(Object element, int columnIndex) {
-            if (!(element instanceof TmfGenericTreeEntry)) {
-                return null;
-            }
-            TmfGenericTreeEntry<MemoryUsageTreeModel> obj = (TmfGenericTreeEntry<MemoryUsageTreeModel>) element;
-            if (columnIndex == 0) {
-                return obj.getName();
-            } else if (columnIndex == 1) {
-                int tid = obj.getModel().getTid();
-                if (obj.getModel().getParentId() == -1) {
-                    // FIXME: Series total have different style than others. This should come from the data provider
-                    return Messages.MemoryUsageTree_Total;
-                }
-                return Integer.toString(tid);
-            }
-            return null;
-        }
-
-        @Override
-        public Image getColumnImage(Object element, int columnIndex) {
-            if (columnIndex != 2 || !(element instanceof TmfGenericTreeEntry)) {
-                return null;
-            }
-            TmfGenericTreeEntry<MemoryUsageTreeModel> obj = (TmfGenericTreeEntry<MemoryUsageTreeModel>) element;
-            if (isChecked(element) || obj.getModel().getParentId() == -1) {
-                TmfGenericTreeEntry<MemoryUsageTreeModel> entry = (TmfGenericTreeEntry<MemoryUsageTreeModel>) element;
-                return getLegendImage(entry.getModel().getId());
-            }
-            return null;
-        }
-    }
-
-    // view is filtered by default
-    private boolean fFiltered = true;
-    private MemoryPresentationProvider fPresentationProvider;
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            The parent composite that holds this viewer
-     * @param id
-     *            The memory usage data provider ID.
-     */
-    public MemoryUsageTreeViewer(Composite parent, String id) {
-        super(parent, 2, id);
-        setLabelProvider(new MemoryLabelProvider());
-    }
-
-    @Override
-    protected @NonNull Map<String, Object> getParameters(long start, long end, boolean isSelection) {
-        return FetchParametersUtils.filteredTimeQueryToMap(new FilterTimeQueryFilter(Long.min(start, end), Long.max(start, end), 2, fFiltered));
-    }
-
-    @Override
-    protected ITmfTreeColumnDataProvider getColumnDataProvider() {
-        return () -> {
-            Comparator<TmfGenericTreeEntry<MemoryUsageTreeModel>> compareTid = Comparator.comparingInt(c -> c.getModel().getTid());
-            return ImmutableList.of(
-                    createColumn(Messages.MemoryUsageTree_ColumnProcess, Comparator.comparing(TmfGenericTreeEntry::getName)),
-                    createColumn(Messages.MemoryUsageTree_ColumnTID, compareTid),
-                    new TmfTreeColumnData(Messages.MemoryUsageTree_Legend));
-        };
-    }
-
-    /**
-     * Set the view to filter active threads or not.
-     *
-     * @param isFiltered
-     *            if we filter the active threads or not.
-     */
-    public void setFiltered(boolean isFiltered) {
-        fFiltered = isFiltered;
-        updateContent(getWindowStartTime(), getWindowEndTime(), false);
-    }
-
-    @Override
-    @TmfSignalHandler
-    public void traceSelected(TmfTraceSelectedSignal signal) {
-        super.traceSelected(signal);
-        fPresentationProvider = MemoryPresentationProvider.getForTrace(signal.getTrace());
-    }
-
-    @Override
-    @TmfSignalHandler
-    public void traceOpened(TmfTraceOpenedSignal signal) {
-        super.traceOpened(signal);
-        fPresentationProvider = MemoryPresentationProvider.getForTrace(signal.getTrace());
-    }
-
-    @Override
-    protected ITmfTreeViewerEntry modelToTree(long start, long end, List<ITmfTreeDataModel> model) {
-        // FIXME: Series total have different style than others. This should
-        // come from the data provider
-        for (ITmfTreeDataModel entryModel : model) {
-            if (entryModel.getParentId() == -1) {
-                // FIXME: Series total have different style than others. This
-                // should come from the data provider
-                fPresentationProvider.addTotalSeries(entryModel.getId());
-            }
-        }
-
-        return super.modelToTree(start, end, model);
-    }
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/memory/MemoryUsageView.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/memory/MemoryUsageView.java
deleted file mode 100644
index 33d978f..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/memory/MemoryUsageView.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2016, 2018 École Polytechnique de Montréal and others
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-package org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.memory;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.common.core.format.DataSizeWithUnitFormat;
-import org.eclipse.tracecompass.internal.provisional.tmf.ui.viewers.xychart.BaseXYPresentationProvider;
-import org.eclipse.tracecompass.tmf.core.model.OutputElementStyle;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfFilteredXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfXYChartSettings;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Memory usage view
- *
- * @since 2.2
- * @author Samuel Gagnon
- * @author Mahdi Zolnouri
- * @author Wassim Nasrallah
- * @deprecated use @{link {@link MemoryUsageView2}
- */
-@Deprecated
-public class MemoryUsageView extends TmfChartView {
-    private final String fProviderId;
-    private final TmfXYChartSettings fSettings;
-
-    /**
-     * Constructor
-     *
-     * @param title
-     *            the Memory view's name.
-     * @param providerId
-     *            the ID of the provider to use for this view.
-     * @param settings
-     *            See {@link TmfXYChartSettings} to know what it contains
-     */
-    public MemoryUsageView(String title, String providerId, TmfXYChartSettings settings) {
-        super(title);
-        fProviderId = providerId;
-        fSettings = settings;
-    }
-
-    @Override
-    protected TmfXYChartViewer createChartViewer(Composite parent) {
-        TmfFilteredXYChartViewer viewer = new TmfFilteredXYChartViewer(parent, fSettings, fProviderId) {
-            @Override
-            public @NonNull OutputElementStyle getSeriesStyle(Long seriesId) {
-                return getPresentationProvider().getSeriesStyle(seriesId);            }
-
-            @Override
-            protected BaseXYPresentationProvider createPresentationProvider(ITmfTrace trace) {
-                return MemoryPresentationProvider.getForTrace(trace);
-            }
-
-        };
-        viewer.getSwtChart().getAxisSet().getYAxis(0).getTick().setFormat(DataSizeWithUnitFormat.getInstance());
-        return viewer;
-    }
-
-    @Override
-    protected @NonNull TmfViewer createLeftChildViewer(Composite parent) {
-        return new MemoryUsageTreeViewer(parent, fProviderId);
-    }
-
-    @Override
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-
-        // Add a tool bar button to filter active threads.
-        getViewSite().getActionBars().getToolBarManager().appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, getFilterAction());
-    }
-
-    private Action getFilterAction() {
-        Action action = new Action(Messages.MemoryView_FilterAction_Text, IAction.AS_CHECK_BOX) {
-            // memory view is filtered by default.
-            private boolean isFiltered = true;
-
-            @Override
-            public void run() {
-                isFiltered ^= true;
-                setToolTipText(isFiltered ? Messages.MemoryView_FilterAction_FilteredTooltipText : Messages.MemoryView_FilterAction_UnfilteredTooltipText);
-                TmfViewer tree = getLeftChildViewer();
-                if (tree instanceof MemoryUsageTreeViewer) {
-                    MemoryUsageTreeViewer memoryUsageTreeViewer = (MemoryUsageTreeViewer) tree;
-                    memoryUsageTreeViewer.setFiltered(isFiltered);
-                }
-            }
-        };
-        action.setToolTipText(Messages.MemoryView_FilterAction_FilteredTooltipText);
-        action.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.tracecompass.tmf.ui", "icons/elcl16/filter_items.gif")); //$NON-NLS-1$ //$NON-NLS-2$
-        // filtered by default, to not change the default behavior
-        action.setChecked(true);
-        return action;
-    }
-
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.profiling.ui.swtbot.tests/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.profiling.ui.swtbot.tests/META-INF/MANIFEST.MF
index 7a3913f..08ca031 100644
--- a/analysis/org.eclipse.tracecompass.analysis.profiling.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.profiling.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -37,6 +37,5 @@
  org.eclipse.tracecompass.analysis.profiling.ui,
  org.eclipse.tracecompass.analysis.profiling.core.tests,
  org.eclipse.jdt.annotation;bundle-version="[2.0.0,3.0.0)";resolution:=optional
-Import-Package: com.google.common.collect,
- org.swtchart
+Import-Package: com.google.common.collect
 Automatic-Module-Name: org.eclipse.tracecompass.analysis.profiling.ui.swtbot.tests
diff --git a/analysis/org.eclipse.tracecompass.analysis.profiling.ui/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.profiling.ui/META-INF/MANIFEST.MF
index 47868cf..13466e72 100644
--- a/analysis/org.eclipse.tracecompass.analysis.profiling.ui/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.profiling.ui/META-INF/MANIFEST.MF
@@ -20,7 +20,6 @@
  org.eclipse.tracecompass.tmf.ui,
  org.eclipse.tracecompass.analysis.timing.core,
  org.eclipse.tracecompass.analysis.timing.ui,
- org.swtchart,
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.datastore.core,
  org.eclipse.jdt.annotation;bundle-version="[2.0.0,3.0.0)";resolution:=optional
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui.swtbot.tests/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.timing.ui.swtbot.tests/META-INF/MANIFEST.MF
index 3c02ded..8465aa1 100644
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -32,6 +32,5 @@
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.datastore.core,
  org.eclipse.jdt.annotation;bundle-version="[2.0.0,3.0.0)";resolution:=optional
-Import-Package: com.google.common.collect,
- org.swtchart
+Import-Package: com.google.common.collect
 Automatic-Module-Name: org.eclipse.tracecompass.analysis.timing.ui.swtbot.tests
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF
index d802b50..2848236 100644
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF
+++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 4.1.2.qualifier
+Bundle-Version: 5.0.0.qualifier
 Bundle-Localization: plugin
 Bundle-SymbolicName: org.eclipse.tracecompass.analysis.timing.ui;singleton:=true
 Bundle-Activator: org.eclipse.tracecompass.internal.analysis.timing.ui.Activator
@@ -17,21 +17,17 @@
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.tmf.core,
  org.eclipse.tracecompass.tmf.ui,
- org.swtchart,
  org.eclipse.tracecompass.analysis.timing.ui,
  org.eclipse.jface,
  org.eclipse.jdt.annotation;bundle-version="[2.0.0,3.0.0)";resolution:=optional,
  org.eclipse.swtchart
 Export-Package: org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore,
- org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density,
  org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density2,
  org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.scatter,
  org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.statistics,
  org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table,
  org.eclipse.tracecompass.internal.analysis.timing.ui,
- org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density;x-internal:=true,
  org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density2;x-internal:=true,
- org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.scatter;x-internal:=true,
  org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.statistics;x-internal:=true,
  org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.table;x-internal:=true,
  org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.xyscatter;x-internal:=true
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityView.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityView.java
deleted file mode 100644
index 439bb98..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityView.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2015, 2016 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableViewer;
-import org.eclipse.tracecompass.segmentstore.core.ISegment;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
-import org.eclipse.tracecompass.tmf.core.util.Pair;
-import org.eclipse.tracecompass.tmf.ui.views.SaveImageUtil;
-import org.eclipse.tracecompass.tmf.ui.views.TmfView;
-
-import com.google.common.annotations.VisibleForTesting;
-
-/**
- * Displays the segment store analysis data in a density chart and a table
- * corresponding to the selected latencies.
- *
- * @author Matthew Khouzam
- * @author Marc-Andre Laperle
- * @deprecated use {@link org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density2.AbstractSegmentStoreDensityViewer}
- */
-@Deprecated
-public abstract class AbstractSegmentStoreDensityView extends TmfView {
-
-    private static final int[] DEFAULT_WEIGHTS = new int[] { 4, 6 };
-
-    /**
-     * Default zoom range
-     * @since 4.1
-     */
-    public static final Pair<Double, Double> DEFAULT_RANGE = new Pair<>(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY);
-
-    private @Nullable AbstractSegmentStoreDensityViewer fDensityViewer;
-    private @Nullable AbstractSegmentStoreTableViewer fTableViewer;
-
-    /**
-     * Constructs a segment store density view
-     *
-     * @param viewName
-     *            the name of the view
-     */
-    public AbstractSegmentStoreDensityView(String viewName) {
-        super(viewName);
-    }
-
-    /**
-     * Used to keep the table in sync with the density viewer.
-     */
-    private final class DataChangedListener implements ISegmentStoreDensityViewerDataListener {
-
-        private void updateTableModel(@Nullable Iterable<? extends ISegment> data) {
-            final AbstractSegmentStoreTableViewer viewer = fTableViewer;
-            if (viewer != null && data != null) {
-                viewer.updateModel(data);
-            }
-        }
-
-        @Override
-        public void viewDataChanged(@NonNull Iterable<? extends @NonNull ISegment> newData) {
-            updateTableModel(newData);
-        }
-
-        @Override
-        public void selectedDataChanged(@Nullable Iterable<? extends @NonNull ISegment> newSelectionData) {
-            updateTableModel(newSelectionData);
-        }
-
-    }
-
-    @Override
-    public void createPartControl(@Nullable Composite parent) {
-        super.createPartControl(parent);
-        final SashForm sashForm = new SashForm(parent, SWT.NONE);
-
-        fTableViewer = createSegmentStoreTableViewer(sashForm);
-        fDensityViewer = createSegmentStoreDensityViewer(sashForm);
-        fDensityViewer.addDataListener(new DataChangedListener());
-
-        sashForm.setWeights(DEFAULT_WEIGHTS);
-
-        Action zoomOut = new ZoomOutAction(this);
-        IToolBarManager toolBar = getViewSite().getActionBars().getToolBarManager();
-        toolBar.add(zoomOut);
-        ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
-        if (trace != null) {
-            TmfTraceSelectedSignal signal = new TmfTraceSelectedSignal(this, trace);
-            if (fDensityViewer != null) {
-                fDensityViewer.traceSelected(signal);
-            }
-            if (fTableViewer != null) {
-                fTableViewer.traceSelected(signal);
-            }
-        }
-    }
-
-    @Override
-    protected @NonNull IAction createSaveAction() {
-        return SaveImageUtil.createSaveAction(getName(), this::getDensityViewer);
-    }
-
-    /**
-     * Create a table viewer suitable for displaying the segment store content.
-     *
-     * @param parent
-     *            the parent composite
-     * @return the table viewer
-     */
-    protected abstract AbstractSegmentStoreTableViewer createSegmentStoreTableViewer(Composite parent);
-
-    /**
-     * Create a density viewer suitable for displaying the segment store
-     * content.
-     *
-     * @param parent
-     *            the parent composite
-     * @return the density viewer
-     */
-    protected abstract AbstractSegmentStoreDensityViewer createSegmentStoreDensityViewer(Composite parent);
-
-    @Override
-    public void setFocus() {
-        final AbstractSegmentStoreDensityViewer viewer = fDensityViewer;
-        if (viewer != null) {
-            viewer.getControl().setFocus();
-        }
-    }
-
-    @Override
-    public void dispose() {
-        final AbstractSegmentStoreDensityViewer densityViewer = fDensityViewer;
-        if (densityViewer != null) {
-            densityViewer.dispose();
-        }
-
-        final AbstractSegmentStoreTableViewer tableViewer = fTableViewer;
-        if (tableViewer != null) {
-            tableViewer.dispose();
-        }
-
-        super.dispose();
-    }
-
-    /**
-     * Get the density viewer
-     *
-     * @return the density viewer
-     * @since 1.2
-     */
-    @VisibleForTesting
-    public @Nullable AbstractSegmentStoreDensityViewer getDensityViewer() {
-        return fDensityViewer;
-    }
-
-    /**
-     * Get the table viewer
-     *
-     * @return the table viewer
-     * @since 1.2
-     */
-    @VisibleForTesting
-    public @Nullable AbstractSegmentStoreTableViewer getTableViewer() {
-        return fTableViewer;
-    }
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityViewer.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityViewer.java
deleted file mode 100644
index 2616e2f..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityViewer.java
+++ /dev/null
@@ -1,660 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2015, 2018 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density;
-
-import static org.eclipse.tracecompass.common.core.NonNullUtils.nullToEmptyString;
-
-import java.text.Format;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Set;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Predicate;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tracecompass.analysis.timing.core.segmentstore.IAnalysisProgressListener;
-import org.eclipse.tracecompass.analysis.timing.core.segmentstore.ISegmentStoreProvider;
-import org.eclipse.tracecompass.common.core.NonNullUtils;
-import org.eclipse.tracecompass.common.core.format.SubSecondTimeWithUnitFormat;
-import org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density.MouseDragZoomProvider;
-import org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density.MouseSelectionProvider;
-import org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density.SimpleTooltipProvider;
-import org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.table.SegmentStoreContentProvider.SegmentStoreWithRange;
-import org.eclipse.tracecompass.segmentstore.core.ISegment;
-import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
-import org.eclipse.tracecompass.segmentstore.core.SegmentComparators;
-import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
-import org.eclipse.tracecompass.tmf.core.presentation.IYAppearance;
-import org.eclipse.tracecompass.tmf.core.presentation.IYAppearance.Type;
-import org.eclipse.tracecompass.tmf.core.presentation.RotatingPaletteProvider;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceContext;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
-import org.eclipse.tracecompass.tmf.ui.colors.RGBAUtil;
-import org.eclipse.tracecompass.tmf.ui.viewers.IImageSave;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfViewer;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.TimeGraphColorScheme;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-import org.swtchart.IBarSeries;
-import org.swtchart.ILegend;
-import org.swtchart.ILineSeries;
-import org.swtchart.ILineSeries.PlotSymbolType;
-import org.swtchart.ISeries;
-import org.swtchart.ISeries.SeriesType;
-import org.swtchart.ISeriesSet;
-import org.swtchart.LineStyle;
-import org.swtchart.Range;
-
-import com.google.common.annotations.VisibleForTesting;
-
-/**
- * Displays the segment store provider data in a density chart.
- *
- * @author Matthew Khouzam
- * @author Marc-Andre Laperle
- *
- * @since 2.0
- */
-@Deprecated
-public abstract class AbstractSegmentStoreDensityViewer extends TmfViewer implements IImageSave {
-
-    private static final Format DENSITY_TIME_FORMATTER = SubSecondTimeWithUnitFormat.getInstance();
-    private static final RGB BAR_COLOR = new RGB(0x42, 0x85, 0xf4);
-    private static final ColorRegistry COLOR_REGISTRY = new ColorRegistry();
-    private static final RotatingPaletteProvider PALETTE = new RotatingPaletteProvider.Builder().setSaturation(0.73f).setBrightness(0.957f).setNbColors(60).build();
-
-    /** The color scheme for the chart */
-    private TimeGraphColorScheme fColorScheme = new TimeGraphColorScheme();
-    private final Chart fChart;
-    private final MouseDragZoomProvider fDragZoomProvider;
-    private final MouseSelectionProvider fDragProvider;
-    private final SimpleTooltipProvider fTooltipProvider;
-
-    private @Nullable ITmfTrace fTrace;
-    private Map<@NonNull String, @NonNull IAnalysisProgressListener> fProgressListeners = new HashMap<>();
-    private final Map<@NonNull String, @NonNull ISegmentStoreProvider> fSegmentStoreProviders = new HashMap<>();
-    private Range fCurrentDurationRange = new Range(AbstractSegmentStoreDensityView.DEFAULT_RANGE.getFirst(), AbstractSegmentStoreDensityView.DEFAULT_RANGE.getSecond());
-    private TmfTimeRange fCurrentTimeRange = TmfTimeRange.NULL_RANGE;
-    private final List<ISegmentStoreDensityViewerDataListener> fListeners;
-    private int fOverrideNbPoints;
-    private String fSeriesType;
-    private final Set<@NonNull ITmfTrace> fTraces = new HashSet<>();
-
-    /**
-     * Constructs a new density viewer.
-     *
-     * @param parent
-     *            the parent of the viewer
-     */
-    public AbstractSegmentStoreDensityViewer(Composite parent) {
-        super(parent);
-        fListeners = new ArrayList<>();
-        fChart = new Chart(parent, SWT.NONE);
-        Color backgroundColor = fColorScheme.getColor(TimeGraphColorScheme.TOOL_BACKGROUND);
-        fChart.setBackground(backgroundColor);
-        backgroundColor = fColorScheme.getColor(TimeGraphColorScheme.BACKGROUND);
-        fChart.setBackgroundInPlotArea(backgroundColor);
-        parent.setBackground(backgroundColor);
-        Color foregroundColor = fColorScheme.getColor(TimeGraphColorScheme.TOOL_FOREGROUND);
-        fChart.setForeground(foregroundColor);
-        fChart.getLegend().setVisible(false);
-        fChart.getTitle().setVisible(false);
-        IAxis xAxis = fChart.getAxisSet().getXAxis(0);
-        IAxis yAxis = fChart.getAxisSet().getYAxis(0);
-        xAxis.getTitle().setText(nullToEmptyString(Messages.AbstractSegmentStoreDensityViewer_TimeAxisLabel));
-        yAxis.getTitle().setText(nullToEmptyString(Messages.AbstractSegmentStoreDensityViewer_CountAxisLabel));
-        xAxis.getTitle().setForeground(foregroundColor);
-        yAxis.getTitle().setForeground(foregroundColor);
-        xAxis.getTick().setForeground(foregroundColor);
-        yAxis.getTick().setForeground(foregroundColor);
-        xAxis.getGrid().setStyle(LineStyle.DOT);
-        yAxis.getGrid().setStyle(LineStyle.DOT);
-        fSeriesType = IYAppearance.Type.BAR;
-
-        fDragZoomProvider = new MouseDragZoomProvider(this);
-        fDragZoomProvider.register();
-        fDragProvider = new MouseSelectionProvider(this);
-        fDragProvider.register();
-        fTooltipProvider = new SimpleTooltipProvider(this);
-        fTooltipProvider.register();
-
-        fChart.addDisposeListener(e -> internalDispose());
-    }
-
-    /**
-     * Returns the segment store provider
-     *
-     * @param trace
-     *            The trace to consider
-     * @return the
-     */
-    protected abstract @Nullable ISegmentStoreProvider getSegmentStoreProvider(ITmfTrace trace);
-
-    @Nullable
-    private static ITmfTrace getTrace() {
-        return TmfTraceManager.getInstance().getActiveTrace();
-    }
-
-    /**
-     * Set the type of series you want
-     * @param type the type, bar or area
-     * @since 4.1
-     */
-    protected void setType(String type) {
-        switch (type) {
-        case Type.BAR:
-            fSeriesType = Type.BAR;
-            break;
-        case Type.AREA:
-            fSeriesType = Type.AREA;
-            break;
-        default:
-            break;
-        }
-    }
-
-    private synchronized void updateDisplay(String name, SegmentStoreWithRange<ISegment> data) {
-        ISeries series = fSeriesType.equals(Type.BAR) ? createSeries() : createAreaSeries(name);
-        int barWidth = 4;
-        int preWidth = fOverrideNbPoints == 0 ? fChart.getPlotArea().getBounds().width / barWidth : fOverrideNbPoints;
-        if (!fSeriesType.equals(Type.BAR)) {
-            preWidth += 2;
-        }
-        final int width = preWidth;
-        double[] xOrigSeries = new double[width];
-        double[] yOrigSeries = new double[width];
-        // Set a positive value that is greater than 0 and less than 1.0
-        Arrays.fill(yOrigSeries, Double.MIN_VALUE);
-        data.setComparator(SegmentComparators.INTERVAL_LENGTH_COMPARATOR);
-        ISegment maxSegment = data.getElement(SegmentStoreWithRange.LAST);
-        long maxLength = Long.MIN_VALUE;
-        if (maxSegment != null) {
-            maxLength = maxSegment.getLength();
-        } else {
-            for (ISegment segment : data) {
-                maxLength = Math.max(maxLength, segment.getLength());
-            }
-            if (maxLength == Long.MIN_VALUE) {
-                maxLength = 1;
-            }
-        }
-        double maxFactor = 1.0 / (maxLength + 1.0);
-        long minX = Long.MAX_VALUE;
-        for (ISegment segment : data) {
-            double xBox = segment.getLength() * maxFactor * width;
-            if (yOrigSeries[(int) xBox] < 1) {
-                yOrigSeries[(int) xBox] = 1;
-            } else {
-                yOrigSeries[(int) xBox]++;
-            }
-            minX = Math.min(minX, segment.getLength());
-        }
-        double timeWidth = (double) maxLength / (double) width;
-        for (int i = 0; i < width; i++) {
-            xOrigSeries[i] = i * timeWidth;
-            if (!fSeriesType.equals(Type.BAR)) {
-                xOrigSeries[i] += timeWidth / 2;
-            }
-        }
-        double maxY = Double.NEGATIVE_INFINITY;
-        for (int i = 0; i < width; i++) {
-            maxY = Math.max(maxY, yOrigSeries[i]);
-        }
-        if (minX == maxLength) {
-            maxLength++;
-            minX--;
-        }
-        series.setYSeries(yOrigSeries);
-        series.setXSeries(xOrigSeries);
-        final IAxis xAxis = fChart.getAxisSet().getXAxis(0);
-        /*
-         * adjustrange appears to bring origin back since we pad the series with
-         * 0s, not interesting.
-         */
-        Range currentDurationRange = fCurrentDurationRange;
-        if (Double.isFinite(currentDurationRange.lower) && Double.isFinite(currentDurationRange.upper)) {
-            xAxis.setRange(currentDurationRange);
-        } else {
-            xAxis.adjustRange();
-        }
-
-        xAxis.getTick().setFormat(DENSITY_TIME_FORMATTER);
-        ILegend legend = fChart.getLegend();
-        legend.setVisible(fSegmentStoreProviders.size() > 1);
-        legend.setPosition(SWT.BOTTOM);
-        /*
-         * Clamp range lower to 0.9 to make it log, 0.1 would be scientifically
-         * accurate, but we cannot have partial counts.
-         */
-        for (ISeries internalSeries : fChart.getSeriesSet().getSeries()) {
-            double[] ySeries = internalSeries.getYSeries();
-            for (int i = 0; i < ySeries.length; i++) {
-                maxY = Math.max(maxY, ySeries[i]);
-            }
-        }
-        fChart.getAxisSet().getYAxis(0).setRange(new Range(0.9, Math.max(1.0, maxY)));
-        fChart.getAxisSet().getYAxis(0).enableLogScale(true);
-        fChart.redraw();
-        new Thread(() -> {
-            for (ISegmentStoreDensityViewerDataListener l : fListeners) {
-                l.chartUpdated();
-            }
-        }).start();
-
-    }
-
-    private ISeries createSeries() {
-        IBarSeries series = (IBarSeries) fChart.getSeriesSet().createSeries(SeriesType.BAR, Messages.AbstractSegmentStoreDensityViewer_SeriesLabel);
-        series.setVisible(true);
-        series.setBarPadding(0);
-        series.setBarColor(getColorForRGB(BAR_COLOR));
-        return series;
-    }
-
-    private ISeries createAreaSeries(String name) {
-        ILineSeries series = (ILineSeries) fChart.getSeriesSet().createSeries(SeriesType.LINE, name);
-        series.setVisible(true);
-        series.enableStep(true);
-        series.enableArea(true);
-        series.setSymbolType(PlotSymbolType.NONE);
-        RGB rgb = getColorForItem(name);
-        Color color = getColorForRGB(rgb);
-        series.setLineColor(color);
-        return series;
-    }
-
-    private static Color getColorForRGB(RGB rgb) {
-        String rgbString = rgb.toString();
-        Color color = COLOR_REGISTRY.get(rgbString);
-        if (color == null) {
-            COLOR_REGISTRY.put(rgbString, rgb);
-            color = Objects.requireNonNull(COLOR_REGISTRY.get(rgbString));
-        }
-        return color;
-    }
-
-    /**
-     * Get the color for a series
-     *
-     * @param name
-     *            the series name
-     * @return The color in RGB
-     * @since 4.1
-     */
-    public RGB getColorForItem(String name) {
-        if (fSegmentStoreProviders.size() == 1) {
-            return BAR_COLOR;
-        }
-        Set<String> keys = fSegmentStoreProviders.keySet();
-        int i = 0;
-        for (String key : keys) {
-            if (key.equals(name)) {
-                break;
-            }
-            i++;
-        }
-        float pos = (float) i / keys.size();
-        int index = Math.max((int) (PALETTE.getNbColors() * pos), 0) % PALETTE.getNbColors();
-        return Objects.requireNonNull(RGBAUtil.fromRGBAColor(PALETTE.get().get(index)).rgb);
-    }
-
-    @Override
-    public Chart getControl() {
-        return fChart;
-    }
-
-    /**
-     * Select a range of latency durations in the viewer.
-     *
-     * @param durationRange
-     *            a range of latency durations
-     */
-    public void select(final Range durationRange) {
-        fCurrentDurationRange = durationRange;
-        final TmfTimeRange timeRange = fCurrentTimeRange;
-        computeDataAsync(timeRange, durationRange).thenAccept(data -> {
-            synchronized (fListeners) {
-                if (fCurrentTimeRange.equals(timeRange) && fCurrentDurationRange.equals(durationRange)) {
-                    for (ISegmentStoreDensityViewerDataListener listener : fListeners) {
-                        for (SegmentStoreWithRange<ISegment> value : data.values()) {
-                            listener.selectedDataChanged(value);
-                        }
-                    }
-                }
-            }
-        });
-    }
-
-    /**
-     * Zoom to a range of latency durations in the viewer.
-     *
-     * @param durationRange
-     *            a range of latency durations
-     */
-    public void zoom(final Range durationRange) {
-        fCurrentDurationRange = durationRange;
-        final TmfTimeRange timeRange = fCurrentTimeRange;
-        computeDataAsync(timeRange, durationRange).thenAccept(data -> {
-            synchronized (fListeners) {
-                if (fCurrentTimeRange.equals(timeRange) && fCurrentDurationRange.equals(durationRange)) {
-                    applyData(data);
-                }
-            }
-        });
-    }
-
-    private CompletableFuture<Map<String, SegmentStoreWithRange<ISegment>>> computeDataAsync(final TmfTimeRange timeRange, final Range durationRange) {
-        return CompletableFuture.supplyAsync(() -> computeData(timeRange, durationRange));
-    }
-
-    private @Nullable Map<String, SegmentStoreWithRange<ISegment>> computeData(final TmfTimeRange timeRange, final Range durationRange) {
-        Map<String, SegmentStoreWithRange<ISegment>> retVal = new HashMap<>();
-        for (Entry<String, ISegmentStoreProvider> entry : fSegmentStoreProviders.entrySet()) {
-            final ISegmentStoreProvider segmentProvider = Objects.requireNonNull(entry.getValue());
-            final ISegmentStore<ISegment> segStore = segmentProvider.getSegmentStore();
-            if (segStore == null) {
-                continue;
-            }
-
-            // Filter on the segment duration if necessary
-            if (durationRange.lower > Double.MIN_VALUE || durationRange.upper < Double.MAX_VALUE) {
-                Predicate<ISegment> predicate = segment -> segment.getLength() >= durationRange.lower && segment.getLength() <= durationRange.upper;
-                retVal.put(entry.getKey(), new SegmentStoreWithRange<>(segStore, timeRange, predicate));
-            } else {
-                retVal.put(entry.getKey(), new SegmentStoreWithRange<>(segStore, timeRange));
-            }
-        }
-        return retVal;
-    }
-
-    private void applyData(final Map<String, SegmentStoreWithRange<ISegment>> map) {
-        Set<Entry<String, SegmentStoreWithRange<ISegment>>> entrySet = map.entrySet();
-        entrySet.parallelStream().forEach(entry -> {
-            SegmentStoreWithRange<ISegment> data = Objects.requireNonNull(entry.getValue());
-            data.setComparator(SegmentComparators.INTERVAL_LENGTH_COMPARATOR);
-            Display.getDefault().asyncExec(() -> updateDisplay(entry.getKey(), data));
-            if (fSegmentStoreProviders.size() > 1) {
-                setType(Type.AREA);
-            } else {
-                setType(Type.BAR);
-            }
-            for (ISegmentStoreDensityViewerDataListener l : fListeners) {
-                l.viewDataChanged(data);
-            }
-        });
-    }
-
-    /**
-     * Sets the segment store provider
-     *
-     * @param ssp
-     *            The segment store provider to give to this view
-     *
-     * @since 1.2
-     */
-    @VisibleForTesting
-    public void setSegmentProvider(@Nullable ISegmentStoreProvider ssp) {
-        fSegmentStoreProviders.clear();
-        if (ssp != null) {
-            fSegmentStoreProviders.put("", ssp); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Signal handler for handling of the window range signal.
-     *
-     * @param signal
-     *            The {@link TmfWindowRangeUpdatedSignal}
-     */
-    @TmfSignalHandler
-    public void windowRangeUpdated(@Nullable TmfWindowRangeUpdatedSignal signal) {
-        if (signal == null) {
-            return;
-        }
-        ITmfTrace parent = getTrace();
-        if (parent == null) {
-            return;
-        }
-        fCurrentTimeRange = NonNullUtils.checkNotNull(signal.getCurrentRange());
-        updateWindowRange(fCurrentTimeRange, false);
-        updateWithRange(fCurrentTimeRange);
-    }
-
-    /**
-     * Update the display range
-     *
-     * @param timeRange
-     *            the range
-     * @since 1.2
-     */
-    @VisibleForTesting
-    public void updateWithRange(final TmfTimeRange timeRange) {
-        fCurrentTimeRange = timeRange;
-        final Range durationRange = getDefaultRange();
-        fCurrentDurationRange = durationRange;
-        computeDataAsync(timeRange, durationRange).thenAccept(data -> {
-            synchronized (fListeners) {
-                if (fCurrentTimeRange.equals(timeRange) && fCurrentDurationRange.equals(durationRange)) {
-                    applyData(data);
-                }
-            }
-        });
-    }
-
-    @Override
-    public void refresh() {
-        fChart.redraw();
-    }
-
-    @Override
-    public void dispose() {
-        if (!fChart.isDisposed()) {
-            fChart.dispose();
-        }
-    }
-
-    private void internalDispose() {
-        fSegmentStoreProviders.entrySet().forEach(entry -> {
-            IAnalysisProgressListener listener = fProgressListeners.get(entry.getKey());
-            if (listener != null) {
-                Objects.requireNonNull(entry.getValue()).removeListener(listener);
-            }
-        });
-        fProgressListeners.clear();
-        fDragZoomProvider.deregister();
-        fTooltipProvider.deregister();
-        fDragProvider.deregister();
-        super.dispose();
-    }
-
-    /**
-     * Signal handler for handling of the trace opened signal.
-     *
-     * @param signal
-     *            The trace opened signal {@link TmfTraceOpenedSignal}
-     */
-    @TmfSignalHandler
-    public void traceOpened(TmfTraceOpenedSignal signal) {
-        if (fTrace != signal.getTrace()) {
-            loadTrace(getTrace());
-            fTrace = signal.getTrace();
-        }
-    }
-
-    /**
-     * Signal handler for handling of the trace selected signal.
-     *
-     * @param signal
-     *            The trace selected signal {@link TmfTraceSelectedSignal}
-     */
-    @TmfSignalHandler
-    public void traceSelected(TmfTraceSelectedSignal signal) {
-        if (fTrace != signal.getTrace()) {
-            loadTrace(getTrace());
-            fTrace = signal.getTrace();
-        }
-    }
-
-    /**
-     * Signal handler for handling of the trace closed signal.
-     *
-     * @param signal
-     *            The trace closed signal {@link TmfTraceClosedSignal}
-     */
-    @TmfSignalHandler
-    public void traceClosed(TmfTraceClosedSignal signal) {
-
-        if (signal.getTrace() != fTrace) {
-            return;
-        }
-
-        fTrace = null;
-        clearContent();
-    }
-
-    /**
-     * A Method to load a trace into the viewer.
-     *
-     * @param trace
-     *            A trace to apply in the viewer
-     */
-    protected void loadTrace(@Nullable ITmfTrace trace) {
-        clearContent();
-        TmfTraceContext ctx = TmfTraceManager.getInstance().getCurrentTraceContext();
-        TmfTimeRange windowRange = ctx.getWindowRange();
-        innerLoadTrace(trace);
-        updateWindowRange(windowRange, true);
-        fTrace = trace;
-        fCurrentTimeRange = windowRange;
-        zoom(getDefaultRange());
-    }
-
-    private void innerLoadTrace(@Nullable ITmfTrace trace) {
-        Set<ISegmentStoreProvider> sps = new HashSet<>();
-
-        if (trace != null) {
-            boolean newTrace = !Objects.equals(trace, fTrace) || fSegmentStoreProviders.isEmpty();
-            if (newTrace) {
-                fTraces.clear();
-                fSegmentStoreProviders.clear();
-                for (ITmfTrace child : TmfTraceManager.getTraceSet(trace)) {
-                    fTraces.add(child);
-                    ISegmentStoreProvider segmentStoreProvider = getSegmentStoreProvider(child);
-                    String name = child.getName();
-                    if (segmentStoreProvider != null && name != null) {
-                        fSegmentStoreProviders.put(name, segmentStoreProvider);
-                        sps.add(segmentStoreProvider);
-                    }
-                }
-                ISegmentStoreProvider segmentStoreProvider = getSegmentStoreProvider(trace);
-                String name = trace.getName();
-                if (segmentStoreProvider != null && name != null && !sps.contains(segmentStoreProvider)) {
-                    fSegmentStoreProviders.put(name, segmentStoreProvider);
-                }
-            }
-        }
-    }
-
-    private void updateWindowRange(TmfTimeRange windowRange, boolean updateListeners) {
-
-        for (Entry<@NonNull String, @NonNull ISegmentStoreProvider> entry : fSegmentStoreProviders.entrySet()) {
-            ISegmentStoreProvider provider = Objects.requireNonNull(entry.getValue());
-            if (updateListeners) {
-                IAnalysisProgressListener listener = (segmentProvider, data) -> updateWithRange(windowRange);
-                provider.addListener(listener);
-                fProgressListeners.put(entry.getKey(), listener);
-            }
-            if (provider instanceof IAnalysisModule) {
-                ((IAnalysisModule) provider).schedule();
-            }
-        }
-    }
-
-    private static Range getDefaultRange() {
-        return new Range(AbstractSegmentStoreDensityView.DEFAULT_RANGE.getFirst(), AbstractSegmentStoreDensityView.DEFAULT_RANGE.getSecond());
-    }
-
-    /**
-     * Clears the view content.
-     */
-    private void clearContent() {
-        final Chart chart = fChart;
-        if (!chart.isDisposed()) {
-            ISeriesSet set = chart.getSeriesSet();
-            ISeries[] series = set.getSeries();
-            for (int i = 0; i < series.length; i++) {
-                set.deleteSeries(series[i].getId());
-            }
-            for (IAxis axis : chart.getAxisSet().getAxes()) {
-                axis.setRange(new Range(0, 1));
-            }
-            chart.redraw();
-        }
-    }
-
-    /**
-     * Force the number of points to a fixed value
-     *
-     * @param nbPoints
-     *            The number of points to display, cannot be negative. 0 means use
-     *            native resolution. any positive integer means that number of
-     *            points
-     * @since 2.2
-     */
-    public synchronized void setNbPoints(int nbPoints) {
-        if (nbPoints < 0) {
-            throw new IllegalArgumentException("Number of points cannot be negative"); //$NON-NLS-1$
-        }
-        fOverrideNbPoints = nbPoints;
-        updateWithRange(fCurrentTimeRange);
-    }
-
-    /**
-     * Add a data listener.
-     *
-     * @param dataListener
-     *            the data listener to add
-     */
-    public void addDataListener(ISegmentStoreDensityViewerDataListener dataListener) {
-        fListeners.add(dataListener);
-    }
-
-    /**
-     * Remove a data listener.
-     *
-     * @param dataListener
-     *            the data listener to remove
-     */
-    public void removeDataListener(ISegmentStoreDensityViewerDataListener dataListener) {
-        fListeners.remove(dataListener);
-    }
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/ISegmentStoreDensityViewerDataListener.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/ISegmentStoreDensityViewerDataListener.java
deleted file mode 100644
index 6bd2c8e..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/ISegmentStoreDensityViewerDataListener.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2015, 2018 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.tracecompass.segmentstore.core.ISegment;
-
-/**
- * A listener that gets notified when the viewer sees its data changed or its
- * data selection change.
- */
-@Deprecated
-public interface ISegmentStoreDensityViewerDataListener {
-
-    /**
-     * Notification that the data changed in the viewer.
-     *
-     * @param newData
-     *            the new data
-     * @since 2.0
-     */
-    default void viewDataChanged(Iterable<? extends ISegment> newData) {
-        // To be implemented by children
-    }
-
-    /**
-     * Notification that the selection of the data changed in the viewer.
-     *
-     * @param newSelectionData
-     *            the new selection of the data
-     * @since 2.0
-     */
-    default void selectedDataChanged(@Nullable Iterable<? extends ISegment> newSelectionData) {
-        // To be implemented in children
-    }
-
-    /**
-     * Notification that chart updated
-     * @since 2.2
-     */
-    default void chartUpdated() {
-        // To be implemented in children
-    }
-
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/Messages.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/Messages.java
deleted file mode 100644
index 495e409..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/Messages.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author Marc-Andre Laperle
- */
-@Deprecated
-@NonNullByDefault({})
-public class Messages extends NLS {
-    private static final String BUNDLE_NAME = "org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.messages"; //$NON-NLS-1$
-
-    /**
-     * Label for the count axis of the density chart.
-     */
-    public static String AbstractSegmentStoreDensityViewer_CountAxisLabel;
-
-    /**
-     * Label for the time axis of the density chart.
-     */
-    public static String AbstractSegmentStoreDensityViewer_TimeAxisLabel;
-
-    /**
-     * Tool-tip for the Zoom out action
-     */
-    public static String AbstractSegmentStoreDensityViewer_ZoomOutActionToolTipText;
-
-    /**
-     * Label for the series of the density chart.
-     */
-    public static String AbstractSegmentStoreDensityViewer_SeriesLabel;
-
-    static {
-        // initialize resource bundle
-        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-    }
-
-    private Messages() {
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/ZoomOutAction.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/ZoomOutAction.java
deleted file mode 100644
index 1e9aa15..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/ZoomOutAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.AnalysisTimingImageConstants;
-import org.eclipse.tracecompass.common.core.NonNullUtils;
-import org.eclipse.tracecompass.internal.analysis.timing.ui.Activator;
-import org.swtchart.Range;
-
-/**
- * Zoom action for the density view
- */
-@Deprecated
-class ZoomOutAction extends Action {
-
-    private final AbstractSegmentStoreDensityView fView;
-
-    /**
-     * Constructors a ZoomOutAction.
-     *
-     * @param densityViewer
-     *            The parent density viewer
-     */
-    public ZoomOutAction(AbstractSegmentStoreDensityView densityViewer) {
-        fView = densityViewer;
-    }
-
-    @Override
-    public void run() {
-        final AbstractSegmentStoreDensityViewer chart = fView.getDensityViewer();
-        if (chart != null) {
-            chart.zoom(new Range(AbstractSegmentStoreDensityView.DEFAULT_RANGE.getFirst(), AbstractSegmentStoreDensityView.DEFAULT_RANGE.getSecond()));
-        }
-    }
-
-    @Override
-    public ImageDescriptor getImageDescriptor() {
-        return NonNullUtils.checkNotNull(Activator.getDefault().getImageDescripterFromPath(AnalysisTimingImageConstants.IMG_UI_ZOOM_OUT_MENU));
-    }
-
-    @Override
-    public String getToolTipText() {
-        return NonNullUtils.checkNotNull(Messages.AbstractSegmentStoreDensityViewer_ZoomOutActionToolTipText);
-    }
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/messages.properties b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/messages.properties
deleted file mode 100644
index a9512d6..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2015 Ericsson
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-
-AbstractSegmentStoreDensityViewer_CountAxisLabel=Count
-AbstractSegmentStoreDensityViewer_TimeAxisLabel=Duration
-AbstractSegmentStoreDensityViewer_ZoomOutActionToolTipText=Zoom Out
-AbstractSegmentStoreDensityViewer_SeriesLabel=Latencies
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/package-info.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/package-info.java
deleted file mode 100644
index b638a3f..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-@org.eclipse.jdt.annotation.NonNullByDefault
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density;
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/AbstractSegmentStoreScatterChartTreeViewer.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/AbstractSegmentStoreScatterChartTreeViewer.java
deleted file mode 100644
index fec1144..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/AbstractSegmentStoreScatterChartTreeViewer.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 École Polytechnique de Montréal
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.scatter;
-
-import java.util.Comparator;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.analysis.timing.core.segmentstore.IAnalysisProgressListener;
-import org.eclipse.tracecompass.analysis.timing.core.segmentstore.ISegmentStoreProvider;
-import org.eclipse.tracecompass.internal.analysis.timing.core.segmentstore.SegmentStoreScatterDataProvider;
-import org.eclipse.tracecompass.internal.tmf.ui.commands.Messages;
-import org.eclipse.tracecompass.segmentstore.core.ISegment;
-import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
-import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
-import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderManager;
-import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfTreeXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.AbstractSelectTreeViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.ITmfTreeColumnDataProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfGenericTreeEntry;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfTreeColumnData;
-
-import com.google.common.collect.ImmutableList;
-
-/**
- * Abstract tree viewer to go along with the scatter chart viewer in segment
- * store scatter views
- *
- * @author Geneviève Bastien
- * @since 3.0
- * @deprecated use {@link AbstractSegmentStoreScatterChartTreeViewer2} instead
- */
-@Deprecated
-public class AbstractSegmentStoreScatterChartTreeViewer extends AbstractSelectTreeViewer {
-
-    private final String fAnalysisId;
-    private @Nullable ISegmentStoreProvider fSegmentProvider = null;
-    private SegmentStoreProviderProgressListener fListener = new SegmentStoreProviderProgressListener();
-
-    private final class SegStoreScatterLabelProvider extends TreeLabelProvider {
-
-        @Override
-        public @Nullable Image getColumnImage(@Nullable Object element, int columnIndex) {
-            if (columnIndex == 1 && element instanceof TmfGenericTreeEntry && isChecked(element)) {
-                TmfGenericTreeEntry<TmfTreeDataModel> entry = (TmfGenericTreeEntry<TmfTreeDataModel>) element;
-                if (!entry.hasChildren()) {
-                    // ensures that only leaf nodes return images
-                    return getLegendImage(entry.getModel().getId());
-                }
-            }
-            return null;
-        }
-    }
-
-    /**
-     * Listener to update the model with the segment store provider results once
-     * its store is fully completed
-     */
-    private final class SegmentStoreProviderProgressListener implements IAnalysisProgressListener {
-        @Override
-        public void onComplete(ISegmentStoreProvider activeProvider, ISegmentStore<ISegment> data) {
-            /*
-             * Check if the active trace was changed while the provider was building its
-             * segment store
-             */
-            if (activeProvider.equals(fSegmentProvider)) {
-                updateContent(getWindowStartTime(), getWindowEndTime(), false);
-            }
-        }
-    }
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            The parent composite
-     * @param analysisId
-     *            The ID of the analysis to show in this viewer
-     */
-    public AbstractSegmentStoreScatterChartTreeViewer(Composite parent, String analysisId) {
-        super(parent, 1, SegmentStoreScatterDataProvider.ID);
-        fAnalysisId = analysisId;
-        setLabelProvider(new SegStoreScatterLabelProvider());
-    }
-
-    /**
-     * Get the analysis ID used to retrieve the scatter data provider. Extenders may
-     * override this method to return another analysis ID than the one in the
-     * constructor
-     *
-     * @return The analysis ID
-     */
-    protected String getAnalysisId() {
-        return fAnalysisId;
-    }
-
-    @Override
-    protected @Nullable ITmfTreeDataProvider<@NonNull ITmfTreeDataModel> getProvider(@NonNull ITmfTrace trace) {
-        String analysisId = getAnalysisId();
-        /* Support legacy code, get the analysis ID of the segment store */
-        if (analysisId.isEmpty()) {
-            return null;
-        }
-        /* End support of legacy */
-        // TODO: Find another mechanism to update the view rather than listeners, so
-        // that we don't need to expose the analysis to the view
-        IAnalysisModule module = TmfTraceUtils.getAnalysisModuleOfClass(trace, IAnalysisModule.class, analysisId);
-        if (!(module instanceof ISegmentStoreProvider)) {
-            return null;
-        }
-        fSegmentProvider = (ISegmentStoreProvider) module;
-        ((ISegmentStoreProvider) module).addListener(fListener);
-        return DataProviderManager.getInstance().getDataProvider(trace, SegmentStoreScatterDataProvider.ID + ':' + analysisId, ITmfTreeXYDataProvider.class);
-    }
-
-    @Override
-    protected ITmfTreeColumnDataProvider getColumnDataProvider() {
-        return () -> ImmutableList.of(
-                    createColumn(Messages.AbstractSegmentStoreScatterView_Type, Comparator.comparing(TmfGenericTreeEntry::getName)),
-                    new TmfTreeColumnData(Messages.AbstractSegmentStoreScatterView_Legend));
-    }
-
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/AbstractSegmentStoreScatterChartViewer.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/AbstractSegmentStoreScatterChartViewer.java
deleted file mode 100644
index ddb596b..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/AbstractSegmentStoreScatterChartViewer.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2017 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.scatter;
-
-import java.text.Format;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.common.core.format.SubSecondTimeWithUnitFormat;
-import org.eclipse.tracecompass.internal.analysis.timing.core.segmentstore.SegmentStoreScatterDataProvider;
-import org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.scatter.SegmentStoreScatterGraphTooltipProvider;
-import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderManager;
-import org.eclipse.tracecompass.tmf.core.model.OutputElementStyle;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfTreeXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.presentation.IYAppearance;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfFilteredXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfXYChartSettings;
-
-/**
- * Displays the segment store provider data in a SWT scatter chart
- *
- * @author Yonni Chen
- * @since 2.1
- * @deprecated use {@link org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.scatter.AbstractSegmentStoreScatterChartViewer2}
- */
-@Deprecated
-public class AbstractSegmentStoreScatterChartViewer extends TmfFilteredXYChartViewer {
-
-    private static final Format FORMAT =SubSecondTimeWithUnitFormat.getInstance();
-    private static final int DEFAULT_SERIES_WIDTH = 1;
-    private String fAnalysisId;
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            parent composite
-     * @param settings
-     *            See {@link TmfXYChartSettings} to know what it contains
-     */
-    public AbstractSegmentStoreScatterChartViewer(Composite parent, TmfXYChartSettings settings) {
-        this(parent, settings, ""); //$NON-NLS-1$
-    }
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            parent composite
-     * @param settings
-     *            See {@link TmfXYChartSettings} to know what it contains
-     * @param analysisId
-     *            The ID of the analysis to show in this viewer
-     * @since 3.0
-     */
-    public AbstractSegmentStoreScatterChartViewer(Composite parent, TmfXYChartSettings settings, String analysisId) {
-        super(parent, settings, SegmentStoreScatterDataProvider.ID);
-        fAnalysisId = analysisId;
-        setTooltipProvider(new SegmentStoreScatterGraphTooltipProvider(this));
-        getSwtChart().getLegend().setVisible(false);
-        getSwtChart().getAxisSet().getYAxis(0).getTick().setFormat(FORMAT);
-    }
-
-    // ------------------------------------------------------------------------
-    // Operations
-    // ------------------------------------------------------------------------
-
-    /**
-     * Get the analysis ID to show in the viewer
-     *
-     * @return The analysis ID
-     * @since 3.0
-     */
-    protected String getAnalysisId() {
-        return fAnalysisId;
-    }
-
-    @Override
-    protected @Nullable ITmfXYDataProvider initializeDataProvider(ITmfTrace trace) {
-        String analysisId = getAnalysisId();
-
-        if (analysisId.isEmpty()) {
-            /* Should not happen anymore since legacy code,
-             * that get the analysis ID of the segment store, is removed */
-            return null;
-        }
-        return DataProviderManager.getInstance().getDataProvider(trace, SegmentStoreScatterDataProvider.ID + ':' + analysisId, ITmfTreeXYDataProvider.class);
-    }
-
-    // ------------------------------------------------------------------------
-    // Signal handlers
-    // ------------------------------------------------------------------------
-
-    /**
-     * @param signal
-     *            Signal received when a different trace is selected
-     */
-    @Override
-    @TmfSignalHandler
-    public void traceSelected(@Nullable TmfTraceSelectedSignal signal) {
-        super.traceSelected(signal);
-        if (getTrace() != null) {
-            final TmfTimeRange timeRange = TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange();
-            setWindowRange(timeRange.getStartTime().toNanos(), timeRange.getEndTime().toNanos());
-        }
-    }
-
-    /**
-     * @param signal
-     *            Signal received when trace is opened
-     */
-    @Override
-    @TmfSignalHandler
-    public void traceOpened(@Nullable TmfTraceOpenedSignal signal) {
-        super.traceOpened(signal);
-        if (getTrace() != null) {
-            final TmfTimeRange timeRange = TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange();
-            setWindowRange(timeRange.getStartTime().toNanos(), timeRange.getEndTime().toNanos());
-        }
-    }
-
-    @Override
-    public OutputElementStyle getSeriesStyle(@NonNull Long seriesId) {
-        return getPresentationProvider().getSeriesStyle(seriesId, IYAppearance.Type.SCATTER, DEFAULT_SERIES_WIDTH);
-    }
-
-    /**
-     * @param signal
-     *            Signal received when last opened trace is closed
-     */
-    @Override
-    @TmfSignalHandler
-    public void traceClosed(@Nullable TmfTraceClosedSignal signal) {
-        super.traceClosed(signal);
-
-        // Check if there is no more opened trace
-        if (signal != null && TmfTraceManager.getInstance().getActiveTrace() == null) {
-            clearContent();
-        }
-        refresh();
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/SegmentStoreScatterView.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/SegmentStoreScatterView.java
deleted file mode 100644
index 452a7fd..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/SegmentStoreScatterView.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 École Polytechnique de Montréal
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.scatter;
-
-import static org.eclipse.tracecompass.common.core.NonNullUtils.nullToEmptyString;
-
-import java.util.Objects;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.scatter.Messages;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfXYChartSettings;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.IViewDescriptor;
-
-/**
- * Scatter graph showing the segments' data in the form a scatter view.
- *
- * @author Geneviève Bastien
- * @since 3.0
- * {@link org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.scatter.SegmentStoreScatterView2}
- */
-@Deprecated
-public class SegmentStoreScatterView extends TmfChartView {
-    /**
-     * ID of this view
-     */
-    public static final String ID = "org.eclipse.tracecompass.analysis.timing.ui.segstore.scatter"; //$NON-NLS-1$
-
-    /**
-     * Constructor
-     */
-    public SegmentStoreScatterView() {
-        super(ID);
-    }
-
-    @Override
-    public void createPartControl(@Nullable Composite parent) {
-        super.createPartControl(parent);
-        // Set the title of the view from the actual view ID
-        IViewDescriptor desc = PlatformUI.getWorkbench().getViewRegistry().find(getViewId());
-        if (desc != null) {
-            setPartName(desc.getLabel());
-        }
-    }
-
-    @Override
-    protected TmfXYChartViewer createChartViewer(@Nullable Composite parent) {
-        String analysisId = String.valueOf(getViewSite().getSecondaryId());
-        return new AbstractSegmentStoreScatterChartViewer(Objects.requireNonNull(parent),
-                new TmfXYChartSettings(nullToEmptyString(Messages.SegmentStoreScatterGraphViewer_title), nullToEmptyString(Messages.SegmentStoreScatterGraphViewer_xAxis),
-                        nullToEmptyString(Messages.SegmentStoreScatterGraphViewer_yAxis), 1), analysisId);
-    }
-
-    @Override
-    protected @NonNull TmfViewer createLeftChildViewer(@Nullable Composite parent) {
-        String analysisId = String.valueOf(getViewSite().getSecondaryId());
-        return new AbstractSegmentStoreScatterChartTreeViewer(Objects.requireNonNull(parent), analysisId);
-    }
-
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/BaseMouseProvider.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/BaseMouseProvider.java
deleted file mode 100644
index a91cece..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/BaseMouseProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.AbstractSegmentStoreDensityViewer;
-import org.swtchart.Chart;
-
-/**
- * Base class for any mouse provider such as tool tip, zoom and selection providers.
- *
- * @author Bernd Hufmann
- * @author Marc-Andre Laperle
- */
-@Deprecated
-public abstract class BaseMouseProvider {
-
-    private AbstractSegmentStoreDensityViewer fDensityViewer;
-
-    /**
-     * Standard constructor.
-     *
-     * @param densityViewer
-     *            The parent density viewer
-     */
-    public BaseMouseProvider(AbstractSegmentStoreDensityViewer densityViewer) {
-        fDensityViewer = densityViewer;
-    }
-
-    /**
-     * Method to register the provider to the viewer.
-     */
-    protected abstract void register();
-
-    /**
-     * Method to deregister the provider from the viewer.
-     */
-    protected abstract void deregister();
-
-    /**
-     * @return the density viewer
-     */
-    public AbstractSegmentStoreDensityViewer getDensityViewer() {
-        return fDensityViewer;
-    }
-
-    /**
-     * Returns the SWT chart reference
-     *
-     * @return SWT chart reference.
-     */
-    protected Chart getChart() {
-        return fDensityViewer.getControl();
-    }
-
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/Messages.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/Messages.java
deleted file mode 100644
index d702ccf..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/Messages.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author Marc-Andre Laperle
- */
-@Deprecated
-public class Messages extends NLS {
-    private static final String BUNDLE_NAME = "org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density.messages"; //$NON-NLS-1$
-
-    /**
-     * Tooltip count message
-     */
-    public static String SimpleTooltipProvider_count;
-
-    /**
-     * Tooltip duration message
-     */
-    public static String SimpleTooltipProvider_duration;
-
-    static {
-        // initialize resource bundle
-        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-    }
-
-    private Messages() {
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/MouseDragZoomProvider.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/MouseDragZoomProvider.java
deleted file mode 100644
index aae7951..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/MouseDragZoomProvider.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.AbstractSegmentStoreDensityViewer;
-import org.swtchart.IAxis;
-import org.swtchart.ICustomPaintListener;
-import org.swtchart.IPlotArea;
-import org.swtchart.Range;
-
-/**
- * Class for providing zooming based on mouse drag with right mouse button.
- * It also notifies the viewer about a change of range.
- *
- * @author Bernd Hufmann
- * @author Marc-Andre Laperle
- */
-@Deprecated
-public class MouseDragZoomProvider extends BaseMouseProvider implements MouseListener, MouseMoveListener, ICustomPaintListener {
-
-    /** Cached start coordinate */
-    private double fStartCoordinate;
-    /** Cached end coordinate */
-    private double fEndCoordinate;
-    /** Flag indicating that an update is ongoing */
-    private boolean fIsUpdate;
-
-    /**
-     * Default constructor
-     *
-     * @param densityViewer
-     *            the density viewer reference.
-     */
-    public MouseDragZoomProvider(AbstractSegmentStoreDensityViewer densityViewer) {
-        super(densityViewer);
-        register();
-    }
-
-    @Override
-    public final void register() {
-        getChart().getPlotArea().addMouseListener(this);
-        getChart().getPlotArea().addMouseMoveListener(this);
-        ((IPlotArea) getChart().getPlotArea()).addCustomPaintListener(this);
-    }
-
-    @Override
-    public final void deregister() {
-        if (!getChart().isDisposed()) {
-            getChart().getPlotArea().removeMouseListener(this);
-            getChart().getPlotArea().removeMouseMoveListener(this);
-            ((IPlotArea) getChart().getPlotArea()).removeCustomPaintListener(this);
-        }
-    }
-
-    @Override
-    public void mouseDoubleClick(@Nullable MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseDown(@Nullable MouseEvent e) {
-        if (e != null && e.button == 3) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            fStartCoordinate = xAxis.getDataCoordinate(e.x);
-            fEndCoordinate = fStartCoordinate;
-            fIsUpdate = true;
-        }
-    }
-
-    @Override
-    public void mouseUp(@Nullable MouseEvent e) {
-        if ((fIsUpdate) && (fStartCoordinate != fEndCoordinate)) {
-            if (fStartCoordinate > fEndCoordinate) {
-                double tmp = fStartCoordinate;
-                fStartCoordinate = fEndCoordinate;
-                fEndCoordinate = tmp;
-            }
-            getDensityViewer().zoom(new Range(fStartCoordinate, fEndCoordinate));
-        }
-
-        if (fIsUpdate) {
-            getChart().redraw();
-        }
-        fIsUpdate = false;
-    }
-
-    @Override
-    public void mouseMove(@Nullable MouseEvent e) {
-        if (e != null && fIsUpdate) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            fEndCoordinate = xAxis.getDataCoordinate(e.x);
-            getChart().redraw();
-        }
-    }
-
-    @Override
-    public void paintControl(@Nullable PaintEvent e) {
-        if (e != null && fIsUpdate && (fStartCoordinate != fEndCoordinate)) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            int startX = xAxis.getPixelCoordinate(fStartCoordinate);
-            int endX = xAxis.getPixelCoordinate(fEndCoordinate);
-            int prevAlpha = e.gc.getAlpha();
-            e.gc.setAlpha(64);
-            e.gc.setBackground(e.gc.getDevice().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-            if (fStartCoordinate < fEndCoordinate) {
-                e.gc.fillRectangle(startX, 0, endX - startX, e.height);
-            } else {
-                e.gc.fillRectangle(endX, 0, startX - endX, e.height);
-            }
-            e.gc.setAlpha(prevAlpha);
-            e.gc.drawLine(startX, 0, startX, e.height);
-            e.gc.drawLine(endX, 0, endX, e.height);
-        }
-    }
-
-    @Override
-    public boolean drawBehindSeries() {
-        return false;
-    }
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/MouseSelectionProvider.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/MouseSelectionProvider.java
deleted file mode 100644
index 2f54cf5..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/MouseSelectionProvider.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.AbstractSegmentStoreDensityView;
-import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.AbstractSegmentStoreDensityViewer;
-import org.swtchart.IAxis;
-import org.swtchart.ICustomPaintListener;
-import org.swtchart.IPlotArea;
-import org.swtchart.Range;
-
-/**
- * Class for providing selection with the left mouse button. It also notifies
- * the viewer about a change of selection.
- *
- * @author Bernd Hufmann
- * @author Marc-Andre Laperle
- */
-@Deprecated
-public class MouseSelectionProvider extends BaseMouseProvider implements MouseListener, MouseMoveListener, ICustomPaintListener {
-
-    /** Cached start coordinate */
-    private double fStartCoordinate;
-    /** Cached end coordinate */
-    private double fEndCoordinate;
-    /** Flag indicating that an update is ongoing */
-    private boolean fIsUpdate;
-    /** Flag indicating that the begin marker is dragged */
-    private boolean fDragBeginMarker;
-
-    /**
-     * Constructor for a mouse selection provider.
-     *
-     * @param densityViewer
-     *            The parent density viewer
-     */
-    public MouseSelectionProvider(AbstractSegmentStoreDensityViewer densityViewer) {
-        super(densityViewer);
-        register();
-    }
-
-    @Override
-    public final void register() {
-        getChart().getPlotArea().addMouseListener(this);
-        getChart().getPlotArea().addMouseMoveListener(this);
-        ((IPlotArea) getChart().getPlotArea()).addCustomPaintListener(this);
-    }
-
-    @Override
-    public final void deregister() {
-        if (!getChart().isDisposed()) {
-            getChart().getPlotArea().removeMouseListener(this);
-            getChart().getPlotArea().removeMouseMoveListener(this);
-            ((IPlotArea) getChart().getPlotArea()).removeCustomPaintListener(this);
-        }
-    }
-
-    @Override
-    public void mouseDoubleClick(@Nullable MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseDown(@Nullable MouseEvent e) {
-        if (e != null && (e.button == 1)) {
-            fDragBeginMarker = false;
-            if (((e.stateMask & SWT.SHIFT) != SWT.SHIFT) || (fEndCoordinate == fStartCoordinate)) {
-                IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-                fStartCoordinate = xAxis.getDataCoordinate(e.x);
-                fEndCoordinate = fStartCoordinate;
-            } else {
-                double selectionBegin = fStartCoordinate;
-                double selectionEnd = fEndCoordinate;
-                IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-                double time = xAxis.getDataCoordinate(e.x);
-                if (Math.abs(time - selectionBegin) < Math.abs(time - selectionEnd)) {
-                    fDragBeginMarker = true;
-                    fStartCoordinate = time;
-                    fEndCoordinate = selectionEnd;
-                } else {
-                    fStartCoordinate = selectionBegin;
-                    fEndCoordinate = time;
-                }
-            }
-            fIsUpdate = true;
-        }
-    }
-
-    @Override
-    public void mouseUp(@Nullable MouseEvent e) {
-        if ((fIsUpdate)) {
-            if (fStartCoordinate > fEndCoordinate) {
-                double tmp = fStartCoordinate;
-                fStartCoordinate = fEndCoordinate;
-                fEndCoordinate = tmp;
-            }
-            if (!isEmptySelection()) {
-                getDensityViewer().select(new Range(AbstractSegmentStoreDensityView.DEFAULT_RANGE.getFirst(), AbstractSegmentStoreDensityView.DEFAULT_RANGE.getSecond()));
-            } else {
-                getDensityViewer().select(new Range(fStartCoordinate, fEndCoordinate));
-            }
-            fIsUpdate = false;
-            getChart().redraw();
-        }
-    }
-
-    @Override
-    public void mouseMove(@Nullable MouseEvent e) {
-        if (e != null && fIsUpdate) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            if (fDragBeginMarker) {
-                fStartCoordinate = xAxis.getDataCoordinate(e.x);
-            } else {
-                fEndCoordinate = xAxis.getDataCoordinate(e.x);
-            }
-            getChart().redraw();
-        }
-    }
-
-    private boolean isEmptySelection() {
-        IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-        int begin = xAxis.getPixelCoordinate(fStartCoordinate);
-        int end = xAxis.getPixelCoordinate(fEndCoordinate);
-
-        return Math.abs(end - begin) > 2;
-    }
-
-    @Override
-    public void paintControl(@Nullable PaintEvent e) {
-        if (e == null || !isEmptySelection()) {
-            return;
-        }
-
-        Display display = getChart().getDisplay();
-
-        IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-        e.gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
-        e.gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE));
-        e.gc.setLineStyle(SWT.LINE_SOLID);
-        int begin = xAxis.getPixelCoordinate(fStartCoordinate);
-        e.gc.drawLine(begin, 0, begin, e.height);
-
-        int end = xAxis.getPixelCoordinate(fEndCoordinate);
-        e.gc.drawLine(end, 0, end, e.height);
-
-        e.gc.setAlpha(64);
-        if (Math.abs(fEndCoordinate - fStartCoordinate) > 1) {
-            e.gc.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-            int beginX = xAxis.getPixelCoordinate(fStartCoordinate);
-            int endX = xAxis.getPixelCoordinate(fEndCoordinate);
-            if (fEndCoordinate > fStartCoordinate) {
-                e.gc.fillRectangle(beginX + 1, 0, endX - beginX - 1, e.height);
-            } else {
-                e.gc.fillRectangle(endX + 1, 0, beginX - endX - 1, e.height);
-            }
-        }
-    }
-
-    @Override
-    public boolean drawBehindSeries() {
-        return false;
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/SimpleTooltipProvider.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/SimpleTooltipProvider.java
deleted file mode 100644
index 510061b..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/SimpleTooltipProvider.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2015, 2016 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.density;
-
-import java.text.Format;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.AbstractSegmentStoreDensityViewer;
-import org.eclipse.tracecompass.common.core.format.SubSecondTimeWithUnitFormat;
-import org.eclipse.tracecompass.tmf.core.presentation.RGBAColor;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfAbstractToolTipHandler;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-import org.swtchart.ISeries;
-
-/**
- * Tool tip provider for density viewer. It displays the x and y value of the
- * current mouse position.
- *
- * @author Bernd Hufmann
- * @author Marc-Andre Laperle
- */
-@Deprecated
-public class SimpleTooltipProvider extends BaseMouseProvider {
-
-    private static final Format FORMAT = SubSecondTimeWithUnitFormat.getInstance();
-    private static final String HTML_COLOR_TOOLTIP = "<span style=\"color:%s;\">%s</span>"; //$NON-NLS-1$
-
-    private final class DensityToolTipHandler extends TmfAbstractToolTipHandler {
-
-        @Override
-        public void fill(Control control, MouseEvent event, Point pt) {
-            Chart chart = getChart();
-            ISeries[] seriesSet = chart.getSeriesSet().getSeries();
-            if (seriesSet.length != 0) {
-
-                if (event == null || chart.getAxisSet().getXAxes().length == 0 || chart.getAxisSet().getYAxes().length == 0 || seriesSet.length == 0) {
-                    return;
-                }
-                chart.getPlotArea().setToolTipText(null);
-                long x1 = -1;
-                long x2 = -1;
-                List<String> names = new ArrayList<>();
-                List<Long> yValues = new ArrayList<>();
-                List<RGB> colors = new ArrayList<>();
-                for (ISeries ySeriesProvider : seriesSet) {
-                    double[] xValues = ySeriesProvider.getXSeries();
-                    if (xValues.length < 2) {
-                        continue;
-                    }
-                    double delta = xValues[1] - xValues[0];
-                    IAxis xAxis = chart.getAxisSet().getXAxis(0);
-                    double coords = xAxis.getDataCoordinate(event.x);
-                    int index = Arrays.binarySearch(xValues, coords);
-                    if (index < 0) {
-                        index = -index - 2;
-                    }
-                    double[] ySeries = ySeriesProvider.getYSeries();
-                    long y = Math.round(ySeries[index]);
-                    if (y > 0) {
-                        x1 = (long) xValues[index];
-                        x2 = (long) (x1 + delta);
-                        String id = ySeriesProvider.getId();
-                        colors.add(getDensityViewer().getColorForItem(id));
-                        names.add(id);
-                        yValues.add(y);
-                    }
-                }
-                if (!names.isEmpty()) {
-                    addItem(Messages.SimpleTooltipProvider_duration, FORMAT.format(x1) + '-' + FORMAT.format(x2));
-                    if (seriesSet.length == 1) {
-                        // No Color if there's only one
-                        addItem(null, ToolTipString.fromString(String.valueOf(Messages.SimpleTooltipProvider_count)), ToolTipString.fromDecimal(yValues.get(0)));
-                    } else {
-                        for (int i = 0; i < names.size(); i++) {
-                            String id = names.get(i);
-                            RGB color = getDensityViewer().getColorForItem(id);
-                            addItem(null, ToolTipString.fromHtml(String.format(HTML_COLOR_TOOLTIP, new RGBAColor(color.red, color.green, color.blue).toString(), id)), ToolTipString.fromDecimal(yValues.get(i)));
-                        }
-                    }
-
-                }
-            }
-        }
-    }
-
-    private DensityToolTipHandler fToolTipHandler = new DensityToolTipHandler();
-
-    /**
-     * Constructor for a tool tip provider.
-     *
-     * @param densityViewer
-     *            The parent density viewer
-     */
-    public SimpleTooltipProvider(AbstractSegmentStoreDensityViewer densityViewer) {
-        super(densityViewer);
-        register();
-    }
-
-    @Override
-    public void register() {
-        fToolTipHandler.activateHoverHelp(getChart().getPlotArea());
-    }
-
-    @Override
-    public void deregister() {
-        if (!getDensityViewer().getControl().isDisposed()) {
-            fToolTipHandler.deactivateHoverHelp(getChart().getPlotArea());
-        }
-    }
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/messages.properties b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/messages.properties
deleted file mode 100644
index 8152bb4..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/density/messages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2015 Ericsson
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-SimpleTooltipProvider_count=Count
-SimpleTooltipProvider_duration=Duration
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/Messages.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/Messages.java
deleted file mode 100644
index 82e0e77..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/Messages.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.scatter;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author France Bernd Hufmann
- */
-@Deprecated
-@NonNullByDefault({})
-public class Messages extends NLS {
-    private static final String BUNDLE_NAME = "org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.scatter.messages"; //$NON-NLS-1$
-
-    /**
-     * Category
-     */
-    public static String SegmentStoreScatterGraphTooltipProvider_category;
-
-    /**
-     * Title of the scatter graph
-     */
-    public static String SegmentStoreScatterGraphViewer_title;
-
-    /**
-     * Title of the x axis of the scatter graph
-     */
-    public static String SegmentStoreScatterGraphViewer_xAxis;
-
-    /**
-     * Title of the y axis of the scatter graph
-     */
-    public static String SegmentStoreScatterGraphViewer_yAxis;
-
-    /**
-     * Legend
-     */
-    public static String SegmentStoreScatterGraphViewer_legend;
-
-    /**
-     * Name of the compacting job
-     */
-    public static String SegmentStoreScatterGraphViewer_compactTitle;
-
-    static {
-        // initialize resource bundle
-        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-    }
-
-    private Messages() {
-    }
-}
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/SegmentStoreScatterGraphTooltipProvider.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/SegmentStoreScatterGraphTooltipProvider.java
deleted file mode 100644
index 98da82c..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/SegmentStoreScatterGraphTooltipProvider.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2015, 2016 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.scatter;
-
-import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.ITmfChartTimeProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfClosestDataPointTooltipProvider;
-import org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils;
-import org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils.Resolution;
-import org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils.TimeFormat;
-import org.swtchart.ISeries;
-
-/**
- * Tooltip provider for durations scatter charts. It displays the y value of
- * position x as well as it highlights the closest data point.
- *
- * @author Bernd Hufmann
- */
-@Deprecated
-public class SegmentStoreScatterGraphTooltipProvider extends TmfClosestDataPointTooltipProvider{
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Constructor for the segment store scatter chart tooltip provider.
-     *
-     * @param tmfChartViewer
-     *                  - the parent chart viewer
-     */
-    public SegmentStoreScatterGraphTooltipProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfClosestDataPointTooltipProvider
-    // ------------------------------------------------------------------------
-    @Override
-    protected @Nullable Map<String, Map<String, Object>> createToolTipMap(Parameter param) {
-        ISeries[] series = getChart().getSeriesSet().getSeries();
-        int seriesIndex = param.getSeriesIndex();
-        int dataIndex = param.getDataIndex();
-        if ((series != null) && (seriesIndex < series.length)) {
-            Map<String, Object> segMap = new HashMap<>();
-            ISeries serie = series[seriesIndex];
-            double[] xS = serie.getXSeries();
-            double[] yS = serie.getYSeries();
-            if ((xS != null) && (yS != null) && (dataIndex < xS.length) && (dataIndex < yS.length)) {
-                ITmfTimestamp segTs = TmfTimestamp.fromNanos((long) xS[dataIndex] + getChartViewer().getTimeOffset());
-                long segDuration = (long) yS[dataIndex];
-                segMap.put(checkNotNull(Messages.SegmentStoreScatterGraphViewer_xAxis), segTs);
-                segMap.put(checkNotNull(Messages.SegmentStoreScatterGraphViewer_yAxis), String.valueOf(FormatTimeUtils.formatDelta(segDuration, TimeFormat.RELATIVE, Resolution.NANOSEC)));
-                return Collections.singletonMap(checkNotNull(Messages.SegmentStoreScatterGraphTooltipProvider_category), segMap);
-            }
-        }
-        return null;
-    }
-
-}
\ No newline at end of file
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/messages.properties b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/messages.properties
deleted file mode 100644
index 8e496aa..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/messages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2016 Ericsson
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-SegmentStoreScatterGraphTooltipProvider_category=Segment
-SegmentStoreScatterGraphViewer_title=Latency vs Time
-SegmentStoreScatterGraphViewer_xAxis=Time
-SegmentStoreScatterGraphViewer_yAxis=Latency
-SegmentStoreScatterGraphViewer_legend=Duration
-SegmentStoreScatterGraphViewer_compactTitle=Compacting Duration Query
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/package-info.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/package-info.java
deleted file mode 100644
index d6d93d4..0000000
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/scatter/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Ericsson
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-@org.eclipse.jdt.annotation.NonNullByDefault
-package org.eclipse.tracecompass.internal.analysis.timing.ui.views.segmentstore.scatter;
diff --git a/doc/org.eclipse.tracecompass.doc.dev/doc/Developer-Guide.mediawiki b/doc/org.eclipse.tracecompass.doc.dev/doc/Developer-Guide.mediawiki
index fc39a0f..18eb8b7 100644
--- a/doc/org.eclipse.tracecompass.doc.dev/doc/Developer-Guide.mediawiki
+++ b/doc/org.eclipse.tracecompass.doc.dev/doc/Developer-Guide.mediawiki
@@ -364,7 +364,7 @@
 [[Image:images/SelectManifest.png]]<br>
 
 Change to the Dependencies tab and select '''Add...''' of the ''Required Plug-ins'' section. A new dialog box will open. Next find plug-in ''org.eclipse.tracecompass.tmf.core'' and press '''OK'''<br>
-Following the same steps, add ''org.eclipse.tracecompass.tmf.ui'' and ''org.swtchart''.<br>
+Following the same steps, add ''org.eclipse.tracecompass.tmf.ui'' and ''org.exlipse.swtchart''.<br>
 [[Image:images/AddDependencyTmfUi.png]]<br>
 
 Change to the Extensions tab and select '''Add...''' of the ''All Extension'' section. A new dialog box will open. Find the view extension ''org.eclipse.ui.views'' and press '''Finish'''.<br>
diff --git a/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/META-INF/MANIFEST.MF b/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/META-INF/MANIFEST.MF
index 5656fef..8ea5e63 100644
--- a/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -40,6 +40,5 @@
  com.google.gson,
  org.apache.commons.io,
  org.eclipse.swtchart,
- org.eclipse.tracecompass.testtraces.ctf,
- org.swtchart
+ org.eclipse.tracecompass.testtraces.ctf
 Automatic-Module-Name: org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests
diff --git a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF
index 1a37374..56a631d 100644
--- a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -25,7 +25,6 @@
  org.junit,
  org.eclipse.tracecompass.lttng2.ust.core,
  org.eclipse.tracecompass.lttng2.ust.ui,
- org.swtchart,
  org.eclipse.tracecompass.tmf.ui.tests,
  org.eclipse.tracecompass.ctf.core.tests,
  org.eclipse.tracecompass.analysis.profiling.ui,
diff --git a/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF b/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF
index 5a82df3..1ba76e1 100644
--- a/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF
+++ b/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF
@@ -28,6 +28,5 @@
  com.google.common.collect,
  org.eclipse.tracecompass.analysis.os.linux.core.kernelmemoryusage,
  org.eclipse.tracecompass.analysis.os.linux.core.memory,
- org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.memory,
- org.swtchart
+ org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.memory
 Automatic-Module-Name: org.eclipse.tracecompass.lttng2.ust.ui
diff --git a/rcp/org.eclipse.tracecompass.rcp/feature.xml b/rcp/org.eclipse.tracecompass.rcp/feature.xml
index aba948f..0414530 100644
--- a/rcp/org.eclipse.tracecompass.rcp/feature.xml
+++ b/rcp/org.eclipse.tracecompass.rcp/feature.xml
@@ -79,13 +79,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.swtchart"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.swtchart"
          download-size="0"
          install-size="0"
diff --git a/rcp/org.eclipse.tracecompass.rcp/pom.xml b/rcp/org.eclipse.tracecompass.rcp/pom.xml
index 3aad573..88787d5 100644
--- a/rcp/org.eclipse.tracecompass.rcp/pom.xml
+++ b/rcp/org.eclipse.tracecompass.rcp/pom.xml
@@ -85,7 +85,6 @@
                 <plugin id="org.json"/>
                 <plugin id="org.sat4j.core"/>
                 <plugin id="org.sat4j.pb"/>
-                <plugin id="org.swtchart"/>
                 <plugin id="com.google.gson"/>
                 <plugin id="com.google.guava"/>
                 <plugin id="org.apache.commons.io"/>
diff --git a/releng/org.eclipse.tracecompass.releng-site/category.xml b/releng/org.eclipse.tracecompass.releng-site/category.xml
index 7d008f5..8c2c820 100644
--- a/releng/org.eclipse.tracecompass.releng-site/category.xml
+++ b/releng/org.eclipse.tracecompass.releng-site/category.xml
@@ -41,7 +41,7 @@
    <bundle id="org.apache.commons.compress"/>
    <bundle id="org.apache.commons.lang3"/>
    <bundle id="org.apache.commons.io"/>
-   <bundle id="org.swtchart"/>
+   <bundle id="org.eclipse.swtchart"/>
    <bundle id="com.google.guava"/>
    <bundle id="org.json"/>
    <category-def name="Trace Compass" label="Trace Compass Main Features"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.10.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.10.target
index 3e57f82..08180e3 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.10.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.10.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="tracecompass-e4.10" sequenceNumber="14">
+<?pde version="3.8"?><target name="tracecompass-e4.10" sequenceNumber="15">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -33,8 +33,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.11.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.11.target
index 8192754..cfc1aa5 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.11.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.11.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.11" sequenceNumber="14">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.11" sequenceNumber="15">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -32,8 +32,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.12.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.12.target
index 1b048a7..79ae583 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.12.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.12.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.12" sequenceNumber="9">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.12" sequenceNumber="10">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -32,8 +32,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.13.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.13.target
index c1dc455..091739b 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.13.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.13.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.13" sequenceNumber="9">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.14" sequenceNumber="9">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -32,8 +32,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.14.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.14.target
index bb1e13c..dd88ea8 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.14.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.14.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.14" sequenceNumber="12">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.14" sequenceNumber="13">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -32,8 +32,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.15.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.15.target
index fcfe4aa..3efad4b 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.15.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.15.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.15" sequenceNumber="10">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.15" sequenceNumber="11">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -26,8 +26,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.16.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.16.target
index d7daa0a..e352631 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.16.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.16.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.16" sequenceNumber="7">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.16" sequenceNumber="8">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -26,8 +26,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.17.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.17.target
index 97bdb22..ec9b964 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.17.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.17.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.17" sequenceNumber="9">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.17" sequenceNumber="10">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -26,8 +26,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.18.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.18.target
index fa027cd..2f6405d 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.18.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.18.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.18" sequenceNumber="4">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.18" sequenceNumber="5">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -26,8 +26,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.19.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.19.target
index 5e986e1..bb561db 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.19.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.19.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.19" sequenceNumber="6">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-e4.19" sequenceNumber="7">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -27,8 +27,6 @@
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
 <unit id="org.apache.xml.serializer" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.8.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.8.target
index d899e1c..96b161a 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.8.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.8.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="tracecompass-e4.8" sequenceNumber="16">
+<?pde version="3.8"?><target name="tracecompass-e4.8" sequenceNumber="17">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -33,8 +33,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.9.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.9.target
index 5f6034e..3285426 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.9.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.9.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="tracecompass-e4.9" sequenceNumber="15">
+<?pde version="3.8"?><target name="tracecompass-e4.9" sequenceNumber="16">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -33,8 +33,6 @@
 <unit id="org.apache.commons.io" version="0.0.0"/>
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target b/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target
index 635f075..c8ffe60 100644
--- a/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target
+++ b/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-eStaging" sequenceNumber="161">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde version="3.8"?><target name="tracecompass-eStaging" sequenceNumber="162">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.gnu.dsf.feature.group" version="0.0.0"/>
@@ -27,8 +27,6 @@
 <unit id="org.apache.commons.lang" version="0.0.0"/>
 <unit id="org.apache.commons.lang3" version="0.0.0"/>
 <unit id="org.apache.xml.serializer" version="0.0.0"/>
-<unit id="org.swtchart" version="0.10.0.v201605200358"/>
-<unit id="org.swtchart.source" version="0.10.0.v201605200358"/>
 <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
 <unit id="org.json" version="0.0.0"/>
 <unit id="org.apache.derby" version="0.0.0"/>
diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests/META-INF/MANIFEST.MF b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests/META-INF/MANIFEST.MF
index d791286..167cf09 100644
--- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -39,6 +39,5 @@
  org.eclipse.tracecompass.tmf.ui.tests,
  org.eclipse.jdt.annotation;bundle-version="[2.0.0,3.0.0)";resolution:=optional
 Import-Package: org.apache.commons.io,
- org.eclipse.tracecompass.testtraces.ctf,
- org.swtchart
+ org.eclipse.tracecompass.testtraces.ctf
 Automatic-Module-Name: org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests
diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/META-INF/MANIFEST.MF b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/META-INF/MANIFEST.MF
index 434f74f..19befc0 100644
--- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/META-INF/MANIFEST.MF
+++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/META-INF/MANIFEST.MF
@@ -18,7 +18,6 @@
  org.eclipse.tracecompass.analysis.timing.core,
  org.eclipse.tracecompass.analysis.timing.ui,
  org.eclipse.tracecompass.segmentstore.core,
- org.swtchart,
  org.eclipse.wst.xml.ui,
  org.eclipse.ui.ide,
  org.eclipse.core.filesystem,
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/META-INF/MANIFEST.MF b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/META-INF/MANIFEST.MF
index 5e8af51..228667f 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/META-INF/MANIFEST.MF
+++ b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/META-INF/MANIFEST.MF
@@ -43,10 +43,8 @@
  org.eclipse.test.performance,
  org.eclipse.tracecompass.testtraces.ctf,
  org.eclipse.tracecompass.tmf.ctf.core.tests.shared,
- org.eclipse.tracecompass.tmf.ctf.core.trace,
- org.swtchart
-Export-Package: org.eclipse.tracecompass.tmf.ui.swtbot.tests,
- org.eclipse.tracecompass.tmf.ui.swtbot.tests.parsers.custom;x-internal:=true,
+ org.eclipse.tracecompass.tmf.ctf.core.trace
+Export-Package: org.eclipse.tracecompass.tmf.ui.swtbot.tests.parsers.custom;x-internal:=true,
  org.eclipse.tracecompass.tmf.ui.swtbot.tests.perf.views,
  org.eclipse.tracecompass.tmf.ui.swtbot.tests.perspectives;x-internal:=true,
  org.eclipse.tracecompass.tmf.ui.swtbot.tests.project,
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java
index 0c5561f..f39e92b 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java
@@ -733,32 +733,6 @@
         return new TimeGraphIsReadyCondition(view, selectionRange, visibleTime);
     }
 
-    @Deprecated
-    private static class XYViewerIsReadyConditionLegacy extends DefaultCondition  {
-
-        private org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer fViewer;
-        private String fFailureMessage;
-
-        private XYViewerIsReadyConditionLegacy(org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer view) {
-            fViewer = view;
-        }
-
-        @Override
-        public boolean test() throws Exception {
-
-            if (fViewer.isDirty()) {
-                fFailureMessage = "Time graph is dirty";
-                return false;
-            }
-            return true;
-        }
-
-        @Override
-        public String getFailureMessage() {
-            return fFailureMessage;
-        }
-    }
-
     private static class XYViewerIsReadyCondition extends DefaultCondition  {
 
         private org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfXYChartViewer fViewer;
@@ -841,21 +815,6 @@
     }
 
     /**
-     *
-     * Wait until the XY chart viewer is ready. The XY chart viewer is
-     * considered ready when it is not updating.
-     *
-     * @param viewer
-     *            the XY chart viewer
-     * @return ICondition for verification
-     * @deprecated @{link {@link ConditionHelpers#xyViewerIsReadyCondition(org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfXYChartViewer)}}
-     */
-    @Deprecated
-    public static ICondition xyViewerIsReadyCondition(org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer viewer) {
-        return new XYViewerIsReadyConditionLegacy(viewer);
-    }
-
-    /**
     *
     * Wait until the XY chart viewer is ready. The XY chart viewer is
     * considered ready when it is not updating.
@@ -956,33 +915,6 @@
         }
     }
 
-    private static class NumberOfSeriesLegacy extends DefaultCondition {
-        private String fFailureMessage;
-        private org.swtchart.Chart fChart;
-        private final int fNumberOfSeries;
-
-        public NumberOfSeriesLegacy(org.swtchart.Chart chart, int numberOfSeries) {
-            fChart = chart;
-            fNumberOfSeries = numberOfSeries;
-        }
-
-        @Override
-        public boolean test() throws Exception {
-            int length = fChart.getSeriesSet().getSeries().length;
-            if (length != fNumberOfSeries){
-                fFailureMessage = "Chart did not contain the expected number series. Actual " + length + ", expected " + fNumberOfSeries;
-                return false;
-            }
-
-            return true;
-        }
-
-        @Override
-        public String getFailureMessage() {
-            return fFailureMessage;
-        }
-    }
-
     private static class NumberOfSeries extends DefaultCondition {
         private String fFailureMessage;
         private Chart fChart;
@@ -1019,22 +951,6 @@
      *            the number of expected series
      *
      * @return ICondition for verification
-     * @deprecated use {@link ConditionHelpers#numberOfSeries(Chart, int)}
-     */
-    @Deprecated
-    public static ICondition numberOfSeries(org.swtchart.Chart chart, int numberOfSeries) {
-        return new NumberOfSeriesLegacy(chart, numberOfSeries);
-    }
-
-    /**
-     * Wait until the chart has the specified number of series.
-     *
-     * @param chart
-     *            the chart
-     * @param numberOfSeries
-     *            the number of expected series
-     *
-     * @return ICondition for verification
      */
     public static ICondition numberOfSeries(Chart chart, int numberOfSeries) {
         return new NumberOfSeries(chart, numberOfSeries);
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotSwtChart.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotSwtChart.java
deleted file mode 100644
index 20164cb..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotSwtChart.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.matchers.WidgetOfType;
-import org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBotControl;
-import org.swtchart.Chart;
-import org.swtchart.ISeries;
-
-/**
- * SWTBot class representing a SwtChart
- *
- * @author Bernd Hufmann
- * @deprecated use {link {@link SWTBotEclipseSwtChart}
- */
-@Deprecated
-public class SWTBotSwtChart extends AbstractSWTBotControl<Chart> {
-
-    /**
-     * Constructor
-     *
-     * @param w the widget
-     * @throws WidgetNotFoundException if the widget is <code>null</code> or widget has been disposed.
-     */
-    public SWTBotSwtChart(Chart w) throws WidgetNotFoundException {
-        super(w);
-    }
-
-    /**
-     * Constructor
-     *
-     * @param bot
-     *            a SWTBot instance with which to find a SwtChart
-     * @throws WidgetNotFoundException
-     *             if the widget is <code>null</code> or widget has been
-     *             disposed.
-     */
-    public SWTBotSwtChart(SWTBot bot) throws WidgetNotFoundException {
-        super(bot.widget(WidgetOfType.widgetOfType(Chart.class)));
-    }
-
-    @Override
-    public AbstractSWTBotControl<Chart> moveMouseToWidget() {
-        return super.moveMouseToWidget();
-    }
-
-    /**
-     * Returns the list of series
-     *
-     * @return the list of series
-     */
-    public List<SWTBotSwtChartSeries> getSeries() {
-        List<SWTBotSwtChartSeries> list = new ArrayList<>();
-        for (ISeries series : widget.getSeriesSet().getSeries()) {
-            list.add(new SWTBotSwtChartSeries(widget, series));
-        }
-        return list;
-    }
-
-    /**
-     * Returns the series with the specified id
-     *
-     * @param id
-     *            the id
-     * @return the series
-     */
-    public SWTBotSwtChartSeries getSeries(String id) {
-        AtomicReference<ISeries> series = new AtomicReference<>();
-        SWTBotUtils.waitUntil(chart -> {
-            series.set(widget.getSeriesSet().getSeries(id));
-            return series.get() != null;
-        }, widget, () -> "Timed out waiting for series " + id);
-        return new SWTBotSwtChartSeries(widget, series.get());
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotSwtChartSeries.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotSwtChartSeries.java
deleted file mode 100644
index bfae59c..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotSwtChartSeries.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared;
-
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBotControl;
-import org.swtchart.Chart;
-import org.swtchart.ISeries;
-import org.swtchart.ISeries.SeriesType;
-
-/**
- * SWTBot class representing a SwtChart series
- *
- * @author Patrick Tasse
- * @deprecated use {link {@link SWTBotEclipseSwtChartSeries}
- */
-@Deprecated
-public class SWTBotSwtChartSeries extends AbstractSWTBotControl<Chart> {
-
-    private final ISeries fSeries;
-
-    /**
-     * Constructor
-     *
-     * @param chart
-     *            the chart widget
-     * @param series
-     *            the series
-     * @throws WidgetNotFoundException
-     *             if the widget is <code>null</code> or widget has been
-     *             disposed.
-     */
-    public SWTBotSwtChartSeries(Chart chart, ISeries series) throws WidgetNotFoundException {
-        super(chart);
-        fSeries = series;
-    }
-
-    /**
-     * Returns the series type
-     *
-     * @return the series type
-     */
-    public SeriesType getType() {
-        return fSeries.getType();
-    }
-
-    /**
-     * Returns the series id
-     *
-     * @return the series id
-     */
-    public String getSeriesId() {
-        return fSeries.getId();
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/XYDataProviderBaseTest.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/XYDataProviderBaseTest.java
deleted file mode 100644
index 6520482..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/XYDataProviderBaseTest.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.swtbot.tests;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Objects;
-
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Logger;
-import org.apache.log4j.SimpleLayout;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
-import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
-import org.eclipse.swtbot.swt.finder.matchers.WidgetOfType;
-import org.eclipse.swtbot.swt.finder.utils.FileUtils;
-import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
-import org.eclipse.tracecompass.tmf.core.model.TmfCommonXAxisModel;
-import org.eclipse.tracecompass.tmf.core.model.YModel;
-import org.eclipse.tracecompass.tmf.core.model.xy.IYModel;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
-import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-import org.eclipse.ui.IViewPart;
-import org.hamcrest.Matcher;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.runner.RunWith;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.FrameworkUtil;
-import org.swtchart.Chart;
-import org.swtchart.IBarSeries;
-import org.swtchart.ILineSeries;
-import org.swtchart.ISeries;
-import org.swtchart.LineStyle;
-
-import com.google.common.primitives.Doubles;
-import com.google.common.primitives.Longs;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-/**
- * SWTBot tests for viewers using XY data provider
- *
- * @author Yonni Chen
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.swtbot.tests.views.xychart.XYDataProviderBaseTest}
- */
-@Deprecated
-@RunWith(SWTBotJunit4ClassRunner.class)
-public abstract class XYDataProviderBaseTest {
-
-    /** The workbench bot */
-    protected static SWTWorkbenchBot fBot;
-
-    /** The Log4j logger instance. */
-    private static final Logger fLogger = Logger.getRootLogger();
-
-    /** Default project name */
-    protected static final String TRACE_PROJECT_NAME = "test";
-
-    private static Gson fGson = new GsonBuilder().setPrettyPrinting().create();
-
-    private SWTBotView fViewBot;
-    private Chart fChart;
-
-    /**
-     * Before Class
-     */
-    @BeforeClass
-    public static void beforeClass() {
-        SWTBotUtils.initialize();
-
-        /* set up for swtbot */
-        SWTBotPreferences.TIMEOUT = 20000; /* 20 second timeout */
-        SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
-        fLogger.removeAllAppenders();
-        fLogger.addAppender(new ConsoleAppender(new SimpleLayout(), ConsoleAppender.SYSTEM_OUT));
-        fBot = new SWTWorkbenchBot();
-        SWTBotUtils.closeView("welcome", fBot);
-        /* Create the trace project */
-        SWTBotUtils.createProject(TRACE_PROJECT_NAME);
-        /* Finish waiting for eclipse to load */
-        WaitUtils.waitForJobs();
-    }
-
-    /**
-     * Close the editor
-     */
-    @AfterClass
-    public static void tearDown() {
-        SWTBotUtils.deleteProject(TRACE_PROJECT_NAME, fBot);
-        fLogger.removeAllAppenders();
-    }
-
-    /**
-     * Set up
-     */
-    @Before
-    public void setup() {
-        SWTBotUtils.openView(getViewID());
-        fViewBot = fBot.viewById(getViewID());
-        fViewBot.show();
-
-        Matcher<Chart> widgetOfType = WidgetOfType.widgetOfType(Chart.class);
-        fChart = fViewBot.bot().widget(widgetOfType);
-        ITmfTrace trace = getTestTrace();
-
-        File file = new File(trace.getPath());
-        SWTBotUtils.openTrace(TRACE_PROJECT_NAME, file.getAbsolutePath(), trace.getTraceTypeId());
-        SWTBotUtils.activateEditor(fBot, trace.getName());
-    }
-
-    /**
-     * After Test
-     */
-    @After
-    public void after() {
-        fBot.closeAllEditors();
-        SWTBotUtils.closeSecondaryShells(fBot);
-        disposeTestTrace();
-    }
-
-    /**
-     * Get the full path to a test file from this class's bundle.
-     *
-     * @param bundlePath
-     *            path from the bundle
-     * @return the absolute path
-     */
-    private String getFullPath(String bundlePath) {
-        try {
-            Bundle bundle = FrameworkUtil.getBundle(this.getClass());
-            URL location = FileLocator.find(bundle, new Path(bundlePath), null);
-            URI uri = FileLocator.toFileURL(location).toURI();
-            return new File(uri).getAbsolutePath();
-        } catch (Exception e) {
-            fail(e.toString());
-            return null;
-        }
-    }
-
-    /**
-     * Based on a SWT Chart, we check if data shown is valid with a JSON file.
-     * Comparison with the main series and other series if exists
-     *
-     * @param chart
-     *            A SWT Chart
-     * @param otherSeries
-     *            An array of other series name to check other than the main series
-     * @param expectedJson
-     *            The path of the JSON file relative to this class's bundle
-     * @return True if the serialized chart data matches the JSON file content
-     */
-    protected boolean isChartDataValid(final Chart chart, String expectedJson, String... otherSeries) {
-        /**
-         * FIXME : Once CQ for Jackson is approved, use deserialization instead of
-         * comparing strings
-         */
-        String expected = FileUtils.read(getFullPath(expectedJson));
-        TmfCommonXAxisModel model = extractModelFromChart(chart, otherSeries);
-        String current = fGson.toJson(model);
-        current = current.replaceAll("\\(Legacy\\)", "View");
-        return expected.equals(current);
-    }
-
-    /**
-     * From a SWT Chart, this method extract a {@link TmfCommonXAxisModel} that
-     * represents the chart. Since, we unfortunately have no mecanism to deserialize
-     * with GSON, we have to compare strings. So, once the model is extract from the
-     * Chart, we serialize it and compare with a string
-     *
-     * @param chart
-     *            A SWT Chart
-     * @param otherSeries
-     *            Name of other series to extract from Chart
-     * @return A {@link TmfCommonXAxisModel}
-     */
-    protected TmfCommonXAxisModel extractModelFromChart(final Chart chart, String... otherSeries) {
-        String mainSeriesName = getMainSeriesName();
-        ISeries mainSeries = chart.getSeriesSet().getSeries(mainSeriesName);
-        if (mainSeries == null) {
-            System.out.println("Main Series " + mainSeriesName + " not found in chart");
-            return null;
-        }
-
-        /* X and Y Values shown in chart */
-        double[] xMain = mainSeries.getXSeries();
-        double[] yMain = mainSeries.getYSeries();
-
-        Map<@NonNull String, @NonNull IYModel> yModels = new LinkedHashMap<>();
-        yModels.put(mainSeriesName, new YModel(-1, mainSeriesName, Objects.requireNonNull(yMain)));
-
-        for (String other : otherSeries) {
-            if (other != null) {
-                ISeries series = chart.getSeriesSet().getSeries(other);
-                if (series == null) {
-                    System.out.println("Series " + other + " not found in chart");
-                    return null;
-                }
-
-                /* X and Y Values shown in chart */
-                double[] xSeries = series.getXSeries();
-                double[] ySeries = series.getYSeries();
-
-                /* Series should have the same x axis values, not finished updating all series*/
-                if (!Arrays.equals(xMain, xSeries)) {
-                    System.out.println("Series don't currently have the same x axis values");
-                    return null;
-                }
-                yModels.put(other, new YModel(-1, other, Objects.requireNonNull(ySeries)));
-            }
-        }
-
-        long[] x = Longs.toArray(Doubles.asList(xMain));
-        assertNotNull(x);
-        return new TmfCommonXAxisModel(getTitle(), x, yModels.values());
-    }
-
-    /**
-     * Gets the ChartViewer from a TmfChartView
-     *
-     * @param viewPart
-     *            The IViewPart
-     * @return The ChartViewer from the IViewPart
-     */
-    protected static TmfXYChartViewer getChartViewer(IViewPart viewPart) {
-        if (viewPart instanceof TmfChartView) {
-            return ((TmfChartView) viewPart).getChartViewer();
-        }
-        return null;
-    }
-
-    /**
-     * Verify the style of a series in the XY chart
-     *
-     * @param seriesName
-     *            The name of the series
-     * @param expectedType
-     *            Expected type of the series
-     * @param expectedColor
-     *            Expected color of the series. If the color is arbitrary, a value
-     *            of <code>null</code> will skip color check
-     * @param expectedLineStyle
-     *            Expected line style of the series
-     * @param isArea
-     *            Parameter should be true if expected series show area, false
-     *            either
-     */
-    protected void verifySeriesStyle(String seriesName, ISeries.SeriesType expectedType, @Nullable RGB expectedColor, LineStyle expectedLineStyle, boolean isArea) {
-        /* Make sure the UI update is complete */
-        UIThreadRunnable.syncExec(() -> {});
-
-        ISeries series = fChart.getSeriesSet().getSeries(seriesName);
-        assertNotNull(series);
-        assertTrue(series.isVisible());
-
-        /* Color, type and style */
-        assertEquals(expectedType, series.getType());
-
-        if (expectedType == ISeries.SeriesType.LINE) {
-            ILineSeries line = (ILineSeries) series;
-            if (expectedColor != null) {
-                assertEquals(expectedColor, line.getLineColor().getRGB());
-            }
-            assertEquals(expectedLineStyle, line.getLineStyle());
-            assertEquals(isArea, line.isAreaEnabled());
-        } else if (expectedType == ISeries.SeriesType.BAR) {
-            IBarSeries bar = (IBarSeries) series;
-            if (expectedColor != null) {
-                assertEquals(expectedColor, bar.getBarColor().getRGB());
-            }
-            assertTrue(bar.isStackEnabled());
-        }
-    }
-
-    /**
-     * Gets the SWT Chart
-     *
-     * @return The chart
-     *
-     */
-    protected Chart getChart() {
-        return fChart;
-    }
-
-    /**
-     * Gets the SWT Bot View
-     *
-     * @return The SWT Bot View
-     *
-     */
-    protected SWTBotView getSWTBotView() {
-        return fViewBot;
-    }
-
-    /**
-     * Gets the main series name of the XY
-     *
-     * @return The main series name
-     */
-    protected abstract @NonNull String getMainSeriesName();
-
-    /**
-     * Gets the title of the XY
-     *
-     * @return The title
-     */
-    protected abstract @NonNull String getTitle();
-
-    /**
-     * Gets the view ID
-     *
-     * @return The view ID
-     */
-    protected abstract String getViewID();
-
-    /**
-     * Gets the trace on which the test will be run
-     *
-     * @return The trace
-     */
-    protected abstract ITmfTrace getTestTrace();
-
-    /**
-     * Disposes the trace on which the test was run
-     */
-    protected abstract void disposeTestTrace();
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/XYChartViewStub.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/XYChartViewStub.java
deleted file mode 100644
index 8714bd4..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/XYChartViewStub.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.swtbot.tests.views;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.internal.tmf.core.model.TmfXyResponseFactory;
-import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderParameterUtils;
-import org.eclipse.tracecompass.tmf.core.model.CommonStatusMessage;
-import org.eclipse.tracecompass.tmf.core.model.YModel;
-import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeModel;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfTreeXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfXyModel;
-import org.eclipse.tracecompass.tmf.core.model.xy.IYModel;
-import org.eclipse.tracecompass.tmf.core.response.ITmfResponse;
-import org.eclipse.tracecompass.tmf.core.response.TmfModelResponse;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.AbstractSelectTreeViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.ITmfTreeColumnDataProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfGenericTreeEntry;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfTreeColumnData;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfFilteredXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfXYChartSettings;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.primitives.Longs;
-
-/**
- * XYChart View Stub
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.swtbot.tests.views.xychart.XYChartViewStub}
- */
-@Deprecated
-@SuppressWarnings("restriction")
-public class XYChartViewStub extends TmfChartView {
-
-    /** View ID. */
-    public static final String ID = "org.eclipse.tracecompass.tmf.ui.swtbot.tests.views.xychart.stub"; //$NON-NLS-1$
-
-    /** View ID. */
-    @NonNull
-    public static final String PROVIDER_ID = "org.eclipse.tracecompass.tmf.ui.swtbot.tests.views.xychart.stub.provider"; //$NON-NLS-1$
-
-    /** Title of the chart viewer */
-    public static final String VIEW_TITLE = "XY Chart View Stub"; //$NON-NLS-1$
-
-    /**
-     * Constructor
-     */
-    public XYChartViewStub() {
-        super(VIEW_TITLE);
-    }
-
-    @Override
-    protected TmfXYChartViewer createChartViewer(Composite parent) {
-        TmfXYChartSettings settings = new TmfXYChartSettings(null, null, null, 1);
-        return new TmfFilteredXYChartViewer(parent, settings, PROVIDER_ID) {
-            @Override
-            protected ITmfXYDataProvider initializeDataProvider(@NonNull ITmfTrace trace) {
-                return new MyTmfXyDataProvider();
-            }
-        };
-    }
-
-    @Override
-    protected @NonNull TmfViewer createLeftChildViewer(Composite parent) {
-        return new MyAbsractSelectTreeViewer(parent, PROVIDER_ID);
-    }
-
-    private class MyTmfXyDataProvider implements ITmfTreeXYDataProvider<@NonNull ITmfTreeDataModel> {
-        @SuppressWarnings("null")
-        @Override
-        public final TmfModelResponse<ITmfXyModel> fetchXY(Map<String, Object> fetchParameters, @Nullable IProgressMonitor monitor) {
-            List<Long> xValues = DataProviderParameterUtils.extractTimeRequested(fetchParameters);
-            if (xValues == null) {
-                return TmfXyResponseFactory.createFailedResponse("No requested time values provided");
-            }
-            double[] yValues = new double[xValues.size()];
-            for (int i = 0; i < yValues.length; i++) {
-                yValues[i] = xValues.get(i) * 0.000001;
-            }
-            @NonNull
-            IYModel series = new YModel(1, "Top", yValues);
-            List<@NonNull IYModel> yModels = Collections.singletonList(series);
-            return TmfXyResponseFactory.create("Top", Objects.requireNonNull(Longs.toArray(xValues)), yModels, true);
-        }
-
-        @Override
-        public final TmfModelResponse<TmfTreeModel<@NonNull ITmfTreeDataModel>> fetchTree(Map<String, Object> fetchParameters, @Nullable IProgressMonitor monitor) {
-            @NonNull
-            List<@NonNull ITmfTreeDataModel> list = Collections.singletonList(new TmfTreeDataModel(1, -1L, "Top"));
-            TmfTreeModel<@NonNull ITmfTreeDataModel> tree = new TmfTreeModel<>(Collections.emptyList(), list);
-            return new TmfModelResponse<>(tree, ITmfResponse.Status.COMPLETED, CommonStatusMessage.COMPLETED);
-        }
-
-        @Override
-        public @NonNull String getId() {
-            return PROVIDER_ID;
-        }
-
-    }
-
-    private class MyAbsractSelectTreeViewer extends AbstractSelectTreeViewer {
-
-        class MyTreeLabelProvider extends TreeLabelProvider { }
-
-        public MyAbsractSelectTreeViewer(Composite parent, String id) {
-            super(parent, 1, id);
-            setLabelProvider(new MyTreeLabelProvider());
-        }
-
-        @Override
-        protected ITmfTreeColumnDataProvider getColumnDataProvider() {
-            return () -> ImmutableList.of(
-                        createColumn("Name", Comparator.comparing(TmfGenericTreeEntry::getName)),
-                        new TmfTreeColumnData("Legend"));
-        }
-
-        @Override
-        protected ITmfTreeDataProvider<@NonNull ITmfTreeDataModel> getProvider(@NonNull ITmfTrace trace) {
-            return new MyTmfXyDataProvider();
-        }
-    }
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/XYChartViewTest.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/XYChartViewTest.java
deleted file mode 100644
index 5e5678e..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/XYChartViewTest.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.swtbot.tests.views;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Logger;
-import org.apache.log4j.SimpleLayout;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
-import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
-import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
-import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
-import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
-import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
-import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
-import org.eclipse.tracecompass.tmf.core.trace.TmfContext;
-import org.eclipse.tracecompass.tmf.core.trace.location.ITmfLocation;
-import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotSwtChart;
-import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.swtchart.Chart;
-import org.swtchart.ISeries;
-import org.swtchart.ISeriesSet;
-
-/**
- * Test for XY Chart views in Trace Compass.
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.swtbot.tests.views.xychart.XYChartViewTest}
- */
-@Deprecated
-@RunWith(SWTBotJunit4ClassRunner.class)
-public class XYChartViewTest {
-
-    private static final Logger fLogger = Logger.getRootLogger();
-
-    private SWTBotView fViewBot;
-
-    private TmfTraceStub fTrace;
-
-    private SWTWorkbenchBot fBot;
-
-    private TmfXYChartViewer fXyViewer;
-
-    private static final TmfTimeRange INITIAL_WINDOW_RANGE = new TmfTimeRange(TmfTimestamp.fromNanos(20), TmfTimestamp.fromNanos(100));
-
-    /**
-     * Set up for test
-     */
-    @BeforeClass
-    public static void beforeClass() {
-        SWTBotUtils.initialize();
-        SWTBotPreferences.TIMEOUT = 20000; /* 20 second timeout */
-        SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
-        fLogger.removeAllAppenders();
-        fLogger.addAppender(new ConsoleAppender(new SimpleLayout(), ConsoleAppender.SYSTEM_OUT));
-    }
-
-    /**
-     * Before the test is run, make the view see the items.
-     *
-     * Reset the perspective and close all the views.
-     *
-     * @throws TmfTraceException
-     *             could not load a trace
-     */
-    @Before
-    public void before() throws TmfTraceException {
-        fBot = new SWTWorkbenchBot();
-        fBot.closeAllEditors();
-        for (SWTBotView viewBot : fBot.views()) {
-            viewBot.close();
-        }
-        fTrace = new TmfTraceStub() {
-
-            @Override
-            public @NonNull String getName() {
-                return "Stub";
-            }
-
-            @Override
-            public TmfContext seekEvent(ITmfLocation location) {
-                return new TmfContext();
-            }
-        };
-        fTrace.setStartTime(TmfTimestamp.fromNanos(0));
-
-        fTrace.setEndTime(TmfTimestamp.fromNanos(180));
-
-        TmfTraceStub trace = fTrace;
-        trace.initialize(null, "", ITmfEvent.class);
-        assertNotNull(trace);
-
-        // Register trace to trace manager
-        UIThreadRunnable.syncExec(() -> TmfSignalManager.dispatchSignal(new TmfTraceOpenedSignal(this, trace, null)));
-
-        // Open view
-        SWTBotUtils.openView(XYChartViewStub.ID);
-        fViewBot = fBot.viewById(XYChartViewStub.ID);
-        fViewBot.show();
-
-        TmfChartView viewPart = (TmfChartView) fViewBot.getViewReference().getView(true);
-        fXyViewer = viewPart.getChartViewer();
-
-        // Wait till SWT chart is constructed
-        fViewBot.bot().waitUntil(new DefaultCondition() {
-            @Override
-            public boolean test() throws Exception {
-                return fXyViewer.getSwtChart() != null;
-            }
-            @Override
-            public String getFailureMessage() {
-                return "SWT Chart is null";
-            }
-        });
-
-        // Wait for trace to be loaded
-        resetTimeRange();
-    }
-
-
-    /**
-     * Clean up after a test, reset the views.
-     */
-    @After
-    public void after() {
-        TmfTraceStub trace = fTrace;
-        assertNotNull(trace);
-        UIThreadRunnable.syncExec(() -> TmfSignalManager.dispatchSignal(new TmfTraceClosedSignal(this, trace)));
-        fViewBot.close();
-        fBot.waitUntil(ConditionHelpers.viewIsClosed(fViewBot));
-        fTrace.dispose();
-    }
-
-    /**
-     * Put things back the way they were
-     */
-    @AfterClass
-    public static void afterClass() {
-        SWTWorkbenchBot bot = new SWTWorkbenchBot();
-        bot.closeAllEditors();
-        fLogger.removeAllAppenders();
-    }
-
-    /**
-     * Test horizontal zoom, we can see a rounding error
-     */
-    @Test
-    public void testHorizontalZoom() {
-        fViewBot.setFocus();
-
-        assertEquals(80, fXyViewer.getWindowDuration());
-
-        SWTBotSwtChart xyChart = new SWTBotSwtChart(fViewBot.bot());
-
-        fireKeyInGraph(xyChart, '=');
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, 52));
-        fireKeyInGraph(xyChart, '+');
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, 34));
-        fireKeyInGraph(xyChart, '-');
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, 51));
-        fireKeyInGraph(xyChart, '-');
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, 77));
-
-        resetTimeRange();
-
-        /* Zoom using zoom-in and zoom-out buttons */
-        SWTBotToolbarButton button = fViewBot.toolbarButton("Zoom In");
-        button.click();
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, 52));
-        button = fViewBot.toolbarButton("Zoom Out");
-        button.click();
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, 78));
-
-        /*
-         *  Note that 'w' and 's' zooming is based on mouse position. Just check if
-         *  window range was increased or decreased to avoid inaccuracy due to
-         *  the mouse position in test environment.
-         */
-        long previousRange = fXyViewer.getWindowDuration();
-        fireKeyInGraph(xyChart, 'w');
-        fViewBot.bot().waitUntil(new SeriesUpdatedCondition(fXyViewer, previousRange, false));
-        previousRange = fXyViewer.getWindowDuration();
-        fireKeyInGraph(xyChart, 's');
-        fViewBot.bot().waitUntil(new SeriesUpdatedCondition(fXyViewer, previousRange, true));
-    }
-
-    /**
-     * Test zoom to selection
-     */
-    @Test
-    public void testZoomToSelection() {
-        SWTBotSwtChart xyChart = new SWTBotSwtChart(fViewBot.bot());
-
-        xyChart.setFocus();
-
-        assertEquals(80, fXyViewer.getWindowDuration());
-
-        /* set selection to trace start time */
-        ITmfTimestamp selStartTime = TmfTimestamp.fromNanos(30L);
-        ITmfTimestamp selEndTime = TmfTimestamp.fromNanos(80L);
-        TmfTimeRange range = new TmfTimeRange(selStartTime, selEndTime);
-        TmfSignalManager.dispatchSignal(new TmfSelectionRangeUpdatedSignal(this, selStartTime, selEndTime));
-        // Wait till selection is finished
-        fViewBot.bot().waitUntil(new DefaultCondition() {
-            @Override
-            public boolean test() throws Exception {
-                return (fXyViewer.getSelectionEndTime() - fXyViewer.getSelectionBeginTime()) == getDuration(range);
-            }
-            @Override
-            public String getFailureMessage() {
-                return "SWT Chart is null";
-            }
-        });
-        fireKeyInGraph(xyChart, 'z');
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, getDuration(range)));
-    }
-
-    /**
-     * Test 'a' and 'd' navigation
-     */
-    @Test
-    public void testKeyboardNavigation() {
-        SWTBotSwtChart xyChart = new SWTBotSwtChart(fViewBot.bot());
-        xyChart.setFocus();
-        assertEquals(80, fXyViewer.getWindowDuration());
-
-        TmfTimeRange updatedWindowRange = new TmfTimeRange(TmfTimestamp.fromNanos(40), TmfTimestamp.fromNanos(120));
-
-        // move to the right
-        fireKeyInGraph(xyChart, 'd');
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, getDuration(updatedWindowRange)));
-
-        // move to the left
-        fireKeyInGraph(xyChart, 'a');
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, getDuration(INITIAL_WINDOW_RANGE)));
-    }
-
-    // ------------------------------------------------------------------------
-    // Helper methods
-    // ------------------------------------------------------------------------
-
-    private static void fireKeyInGraph(SWTBotSwtChart chart, char c, int... modifiers) {
-        chart.setFocus();
-        // Move mouse to middle of the chart
-        chart.moveMouseToWidget();
-        int mask = 0;
-        for (int modifier : modifiers) {
-            mask |= modifier;
-        }
-        chart.pressShortcut(mask, c);
-    }
-
-    private static long getDuration(TmfTimeRange range) {
-        return range.getEndTime().getValue() - range.getStartTime().getValue();
-    }
-
-    private void resetTimeRange() {
-        TmfWindowRangeUpdatedSignal signal = new TmfWindowRangeUpdatedSignal(this, INITIAL_WINDOW_RANGE);
-        TmfSignalManager.dispatchSignal(signal);
-        fViewBot.bot().waitUntil(new SeriesCondition(fXyViewer, getDuration(INITIAL_WINDOW_RANGE)));
-    }
-
-    private static class SeriesCondition extends DefaultCondition {
-        private TmfXYChartViewer fViewer;
-        private long fExpectedRange;
-        private Exception fExecption = null;
-
-        public SeriesCondition(TmfXYChartViewer view, long expectedRange) {
-            fViewer = view;
-            fExpectedRange = expectedRange;
-        }
-
-        @Override
-        public boolean test() throws Exception {
-            try {
-                Chart chart = fViewer.getSwtChart();
-                ISeriesSet set = chart.getSeriesSet();
-                if (set == null) {
-                    return false;
-                }
-                ISeries[] series = set.getSeries();
-                return series != null && series.length > 0 && fExpectedRange == fViewer.getWindowDuration();
-            } catch (Exception e) {
-                fExecption = e;
-                throw e;
-            }
-        }
-
-        @Override
-        public String getFailureMessage() {
-            return "Expected window range (" + fExpectedRange + ") not achieved. Actual=" + fViewer.getWindowDuration() + (fExecption == null ? "" : (". Exception: " + fExecption));
-        }
-    }
-
-    private class SeriesUpdatedCondition extends DefaultCondition {
-        TmfXYChartViewer fView;
-        long fPreviousRange;
-        boolean fIsIncreased;
-        private Exception fExecption = null;
-
-        public SeriesUpdatedCondition(TmfXYChartViewer view, long previousRange, boolean increased) {
-            fView = view;
-            fPreviousRange = previousRange;
-            fIsIncreased = increased;
-        }
-
-        @Override
-        public boolean test() throws Exception {
-            try {
-                Chart chart = fView.getSwtChart();
-                ISeriesSet set = chart.getSeriesSet();
-                if (set == null) {
-                    return false;
-                }
-                ISeries[] series = set.getSeries();
-                if (series == null) {
-                    return false;
-                }
-                long newRange = fView.getWindowDuration();
-                if (fIsIncreased) {
-                    return newRange > fPreviousRange;
-                }
-                return newRange < fPreviousRange;
-            } catch (Exception e) {
-                fExecption = e;
-                throw e;
-            }
-        }
-
-        @Override
-        public String getFailureMessage() {
-            return "Window range didn't " + (fIsIncreased ? "increase" : "decrease") +
-                    " (previous: " + fPreviousRange + ", actual: " + fView.getWindowDuration() + ")" + (fExecption == null ? "" : (". Exception: " + fExecption));
-        }
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/META-INF/MANIFEST.MF b/tmf/org.eclipse.tracecompass.tmf.ui/META-INF/MANIFEST.MF
index 263c4ec..28160c7 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/META-INF/MANIFEST.MF
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 6.2.2.qualifier
+Bundle-Version: 7.0.0.qualifier
 Bundle-Localization: plugin
 Bundle-SymbolicName: org.eclipse.tracecompass.tmf.ui;singleton:=true
 Bundle-Activator: org.eclipse.tracecompass.internal.tmf.ui.Activator
@@ -22,7 +22,6 @@
  org.eclipse.jface.text,
  org.eclipse.cdt.core,
  org.eclipse.swtchart,
- org.swtchart,
  com.ibm.icu,
  org.eclipse.tracecompass.segmentstore.core,
  org.apache.commons.compress,
@@ -72,7 +71,6 @@
  org.eclipse.tracecompass.internal.tmf.ui.viewers.timegraph.handlers;x-internal:=true,
  org.eclipse.tracecompass.internal.tmf.ui.viewers.tree;x-internal:=true,
  org.eclipse.tracecompass.internal.tmf.ui.viewers.xychart;x-internal:=true,
- org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts;x-internal:=true,
  org.eclipse.tracecompass.internal.tmf.ui.views;x-friends:="org.eclipse.tracecompass.tmf.ui.swtbot.tests",
  org.eclipse.tracecompass.internal.tmf.ui.views.handler;x-internal:=true,
  org.eclipse.tracecompass.internal.tmf.ui.views.histogram;x-internal:=true,
@@ -110,9 +108,6 @@
  org.eclipse.tracecompass.tmf.ui.viewers.xychart,
  org.eclipse.tracecompass.tmf.ui.viewers.xychart.barchart,
  org.eclipse.tracecompass.tmf.ui.viewers.xychart.linechart,
- org.eclipse.tracecompass.tmf.ui.viewers.xycharts,
- org.eclipse.tracecompass.tmf.ui.viewers.xycharts.barcharts,
- org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts,
  org.eclipse.tracecompass.tmf.ui.views,
  org.eclipse.tracecompass.tmf.ui.views.colors,
  org.eclipse.tracecompass.tmf.ui.views.distribution.model,
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/pom.xml b/tmf/org.eclipse.tracecompass.tmf.ui/pom.xml
index 454da0d..d8ff1fd 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/pom.xml
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/pom.xml
@@ -20,7 +20,7 @@
   </parent>
 
   <artifactId>org.eclipse.tracecompass.tmf.ui</artifactId>
-  <version>6.2.2-SNAPSHOT</version>
+  <version>7.0.0-SNAPSHOT</version>
 
   <packaging>eclipse-plugin</packaging>
 
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/xycharts/TmfXYChartTimeAdapter.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/xycharts/TmfXYChartTimeAdapter.java
deleted file mode 100644
index 17aa657..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/xycharts/TmfXYChartTimeAdapter.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.ITmfChartTimeProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.ITimeDataProvider;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils.TimeFormat;
-
-/**
- * Tmf Chart data provider wrapper to comply with Time data provider API
- *
- * @author Matthew Khouzam
- * @deprecated use {@link org.eclipse.tracecompass.internal.tmf.ui.viewers.xychart.TmfXYChartTimeAdapter}
- */
-@Deprecated
-public final class TmfXYChartTimeAdapter implements ITimeDataProvider {
-
-    private final TmfXYChartViewer fTimeProvider;
-    private TimeFormat fTimeFormat;
-
-    /**
-     * Constructor, requires a {@link ITmfChartTimeProvider}
-     *
-     * @param provider
-     *            the provider to wrap
-     */
-    public TmfXYChartTimeAdapter(@NonNull TmfXYChartViewer provider) {
-        fTimeProvider = provider;
-    }
-
-    @Override
-    public long getBeginTime() {
-        return fTimeProvider.getStartTime();
-    }
-
-    @Override
-    public long getEndTime() {
-        return fTimeProvider.getEndTime();
-    }
-
-    @Override
-    public long getMinTimeInterval() {
-        return 1L;
-    }
-
-    @Override
-    public int getNameSpace() {
-        // charts have no namespace
-        return 0;
-    }
-
-    @Override
-    public long getSelectionBegin() {
-        return fTimeProvider.getSelectionBeginTime();
-    }
-
-    @Override
-    public long getSelectionEnd() {
-        return fTimeProvider.getSelectionEndTime();
-    }
-
-    @Override
-    public long getTime0() {
-        return fTimeProvider.getWindowStartTime();
-    }
-
-    @Override
-    public long getTime1() {
-        return fTimeProvider.getWindowEndTime();
-    }
-
-    @Override
-    public void setSelectionRangeNotify(long beginTime, long endTime, boolean ensureVisible) {
-        // Do nothing
-    }
-
-    @Override
-    public void setSelectionRange(long beginTime, long endTime, boolean ensureVisible) {
-        // Do nothing
-    }
-
-    @Override
-    public long getMinTime() {
-        return fTimeProvider.getStartTime();
-    }
-
-    @Override
-    public long getMaxTime() {
-        return fTimeProvider.getEndTime();
-    }
-
-    @Override
-    public TimeFormat getTimeFormat() {
-        return fTimeFormat;
-    }
-
-    @Override
-    public int getTimeSpace() {
-        return getAxisWidth();
-    }
-
-    /**
-     * Get the width of the axis
-     *
-     * @return the width of the axis
-     */
-    public int getAxisWidth() {
-        return fTimeProvider.getSwtChart().getPlotArea().getBounds().width;
-    }
-
-    // -------------------------------------------------------------------------
-    // Override rest if need be
-    // -------------------------------------------------------------------------
-
-    @Override
-    public void setStartFinishTimeNotify(long time0, long time1) {
-        fTimeProvider.updateWindow(time0, time1);
-    }
-
-    @Override
-    public void setStartFinishTime(long time0, long time1) {
-        // Do nothing
-    }
-
-    @Override
-    public void notifyStartFinishTime() {
-        // Do nothing
-    }
-
-    @Override
-    public void setSelectedTimeNotify(long time, boolean ensureVisible) {
-        // Do nothing
-    }
-
-    @Override
-    public void setSelectedTime(long time, boolean ensureVisible) {
-        // Do nothing
-    }
-
-    @Override
-    public void setNameSpace(int width) {
-        // Do nothing
-    }
-
-    /**
-     * Set the time format.
-     *
-     * @param timeFormat
-     *            the time format
-     */
-    public void setTimeFormat(org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils.TimeFormat timeFormat) {
-        fTimeFormat = TimeFormat.convert(timeFormat);
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/xycharts/TmfXyUiUtils.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/xycharts/TmfXyUiUtils.java
deleted file mode 100644
index caa7b91..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/xycharts/TmfXyUiUtils.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.ITmfChartTimeProvider;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-import org.swtchart.Range;
-
-/**
- * Utility class providing XY charts utility methods, for example for zooming
- * and scrolling. For scrolling, it will move the zoom window to another
- * position while maintaining the window size. It also notifies the viewer about
- * a change of range.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.internal.tmf.ui.viewers.xychart.TmfXyUiUtils}
- */
-@Deprecated
-public class TmfXyUiUtils {
-
-    // ------------------------------------------------------------------------
-    // Constants
-    // ------------------------------------------------------------------------
-    private static final long MIN_WINDOW_SIZE = 1;
-    private static final double ZOOM_FACTOR_AT_X_POSITION = 0.8;
-    private static final double ZOOM_FACTOR_SELECTION_CENTERED = 1.5;
-
-    // ------------------------------------------------------------------------
-    // Constructor
-    // ------------------------------------------------------------------------
-    private TmfXyUiUtils() {
-    }
-
-    /**
-     * Perform horizontal scrolling for a given viewer.
-     *
-     * @param viewer
-     *            the chart time provider to use for scrolling
-     * @param chart
-     *            the SwtChart reference to use the scrolling
-     * @param left
-     *            true to scroll left else scroll right
-     *
-     */
-    public static void horizontalScroll(ITmfChartTimeProvider viewer, Chart chart, boolean left) {
-        IAxis xAxis = chart.getAxisSet().getXAxis(0);
-        if (xAxis == null) {
-            return;
-        }
-        long windowStartTime = viewer.getWindowStartTime();
-        long windowsEndTime = viewer.getWindowEndTime();
-
-        long startTime = viewer.getStartTime();
-        long endTime = viewer.getEndTime();
-
-        long range = windowsEndTime - windowStartTime;
-        if (range <= 0) {
-            return;
-        }
-        long increment = Math.max(1, range / 2);
-        if (left) {
-            windowStartTime = Math.max(windowStartTime - increment, startTime);
-            windowsEndTime = windowStartTime + range;
-        } else {
-            windowsEndTime = Math.min(windowsEndTime + increment, endTime);
-            windowStartTime = windowsEndTime - range;
-        }
-        viewer.updateWindow(windowStartTime, windowsEndTime);
-        xAxis.setRange(new Range(windowStartTime - viewer.getTimeOffset(), windowsEndTime - viewer.getTimeOffset()));
-    }
-
-    /**
-     * Provides horizontal zooming for a given viewer at given position.
-     *
-     * @param viewer
-     *            the chart time provider to use for zooming
-     * @param chart
-     *            the SwtChart reference to use the zooming
-     * @param zoomIn
-     *            true to zoomIn else zoomOut
-     * @param x
-     *            x location to center the zoom
-     */
-    public static void zoom(ITmfChartTimeProvider viewer, Chart chart, boolean zoomIn, final int x) {
-        IAxis xAxis = chart.getAxisSet().getXAxis(0);
-        if (xAxis == null) {
-            return;
-        }
-        // Compute the new time range
-        long newDuration = viewer.getWindowDuration();
-        if (newDuration == 0) {
-            return;
-        }
-        double ratio = 1.0;
-        if (zoomIn) {
-            ratio = ZOOM_FACTOR_AT_X_POSITION;
-            newDuration = Math.round(ZOOM_FACTOR_AT_X_POSITION * newDuration);
-        } else {
-            ratio = 1.0 / ZOOM_FACTOR_AT_X_POSITION;
-            newDuration = (long) Math.ceil(newDuration * ratio);
-        }
-        newDuration = Math.max(MIN_WINDOW_SIZE, newDuration);
-
-        // Center the zoom on mouse position, distribute new duration and adjust
-        // for boundaries.
-        long timeAtXPos = limitXDataCoordinate(viewer, xAxis.getDataCoordinate(x)) + viewer.getTimeOffset();
-        // Note: ratio = newDuration/oldDuration
-        long newWindowStartTime = timeAtXPos - Math.round(ratio * (timeAtXPos - viewer.getWindowStartTime()));
-        long newWindowEndTime = validateWindowEndTime(viewer, newWindowStartTime, newWindowStartTime + newDuration);
-        newWindowStartTime = validateWindowStartTime(viewer, newWindowStartTime);
-        viewer.updateWindow(newWindowStartTime, newWindowEndTime);
-        xAxis.setRange(new Range(newWindowStartTime - viewer.getTimeOffset(),
-                newWindowEndTime - viewer.getTimeOffset()));
-    }
-
-    /**
-     * Provides horizontal zooming for a given viewer based on current selection
-     * range. If selection range is visible, the zooming is centered on the
-     * middle of the selection range. If the selection range is not visible,
-     * then the zooming is centered on the window range.
-     *
-     * @param viewer
-     *            the chart time provider to use for zooming
-     * @param chart
-     *            the SwtChart reference to use the zooming
-     * @param zoomIn
-     *            true to zoom-in else to zoom-out
-     */
-    public static void zoom(ITmfChartTimeProvider viewer, Chart chart, boolean zoomIn) {
-        if (zoomIn) {
-            zoomIn(viewer, chart);
-        } else {
-            zoomOut(viewer, chart);
-        }
-    }
-
-    /**
-     * Limits x data coordinate to window start and window end range for a given
-     * viewer
-     *
-     * @param viewer
-     *            the chart time provider to use
-     * @param x
-     *            x to limit
-     * @return x if x >= begin && x <= end begin if x < begin end if x > end
-     */
-    public static long limitXDataCoordinate(@Nullable ITmfChartTimeProvider viewer, double x) {
-        if (viewer != null) {
-            long windowStartTime = viewer.getWindowStartTime() - viewer.getTimeOffset();
-            long windowEndTime = viewer.getWindowEndTime() - viewer.getTimeOffset();
-
-            if (x < windowStartTime) {
-                return windowStartTime;
-            }
-
-            if (x > windowEndTime) {
-                return windowEndTime;
-            }
-        }
-
-        return (long) x;
-    }
-
-    // ------------------------------------------------------------------------
-    // Helper methods
-    // ------------------------------------------------------------------------
-    private static void zoomIn(ITmfChartTimeProvider viewer, Chart chart) {
-        IAxis xAxis = chart.getAxisSet().getXAxis(0);
-        if (xAxis == null) {
-            return;
-        }
-        long prevTime0 = viewer.getWindowStartTime();
-        long prevTime1 = viewer.getWindowEndTime();
-        long prevRange = prevTime1 - prevTime0;
-        if (prevRange == 0) {
-            return;
-        }
-        long selTime = (viewer.getSelectionEndTime() + viewer.getSelectionBeginTime()) / 2;
-        if (selTime < prevTime0 || selTime > prevTime1) {
-            selTime = (prevTime0 + prevTime1) / 2;
-        }
-        long time0 = selTime - (long) ((selTime - prevTime0) / ZOOM_FACTOR_SELECTION_CENTERED);
-        long time1 = selTime + (long) ((prevTime1 - selTime) / ZOOM_FACTOR_SELECTION_CENTERED);
-
-        if ((time1 - time0) < MIN_WINDOW_SIZE) {
-            time0 = selTime - (selTime - prevTime0) * MIN_WINDOW_SIZE / prevRange;
-            time1 = time0 + MIN_WINDOW_SIZE;
-        }
-
-        time0 = validateWindowStartTime(viewer, time0);
-        time1 = validateWindowEndTime(viewer, time0, time1);
-        viewer.updateWindow(time0, time1);
-        xAxis.setRange(new Range(time0 - viewer.getTimeOffset(),
-                time1 - viewer.getTimeOffset()));
-    }
-
-    private static void zoomOut(ITmfChartTimeProvider viewer, Chart chart) {
-        IAxis xAxis = chart.getAxisSet().getXAxis(0);
-        if (xAxis == null) {
-            return;
-        }
-
-        long prevTime0 = viewer.getWindowStartTime();
-        long prevTime1 = viewer.getWindowEndTime();
-        long selTime = (viewer.getSelectionEndTime() + viewer.getSelectionBeginTime()) / 2;
-        if (selTime < prevTime0 || selTime > prevTime1) {
-            selTime = (prevTime0 + prevTime1) / 2;
-        }
-        long newInterval;
-        long time0;
-        if (prevTime1 - prevTime0 <= 1) {
-            newInterval = 2;
-            time0 = selTime - 1;
-        } else {
-            newInterval = (long) Math.ceil((prevTime1 - prevTime0) * ZOOM_FACTOR_SELECTION_CENTERED);
-            time0 = selTime - (long) Math.ceil((selTime - prevTime0) * ZOOM_FACTOR_SELECTION_CENTERED);
-        }
-        /* snap to bounds if zooming out of range */
-        time0 = validateWindowStartTime(viewer, Math.max(MIN_WINDOW_SIZE, Math.min(time0, viewer.getEndTime() - newInterval)));
-        long time1 = validateWindowEndTime(viewer, time0, time0 + newInterval);
-        viewer.updateWindow(time0, time1);
-        xAxis.setRange(new Range(time0 - viewer.getTimeOffset(),
-                time1 - viewer.getTimeOffset()));
-    }
-
-    private static long validateWindowStartTime(ITmfChartTimeProvider viewer, long start) {
-        long realStart = start;
-
-        long startTime = viewer.getStartTime();
-        long endTime = viewer.getEndTime();
-
-        if (realStart < startTime) {
-            realStart = startTime;
-        }
-        if (realStart > endTime) {
-            realStart = endTime;
-        }
-        return realStart;
-    }
-
-    private static long validateWindowEndTime(ITmfChartTimeProvider viewer, long start, long end) {
-        long realEnd = end;
-        long endTime = viewer.getEndTime();
-
-        if (realEnd > endTime) {
-            realEnd = endTime;
-        }
-        if (realEnd < start + MIN_WINDOW_SIZE) {
-            realEnd = start + MIN_WINDOW_SIZE;
-        }
-        return realEnd;
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/LockRangeDialog.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/LockRangeDialog.java
deleted file mode 100644
index c579035..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/LockRangeDialog.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2019 Draeger, Auriga
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-package org.eclipse.tracecompass.internal.tmf.ui.views;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.AxisRange;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
-import org.swtchart.Range;
-
-/**
- * Dialog box for entering minimum and maximum range for Y axis of
- * {@link TmfChartView}.
- *
- * @author Ivan Grinenko
- * @deprecated use {@link org.eclipse.tracecompass.internal.tmf.ui.views.xychart.LockRangeDialog}
- *
- */
-@Deprecated
-public class LockRangeDialog extends Dialog {
-    /**
-     * Checkbox to lock or unlock the axis.
-     */
-    private Button fCheck;
-    /**
-     * Text field for minimum.
-     */
-    private Text fMinText;
-    /**
-     * Text field for maximum.
-     */
-    private Text fMaxText;
-    /**
-     * Viewer with Y axis to lock.
-     */
-    private final TmfXYChartViewer fChartViewer;
-    /**
-     * ModifyListener for the text inputs.
-     */
-    private ModifyListener fModifyListener = e -> validateInputs();
-
-    private static boolean isValidDouble(String input) {
-        try {
-            Double.parseDouble(input);
-        } catch (NumberFormatException e) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param parentShell
-     *            parent shell
-     * @param chartViewer
-     *            viewer with Y axis to lock
-     */
-    public LockRangeDialog(Shell parentShell, TmfXYChartViewer chartViewer) {
-        super(parentShell);
-        fChartViewer = chartViewer;
-    }
-
-    @Override
-    protected Control createDialogArea(Composite p) {
-        p.getShell().setText(Messages.TmfChartView_LockYAxis);
-        Composite parent = (Composite) super.createDialogArea(p);
-
-        GridLayout parentLayout = new GridLayout(2, false);
-        parent.setLayout(parentLayout);
-
-        Range range = fChartViewer.getSwtChart().getAxisSet().getYAxis(0).getRange();
-
-        fCheck = new Button(parent, SWT.CHECK);
-        fCheck.setText(Messages.TmfChartView_LockButton);
-        fCheck.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1));
-        fCheck.setSelection(true);
-        fCheck.addSelectionListener(new SelectionListener() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                fMinText.setEnabled(fCheck.getSelection());
-                fMaxText.setEnabled(fCheck.getSelection());
-                validateInputs();
-            }
-
-            @Override
-            public void widgetDefaultSelected(SelectionEvent e) {
-                // nothing to do
-            }
-        });
-
-        Label minLabel = new Label(parent, SWT.RADIO);
-        minLabel.setText(Messages.TmfChartView_LowerYAxisRange);
-        minLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
-
-        fMinText = new Text(parent, SWT.SINGLE | SWT.BORDER);
-        fMinText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-        fMinText.setText(String.valueOf(range.lower));
-        fMinText.addModifyListener(fModifyListener);
-
-        Label maxLabel = new Label(parent, SWT.RADIO);
-        maxLabel.setText(Messages.TmfChartView_UpperYAxisRange);
-        maxLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
-
-        fMaxText = new Text(parent, SWT.SINGLE | SWT.BORDER);
-        fMaxText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-        fMaxText.setText(String.valueOf(range.upper));
-        fMaxText.addModifyListener(fModifyListener);
-
-        return parent;
-    }
-
-    @Override
-    protected void okPressed() {
-        if (fCheck.getSelection()) {
-            lockAxis();
-        } else {
-            fChartViewer.setFixedYRange(null);
-        }
-        super.okPressed();
-    }
-
-    private void lockAxis() {
-        double min = 0;
-        double max = 0;
-        try {
-            min = Double.parseDouble(fMinText.getText());
-            max = Double.parseDouble(fMaxText.getText());
-            fChartViewer.setFixedYRange(new AxisRange(min, max));
-        } catch (NumberFormatException e) {
-            // Suppose values are already validated
-        }
-    }
-
-    /**
-     * OK is enabled only if both of text inputs contain valid doubles or the
-     * checkbox is unchecked.
-     */
-    private void validateInputs() {
-        boolean isValidInput = isValidDouble(fMaxText.getText()) && isValidDouble(fMinText.getText());
-        getButton(IDialogConstants.OK_ID).setEnabled(isValidInput || !fCheck.getSelection());
-    }
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/colors/X11Color.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/colors/X11Color.java
deleted file mode 100644
index dd8d359..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/colors/X11Color.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Patrick Tasse - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.colors;
-
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.tracecompass.tmf.core.dataprovider.X11ColorUtils;
-
-/**
- * A registry of named X11 colors. It maps certain strings to RGB color values.
- *
- * @see <a href=
- *      "http://cgit.freedesktop.org/xorg/app/rgb/tree/rgb.txt">http://cgit.freedesktop.org/xorg/app/rgb/tree/rgb.txt</a>
- *
- * @since 3.0
- * @deprecated Use {@link X11ColorUtils} instead
- */
-@Deprecated
-public class X11Color {
-
-    /**
-     * Get the RGB corresponding to a X11 color name.
-     *
-     * @param name
-     *            the X11 color name (case insensitive)
-     * @return the corresponding RGB, or null
-     */
-    public static RGB toRGB(String name) {
-        return ColorUtils.fromX11Color(name);
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/ILegendImageProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/ILegendImageProvider.java
index b7dc846..00bf048 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/ILegendImageProvider.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/ILegendImageProvider.java
@@ -20,7 +20,9 @@
  *
  * @author Yonni Chen
  * @since 3.2
+ * @deprecated use {@link ILegendImageProvider2} instead
  */
+@Deprecated
 public interface ILegendImageProvider {
 
     /**
@@ -30,27 +32,10 @@
      *            Desired image height
      * @param imageWidth
      *            Desired image width
-     * @param name
-     *            Name associated with a legend image
-     * @return A legend image
-     * @deprecated As of 6.0, use {@link #getLegendImage(int, int, Long)} instead
-     */
-    @Deprecated
-    Image getLegendImage(int imageHeight, int imageWidth, @NonNull String name);
-
-    /**
-     * Returns an image that represents the legend.
-     *
-     * @param imageHeight
-     *            Desired image height
-     * @param imageWidth
-     *            Desired image width
      * @param id
      *            Id associate with a legend image
      * @return A legend image
      * @since 6.0
      */
-    default Image getLegendImage(int imageHeight, int imageWidth, @NonNull Long id) {
-        return getLegendImage(imageHeight, imageWidth, String.valueOf(id));
-    }
+    Image getLegendImage(int imageHeight, int imageWidth, @NonNull Long id);
 }
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/tree/AbstractSelectTreeViewer.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/tree/AbstractSelectTreeViewer.java
deleted file mode 100644
index 08a9db3..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/tree/AbstractSelectTreeViewer.java
+++ /dev/null
@@ -1,726 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2020 Ericsson, Draeger Auriga
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.viewers.tree;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.commons.lang3.StringUtils;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.tracecompass.common.core.log.TraceCompassLog;
-import org.eclipse.tracecompass.common.core.log.TraceCompassLogUtils.FlowScopeLog;
-import org.eclipse.tracecompass.common.core.log.TraceCompassLogUtils.FlowScopeLogBuilder;
-import org.eclipse.tracecompass.internal.tmf.core.model.filters.FetchParametersUtils;
-import org.eclipse.tracecompass.internal.tmf.ui.Activator;
-import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderManager;
-import org.eclipse.tracecompass.tmf.core.model.filters.TimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IElementResolver;
-import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeModel;
-import org.eclipse.tracecompass.tmf.core.response.ITmfResponse;
-import org.eclipse.tracecompass.tmf.core.response.TmfModelResponse;
-import org.eclipse.tracecompass.tmf.core.signal.TmfDataModelSelectedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceContext;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
-import org.eclipse.tracecompass.tmf.ui.viewers.ILegendImageProvider;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.dialogs.MultiTreePatternFilter;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.dialogs.TriStateFilteredCheckboxTree;
-
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
-import com.google.common.primitives.Longs;
-
-/**
- * Abstract viewer for trees with checkboxes. This viewer gets his data from a
- * data provider.
- *
- * @since 3.2
- * @author Loic Prieur-Drevon
- */
-@Deprecated
-public abstract class AbstractSelectTreeViewer extends AbstractTmfTreeViewer {
-
-    private static final @NonNull Logger LOGGER = TraceCompassLog.getLogger(AbstractSelectTreeViewer.class);
-
-    private static final AtomicInteger INSTANCE_ID_SEQUENCE = new AtomicInteger(0);
-
-    /** Timeout between updates in the updateData thread **/
-    private static final long BUILD_UPDATE_TIMEOUT = 500;
-
-    /** ID of the checked tree items in the map of data in {@link TmfTraceContext} */
-    private static final char SEP = ':';
-    private static final @NonNull String CHECKED_ELEMENTS = ".CHECKED_ELEMENTS"; //$NON-NLS-1$
-    private static final @NonNull String FILTER_STRING = ".FILTER_STRING"; //$NON-NLS-1$
-    private static final @NonNull String UPDATE_CONTENT_JOB_NAME = "AbstractSelectTreeViewer#updateContent Job"; //$NON-NLS-1$
-    private static final String FAILED_TO_SLEEP_PREFIX = "Failed to sleep the "; //$NON-NLS-1$
-    private static final String LOG_CATEGORY_SUFFIX = " Tree viewer"; //$NON-NLS-1$
-
-    private final String fId;
-    private final @NonNull String fLogCategory;
-    private final int fInstanceId;
-
-    private static final ViewerComparator COMPARATOR = new ViewerComparator() {
-        @Override
-        public int compare(Viewer viewer, Object e1, Object e2) {
-            TmfTreeViewerEntry entry1 = (TmfTreeViewerEntry) e1;
-            TmfTreeViewerEntry entry2 = (TmfTreeViewerEntry) e2;
-            String name1 = entry1.getName();
-            String name2 = entry2.getName();
-            Long longValue1 = Longs.tryParse(name1);
-            Long longValue2 = Longs.tryParse(name2);
-
-            return (longValue1 == null || longValue2 == null) ? name1.compareTo(name2) : longValue1.compareTo(longValue2);
-        }
-    };
-
-    private final class CheckStateChangedListener implements ICheckStateListener {
-        @Override
-        public void checkStateChanged(CheckStateChangedEvent event) {
-            saveViewContext();
-            if (!fTreeListeners.isEmpty()) {
-                Collection<ITmfTreeViewerEntry> entries = getCheckedViewerEntries();
-                for (ICheckboxTreeViewerListener listener : fTreeListeners) {
-                    listener.handleCheckStateChangedEvent(entries);
-                }
-                refresh();
-            }
-
-        }
-    }
-
-    /**
-     * Listener to select a range in other viewers when a cell of the segment
-     * store table view is selected
-     */
-    private class TreeViewerSelectionListener implements ISelectionChangedListener {
-
-        @Override
-        public void selectionChanged(SelectionChangedEvent event) {
-            IStructuredSelection selection = event.getStructuredSelection();
-            Object entry = selection.getFirstElement();
-            if (entry instanceof TmfGenericTreeEntry) {
-                ITmfTreeDataModel model = ((TmfGenericTreeEntry<?>) entry).getModel();
-                if (model instanceof IElementResolver) {
-                    Multimap<@NonNull String, @NonNull Object> metadata = ((IElementResolver) model).getMetadata();
-                    if (!metadata.isEmpty()) {
-                        TmfSignalManager.dispatchSignal(new TmfDataModelSelectedSignal(AbstractSelectTreeViewer.this, metadata));
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Base class to provide the labels for the tree viewer. Views extending
-     * this class typically need to override the getColumnText method if they
-     * have more than one column to display. It also allows to change the font
-     * and colors of the cells.
-     * @since 6.0
-     */
-    protected class DataProviderTreeLabelProvider extends TreeLabelProvider {
-
-        @Override
-        public Image getColumnImage(Object element, int columnIndex) {
-            if (columnIndex == fLegendIndex && element instanceof TmfGenericTreeEntry && isChecked(element)) {
-                TmfGenericTreeEntry<TmfTreeDataModel> genericEntry = (TmfGenericTreeEntry<TmfTreeDataModel>) element;
-                TmfTreeDataModel model = genericEntry.getModel();
-                if (model.hasRowModel()) {
-                    return getLegendImage(genericEntry.getModel().getId());
-                }
-            }
-            return null;
-        }
-
-
-        @Override
-        public String getColumnText(Object element, int columnIndex) {
-            if (element instanceof TmfGenericTreeEntry) {
-                if (columnIndex == fLegendIndex) {
-                    return ""; //$NON-NLS-1$
-                }
-                /* Model should not contain any label for the legend column */
-                int index = fLegendIndex < 0 || columnIndex < fLegendIndex ? columnIndex : columnIndex - 1;
-                TmfGenericTreeEntry<@NonNull ? extends ITmfTreeDataModel> genericEntry = (TmfGenericTreeEntry<@NonNull ? extends ITmfTreeDataModel>) element;
-                ITmfTreeDataModel model = genericEntry.getModel();
-                if (index < model.getLabels().size()) {
-                    return model.getLabels().get(index);
-                }
-                return ""; //$NON-NLS-1$
-            }
-            return super.getColumnText(element, columnIndex);
-        }
-    }
-
-    private ILegendImageProvider fLegendImageProvider;
-    private Set<ICheckboxTreeViewerListener> fTreeListeners = new HashSet<>();
-    private TriStateFilteredCheckboxTree fCheckboxTree;
-    private final int fLegendIndex;
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            Parent composite
-     * @param checkboxTree
-     *            <code>TriStateFilteredTree</code> wrapping a
-     *            <code>CheckboxTreeViewer</code>
-     * @param legendColumnIndex
-     *            index of the legend column (-1 if none)
-     */
-    private AbstractSelectTreeViewer(Composite parent, TriStateFilteredCheckboxTree checkboxTree,
-            int legendIndex, String id) {
-        super(parent, checkboxTree.getViewer());
-
-        TreeViewer treeViewer = checkboxTree.getViewer();
-        treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
-        treeViewer.setComparator(COMPARATOR);
-        if (treeViewer instanceof CheckboxTreeViewer) {
-            ((CheckboxTreeViewer) treeViewer).addCheckStateListener(new CheckStateChangedListener());
-        }
-        treeViewer.addSelectionChangedListener(new TreeViewerSelectionListener());
-        checkboxTree.getFilterControl().addModifyListener(e -> saveViewContext());
-        fCheckboxTree = checkboxTree;
-        fLegendIndex = legendIndex;
-        fId = id;
-        fLogCategory = fId + LOG_CATEGORY_SUFFIX;
-        setLabelProvider(new DataProviderTreeLabelProvider());
-        fInstanceId = INSTANCE_ID_SEQUENCE.incrementAndGet();
-    }
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            Parent composite
-     * @param legendIndex
-     *            index of the legend column (-1 if none)
-     * @param id
-     *            {@link ITmfTreeDataProvider} ID
-     */
-    public AbstractSelectTreeViewer(Composite parent, int legendIndex, String id) {
-        // Create the tree viewer with a filtered checkbox
-        this(parent, new TriStateFilteredCheckboxTree(parent,
-                SWT.MULTI | SWT.H_SCROLL | SWT.FULL_SELECTION,
-                new MultiTreePatternFilter(), true, false), legendIndex, id);
-    }
-
-    /**
-     * Tell the chart viewer to listen to changes in the tree viewer
-     *
-     * @param listener
-     *            Chart listening to changes in the tree's selected entries
-     * @deprecated As of 6.0, there can be more than one listener for the tree,
-     *             use {@link #addTreeListener(ICheckboxTreeViewerListener)}
-     */
-    @Deprecated
-    public void setTreeListener(ICheckboxTreeViewerListener listener) {
-        addTreeListener(listener);
-    }
-
-    /**
-     * Add a listener to changes in the tree viewer
-     *
-     * @param listener
-     *            Listener for changes in the tree's selected entries
-     * @since 6.0
-     */
-    public void addTreeListener(ICheckboxTreeViewerListener listener) {
-        fTreeListeners.add(listener);
-    }
-
-    /**
-     * Remove a listener from this tree viewer
-     *
-     * @param listener
-     *            The listener to remove
-     * @since 6.0
-     */
-    public void removeTreeListener(ICheckboxTreeViewerListener listener) {
-        fTreeListeners.remove(listener);
-    }
-
-    /**
-     * Set the legend image provider (provider tree cells with an image).
-     *
-     * @param legendImageProvider
-     *            Provides an image legend associated with a name
-     */
-    public void setLegendImageProvider(ILegendImageProvider legendImageProvider) {
-        fLegendImageProvider = legendImageProvider;
-    }
-
-    /**
-     * Return the checked state of an element
-     *
-     * @param element
-     *            the element
-     * @return if the element is checked
-     */
-    public boolean isChecked(Object element) {
-        return fCheckboxTree.getChecked(element);
-    }
-
-    /**
-     * Select previously checked entries when going back to trace.
-     */
-    @Override
-    protected void contentChanged(ITmfTreeViewerEntry rootEntry) {
-        ITmfTrace trace = getTrace();
-        if (trace == null) {
-            return;
-        }
-        TmfTraceContext ctx = TmfTraceManager.getInstance().getTraceContext(trace);
-        Set<Long> ids = (Set<Long>) ctx.getData(getDataContextId(CHECKED_ELEMENTS));
-        if (ids != null && rootEntry != null) {
-            List<ITmfTreeViewerEntry> checkedElements = new ArrayList<>();
-            checkEntries(ids, rootEntry, checkedElements);
-            internalSetCheckedElements(checkedElements.toArray());
-        }
-        Object filterString = ctx.getData(getDataContextId(FILTER_STRING));
-        if (filterString instanceof String) {
-            fCheckboxTree.setFilterText((String) filterString);
-        } else {
-            fCheckboxTree.setFilterText(""); //$NON-NLS-1$
-        }
-
-        getTreeViewer().refresh();
-    }
-
-    /**
-     * Checks all the passed elements and unchecks all the other.
-     *
-     * @param checkedElements
-     *            the elements to check
-     * @since 6.0
-     */
-    protected void setCheckedElements(Object[] checkedElements) {
-        internalSetCheckedElements(checkedElements);
-        getTreeViewer().refresh();
-    }
-
-    private void internalSetCheckedElements(Object[] checkedElements) {
-        fCheckboxTree.setCheckedElements(checkedElements);
-        saveViewContext();
-        for (ICheckboxTreeViewerListener listener : fTreeListeners) {
-            listener.handleCheckStateChangedEvent(getCheckedViewerEntries());
-        }
-    }
-
-    private Collection<ITmfTreeViewerEntry> getCheckedViewerEntries() {
-        Object[] checkedElements = fCheckboxTree.getCheckedElements();
-        return Lists.newArrayList(Iterables.filter(Arrays.asList(checkedElements), ITmfTreeViewerEntry.class));
-    }
-
-    /**
-     * Recursively find entries which were previously checked and check them again
-     * by id.
-     *
-     * @param ids
-     *            Set of previously checked IDs
-     * @param root
-     *            {@link ITmfTreeViewerEntry} to compare to the set of checked
-     *            entries
-     * @param checkedElements
-     *            list of checked entries to which we add the root entry if it was
-     *            previously checked
-     */
-    private void checkEntries(Set<Long> ids, ITmfTreeViewerEntry root, List<ITmfTreeViewerEntry> checkedElements) {
-        if (root instanceof TmfGenericTreeEntry
-                && ids.contains(((TmfGenericTreeEntry) root).getModel().getId())) {
-            checkedElements.add(root);
-        }
-        for (ITmfTreeViewerEntry child : root.getChildren()) {
-            checkEntries(ids, child, checkedElements);
-        }
-    }
-
-    @Override
-    @TmfSignalHandler
-    public void traceOpened(TmfTraceOpenedSignal signal) {
-        saveViewContext();
-        restorePatternFilter(signal.getTrace());
-        fCheckboxTree.setCheckedElements(new Object[0]);
-        super.traceOpened(signal);
-    }
-
-    @Override
-    @TmfSignalHandler
-    public void traceSelected(TmfTraceSelectedSignal signal) {
-        if (getTrace() != signal.getTrace()) {
-            saveViewContext();
-            restorePatternFilter(signal.getTrace());
-            fCheckboxTree.setCheckedElements(new Object[0]);
-        }
-        super.traceSelected(signal);
-    }
-
-    @Override
-    public void reset() {
-        fCheckboxTree.setCheckedElements(new Object[0]);
-        fCheckboxTree.setFilterText(""); //$NON-NLS-1$
-        super.reset();
-    }
-
-    @Override
-    protected void updateContent(long start, long end, boolean isSelection) {
-        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, UPDATE_CONTENT_JOB_NAME)
-                .setCategory(fLogCategory).build()) {
-            ITmfTrace trace = getTrace();
-            if (trace == null) {
-                return;
-            }
-            Job thread = new Job(UPDATE_CONTENT_JOB_NAME) {
-                @Override
-                public IStatus run(IProgressMonitor monitor) {
-                    try (FlowScopeLog runScope = new FlowScopeLogBuilder(LOGGER, Level.FINE, UPDATE_CONTENT_JOB_NAME + " run") //$NON-NLS-1$
-                            .setParentScope(scope).build()) {
-
-                        ITmfTreeDataProvider<@NonNull ITmfTreeDataModel> provider = getProvider(trace);
-                        if (provider == null) {
-                            return Status.OK_STATUS;
-                        }
-
-                        Map<String, Object> parameters = getParameters(start, end, isSelection);
-                        if (parameters.isEmpty()) {
-                            return Status.OK_STATUS;
-                        }
-
-                        boolean isComplete = false;
-                        do {
-                            TmfModelResponse<@NonNull TmfTreeModel<@NonNull ITmfTreeDataModel>> response;
-                            try (FlowScopeLog iterScope = new FlowScopeLogBuilder(LOGGER, Level.FINE, UPDATE_CONTENT_JOB_NAME + " query") //$NON-NLS-1$
-                                    .setParentScope(scope).build()) {
-
-                                response = provider.fetchTree(parameters, monitor);
-                                TmfTreeModel<@NonNull ITmfTreeDataModel> model = response.getModel();
-                                if (model != null) {
-                                    updateTree(trace, start, end, model.getEntries());
-                                }
-                            }
-
-                            ITmfResponse.Status status = response.getStatus();
-                            if (status == ITmfResponse.Status.COMPLETED) {
-                                /* Model is complete, no need to request again the data provider */
-                                isComplete = true;
-                            } else if (status == ITmfResponse.Status.FAILED || status == ITmfResponse.Status.CANCELLED) {
-                                /* Error occurred, return */
-                                isComplete = true;
-                            } else {
-                                /**
-                                 * Status is RUNNING. Sleeping current thread to wait before request data
-                                 * provider again
-                                 **/
-                                try {
-                                    Thread.sleep(BUILD_UPDATE_TIMEOUT);
-                                } catch (InterruptedException e) {
-                                    /**
-                                     * InterruptedException is throw by Thread.Sleep and we should retry querying
-                                     * the data provider
-                                     **/
-                                    runScope.addData(FAILED_TO_SLEEP_PREFIX + getName(), e);
-                                    Thread.currentThread().interrupt();
-                                    return new Status(IStatus.ERROR, Activator.PLUGIN_ID, FAILED_TO_SLEEP_PREFIX + getName());
-                                }
-                            }
-                        } while (!isComplete);
-
-                        return Status.OK_STATUS;
-                    }
-                }
-            };
-            thread.setSystem(true);
-            thread.schedule();
-        }
-    }
-
-    private void updateTree(ITmfTrace trace, long start, long end, List<@NonNull ITmfTreeDataModel> model) {
-        try (FlowScopeLog parentScope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "AbstractSelectTreeViewer:TreeUpdateRequested" ) //$NON-NLS-1$
-                .setCategory(fLogCategory).build()) {
-            final TmfTreeViewerEntry rootEntry = getRoot(trace);
-            /*
-             * To avoid breaking API, get the new tree model root and reassign
-             * its children to the trace's fixed root after clearing it.
-             */
-            final ITmfTreeViewerEntry newTreeModel = modelToTree(start, end, model);
-            if (rootEntry != null && newTreeModel != null) {
-                synchronized (rootEntry) {
-                    rootEntry.getChildren().clear();
-                    newTreeModel.getChildren().forEach(child -> rootEntry.addChild((TmfTreeViewerEntry) child));
-                }
-                Display.getDefault().asyncExec(() -> {
-                    try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "AbstractSelectTreeViewer:TreeUpdate").setParentScope(parentScope).build()) { //$NON-NLS-1$
-
-                        if (!trace.equals(getTrace())) {
-                            return;
-                        }
-                        TreeViewer treeViewer = getTreeViewer();
-                        if (treeViewer.getControl().isDisposed()) {
-                            return;
-                        }
-
-                        Object currentRootEntry = treeViewer.getInput();
-                        updateTreeUI(treeViewer, rootEntry);
-                        if (rootEntry != currentRootEntry) {
-                            // FIXME should add a bit of padding
-                            for (TreeColumn column : treeViewer.getTree().getColumns()) {
-                                column.pack();
-                            }
-                        }
-                    }
-                });
-            }
-        }
-    }
-
-    /**
-     * Save the checked entries' ID in the view context before changing trace and
-     * check them again in the new tree.
-     */
-    private void saveViewContext() {
-        ITmfTrace previousTrace = getTrace();
-        if (previousTrace != null) {
-            Object[] checkedElements = fCheckboxTree.getCheckedElements();
-            Set<Long> ids = new HashSet<>();
-            for (Object checkedElement : checkedElements) {
-                if (checkedElement instanceof TmfGenericTreeEntry) {
-                    ids.add(((TmfGenericTreeEntry) checkedElement).getModel().getId());
-                }
-            }
-            Text filterControl = fCheckboxTree.getFilterControl();
-            String filterString = filterControl != null ? filterControl.getText() : null;
-            TmfTraceManager.getInstance().updateTraceContext(previousTrace,
-                    builder -> builder.setData(getDataContextId(CHECKED_ELEMENTS), ids)
-                    .setData(getDataContextId(FILTER_STRING), filterString));
-        }
-    }
-
-    private @NonNull String getDataContextId(String baseKey) {
-        return getClass().getName() + SEP + fInstanceId + baseKey;
-    }
-
-    private void restorePatternFilter(ITmfTrace trace) {
-        if (trace == null) {
-            fCheckboxTree.getPatternFilter().setPattern(null);
-            return;
-        }
-        TmfTraceContext ctx = TmfTraceManager.getInstance().getTraceContext(trace);
-        Object filterString = ctx.getData(getClass() + FILTER_STRING);
-        if (filterString instanceof String) {
-            fCheckboxTree.getPatternFilter().setPattern((String) filterString);
-        } else {
-            fCheckboxTree.getPatternFilter().setPattern(null);
-        }
-    }
-
-    /**
-     * Get the legend image for a entry's name
-     *
-     * @param name
-     *            the entry's name (used in both Tree and Chart viewer
-     * @return the correctly dimensioned image if there is a legend image provider
-     */
-    protected Image getLegendImage(@NonNull String name) {
-        /* If the image height match the row height, row height will increment */
-        ILegendImageProvider legendImageProvider = fLegendImageProvider;
-        int legendColumnIndex = fLegendIndex;
-        if (legendImageProvider != null && legendColumnIndex >= 0) {
-            Tree tree = getTreeViewer().getTree();
-            int imageWidth = tree.getColumn(legendColumnIndex).getWidth();
-            int imageHeight = tree.getItemHeight() - 1;
-            if (imageHeight > 0 && imageWidth > 0) {
-                return legendImageProvider.getLegendImage(imageHeight, imageWidth, name);
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get the legend image for a entry's ID
-     *
-     * @param id
-     *            the entry's unique ID
-     * @return the correctly dimensioned image if there is a legend image provider
-     * @since 6.0
-     */
-    protected Image getLegendImage(@NonNull Long id) {
-        /* If the image height match the row height, row height will increment */
-        ILegendImageProvider legendImageProvider = fLegendImageProvider;
-        int legendColumnIndex = fLegendIndex;
-        if (legendImageProvider != null && legendColumnIndex >= 0) {
-            Tree tree = getTreeViewer().getTree();
-            int imageWidth = tree.getColumn(legendColumnIndex).getWidth();
-            int imageHeight = tree.getItemHeight() - 1;
-            if (imageHeight > 0 && imageWidth > 0) {
-                return legendImageProvider.getLegendImage(imageHeight, imageWidth, id);
-            }
-        }
-        return null;
-    }
-
-    @Override
-    protected ITmfTreeViewerEntry updateElements(ITmfTrace trace, long start, long end, boolean isSelection) {
-        throw new UnsupportedOperationException("This method should not be called for AbstractSelectTreeViewers"); //$NON-NLS-1$
-    }
-
-    /**
-     * Getter for the {@link ITmfTreeDataProvider} to query for this TreeViewer
-     *
-     * @param trace the trace
-     * @return the relevant provider, if any
-     * @since 4.0
-     */
-    protected ITmfTreeDataProvider<@NonNull ITmfTreeDataModel> getProvider(@NonNull ITmfTrace trace) {
-        return DataProviderManager.getInstance().getDataProvider(trace, fId, ITmfTreeDataProvider.class);
-    }
-
-    @Override
-    protected void initializeDataSource(@NonNull ITmfTrace trace) {
-        getProvider(trace);
-    }
-
-    /**
-     * Get the map to query the {@link ITmfTreeDataProvider} for the queried
-     * parameters
-     *
-     * @param start
-     *            query start time
-     * @param end
-     *            query end time
-     * @param isSelection
-     *            if the query is a selection
-     * @return the resulting query parameters
-     * @since 5.0
-     */
-    protected @NonNull Map<String, Object> getParameters(long start, long end, boolean isSelection) {
-        return FetchParametersUtils.timeQueryToMap(new TimeQueryFilter(Long.min(start, end), Long.max(start, end), 2));
-    }
-
-    /**
-     * Algorithm to convert a model (List of {@link TmfTreeDataModel}) to the tree.
-     *
-     * @param start
-     *            queried start time
-     * @param end
-     *            queried end time
-     * @param model
-     *            model to convert
-     * @return the resulting {@link TmfTreeViewerEntry}.
-     */
-    protected ITmfTreeViewerEntry modelToTree(long start, long end, List<ITmfTreeDataModel> model) {
-        TmfTreeViewerEntry root = new TmfTreeViewerEntry(StringUtils.EMPTY);
-
-        Map<Long, TmfTreeViewerEntry> map = new HashMap<>();
-        map.put(-1L, root);
-        for (ITmfTreeDataModel entry : model) {
-            TmfGenericTreeEntry<ITmfTreeDataModel> viewerEntry = new TmfGenericTreeEntry<>(entry);
-            map.put(entry.getId(), viewerEntry);
-
-            TmfTreeViewerEntry parent = map.get(entry.getParentId());
-            if (parent != null && !parent.getChildren().contains(viewerEntry)) {
-                parent.addChild(viewerEntry);
-            }
-        }
-        return root;
-    }
-
-    /**
-     * Create a sortable column
-     *
-     * @param text
-     *            column label
-     * @param comparator
-     *            comparator to sort {@link TmfGenericTreeEntry}s
-     * @return the comparator
-     */
-    protected static <T extends TmfGenericTreeEntry<? extends TmfTreeDataModel>>
-    @NonNull TmfTreeColumnData createColumn(String text, Comparator<T> comparator) {
-        TmfTreeColumnData column = new TmfTreeColumnData(text);
-        column.setComparator(new ViewerComparator() {
-            @Override
-            public int compare(Viewer viewer, Object e1, Object e2) {
-                return comparator.compare((T) e1, (T) e2);
-            }
-        });
-        return column;
-    }
-
-    /**
-     * Get the full path of the entry, from the trace to itself, to query the
-     * presentation provider.
-     *
-     * @param entry
-     *            entry whose legend needs to be resolved.
-     * @return the relevant series name.
-     * @deprecated The ID should be used to query the presentation provider
-     *             instead of the full path
-     */
-    @Deprecated
-    protected static @NonNull String getFullPath(TmfGenericTreeEntry<TmfTreeDataModel> entry) {
-        StringBuilder path = new StringBuilder(entry.getName());
-        ITmfTreeViewerEntry parent = entry.getParent();
-        while (parent instanceof TmfGenericTreeEntry) {
-            path.insert(0, parent.getName() + '/');
-            parent = parent.getParent();
-        }
-        return path.toString();
-    }
-
-    /**
-     * Get the checkbox tree in this viewer.
-     *
-     * @return the checkbox tree.
-     * @since 4.0
-     */
-    public TriStateFilteredCheckboxTree getTriStateFilteredCheckboxTree() {
-        return fCheckboxTree;
-    }
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/tree/AbstractSelectTreeViewer2.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/tree/AbstractSelectTreeViewer2.java
index ea2fe56..e469ca5 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/tree/AbstractSelectTreeViewer2.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/tree/AbstractSelectTreeViewer2.java
@@ -251,19 +251,6 @@
     }
 
     /**
-     * Tell the chart viewer to listen to changes in the tree viewer
-     *
-     * @param listener
-     *            Chart listening to changes in the tree's selected entries
-     * @deprecated As of 6.0, there can be more than one listener for the tree,
-     *             use {@link #addTreeListener(ICheckboxTreeViewerListener)}
-     */
-    @Deprecated
-    public void setTreeListener(ICheckboxTreeViewerListener listener) {
-        addTreeListener(listener);
-    }
-
-    /**
      * Add a listener to changes in the tree viewer
      *
      * @param listener
@@ -677,27 +664,6 @@
     }
 
     /**
-     * Get the full path of the entry, from the trace to itself, to query the
-     * presentation provider.
-     *
-     * @param entry
-     *            entry whose legend needs to be resolved.
-     * @return the relevant series name.
-     * @deprecated The ID should be used to query the presentation provider
-     *             instead of the full path
-     */
-    @Deprecated
-    protected static @NonNull String getFullPath(TmfGenericTreeEntry<TmfTreeDataModel> entry) {
-        StringBuilder path = new StringBuilder(entry.getName());
-        ITmfTreeViewerEntry parent = entry.getParent();
-        while (parent instanceof TmfGenericTreeEntry) {
-            path.insert(0, parent.getName() + '/');
-            parent = parent.getParent();
-        }
-        return path.toString();
-    }
-
-    /**
      * Get the checkbox tree in this viewer.
      *
      * @return the checkbox tree.
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xychart/linechart/TmfCommonXLineChartTooltipProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xychart/linechart/TmfCommonXLineChartTooltipProvider.java
index 83f6500..9802a3f 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xychart/linechart/TmfCommonXLineChartTooltipProvider.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xychart/linechart/TmfCommonXLineChartTooltipProvider.java
@@ -19,7 +19,6 @@
 import java.util.List;
 
 import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackListener;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.RGBA;
@@ -42,7 +41,7 @@
  *
  * @since 6.0
  */
-public class TmfCommonXLineChartTooltipProvider extends TmfBaseProvider implements MouseTrackListener {
+public class TmfCommonXLineChartTooltipProvider extends TmfBaseProvider {
 
     private final class XYToolTipHandler extends TmfAbstractToolTipHandler {
         private static final String HTML_COLOR_TOOLTIP = "<span style=\"color:%s;\">%s</span>"; //$NON-NLS-1$
@@ -143,35 +142,4 @@
     public void refresh() {
         // nothing to do
     }
-
-    // ------------------------------------------------------------------------
-    // MouseTrackListener
-    // ------------------------------------------------------------------------
-
-    /**
-     * @deprecated, do not extend, use as-is
-     */
-    @Deprecated
-    @Override
-    public void mouseEnter(MouseEvent e) {
-        // do nothing
-    }
-
-    /**
-     * @deprecated, do not extend, use as-is
-     */
-    @Deprecated
-    @Override
-    public void mouseExit(MouseEvent e) {
-        // do nothing
-    }
-
-    /**
-     * @deprecated, do not extend, use as-is
-     */
-    @Deprecated
-    @Override
-    public void mouseHover(MouseEvent e) {
-        // do nothing
-    }
 }
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/AxisRange.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/AxisRange.java
deleted file mode 100644
index 5c687f9..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/AxisRange.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2019 Draeger, Auriga
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-/**
- * Axis range with minimum and maximum values.
- *
- * @author Ivan Grinenko
- * @since 5.2
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.AxisRange}
- *
- */
-@Deprecated
-public class AxisRange {
-
-    private final double fLower;
-    private final double fUpper;
-
-    /**
-     * Constructor
-     *
-     * @param start
-     *            starting value of the range
-     * @param end
-     *            ending value of the range
-     */
-    public AxisRange(double start, double end) {
-        fLower = (end > start) ? start : end;
-        fUpper = (end > start) ? end : start;
-    }
-
-    /**
-     * Gets the lower value of the range.
-     *
-     * @return The lower value of the range.
-     */
-    public double getLower() {
-        return fLower;
-    }
-
-    /**
-     * Gets the upper value of the range.
-     *
-     * @return The upper value of the range.
-     */
-    public double getUpper() {
-        return fUpper;
-    }
-
-    @Override
-    public String toString() {
-        return String.format("AxisRange[%f, %f]", getLower(), getUpper()); //$NON-NLS-1$
-    }
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/ITmfChartTimeProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/ITmfChartTimeProvider.java
deleted file mode 100644
index 6a5e3fa..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/ITmfChartTimeProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson, École Polytechnique de Montréal
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- *   Geneviève Bastien - Moved some methods to ITmfTimeProvider
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.tracecompass.tmf.ui.viewers.ITmfTimeProvider;
-
-/**
- * Interface adding some methods specific for SWT charts to the base time
- * provider interface. Typically, the time will be shown on the x-axis.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.ITmfChartTimeProvider}
- */
-@Deprecated
-public interface ITmfChartTimeProvider extends ITmfTimeProvider {
-
-    /**
-     * Returns a constant time offset that is used to normalize the time values
-     * to a range of 0..53 bits to avoid loss of precision when converting long
-     * <-> double.
-     *
-     * Time values are stored in TMF as long values. The SWT chart library uses
-     * values of type double (on x and y axis). To avoid loss of precision when
-     * converting long <-> double the values need to fit within 53 bits.
-     *
-     * Subtract the offset when using time values provided externally for
-     * internal usage in SWT chart. Add the offset when using time values
-     * provided by SWT chart (e.g. for display purposes) and when broadcasting
-     * them externally (e.g. time synchronization signals).
-     *
-     * For example the offset can be calculated as the time of the first time
-     * value in the current time range to be displayed in the chart. Add +1 to
-     * avoid 0 when using logarithmic scale.
-     *
-     * t0=10000, t2=20000, tn=N -> timeOffset=t0-1 -> t0'=1, t1'=10001,
-     * tn'=N-timeOffset
-     *
-     * where t0 ... tn are times used externally and t0' ... tn' are times used
-     * internally by the SWT chart.
-     *
-     * @return the time offset
-     */
-    long getTimeOffset();
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfBaseProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfBaseProvider.java
deleted file mode 100644
index af9d315..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfBaseProvider.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts.TmfXyUiUtils;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-
-/**
- * Base class for any provider such as tool tip, zoom and selection providers.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfBaseProvider}
- */
-@Deprecated
-public abstract class TmfBaseProvider {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    /** Reference to the chart viewer */
-    private final ITmfChartTimeProvider fChartViewer;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-
-    /**
-     * Standard constructor.
-     *
-     * @param tmfChartViewer
-     *            The parent histogram object
-     */
-    public TmfBaseProvider(ITmfChartTimeProvider tmfChartViewer) {
-        fChartViewer = tmfChartViewer;
-    }
-
-    // ------------------------------------------------------------------------
-    // Accessors
-    // ------------------------------------------------------------------------
-    /**
-     * Returns the chart viewer reference.
-     * @return the chart viewer reference
-     */
-    public ITmfChartTimeProvider getChartViewer() {
-        return fChartViewer;
-    }
-
-    /**
-     * Returns the SWT chart reference
-     *
-     * @return SWT chart reference.
-     */
-    protected Chart getChart() {
-        return (Chart) fChartViewer.getControl();
-    }
-
-    /**
-     * Limits x data coordinate to window start and window end range
-     *
-     * @param x
-     *          x to limit
-     * @return  x if x >= begin && x <= end
-     *          begin if x < begin
-     *          end if x > end
-     */
-    protected long limitXDataCoordinate(double x) {
-        return TmfXyUiUtils.limitXDataCoordinate(getChartViewer(), x);
-    }
-
-    /**
-     * Limits x pixel coordinate to window start and window end range
-     *
-     * @param axisIndex
-     *          index of x-axis
-     * @param x
-     *          x to limit
-     * @return  x if x >= begin && x <= end
-     *          begin if x < begin
-     *          end if x > end
-     */
-    protected int limitXPixelCoordinate(int axisIndex, int x) {
-        ITmfChartTimeProvider viewer = getChartViewer();
-        long windowStartTime = viewer.getWindowStartTime() - viewer.getTimeOffset();
-        long windowEndTime = viewer.getWindowEndTime() - viewer.getTimeOffset();
-
-        IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-        int startX = xAxis.getPixelCoordinate(windowStartTime);
-        if (x < startX) {
-            return startX;
-        }
-
-        int endX = xAxis.getPixelCoordinate(windowEndTime);
-        if (x > endX) {
-            return endX;
-        }
-
-        return x;
-    }
-
-    // ------------------------------------------------------------------------
-    // Operations
-    // ------------------------------------------------------------------------
-    /**
-     * Method deregisters provider from chart viewer. Subclasses may override this method
-     * to dispose any resources.
-     */
-    public void dispose() {
-        deregister();
-    }
-
-    /**
-     * Method to refresh the viewer. It will redraw the viewer.
-     */
-    public void refresh() {
-        if (!TmfXYChartViewer.getDisplay().isDisposed()) {
-            TmfXYChartViewer.getDisplay().asyncExec(() -> {
-                if (!getChart().isDisposed()) {
-                    getChart().redraw();
-                }
-            });
-        }
-    }
-
-    /**
-     * Method to register the provider to chart viewer.
-     */
-    protected abstract void register();
-
-    /**
-     * Method to deregister the provider from chart viewer.
-     */
-    protected abstract void deregister();
-
-}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfChartTimeStampFormat.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfChartTimeStampFormat.java
deleted file mode 100644
index 0ddfbf4..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfChartTimeStampFormat.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import java.text.FieldPosition;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestampFormat;
-
-/**
- * SimpleDateFormat class for displaying time information in SWT charts
- * using the TmfTimestampFormat class.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfChartTimeStampFormat}
- */
-@Deprecated
-public class TmfChartTimeStampFormat extends SimpleDateFormat {
-
-    // ------------------------------------------------------------------------
-    // Constants
-    // ------------------------------------------------------------------------
-    private static final long serialVersionUID = 3719743469686142387L;
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    private long fOffset;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Standard Constructor
-     *
-     * @param offset
-     *        offset to apply before formatting time (time = time + offset)
-     */
-    public TmfChartTimeStampFormat(long offset) {
-        fOffset = offset;
-    }
-
-    // ------------------------------------------------------------------------
-    // Operations
-    // ------------------------------------------------------------------------
-    @Override
-    public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
-
-        long time = date.getTime() + fOffset;
-        toAppendTo.append(TmfTimestampFormat.getDefaulTimeFormat().format(time));
-        return toAppendTo;
-    }
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfClosestDataPointTooltipProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfClosestDataPointTooltipProvider.java
deleted file mode 100644
index 9b0488e..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfClosestDataPointTooltipProvider.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2015 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfAbstractToolTipHandler;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-import org.swtchart.ISeries;
-
-/**
- * Abstract tooltip provider for xy chart viewers. It displays the y value and y
- * value of the data point of the mouse position. Extending classes can provide
- * a custom tooltip text.
- *
- * @author Bernd Hufmann
- * @since 2.0
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfClosestDataPointTooltipProvider}
- */
-@Deprecated
-public class TmfClosestDataPointTooltipProvider extends TmfBaseProvider implements MouseMoveListener, PaintListener {
-
-    private static final @NonNull String OLD_TOOLTIP = ""; //$NON-NLS-1$
-
-    private final class XYToolTipHandler extends TmfAbstractToolTipHandler {
-        @Override
-        public void fill(Control control, MouseEvent e, Point pt) {
-            if ((getChartViewer().getWindowDuration() != 0) && (e != null)) {
-                Chart chart = getChart();
-                IAxis xAxis = chart.getAxisSet().getXAxis(0);
-                IAxis yAxis = chart.getAxisSet().getYAxis(0);
-
-                ISeries[] series = chart.getSeriesSet().getSeries();
-
-                double smallestDistance = Double.MAX_VALUE;
-                Parameter param = null;
-
-                // go over all series
-                for (int k = 0; k < series.length; k++) {
-                    ISeries serie = series[k];
-                    double[] xS = serie.getXSeries();
-                    double[] yS = serie.getYSeries();
-
-                    if ((xS == null) || (yS == null)) {
-                        continue;
-                    }
-                    // go over all data points
-                    for (int i = 0; i < xS.length; i++) {
-                        int xs = xAxis.getPixelCoordinate(xS[i]) - e.x;
-                        int ys = yAxis.getPixelCoordinate(yS[i]) - e.y;
-                        double currentDistance = xs * xs + ys * ys;
-
-                        /*
-                         * Check for smallest distance to mouse position and
-                         * only consider it if the mouse is close the data
-                         * point.
-                         */
-                        if ((currentDistance < smallestDistance) && (currentDistance < (HIGHLIGHT_RADIUS * HIGHLIGHT_RADIUS))) {
-                            smallestDistance = currentDistance;
-                            fHighlightX = xs + e.x;
-                            fHighlightY = ys + e.y;
-                            if (param == null) {
-                                param = new Parameter();
-                            }
-                            param.setSeriesIndex(k);
-                            param.setDataIndex(i);
-                        }
-                    }
-                }
-                Map<String, Map<String, Object>> tooltip = null;
-                if (param != null) {
-                    tooltip = createToolTipMap(param);
-                    if (tooltip == null) {
-                        return;
-                    }
-                    fIsHighlight = true;
-                    chart.redraw();
-                }
-                if (tooltip == null) {
-                    return;
-                }
-                /*
-                 * Note that tooltip might be null which will clear the previous
-                 * tooltip string. This is intentional.
-                 */
-                for (Entry<String, Map<String, Object>> entry : tooltip.entrySet()) {
-                    ToolTipString category = entry.getKey().isEmpty() || entry.getKey().equals(OLD_TOOLTIP) ? null : ToolTipString.fromString(entry.getKey());
-                    for (Entry<String, Object> secondEntry : entry.getValue().entrySet()) {
-
-                        Object value = secondEntry.getValue();
-                        String key = secondEntry.getKey();
-                        if (value instanceof Number) {
-                            addItem(category, ToolTipString.fromString(key), ToolTipString.fromDecimal((Number) value));
-                        } else if (value instanceof ITmfTimestamp) {
-                            addItem(category, ToolTipString.fromString(key), ToolTipString.fromTimestamp(String.valueOf(value), ((ITmfTimestamp) value).toNanos()));
-                        } else {
-                            addItem(category, ToolTipString.fromString(key), ToolTipString.fromString(String.valueOf(value)));
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // Constants
-    // ------------------------------------------------------------------------
-    private static final int ALPHA = 128;
-    private static final int HIGHLIGHT_RADIUS = 5;
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    /** X coordinate for highlighting */
-    private int fHighlightX;
-    /** y coordinate for highlighting */
-    private int fHighlightY;
-    /** Flag to do highlighting or not */
-    private boolean fIsHighlight;
-    /** Tooltip handler */
-    private TmfAbstractToolTipHandler fTooltipHandler = new XYToolTipHandler();
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Constructor for a tool tip provider.
-     *
-     * @param tmfChartViewer
-     *            - the parent chart viewer
-     */
-    public TmfClosestDataPointTooltipProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-    @Override
-    public void register() {
-        Chart chart = getChart();
-        chart.getPlotArea().addMouseMoveListener(this);
-        chart.getPlotArea().addPaintListener(this);
-        fTooltipHandler.activateHoverHelp(chart.getPlotArea());
-    }
-
-    @Override
-    public void deregister() {
-
-        Chart chart = getChart();
-        if ((chart != null) && !chart.isDisposed()) {
-            chart.getPlotArea().removeMouseMoveListener(this);
-            chart.getPlotArea().removePaintListener(this);
-            fTooltipHandler.deactivateHoverHelp(chart.getPlotArea());
-        }
-    }
-
-    @Override
-    public void refresh() {
-        // nothing to do
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseMoveListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseMove(@Nullable MouseEvent e) {
-        if (fIsHighlight) {
-            fIsHighlight = false;
-            getChart().redraw();
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // PaintListener
-    // ------------------------------------------------------------------------
-
-    @Override
-    public void paintControl(PaintEvent e) {
-        if (fIsHighlight && e != null) {
-            e.gc.setBackground(Display.getDefault().getSystemColor(
-                    SWT.COLOR_RED));
-            e.gc.setAlpha(ALPHA);
-
-            e.gc.fillOval(fHighlightX - HIGHLIGHT_RADIUS, fHighlightY - HIGHLIGHT_RADIUS,
-                    2 * HIGHLIGHT_RADIUS, 2 * HIGHLIGHT_RADIUS);
-        }
-    }
-
-    /**
-     * Creates the tooltip based on the given parameter.
-     *
-     * @param param
-     *            parameter to create the tooltip string
-     * @return the tooltip map based on the given parameter. The Map<String,
-     *         Map<String, Object>> can be seen as a table. The first element is
-     *         the category, the second is the key, third is the value.
-     * @since 5.0
-     */
-    protected @Nullable Map<@NonNull String, @NonNull Map<@NonNull String, @NonNull Object>> createToolTipMap(@NonNull Parameter param) {
-        ISeries[] series = getChart().getSeriesSet().getSeries();
-        int seriesIndex = param.getSeriesIndex();
-        int dataIndex = param.getDataIndex();
-        if ((series != null) && (seriesIndex < series.length)) {
-            ISeries serie = series[seriesIndex];
-            double[] xS = serie.getXSeries();
-            double[] yS = serie.getYSeries();
-            if ((xS != null) && (yS != null) && (dataIndex < xS.length) && (dataIndex < yS.length)) {
-                StringBuilder buffer = new StringBuilder();
-                buffer.append("x="); //$NON-NLS-1$
-                buffer.append(TmfTimestamp.fromNanos((long) xS[dataIndex] + getChartViewer().getTimeOffset()).toString());
-                buffer.append('\n');
-                buffer.append("y="); //$NON-NLS-1$
-                buffer.append((long) yS[dataIndex]);
-                return Collections.singletonMap(OLD_TOOLTIP, Collections.singletonMap(OLD_TOOLTIP, buffer.toString()));
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Parameter class
-     */
-    protected static class Parameter {
-        /* A series index */
-        private int seriesIndex;
-        /* A data point index within a series */
-        private int dataIndex;
-
-        /**
-         * @return the series index
-         */
-        public int getSeriesIndex() {
-            return seriesIndex;
-        }
-
-        /**
-         * @param seriesIndex
-         *            index the seriesIndex to set
-         */
-        public void setSeriesIndex(int seriesIndex) {
-            this.seriesIndex = seriesIndex;
-        }
-
-        /**
-         * @return the data index
-         */
-        public int getDataIndex() {
-            return dataIndex;
-        }
-
-        /**
-         * @param dataIndex
-         *            the data index to set
-         */
-        public void setDataIndex(int dataIndex) {
-            this.dataIndex = dataIndex;
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseDragProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseDragProvider.java
deleted file mode 100644
index fc12a08..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseDragProvider.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2014 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.swtchart.IAxis;
-import org.swtchart.Range;
-
-/**
- * Class for updating time ranges based on middle mouse button drag.
- * It also notifies the viewer about a change of range.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfMouseDragProvider}
- */
-@Deprecated
-public class TmfMouseDragProvider extends TmfBaseProvider implements MouseListener, MouseMoveListener {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    /** Cached start time */
-    private long fStartTime;
-    /** Cached end time */
-    private long fEndTime;
-    /** Flag indicating that an update is ongoing */
-    private boolean fIsUpdate;
-    /** Cached position when mouse button was pressed */
-    private int fStartPosition;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Default constructor
-     *
-     * @param tmfChartViewer
-     *          the chart viewer reference.
-     */
-    public TmfMouseDragProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-    @Override
-    public void register() {
-        getChart().getPlotArea().addMouseListener(this);
-        getChart().getPlotArea().addMouseMoveListener(this);
-    }
-
-    @Override
-    public void deregister() {
-        if ((getChartViewer().getControl() != null) && !getChartViewer().getControl().isDisposed()) {
-            getChart().getPlotArea().removeMouseListener(this);
-            getChart().getPlotArea().removeMouseMoveListener(this);
-        }
-    }
-
-    @Override
-    public void refresh() {
-        // nothing to do
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseDoubleClick(MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseDown(MouseEvent e) {
-        if ((getChartViewer().getWindowDuration() != 0) && ((e.button == 2) || (e.button == 1 && (e.stateMask & SWT.CTRL) != 0))) {
-            fStartPosition = e.x;
-            fIsUpdate = true;
-        }
-    }
-
-    @Override
-    public void mouseUp(MouseEvent e) {
-        if ((fIsUpdate) && (fStartTime != fEndTime)) {
-            ITmfChartTimeProvider viewer = getChartViewer();
-            viewer.updateWindow(fStartTime, fEndTime);
-        }
-        fIsUpdate = false;
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseMoveListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseMove(MouseEvent e) {
-        if (fIsUpdate) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-
-            ITmfChartTimeProvider viewer = getChartViewer();
-
-            fStartTime = viewer.getWindowStartTime();
-            fEndTime = viewer.getWindowEndTime();
-
-            long startTime = viewer.getStartTime();
-            long endTime = viewer.getEndTime();
-
-            long delta = 0;
-            if (fStartPosition > e.x) {
-                delta = (long) (xAxis.getDataCoordinate(fStartPosition) - xAxis.getDataCoordinate(e.x));
-                long max = endTime - fEndTime;
-                delta = Math.max(0, Math.min(delta, max));
-                fStartTime = fStartTime + delta;
-                fEndTime = fEndTime + delta;
-            } else if (fStartPosition < e.x) {
-                delta = (long) (xAxis.getDataCoordinate(e.x) - xAxis.getDataCoordinate(fStartPosition));
-                long max = fStartTime - startTime;
-                delta = Math.max(0, Math.min(delta, max));
-                fStartTime = fStartTime - delta;
-                fEndTime = fEndTime - delta;
-            }
-
-            xAxis.setRange(new Range(fStartTime - viewer.getTimeOffset(), fEndTime - viewer.getTimeOffset()));
-            getChart().redraw();
-        }
-    }
-}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseDragZoomProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseDragZoomProvider.java
deleted file mode 100644
index e3876e4..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseDragZoomProvider.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.swtchart.IAxis;
-import org.swtchart.ICustomPaintListener;
-import org.swtchart.IPlotArea;
-
-/**
- * Class for providing zooming based on mouse drag with right mouse button.
- * It also notifies the viewer about a change of range.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfMouseDragZoomProvider}
- */
-@Deprecated
-public class TmfMouseDragZoomProvider extends TmfBaseProvider implements MouseListener, MouseMoveListener, ICustomPaintListener {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    /** Cached start time */
-    private long fStartTime;
-    /** Cached end time */
-    private long fEndTime;
-    /** Flag indicating that an update is ongoing */
-    private boolean fIsUpdate;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Default constructor
-     *
-     * @param tmfChartViewer
-     *          the chart viewer reference.
-     */
-    public TmfMouseDragZoomProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-    @Override
-    public void register() {
-        getChart().getPlotArea().addMouseListener(this);
-        getChart().getPlotArea().addMouseMoveListener(this);
-        ((IPlotArea) getChart().getPlotArea()).addCustomPaintListener(this);
-    }
-
-    @Override
-    public void deregister() {
-        if ((getChartViewer().getControl() != null) && !getChartViewer().getControl().isDisposed()) {
-            getChart().getPlotArea().removeMouseListener(this);
-            getChart().getPlotArea().removeMouseMoveListener(this);
-            ((IPlotArea) getChart().getPlotArea()).removeCustomPaintListener(this);
-        }
-    }
-
-    @Override
-    public void refresh() {
-        // nothing to do
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseDoubleClick(MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseDown(MouseEvent e) {
-        if ((getChartViewer().getWindowDuration() != 0) && (e.button == 3)) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            fStartTime = limitXDataCoordinate(xAxis.getDataCoordinate(e.x));
-            fEndTime = fStartTime;
-            fIsUpdate = true;
-        }
-    }
-
-    @Override
-    public void mouseUp(MouseEvent e) {
-        if ((fIsUpdate) && (fStartTime != fEndTime)) {
-            if (fStartTime > fEndTime) {
-                long tmp = fStartTime;
-                fStartTime = fEndTime;
-                fEndTime = tmp;
-            }
-            ITmfChartTimeProvider viewer = getChartViewer();
-            viewer.updateWindow(fStartTime + viewer.getTimeOffset(), fEndTime + viewer.getTimeOffset());
-        }
-
-        if (fIsUpdate) {
-            getChart().redraw();
-        }
-        fIsUpdate = false;
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseMoveListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseMove(MouseEvent e) {
-        if (fIsUpdate) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            fEndTime = limitXDataCoordinate(xAxis.getDataCoordinate(e.x));
-
-            ITmfChartTimeProvider viewer = getChartViewer();
-            if (viewer instanceof TmfXYChartViewer) {
-                TmfXYChartViewer xyChartViewer = (TmfXYChartViewer) viewer;
-                xyChartViewer.updateStatusLine(fStartTime, fEndTime, limitXDataCoordinate(xAxis.getDataCoordinate(e.x)));
-            }
-
-            getChart().redraw();
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // ICustomPaintListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void paintControl(PaintEvent e) {
-        if (fIsUpdate && (fStartTime != fEndTime)) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            int startX = xAxis.getPixelCoordinate(fStartTime);
-            int endX = xAxis.getPixelCoordinate(fEndTime);
-            int prevAlpha = e.gc.getAlpha();
-            e.gc.setAlpha(64);
-            e.gc.setBackground(TmfXYChartViewer.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-            if (fStartTime < fEndTime) {
-                e.gc.fillRectangle(startX, 0, endX - startX, e.height);
-            } else {
-                e.gc.fillRectangle(endX, 0, startX - endX, e.height);
-            }
-            e.gc.setAlpha(prevAlpha);
-            e.gc.drawLine(startX, 0, startX, e.height);
-            e.gc.drawLine(endX, 0, endX, e.height);
-        }
-    }
-
-    @Override
-    public boolean drawBehindSeries() {
-        return false;
-    }
-}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseSelectionProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseSelectionProvider.java
deleted file mode 100644
index eb0161a..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseSelectionProvider.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2014, 2017 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.swtchart.IAxis;
-import org.swtchart.ICustomPaintListener;
-import org.swtchart.IPlotArea;
-
-/**
- * Class for providing selection of ranges with the left mouse button. It also
- * notifies the viewer about a change of selection.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfMouseSelectionProvider}
- */
-@Deprecated
-public class TmfMouseSelectionProvider extends TmfBaseProvider implements MouseListener, MouseMoveListener, ICustomPaintListener {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    /** Cached start time */
-    private long fBeginTime;
-    /** Cached end time */
-    private long fEndTime;
-    /** Cached cursor time*/
-    private long fCursorTime;
-    /** Flag indicating that an update is ongoing */
-    private boolean fIsInternalUpdate;
-    /** Flag indicating that the begin marker is dragged */
-    private boolean fDragBeginMarker;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Default constructor
-     *
-     * @param tmfChartViewer
-     *            The chart viewer reference.
-     */
-    public TmfMouseSelectionProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-    @Override
-    public void register() {
-        getChart().getPlotArea().addMouseListener(this);
-        getChart().getPlotArea().addMouseMoveListener(this);
-        ((IPlotArea) getChart().getPlotArea()).addCustomPaintListener(this);
-    }
-
-    @Override
-    public void deregister() {
-        if ((getChartViewer().getControl() != null) && !getChartViewer().getControl().isDisposed()) {
-            getChart().getPlotArea().removeMouseListener(this);
-            getChart().getPlotArea().removeMouseMoveListener(this);
-            ((IPlotArea) getChart().getPlotArea()).removeCustomPaintListener(this);
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseDoubleClick(MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseDown(MouseEvent e) {
-        if ((getChartViewer().getWindowDuration() != 0) && (e.button == 1)) {
-            if ((e.stateMask & SWT.CTRL) != 0) {
-                return;
-            }
-            fDragBeginMarker = false;
-            if ((e.stateMask & SWT.SHIFT) != SWT.SHIFT) {
-                IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-                fBeginTime = limitXDataCoordinate(xAxis.getDataCoordinate(e.x));
-                fEndTime = fBeginTime;
-            } else {
-                long selectionBegin = fBeginTime;
-                long selectionEnd = fEndTime;
-                IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-                long time = limitXDataCoordinate(xAxis.getDataCoordinate(e.x));
-                if (Math.abs(time - selectionBegin) < Math.abs(time - selectionEnd)) {
-                    fDragBeginMarker = true;
-                    fBeginTime = time;
-                    fEndTime = selectionEnd;
-                } else {
-                    fBeginTime = selectionBegin;
-                    fEndTime = time;
-                }
-            }
-            fIsInternalUpdate = true;
-        }
-    }
-
-    @Override
-    public void mouseUp(MouseEvent e) {
-        if (fIsInternalUpdate) {
-            ITmfChartTimeProvider viewer = getChartViewer();
-            viewer.updateSelectionRange(fBeginTime + viewer.getTimeOffset(), fEndTime + viewer.getTimeOffset());
-
-            if (viewer instanceof TmfXYChartViewer) {
-                TmfXYChartViewer xyChartViewer = (TmfXYChartViewer) viewer;
-                xyChartViewer.updateStatusLine(fBeginTime, fEndTime, fCursorTime);
-            }
-
-            fIsInternalUpdate = false;
-            getChart().redraw();
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseMoveListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseMove(MouseEvent e) {
-        IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-        fCursorTime = limitXDataCoordinate(xAxis.getDataCoordinate(e.x));
-
-        if (fIsInternalUpdate) {
-            if (fDragBeginMarker) {
-                fBeginTime = limitXDataCoordinate(xAxis.getDataCoordinate(e.x));
-            } else {
-                fEndTime = limitXDataCoordinate(xAxis.getDataCoordinate(e.x));
-            }
-            getChart().redraw();
-        }
-
-        ITmfChartTimeProvider viewer = getChartViewer();
-        if (viewer instanceof TmfXYChartViewer) {
-            TmfXYChartViewer xyChartViewer = (TmfXYChartViewer) viewer;
-            xyChartViewer.updateStatusLine(fBeginTime, fEndTime, fCursorTime);
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // ICustomPaintListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void paintControl(PaintEvent e) {
-        ITmfChartTimeProvider viewer = getChartViewer();
-
-        if (!fIsInternalUpdate) {
-            fBeginTime = viewer.getSelectionBeginTime() - viewer.getTimeOffset();
-            fEndTime = viewer.getSelectionEndTime() - viewer.getTimeOffset();
-        }
-        long windowStartTime = viewer.getWindowStartTime() - viewer.getTimeOffset();
-        long windowEndTime = viewer.getWindowEndTime() - viewer.getTimeOffset();
-
-        IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-        e.gc.setBackground(TmfXYChartViewer.getDisplay().getSystemColor(SWT.COLOR_BLUE));
-        e.gc.setForeground(TmfXYChartViewer.getDisplay().getSystemColor(SWT.COLOR_BLUE));
-        e.gc.setLineStyle(SWT.LINE_SOLID);
-        if ((fBeginTime >= windowStartTime) && (fBeginTime <= windowEndTime)) {
-            int beginX = xAxis.getPixelCoordinate(fBeginTime);
-            e.gc.drawLine(beginX, 0, beginX, e.height);
-        }
-
-        if ((fEndTime >= windowStartTime) && (fEndTime <= windowEndTime) && (fBeginTime != fEndTime)) {
-            int endX = xAxis.getPixelCoordinate(fEndTime);
-            e.gc.drawLine(endX, 0, endX, e.height);
-        }
-        e.gc.setAlpha(64);
-        if (Math.abs(fEndTime - fBeginTime) > 1) {
-            e.gc.setBackground(TmfXYChartViewer.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-            int beginX = xAxis.getPixelCoordinate(fBeginTime);
-            int endX = xAxis.getPixelCoordinate(fEndTime);
-            if (fEndTime > fBeginTime) {
-                e.gc.fillRectangle(beginX + 1, 0, endX - beginX - 1, e.height);
-            } else {
-                e.gc.fillRectangle(endX + 1, 0, beginX - endX - 1, e.height);
-            }
-        }
-    }
-
-    @Override
-    public boolean drawBehindSeries() {
-        return false;
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseWheelZoomProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseWheelZoomProvider.java
deleted file mode 100644
index c935398..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfMouseWheelZoomProvider.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseWheelListener;
-import org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts.TmfXyUiUtils;
-import org.swtchart.Chart;
-
-/**
- * Class for providing zooming and scrolling based on mouse wheel. For zooming,
- * it centers the zoom on mouse position. For scrolling, it will move the zoom
- * window to another position while maintaining the window size. It also
- * notifies the viewer about a change of range.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfMouseWheelZoomProvider}
- */
-@Deprecated
-public class TmfMouseWheelZoomProvider extends TmfBaseProvider implements MouseWheelListener {
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Standard constructor.
-     *
-     * @param tmfChartViewer
-     *            The parent histogram object
-     */
-    public TmfMouseWheelZoomProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-    @Override
-    public void register() {
-        getChart().getPlotArea().addMouseWheelListener(this);
-    }
-
-    @Override
-    public void deregister() {
-        if ((getChartViewer().getControl() != null) && !getChartViewer().getControl().isDisposed()) {
-            getChart().getPlotArea().removeMouseWheelListener(this);
-        }
-    }
-
-    @Override
-    public void refresh() {
-        // nothing to do
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseWheelListener
-    // ------------------------------------------------------------------------
-    @Override
-    public synchronized void mouseScrolled(MouseEvent event) {
-        final int count = event.count;
-        if ((event.stateMask & SWT.CTRL) != 0) {
-            final int x = event.x;
-            zoom(count, x);
-        } else if ((event.stateMask & SWT.SHIFT) != 0) {
-            scroll(count);
-        }
-    }
-
-    private void scroll(final int count) {
-        ITmfChartTimeProvider viewer = getChartViewer();
-        Chart chart = getChart();
-        if ((viewer != null) && (chart != null) && (count != 0)) {
-            TmfXyUiUtils.horizontalScroll(viewer, chart, count > 0);
-        }
-    }
-
-    private void zoom(final int count, final int x) {
-        ITmfChartTimeProvider viewer = getChartViewer();
-        Chart chart = getChart();
-        if ((viewer != null) && (chart != null) && (count != 0)) {
-            TmfXyUiUtils.zoom(viewer, chart, count > 0, x);
-        }
-    }
-}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfSimpleTooltipProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfSimpleTooltipProvider.java
deleted file mode 100644
index b52c4f7..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfSimpleTooltipProvider.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2019 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfAbstractToolTipHandler;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-import org.swtchart.IAxisSet;
-
-/**
- * Tool tip provider for TMF chart viewer. It displays the x and y value of the
- * current mouse position.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfSimpleTooltipProvider}
- */
-@Deprecated
-public class TmfSimpleTooltipProvider extends TmfBaseProvider implements MouseTrackListener {
-
-    private final class XYToolTipHandler extends TmfAbstractToolTipHandler {
-        @Override
-        public void fill(Control control, MouseEvent event, Point pt) {
-            Chart chart = getChart();
-            IAxisSet axisSet = chart.getAxisSet();
-            IAxis xAxis = axisSet.getXAxis(0);
-            IAxis yAxis = axisSet.getYAxis(0);
-
-            double xCoordinate = xAxis.getDataCoordinate(pt.x);
-            double yCoordinate = yAxis.getDataCoordinate(pt.y);
-
-            ITmfChartTimeProvider viewer = getChartViewer();
-
-            ITmfTimestamp time = TmfTimestamp.fromNanos((long) xCoordinate + viewer.getTimeOffset());
-            /* set tooltip of current data point */
-            addItem(null, ToolTipString.fromString("x"), ToolTipString.fromTimestamp(time.toString(), time.toNanos())); //$NON-NLS-1$
-            addItem(null, "y", Double.toString(yCoordinate)); //$NON-NLS-1$
-        }
-    }
-
-    private TmfAbstractToolTipHandler fTooltipHandler = new XYToolTipHandler();
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Constructor for a tool tip provider.
-     *
-     * @param tmfChartViewer
-     *            The parent chart viewer
-     */
-    public TmfSimpleTooltipProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-    @Override
-    public void register() {
-        fTooltipHandler.activateHoverHelp(getChart().getPlotArea());
-    }
-
-    @Override
-    public void deregister() {
-        if ((getChartViewer().getControl() != null) && !getChartViewer().getControl().isDisposed()) {
-            fTooltipHandler.deactivateHoverHelp(getChart().getPlotArea());
-        }
-    }
-
-    @Override
-    public void refresh() {
-        // nothing to do
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseTrackListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseEnter(MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseExit(MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseHover(MouseEvent e) {
-        // Do nothing
-    }
-}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfXYChartViewer.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfXYChartViewer.java
deleted file mode 100644
index 8b7842d..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfXYChartViewer.java
+++ /dev/null
@@ -1,819 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2020 Ericsson, École Polytechnique de Montréal, Draeger
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- *   Geneviève Bastien - Moved some methods to TmfTimeViewer
- *   Patrick Tasse - Fix setFocus
- *   Ivan Grinenko - Add ability to set fixed range for Y axis.
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.graphics.Color;
-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.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts.TmfXYChartTimeAdapter;
-import org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts.TmfXyUiUtils;
-import org.eclipse.tracecompass.internal.tmf.ui.views.ITmfTimeNavigationProvider;
-import org.eclipse.tracecompass.internal.tmf.ui.views.ITmfTimeZoomProvider;
-import org.eclipse.tracecompass.internal.tmf.ui.views.ITmfZoomToSelectionProvider;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTimestampFormatUpdateSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
-import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimePreferencesConstants;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimePreferences;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceContext;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
-import org.eclipse.tracecompass.tmf.ui.viewers.IImageSave;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfTimeViewer;
-import org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils;
-import org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils.Resolution;
-import org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils.TimeFormat;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.TimeGraphColorScheme;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.TimeGraphScale;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-import org.swtchart.ICustomPaintListener;
-import org.swtchart.IPlotArea;
-import org.swtchart.ISeries;
-import org.swtchart.ISeriesSet;
-import org.swtchart.ITitle;
-import org.swtchart.LineStyle;
-import org.swtchart.Range;
-
-import com.google.common.annotations.VisibleForTesting;
-
-/**
- * Base class for a XY-Chart based on SWT chart. It provides a methods to define
- * zoom, selection and tool tip providers. It also provides call backs to be
- * notified by any changes caused by selection and zoom.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.TmfXYChartViewer}
- */
-@Deprecated
-public abstract class TmfXYChartViewer extends TmfTimeViewer implements ITmfChartTimeProvider, IImageSave, IAdaptable {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    private static final int DEFAULT_SCALE_HEIGHT = 22;
-
-    /** The composite to house the chart and time graph scale */
-    private Composite fCommonComposite;
-    /** The color scheme for the chart */
-    private @NonNull TimeGraphColorScheme fColorScheme = new TimeGraphColorScheme();
-    /** The SWT Chart reference */
-    private Chart fSwtChart;
-    /** The X axis for the chart */
-    private TimeGraphScale fTimeScaleCtrl;
-    /** The time format */
-    private @Nullable TimeFormat fTimeFormat = null;
-    /** The mouse selection provider */
-    private TmfBaseProvider fMouseSelectionProvider;
-    /** The mouse drag zoom provider */
-    private TmfBaseProvider fMouseDragZoomProvider;
-    /** The mouse wheel zoom provider */
-    private TmfBaseProvider fMouseWheelZoomProvider;
-    /** The tooltip provider */
-    private TmfBaseProvider fToolTipProvider;
-    /** The middle mouse drag provider */
-    private TmfBaseProvider fMouseDragProvider;
-    /**
-     * Whether or not to send time alignment signals. This should be set to true for
-     * viewers that are part of an aligned view.
-     */
-    private boolean fSendTimeAlignSignals = false;
-
-    private final TmfXYChartTimeAdapter fDataProvider;
-
-    private AxisRange fFixedYRange = null;
-
-    private IStatusLineManager fStatusLineManager;
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-
-    /**
-     * Constructs a TmfXYChartViewer.
-     *
-     * @param parent
-     *            The parent composite
-     * @param title
-     *            The title of the viewer
-     * @param xLabel
-     *            The label of the xAxis
-     * @param yLabel
-     *            The label of the yAXIS
-     */
-    public TmfXYChartViewer(Composite parent, String title, String xLabel, String yLabel) {
-        fCommonComposite = new Composite(parent, parent.getStyle()) {
-            @Override
-            public void redraw() {
-                fSwtChart.redraw();
-                fTimeScaleCtrl.redraw();
-            }
-        };
-        fCommonComposite.addDisposeListener(e -> {
-            fColorScheme.dispose();
-        });
-        fCommonComposite.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 0).margins(0, 0).create());
-        fCommonComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
-        fSwtChart = new Chart(fCommonComposite, SWT.NONE) {
-            @Override
-            public void addFocusListener(FocusListener listener) {
-                fSwtChart.getPlotArea().addFocusListener(listener);
-            }
-            @Override
-            public void removeFocusListener(FocusListener listener) {
-                fSwtChart.getPlotArea().removeFocusListener(listener);
-            }
-            @Override
-            public boolean setFocus() {
-                return fSwtChart.getPlotArea().setFocus();
-            }
-            @Override
-            public boolean forceFocus() {
-                return fSwtChart.getPlotArea().forceFocus();
-            }
-        };
-        fSwtChart.getAxisSet().getXAxis(0).getGrid().setStyle(LineStyle.NONE);
-        ((IPlotArea) fSwtChart.getPlotArea()).addCustomPaintListener(new ICustomPaintListener() {
-
-            @Override
-            public void paintControl(PaintEvent e) {
-                drawGridLines(e.gc);
-            }
-
-            @Override
-            public boolean drawBehindSeries() {
-                return true;
-            }
-        });
-
-        fSwtChart.addPaintListener(e -> {
-            Rectangle bounds = fSwtChart.getPlotArea().getBounds();
-            int y = fTimeScaleCtrl.getLocation().y;
-            fTimeScaleCtrl.setBounds(bounds.x, y, bounds.width, DEFAULT_SCALE_HEIGHT);
-            fTimeScaleCtrl.redraw();
-        });
-
-        fTimeScaleCtrl = new TimeGraphScale(fCommonComposite, fColorScheme, SWT.BOTTOM);
-        Color backgroundColor = fColorScheme.getColor(TimeGraphColorScheme.TOOL_BACKGROUND);
-        fSwtChart.setBackground(backgroundColor);
-        fCommonComposite.setBackground(backgroundColor);
-        backgroundColor = fColorScheme.getColor(TimeGraphColorScheme.BACKGROUND);
-        fSwtChart.setBackgroundInPlotArea(backgroundColor);
-        fSwtChart.setForeground(fColorScheme.getColor(TimeGraphColorScheme.TOOL_FOREGROUND));
-        fTimeScaleCtrl.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, false));
-        fTimeScaleCtrl.setHeight(DEFAULT_SCALE_HEIGHT);
-        fSwtChart.getPlotArea().addMouseListener(new MouseAdapter() {
-            @Override
-            public void mouseDown(MouseEvent e) {
-                fSwtChart.getPlotArea().setFocus();
-            }
-        });
-
-        IAxis xAxis = fSwtChart.getAxisSet().getXAxis(0);
-        IAxis yAxis = fSwtChart.getAxisSet().getYAxis(0);
-
-        /* Set the title/labels, or hide them if they are not provided */
-        initTitle(title, fSwtChart.getTitle());
-
-        initTitle(null, fSwtChart.getTitle());
-
-        xAxis.getTick().setVisible(false);
-        yAxis.getTick().setForeground(fColorScheme.getColor(TimeGraphColorScheme.TOOL_FOREGROUND));
-        initTitle(yLabel, yAxis.getTitle());
-
-        fMouseSelectionProvider = new TmfMouseSelectionProvider(this);
-        fMouseDragZoomProvider = new TmfMouseDragZoomProvider(this);
-        fMouseWheelZoomProvider = new TmfMouseWheelZoomProvider(this);
-        fToolTipProvider = new TmfSimpleTooltipProvider(this);
-        fMouseDragProvider = new TmfMouseDragProvider(this);
-
-        fSwtChart.addDisposeListener((e) -> {
-            internalDispose();
-        });
-
-        fDataProvider = new TmfXYChartTimeAdapter(this);
-        fTimeScaleCtrl.setTimeProvider(fDataProvider);
-        updateTimeFormat();
-    }
-
-    private void initTitle(String label, ITitle titleCtrl) {
-        titleCtrl.setForeground(fColorScheme.getColor(TimeGraphColorScheme.TOOL_FOREGROUND));
-        if (label == null) {
-            titleCtrl.setVisible(false);
-        } else {
-            titleCtrl.setText(label);
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // Getter/Setters
-    // ------------------------------------------------------------------------
-
-    /**
-     * Sets the SWT Chart reference
-     *
-     * @param chart
-     *            The SWT chart to set.
-     */
-    protected void setSwtChart(Chart chart) {
-        fSwtChart = chart;
-    }
-
-    /**
-     * Gets the SWT Chart reference
-     *
-     * @return the SWT chart to set.
-     * @since 3.2
-     */
-    public Chart getSwtChart() {
-        return fSwtChart;
-    }
-
-    /**
-     * Switches visibility of the time axis on and off.
-     *
-     * @param visible
-     *            {@code true} to make the time axis visible.
-     *            {@code false} to make it invisible
-     * @since 6.0
-     */
-    public void setTimeAxisVisible(boolean visible) {
-        GridData gridData = (GridData) fTimeScaleCtrl.getLayoutData();
-        gridData.exclude = !visible;
-        fTimeScaleCtrl.setVisible(visible);
-        fCommonComposite.requestLayout();
-    }
-
-    /**
-     * Sets a mouse selection provider. An existing provider will be disposed. Use
-     * <code>null</code> to disable the mouse selection provider.
-     *
-     * @param provider
-     *            The selection provider to set
-     */
-    public void setSelectionProvider(TmfBaseProvider provider) {
-        if (fMouseSelectionProvider != null) {
-            fMouseSelectionProvider.dispose();
-        }
-        fMouseSelectionProvider = provider;
-    }
-
-    /**
-     * Sets a mouse drag zoom provider. An existing provider will be disposed. Use
-     * <code>null</code> to disable the mouse drag zoom provider.
-     *
-     * @param provider
-     *            The mouse drag zoom provider to set
-     */
-    public void setMouseDragZoomProvider(TmfBaseProvider provider) {
-        if (fMouseDragZoomProvider != null) {
-            fMouseDragZoomProvider.dispose();
-        }
-        fMouseDragZoomProvider = provider;
-    }
-
-    /**
-     * Sets a mouse wheel zoom provider. An existing provider will be disposed. Use
-     * <code>null</code> to disable the mouse wheel zoom provider.
-     *
-     * @param provider
-     *            The mouse wheel zoom provider to set
-     */
-    public void setMouseWheelZoomProvider(TmfBaseProvider provider) {
-        if (fMouseWheelZoomProvider != null) {
-            fMouseWheelZoomProvider.dispose();
-        }
-        fMouseWheelZoomProvider = provider;
-    }
-
-    /**
-     * Sets a tooltip provider. An existing provider will be disposed. Use
-     * <code>null</code> to disable the tooltip provider.
-     *
-     * @param provider
-     *            The tooltip provider to set
-     */
-    public void setTooltipProvider(TmfBaseProvider provider) {
-        if (fToolTipProvider != null) {
-            fToolTipProvider.dispose();
-        }
-        fToolTipProvider = provider;
-    }
-
-    /**
-     * Sets a mouse drag provider. An existing provider will be disposed. Use
-     * <code>null</code> to disable the mouse drag provider.
-     *
-     * @param provider
-     *            The mouse drag provider to set
-     */
-    public void setMouseDrageProvider(TmfBaseProvider provider) {
-        if (fMouseDragProvider != null) {
-            fMouseDragProvider.dispose();
-        }
-        fMouseDragProvider = provider;
-    }
-
-    // ------------------------------------------------------------------------
-    // ITmfChartTimeProvider
-    // ------------------------------------------------------------------------
-
-    @Override
-    public long getTimeOffset() {
-        return getWindowStartTime() - 1;
-    }
-
-    // ------------------------------------------------------------------------
-    // ITmfViewer interface
-    // ------------------------------------------------------------------------
-    @Override
-    public Control getControl() {
-        return fSwtChart;
-    }
-
-    @Override
-    public void refresh() {
-        fSwtChart.redraw();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfComponent
-    // ------------------------------------------------------------------------
-
-    @Override
-    public void dispose() {
-        if (!fSwtChart.isDisposed()) {
-            fSwtChart.dispose();
-        }
-    }
-
-    private void internalDispose() {
-        super.dispose();
-
-        if (fMouseSelectionProvider != null) {
-            fMouseSelectionProvider.dispose();
-        }
-
-        if (fMouseDragZoomProvider != null) {
-            fMouseDragZoomProvider.dispose();
-        }
-
-        if (fMouseWheelZoomProvider != null) {
-            fMouseWheelZoomProvider.dispose();
-        }
-
-        if (fToolTipProvider != null) {
-            fToolTipProvider.dispose();
-        }
-
-        if (fMouseDragProvider != null) {
-            fMouseDragProvider.dispose();
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // Operations
-    // ------------------------------------------------------------------------
-    /**
-     * A Method to load a trace into the viewer.
-     *
-     * @param trace
-     *            A trace to apply in the viewer
-     */
-    @Override
-    public void loadTrace(ITmfTrace trace) {
-        super.loadTrace(trace);
-        clearContent();
-        updateContent();
-    }
-
-    /**
-     * Resets the content of the viewer
-     */
-    @Override
-    public void reset() {
-        super.reset();
-        setStartTime(0);
-        setEndTime(0);
-        clearContent();
-    }
-
-    /**
-     * Method to implement to update the chart content.
-     */
-    protected abstract void updateContent();
-
-    /**
-     * Returns whether or not this chart viewer is dirty. The viewer is considered
-     * dirty if it has yet to completely update its model.
-     *
-     * This method is meant to be used by tests in order to know when it is safe to
-     * proceed.
-     *
-     * @return true if the time graph view has yet to completely update its model,
-     *         false otherwise
-     * @since 2.2
-     */
-    @VisibleForTesting
-    public boolean isDirty() {
-        if (getTrace() == null) {
-            return false;
-        }
-
-        TmfTraceContext ctx = TmfTraceManager.getInstance().getCurrentTraceContext();
-        long startTime = ctx.getWindowRange().getStartTime().toNanos();
-        long endTime = ctx.getWindowRange().getEndTime().toNanos();
-
-        // If the chart viewer hasn't updated all the way to the end of
-        // the window range then it's dirty. A refresh should happen later.
-        return (getWindowStartTime() != startTime || getWindowEndTime() != endTime);
-    }
-
-    /**
-     * Draw the grid lines
-     *
-     * @param bounds
-     *            The bounds of the control
-     * @param gc
-     *            Graphics context
-     * @since 2.0
-     */
-    private void drawGridLines(GC gc) {
-        Rectangle bounds = fSwtChart.getPlotArea().getBounds();
-        Color foreground = fSwtChart.getAxisSet().getXAxis(0).getGrid().getForeground();
-        gc.setForeground(foreground);
-        gc.setAlpha(foreground.getAlpha());
-        gc.setLineStyle(SWT.LINE_DOT);
-        for (int x : fTimeScaleCtrl.getTickList()) {
-            gc.drawLine(x, 0, x,  bounds.height);
-        }
-        gc.setAlpha(255);
-    }
-
-    /**
-     * Sets the time format, or null to use the Time Format 'Date and Time
-     * format' preference (default).
-     *
-     * @param timeFormat
-     *            the {@link TimeFormat} used to display timestamps
-     * @since 5.0
-     */
-    protected void setTimeFormat(TimeFormat timeFormat) {
-        fTimeFormat = timeFormat;
-        if (fSwtChart != null) {
-            updateTimeFormat();
-            fSwtChart.getAxisSet().adjustRange();
-            fSwtChart.redraw();
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // Signal Handler
-    // ------------------------------------------------------------------------
-
-    /**
-     * Signal handler for handling of the time synch signal.
-     *
-     * @param signal
-     *            The time synch signal {@link TmfSelectionRangeUpdatedSignal}
-     */
-    @Override
-    @TmfSignalHandler
-    public void selectionRangeUpdated(TmfSelectionRangeUpdatedSignal signal) {
-        super.selectionRangeUpdated(signal);
-        if (signal != null && (signal.getSource() != this) && (getTrace() != null)) {
-            if (fMouseSelectionProvider != null) {
-                fMouseSelectionProvider.refresh();
-            }
-        }
-    }
-
-    /**
-     * Signal handler for handling of the window range signal.
-     *
-     * @param signal
-     *            The {@link TmfWindowRangeUpdatedSignal}
-     */
-    @Override
-    @TmfSignalHandler
-    public void windowRangeUpdated(TmfWindowRangeUpdatedSignal signal) {
-        super.windowRangeUpdated(signal);
-        updateContent();
-    }
-
-    /**
-     * Signal handler for handling the signal that notifies about an updated
-     * timestamp format.
-     *
-     * @param signal
-     *            The trace updated signal {@link TmfTimestampFormatUpdateSignal}
-     */
-    @TmfSignalHandler
-    public void timestampFormatUpdated(TmfTimestampFormatUpdateSignal signal) {
-        updateTimeFormat();
-        fSwtChart.getAxisSet().adjustRange();
-        fSwtChart.redraw();
-    }
-
-    /**
-     * Sets new fixed range for the Y axis.
-     *
-     * @param yRange
-     *            new fixed range for the Y axis or {@code null} to
-     *            make float again. If not {@code null} then
-     *            {@link IAxis#adjustRange} is not called for the Y
-     *            axis on updates.
-     * @since 5.2
-     */
-    public void setFixedYRange(@Nullable AxisRange yRange) {
-        fFixedYRange = yRange;
-        updateContent();
-    }
-
-    /**
-     * Gets current fixed range for the Y axis.
-     *
-     * @return Current fixed range or {@code null} if the range is not fixed.
-     * @since 5.2
-     */
-    public @Nullable AxisRange getFixedYRange() {
-        return fFixedYRange;
-    }
-
-    // ------------------------------------------------------------------------
-    // IAdaptable Interface
-    // ------------------------------------------------------------------------
-    /**
-     * @since 5.0
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public <T> T getAdapter(Class<T> adapter) {
-        if (adapter == ITmfTimeNavigationProvider.class) {
-            return (T) getTimeNavigator();
-        }
-        if (adapter == ITmfTimeZoomProvider.class) {
-            return (T) getTimeZoomProvider();
-        }
-        if (adapter == ITmfZoomToSelectionProvider.class ) {
-            return (T) getZoomToSelectionProvider();
-        }
-        return null;
-    }
-
-    // ------------------------------------------------------------------------
-    // Helper Methods
-    // ------------------------------------------------------------------------
-
-    /**
-     * Clears the view content.
-     */
-    protected void clearContent() {
-        if (!fSwtChart.isDisposed()) {
-            ISeriesSet set = fSwtChart.getSeriesSet();
-            ISeries[] series = set.getSeries();
-            for (int i = 0; i < series.length; i++) {
-                set.deleteSeries(series[i].getId());
-            }
-            for (IAxis axis : fSwtChart.getAxisSet().getAxes()) {
-                axis.setRange(new Range(0, 1));
-            }
-            fSwtChart.redraw();
-        }
-    }
-
-    /**
-     * Returns the current or default display.
-     *
-     * @return the current or default display
-     */
-    protected static Display getDisplay() {
-        Display display = Display.getCurrent();
-        // may be null if outside the UI thread
-        if (display == null) {
-            display = Display.getDefault();
-        }
-        return display;
-    }
-
-    /**
-     * Get the offset of the point area, relative to the XY chart viewer control. We
-     * consider the point area to be from where the first point could be drawn to
-     * where the last point could be drawn.
-     *
-     * @return the offset in pixels
-     *
-     * @since 1.0
-     */
-    public int getPointAreaOffset() {
-
-        int pixelCoordinate = 0;
-        IAxis[] xAxes = getSwtChart().getAxisSet().getXAxes();
-        if (xAxes.length > 0) {
-            IAxis axis = xAxes[0];
-            pixelCoordinate = axis.getPixelCoordinate(axis.getRange().lower);
-        }
-        return getSwtChart().toControl(getSwtChart().getPlotArea().toDisplay(pixelCoordinate, 0)).x;
-    }
-
-    /**
-     * Get the width of the point area. We consider the point area to be from where
-     * the first point could be drawn to where the last point could be drawn. The
-     * point area differs from the plot area because there might be a gap between
-     * where the plot area start and where the fist point is drawn. This also
-     * matches the width that the use can select.
-     *
-     * @return the width in pixels
-     *
-     * @since 1.0
-     */
-    public int getPointAreaWidth() {
-        IAxis[] xAxes = getSwtChart().getAxisSet().getXAxes();
-        if (xAxes.length > 0) {
-            IAxis axis = xAxes[0];
-            int x1 = getPointAreaOffset();
-            int x2 = axis.getPixelCoordinate(axis.getRange().upper);
-            x2 = getSwtChart().toControl(getSwtChart().getPlotArea().toDisplay(x2, 0)).x;
-            int width = x2 - x1;
-            return width;
-        }
-
-        return getSwtChart().getPlotArea().getSize().x;
-    }
-
-    /**
-     * Sets whether or not to send time alignment signals. This should be set to
-     * true for viewers that are part of an aligned view.
-     *
-     * @param sendTimeAlignSignals
-     *            whether or not to send time alignment signals
-     * @since 1.0
-     */
-    public void setSendTimeAlignSignals(boolean sendTimeAlignSignals) {
-        fSendTimeAlignSignals = sendTimeAlignSignals;
-    }
-
-    /**
-     * Returns whether or not to send time alignment signals.
-     *
-     * @return whether or not to send time alignment signals.
-     * @since 1.0
-     */
-    public boolean isSendTimeAlignSignals() {
-        return fSendTimeAlignSignals;
-    }
-
-    @Override
-    public void saveImage(String filename, int format) {
-        getSwtChart().save(filename, format);
-    }
-
-    /**
-     * Set the status bar manager
-     *
-     * @param statusLineManager
-     *            Status bar manager
-     * @since 3.3
-     */
-    public void setStatusLineManager(IStatusLineManager statusLineManager) {
-        if (fStatusLineManager != null && statusLineManager == null) {
-            fStatusLineManager.setMessage(null);
-        }
-        fStatusLineManager = statusLineManager;
-    }
-
-    /**
-     * Update the status line to include time selection
-     *
-     * @param startTime
-     *            Selection start time
-     * @param endTime
-     *            Selection end time
-     * @param cursorTime
-     *            Cursor time
-     * @since 3.3
-     */
-    public void updateStatusLine(long startTime, long endTime, long cursorTime) {
-        TimeFormat timeFormat = fTimeScaleCtrl.getTimeProvider().getTimeFormat().convert();
-        boolean isCalendar = timeFormat == TimeFormat.CALENDAR;
-
-        StringBuilder message = new StringBuilder();
-        String spaces = "     "; //$NON-NLS-1$
-        if (cursorTime >= 0) {
-            message.append("T: "); //$NON-NLS-1$
-            if (isCalendar) {
-                message.append(FormatTimeUtils.formatDate(cursorTime + getTimeOffset()) + ' ');
-            }
-            message.append(FormatTimeUtils.formatTime(cursorTime + getTimeOffset(), timeFormat, Resolution.NANOSEC));
-            message.append(spaces);
-        }
-
-        if (startTime == endTime) {
-            message.append("T1: "); //$NON-NLS-1$
-            if (isCalendar) {
-                message.append(FormatTimeUtils.formatDate(startTime + getTimeOffset()) + ' ');
-            }
-            message.append(FormatTimeUtils.formatTime(startTime + getTimeOffset(), timeFormat, Resolution.NANOSEC));
-        } else {
-            message.append("T1: "); //$NON-NLS-1$
-            if (isCalendar) {
-                message.append(FormatTimeUtils.formatDate(startTime + getTimeOffset()) + ' ');
-            }
-            message.append(FormatTimeUtils.formatTime(startTime + getTimeOffset(), timeFormat, Resolution.NANOSEC));
-            message.append(spaces);
-            message.append("T2: "); //$NON-NLS-1$
-            if (isCalendar) {
-                message.append(FormatTimeUtils.formatDate(endTime + getTimeOffset()) + ' ');
-            }
-            message.append(FormatTimeUtils.formatTime(endTime + getTimeOffset(), timeFormat, Resolution.NANOSEC));
-            message.append(spaces);
-            message.append("\u0394: " + FormatTimeUtils.formatDelta(endTime - startTime, timeFormat, Resolution.NANOSEC)); //$NON-NLS-1$
-        }
-
-        fStatusLineManager.setMessage(message.toString());
-    }
-
-    private ITmfTimeZoomProvider getTimeZoomProvider() {
-        return (zoomIn, useMousePosition) -> {
-            Chart chart = getSwtChart();
-            if (chart == null) {
-                return;
-            }
-            Point cursorDisplayLocation = getDisplay().getCursorLocation();
-            Point cursorControlLocation = getSwtChart().getPlotArea().toControl(cursorDisplayLocation);
-            Point cursorParentLocation = getSwtChart().getPlotArea().getParent().toControl(cursorDisplayLocation);
-            Rectangle controlBounds = getSwtChart().getPlotArea().getBounds();
-            // check the X axis only
-            if (!controlBounds.contains(cursorParentLocation.x, controlBounds.y)) {
-                return;
-            }
-            if (useMousePosition) {
-                TmfXyUiUtils.zoom(this, chart, zoomIn, cursorControlLocation.x);
-            } else {
-                TmfXyUiUtils.zoom(this, chart, zoomIn);
-            }
-        };
-    }
-
-    private ITmfTimeNavigationProvider getTimeNavigator() {
-        return left -> {
-            Chart chart = getSwtChart();
-            if (chart != null) {
-                TmfXyUiUtils.horizontalScroll(this, chart, left);
-            }
-        };
-    }
-
-    private ITmfZoomToSelectionProvider getZoomToSelectionProvider() {
-        return () -> {
-            long selBegin = getSelectionBeginTime();
-            long selEnd = getSelectionEndTime();
-            if (selBegin != selEnd) {
-                updateWindow(selBegin, selEnd);
-            }
-        };
-    }
-
-    private void updateTimeFormat() {
-        if (fTimeFormat == null) {
-            String datime = TmfTimePreferences.getPreferenceMap().get(ITmfTimePreferencesConstants.DATIME);
-            if (ITmfTimePreferencesConstants.TIME_ELAPSED_FMT.equals(datime)) {
-                fDataProvider.setTimeFormat(TimeFormat.RELATIVE);
-            } else {
-                fDataProvider.setTimeFormat(TimeFormat.CALENDAR);
-            }
-        } else {
-            fDataProvider.setTimeFormat(fTimeFormat);
-        }
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/XYChartLegendImageProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/XYChartLegendImageProvider.java
deleted file mode 100644
index ea39f20..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/XYChartLegendImageProvider.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tracecompass.internal.provisional.tmf.ui.viewers.xychart.BaseXYPresentationProvider;
-import org.eclipse.tracecompass.internal.tmf.ui.util.SymbolHelper;
-import org.eclipse.tracecompass.tmf.core.model.OutputElementStyle;
-import org.eclipse.tracecompass.tmf.core.model.StyleProperties;
-import org.eclipse.tracecompass.tmf.core.presentation.IYAppearance;
-import org.eclipse.tracecompass.tmf.core.presentation.RGBAColor;
-import org.eclipse.tracecompass.tmf.ui.viewers.ILegendImageProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXAxisChartViewer;
-import org.swtchart.LineStyle;
-
-/**
- * Provides a legend image from an XY chart viewer. With a name, desired height
- * and width, an image is created.
- *
- * @author Yonni Chen
- * @since 3.2
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.XYChartLegendImageProvider}
- */
-@Deprecated
-public class XYChartLegendImageProvider implements ILegendImageProvider {
-
-    private static final @NonNull RGBAColor DEFAULT_COLOR = new RGBAColor(255, 255, 255);
-    private static final int DEFAULT_SYMBOL_SIZE = 4;
-
-    private final TmfCommonXAxisChartViewer fChartViewer;
-
-    /**
-     * Constructor
-     *
-     * @param chartViewer
-     *            XY Chart with which we create a legend image
-     */
-    public XYChartLegendImageProvider(TmfCommonXAxisChartViewer chartViewer) {
-        fChartViewer = chartViewer;
-    }
-
-    @Override
-    public Image getLegendImage(int imageHeight, int imageWidth, @NonNull Long id) {
-        /*
-         * If series exists in chart, then image legend match that series. Image will
-         * make sense if series exists in chart. If it does not exists, an image will
-         * still be created.
-         */
-        OutputElementStyle appearance = fChartViewer.getSeriesStyle(id);
-        BaseXYPresentationProvider presProvider = fChartViewer.getPresentationProvider2();
-        RGBAColor rgb = presProvider.getColorStyleOrDefault(appearance, StyleProperties.COLOR, DEFAULT_COLOR);
-
-
-        Color lineColor = new Color(Display.getDefault(), rgb.getRed(), rgb.getGreen(), rgb.getBlue());
-        Color background = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
-
-        PaletteData palette = new PaletteData(background.getRGB(), lineColor.getRGB());
-        ImageData imageData = new ImageData(imageWidth, imageHeight, 8, palette);
-        imageData.transparentPixel = 0;
-        Image image = new Image(Display.getDefault(), imageData);
-        GC gc = new GC(image);
-
-        gc.setBackground(background);
-        gc.fillRectangle(0, 0, imageWidth, imageHeight);
-        drawStyleLine(gc, lineColor, imageWidth, imageHeight, appearance);
-
-        drawStyledDot(gc, lineColor, imageWidth, imageHeight, appearance);
-
-        gc.dispose();
-        lineColor.dispose();
-        return image;
-    }
-
-    @Deprecated
-    @Override
-    public Image getLegendImage(int imageHeight, int imageWidth, @NonNull String name) {
-        /*
-         * If series exists in chart, then image legend match that series. Image will
-         * make sense if series exists in chart. If it does not exists, an image will
-         * still be created.
-         */
-        IYAppearance appearance = fChartViewer.getSeriesAppearance(name);
-        RGBAColor rgb = appearance.getColor();
-        Color lineColor = new Color(Display.getDefault(), rgb.getRed(), rgb.getGreen(), rgb.getBlue());
-        Color background = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
-
-        PaletteData palette = new PaletteData(background.getRGB(), lineColor.getRGB());
-        ImageData imageData = new ImageData(imageWidth, imageHeight, 8, palette);
-        imageData.transparentPixel = 0;
-        Image image = new Image(Display.getDefault(), imageData);
-        GC gc = new GC(image);
-
-        gc.setBackground(background);
-        gc.fillRectangle(0, 0, imageWidth, imageHeight);
-        drawStyleLine(gc, lineColor, imageWidth, imageHeight, appearance.toOutputElementStyle());
-
-        drawStyledDot(gc, lineColor, imageWidth, imageHeight, appearance.toOutputElementStyle());
-
-        gc.dispose();
-        lineColor.dispose();
-        return image;
-    }
-
-    private void drawStyleLine(GC gc, Color lineColor, int imageWidth, int imageHeight, @NonNull OutputElementStyle appearance) {
-        Color prev = gc.getForeground();
-        BaseXYPresentationProvider presProvider = fChartViewer.getPresentationProvider2();
-        LineStyle lineStyle = LineStyle.valueOf((String) presProvider.getStyleOrDefault(appearance, StyleProperties.SERIES_STYLE, StyleProperties.SeriesStyle.SOLID));
-        if (lineStyle != LineStyle.NONE) {
-            gc.setForeground(lineColor);
-            gc.setLineWidth(((Number) presProvider.getFloatStyleOrDefault(appearance, StyleProperties.WIDTH, 1.0f)).intValue());
-            gc.setLineStyle(lineStyle.ordinal());
-            gc.drawLine(0, imageHeight / 2, imageWidth, imageHeight / 2);
-            gc.setForeground(prev);
-        }
-    }
-
-    private void drawStyledDot(GC gc, Color lineColor, int imageWidth, int imageHeight, @NonNull OutputElementStyle appearance) {
-        BaseXYPresentationProvider presProvider = fChartViewer.getPresentationProvider2();
-        String symbolStyle = (String) presProvider.getStyleOrDefault(appearance, StyleProperties.SYMBOL_TYPE, StyleProperties.SymbolType.NONE);
-        int symbolSize = Math.round(presProvider.getFloatStyleOrDefault(appearance, StyleProperties.HEIGHT, 1.0f).floatValue() * DEFAULT_SYMBOL_SIZE);
-        int centerX = imageWidth / 2;
-        int centerY = imageHeight / 2;
-        Color prevBg = gc.getBackground();
-        Color prevFg = gc.getForeground();
-        switch(symbolStyle) {
-        case StyleProperties.SymbolType.CIRCLE:
-            SymbolHelper.drawCircle(gc, lineColor, symbolSize, centerX, centerY);
-            break;
-        case StyleProperties.SymbolType.DIAMOND:
-            SymbolHelper.drawDiamond(gc, lineColor, symbolSize, centerX, centerY);
-            break;
-        case StyleProperties.SymbolType.SQUARE:
-            SymbolHelper.drawSquare(gc, lineColor, symbolSize, centerX, centerY);
-            break;
-        case StyleProperties.SymbolType.CROSS:
-            SymbolHelper.drawCross(gc, lineColor, symbolSize, centerX, centerY);
-            break;
-        case StyleProperties.SymbolType.PLUS:
-            SymbolHelper.drawPlus(gc, lineColor, symbolSize, centerX, centerY);
-            break;
-
-        case StyleProperties.SymbolType.INVERTED_TRIANGLE:
-            SymbolHelper.drawInvertedTriangle(gc, lineColor, symbolSize, centerX, centerY);
-            break;
-        case StyleProperties.SymbolType.TRIANGLE:
-            SymbolHelper.drawTriangle(gc, lineColor, symbolSize, centerX, centerY);
-            break;
-
-        default:
-            // Default is nothing
-            break;
-        }
-        gc.setForeground(prevFg);
-        gc.setBackground(prevBg);
-    }
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/barcharts/TmfHistogramTooltipProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/barcharts/TmfHistogramTooltipProvider.java
deleted file mode 100644
index 8b1ebc0..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/barcharts/TmfHistogramTooltipProvider.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts.barcharts;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.ITmfChartTimeProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfBaseProvider;
-import org.swtchart.IAxis;
-import org.swtchart.ISeries;
-
-/**
- * Tool tip provider for TMF bar chart viewer. It displays the y value of
- * position x as well as it highlights the bar of the x position.
- * It only considers the first series of the chart.
- *
- * @author Bernd Hufmann
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.barchart.TmfHistogramTooltipProvider}
- */
-@Deprecated
-public class TmfHistogramTooltipProvider extends TmfBaseProvider implements MouseTrackListener, MouseMoveListener, PaintListener {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    /** X coordinate for highlighting */
-    private int fHighlightX;
-    /** y coordinate for highlighting */
-    private int fHighlightY;
-    /** Flag to do highlighting or not */
-    private boolean fIsHighlight;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Constructor for a tool tip provider.
-     *
-     * @param tmfChartViewer
-     *                  - the parent chart viewer
-     */
-    public TmfHistogramTooltipProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-    @Override
-    public void register() {
-        getChart().getPlotArea().addMouseTrackListener(this);
-        getChart().getPlotArea().addMouseMoveListener(this);
-        getChart().getPlotArea().addPaintListener(this);
-    }
-
-    @Override
-    public void deregister() {
-        if ((getChartViewer().getControl() != null) && !getChartViewer().getControl().isDisposed()) {
-            getChart().getPlotArea().removeMouseTrackListener(this);
-            getChart().getPlotArea().removeMouseMoveListener(this);
-            getChart().getPlotArea().removePaintListener(this);
-        }
-    }
-
-    @Override
-    public void refresh() {
-        // nothing to do
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseTrackListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseEnter(MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseExit(MouseEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void mouseHover(MouseEvent e) {
-        if (getChartViewer().getWindowDuration() != 0) {
-            IAxis xAxis = getChart().getAxisSet().getXAxis(0);
-            IAxis yAxis = getChart().getAxisSet().getYAxis(0);
-
-            double xCoordinate = xAxis.getDataCoordinate(e.x);
-
-            ISeries[] series = getChart().getSeriesSet().getSeries();
-
-            if ((xCoordinate < 0) || (series.length == 0)) {
-                return;
-            }
-
-            double y = 0.0;
-            double rangeStart = 0.0;
-            double rangeEnd = 0.0;
-
-            // Consider first series only
-            double[] xS = series[0].getXSeries();
-            double[] yS = series[0].getYSeries();
-
-            if ((xS == null) || (yS == null)) {
-                return;
-            }
-
-            for (int i = 0; i < xS.length - 1; i++) {
-                int pixel = xAxis.getPixelCoordinate(xS[i]);
-                if (pixel <= e.x) {
-                    rangeStart = xS[i];
-                    rangeEnd = (long) xS[i + 1];
-                    if (xCoordinate >= rangeStart) {
-                        y = yS[i + 1];
-                    } else {
-                        y = yS[i];
-                    }
-                }
-            }
-
-            ITmfChartTimeProvider viewer = getChartViewer();
-
-            /* set tooltip of closest data point */
-            StringBuffer buffer = new StringBuffer();
-            buffer.append("Range=["); //$NON-NLS-1$
-            buffer.append(TmfTimestamp.fromNanos((long) rangeStart + viewer.getTimeOffset()).toString());
-            buffer.append(',');
-            buffer.append(TmfTimestamp.fromNanos((long) rangeEnd + viewer.getTimeOffset()).toString());
-            buffer.append("]\n"); //$NON-NLS-1$
-            buffer.append("y="); //$NON-NLS-1$
-            buffer.append((long) y);
-            getChart().getPlotArea().setToolTipText(buffer.toString());
-
-            fHighlightX = e.x;
-            fHighlightY = yAxis.getPixelCoordinate(y);
-            fIsHighlight = true;
-            getChart().redraw();
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseMoveListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void mouseMove(MouseEvent e) {
-        fIsHighlight = false;
-        getChart().redraw();
-    }
-
-    // ------------------------------------------------------------------------
-    // PaintListener
-    // ------------------------------------------------------------------------
-    @Override
-    public void paintControl(PaintEvent e) {
-        if (fIsHighlight) {
-            e.gc.setBackground(Display.getDefault().getSystemColor(
-                    SWT.COLOR_RED));
-            e.gc.setAlpha(128);
-
-            e.gc.fillOval(fHighlightX - 5, fHighlightY - 5, 10, 10);
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfCommonXAxisChartViewer.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfCommonXAxisChartViewer.java
deleted file mode 100644
index ca10f76..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfCommonXAxisChartViewer.java
+++ /dev/null
@@ -1,717 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2017, 2020 Ericsson, Draeger, Auriga
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGBA;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tracecompass.common.core.log.TraceCompassLog;
-import org.eclipse.tracecompass.common.core.log.TraceCompassLogUtils;
-import org.eclipse.tracecompass.common.core.log.TraceCompassLogUtils.FlowScopeLog;
-import org.eclipse.tracecompass.common.core.log.TraceCompassLogUtils.FlowScopeLogBuilder;
-import org.eclipse.tracecompass.internal.provisional.tmf.core.model.filters.TmfFilterAppliedSignal;
-import org.eclipse.tracecompass.internal.provisional.tmf.core.model.filters.TraceCompassFilter;
-import org.eclipse.tracecompass.internal.provisional.tmf.ui.viewers.xychart.BaseXYPresentationProvider;
-import org.eclipse.tracecompass.internal.tmf.core.model.filters.FetchParametersUtils;
-import org.eclipse.tracecompass.internal.tmf.ui.Activator;
-import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderParameterUtils;
-import org.eclipse.tracecompass.tmf.core.model.OutputElementStyle;
-import org.eclipse.tracecompass.tmf.core.model.StyleProperties;
-import org.eclipse.tracecompass.tmf.core.model.filters.TimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
-import org.eclipse.tracecompass.tmf.core.model.xy.ISeriesModel;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfCommonXAxisModel;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfXyModel;
-import org.eclipse.tracecompass.tmf.core.presentation.IXYPresentationProvider;
-import org.eclipse.tracecompass.tmf.core.presentation.IYAppearance;
-import org.eclipse.tracecompass.tmf.core.presentation.RGBAColor;
-import org.eclipse.tracecompass.tmf.core.response.ITmfResponse;
-import org.eclipse.tracecompass.tmf.core.response.TmfModelResponse;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.ui.colors.RGBAUtil;
-import org.eclipse.tracecompass.tmf.ui.signal.TmfTimeViewAlignmentInfo;
-import org.eclipse.tracecompass.tmf.ui.signal.TmfTimeViewAlignmentSignal;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.AxisRange;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfChartTimeStampFormat;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.swtchart.IAxisSet;
-import org.swtchart.IAxisTick;
-import org.swtchart.IBarSeries;
-import org.swtchart.ILineSeries;
-import org.swtchart.ISeries;
-import org.swtchart.ISeries.SeriesType;
-import org.swtchart.ISeriesSet;
-import org.swtchart.LineStyle;
-import org.swtchart.Range;
-
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
-import com.google.common.collect.Multimap;
-
-/**
- * XY Chart viewer class implementation. All series in this viewer use the same
- * X axis values. They are automatically created as values are provided for a
- * key. Series by default will be displayed as a line. Each series appearance
- * can be overridden when creating it.
- *
- * @author Yonni Chen
- * @since 3.2
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.linechart.TmfCommonXAxisChartViewer}
- */
-@Deprecated
-public abstract class TmfCommonXAxisChartViewer extends TmfXYChartViewer {
-
-    private static final String DIRTY_UNDERFLOW_ERROR = "Dirty underflow error"; //$NON-NLS-1$
-    private static final @NonNull RGBAColor DEFAULT_COLOR = new RGBAColor(0, 0, 0);
-    private static final int DEFAULT_SYMBOL_SIZE = 4;
-
-    private static final Map<String, ILineSeries.PlotSymbolType> SYMBOL_MAP;
-    private static final ColorRegistry COLOR_REGISTRY = new ColorRegistry();
-
-    static {
-        ImmutableMap.Builder<String, ILineSeries.PlotSymbolType> builder = new Builder<>();
-        builder.put(StyleProperties.SymbolType.NONE, ILineSeries.PlotSymbolType.NONE);
-        builder.put(StyleProperties.SymbolType.CIRCLE, ILineSeries.PlotSymbolType.CIRCLE);
-        builder.put(StyleProperties.SymbolType.CROSS, ILineSeries.PlotSymbolType.CROSS);
-        builder.put(StyleProperties.SymbolType.DIAMOND, ILineSeries.PlotSymbolType.DIAMOND);
-        builder.put(StyleProperties.SymbolType.INVERTED_TRIANGLE, ILineSeries.PlotSymbolType.INVERTED_TRIANGLE);
-        builder.put(StyleProperties.SymbolType.TRIANGLE, ILineSeries.PlotSymbolType.TRIANGLE);
-        builder.put(StyleProperties.SymbolType.PLUS, ILineSeries.PlotSymbolType.PLUS);
-        builder.put(StyleProperties.SymbolType.SQUARE, ILineSeries.PlotSymbolType.SQUARE);
-        SYMBOL_MAP = builder.build();
-    }
-    private static final double DEFAULT_MAXY = Double.MIN_VALUE;
-    private static final double DEFAULT_MINY = Double.MAX_VALUE;
-
-    /** Timeout between updates in the updateData thread **/
-    private static final long BUILD_UPDATE_TIMEOUT = 500;
-
-    private static final @NonNull Logger LOGGER = TraceCompassLog.getLogger(TmfCommonXAxisChartViewer.class);
-    private static final int DEFAULT_SERIES_WIDTH = 1;
-    private static final String DIMMED_SERIES_SUFFIX = ".dimmed"; //$NON-NLS-1$
-
-    private final double fResolution;
-    private final AtomicInteger fDirty = new AtomicInteger();
-    private final Map<ITmfTrace, BaseXYPresentationProvider> fXYPresentationProvider;
-    private UpdateThread fUpdateThread;
-
-    /** Used for testing **/
-    private int fOverrideNbPoints = 0;
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *                     The parent composite
-     * @param settings
-     *                     See {@link TmfXYChartSettings} to know what it contains
-     */
-    public TmfCommonXAxisChartViewer(Composite parent, TmfXYChartSettings settings) {
-        super(parent, settings.getTitle(), settings.getXLabel(), settings.getYLabel());
-        getSwtChart().getTitle().setVisible(false);
-        getSwtChart().getLegend().setPosition(SWT.BOTTOM);
-        getSwtChart().getAxisSet().getXAxes()[0].getTitle().setVisible(false);
-        fResolution = settings.getResolution();
-        setTooltipProvider(new TmfCommonXLineChartTooltipProvider(this));
-        fXYPresentationProvider = new HashMap<>();
-    }
-
-    @Override
-    public void loadTrace(ITmfTrace trace) {
-        super.loadTrace(trace);
-        fXYPresentationProvider.computeIfAbsent(trace, t -> createPresentationProvider(trace));
-    }
-
-    /**
-     * Create a new presentation provider for this XY viewer. Sub-classes can
-     * overwrite this method to provide specific XY presentation provider
-     * instances.
-     *
-     * @param trace
-     *            The trace to get the provider for
-     *
-     * @return A new presentation provider
-     * @since 6.0
-     */
-    protected BaseXYPresentationProvider createPresentationProvider(ITmfTrace trace) {
-        return new BaseXYPresentationProvider();
-    }
-
-    @Override
-    public boolean isDirty() {
-        /* Check the parent's or this view's own dirtiness */
-        return super.isDirty() || (fDirty.get() != 0);
-    }
-
-    /**
-     * Force the number of points to a fixed value
-     *
-     * @param nbPoints
-     *                     The number of points to display, cannot be negative. 0
-     *                     means use native resolution. any positive integer means
-     *                     that number of points
-     */
-    public synchronized void setNbPoints(int nbPoints) {
-        if (nbPoints < 0) {
-            throw new IllegalArgumentException("Number of points cannot be negative"); //$NON-NLS-1$
-        }
-        fOverrideNbPoints = nbPoints;
-        updateContent();
-    }
-
-    /**
-     * Initialize the data provider of this viewer
-     *
-     * FIXME Make this abstract when incrementing the major version
-     *
-     * @param trace
-     *                  The trace
-     * @return the data provider
-     * @since 4.0
-     */
-    protected ITmfXYDataProvider initializeDataProvider(@NonNull ITmfTrace trace) {
-        throw new UnsupportedOperationException("This needs to be implemented concrete classes"); //$NON-NLS-1$
-    }
-
-    /**
-     * Gets the presentation provider
-     *
-     * @return The presentation provider
-     * @since 4.0
-     */
-    protected IXYPresentationProvider getPresentationProvider() {
-        return Objects.requireNonNull(fXYPresentationProvider.get(getTrace()));
-    }
-
-    /**
-     * Gets the presentation provider
-     *
-     * @return The presentation provider
-     * @since 6.0
-     */
-    public BaseXYPresentationProvider getPresentationProvider2() {
-        return Objects.requireNonNull(fXYPresentationProvider.get(getTrace()));
-    }
-
-    /**
-     * Create map of parameters that will be used by updateData method. If a
-     * viewer need a more specialized map than just the time requested it's its
-     * responsibility to override this method and provide the desired instance.
-     *
-     * @param start
-     *            The starting value
-     * @param end
-     *            The ending value
-     * @param nb
-     *            The number of entries
-     * @return Map of parameters
-     * @since 5.0
-     */
-    protected @NonNull Map<String, Object> createQueryParameters(long start, long end, int nb) {
-        Map<@NonNull String, @NonNull Object> parameters = FetchParametersUtils.timeQueryToMap(new TimeQueryFilter(start, end, nb));
-        Multimap<@NonNull Integer, @NonNull String> regexesMap = getRegexes();
-        if (!regexesMap.isEmpty()) {
-            parameters.put(DataProviderParameterUtils.REGEX_MAP_FILTERS_KEY, regexesMap.asMap());
-        }
-        return parameters;
-    }
-
-    /**
-     * Gets the appearance of a given series. If appearance doesn't exist, a new one
-     * will be created by the presentation provider
-     *
-     * @param seriesName
-     *                       The name of the series
-     * @return An {@link IYAppearance} instance for the series
-     * @since 4.0
-     * @deprecated As of 6.0, use {@link #getSeriesStyle(Long)} instead
-     */
-    @Deprecated
-    public @NonNull IYAppearance getSeriesAppearance(@NonNull String seriesName) {
-        return getPresentationProvider().getAppearance(seriesName, IYAppearance.Type.LINE, DEFAULT_SERIES_WIDTH);
-    }
-
-    /**
-     * Gets the style of a given series. If style doesn't exist, a new one will
-     * be created by the presentation provider
-     *
-     * @param seriesId
-     *            The unique ID of the series
-     * @return An {@link OutputElementStyle} instance for the series
-     * @since 6.0
-     */
-    public @NonNull OutputElementStyle getSeriesStyle(@NonNull Long seriesId) {
-        return getPresentationProvider().getSeriesStyle(seriesId, StyleProperties.SeriesType.LINE, DEFAULT_SERIES_WIDTH);
-    }
-
-    /**
-     * Cancels the currently running update thread. It is automatically called when
-     * the content is updated, but child viewers may want to call it manually to do
-     * some operations before calling
-     * {@link TmfCommonXAxisChartViewer#updateContent}
-     */
-    protected synchronized void cancelUpdate() {
-        if (fUpdateThread != null) {
-            fUpdateThread.cancel();
-        }
-    }
-
-    @Override
-    protected void updateContent() {
-        ITmfTrace trace = getTrace();
-        if (trace == null) {
-            return;
-        }
-        cancelUpdate();
-        try (FlowScopeLog parentScope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "CommonXLineChart:ContentUpdateRequested").setCategory(getViewerId()).build()) { //$NON-NLS-1$
-            /*
-             * Content is not up to date, so we increment fDirty. It will be decremented at
-             * the end of the update thread
-             */
-            fDirty.incrementAndGet();
-            getDisplay().asyncExec(() -> {
-                if (!trace.equals(getTrace())) {
-                    return;
-                }
-                try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "CommonXLineChart:CreatingUpdateThread").setParentScope(parentScope).build()) { //$NON-NLS-1$
-                    newUpdateThread(trace, scope);
-                }
-            });
-        }
-    }
-
-    @Override
-    protected void clearContent() {
-        getSwtChart().getAxisSet().getXAxis(0).getTick().setFormat(null);
-        super.clearContent();
-    }
-
-    private @NonNull String getViewerId() {
-        return getClass().getName();
-    }
-
-    private class UpdateThread extends Thread {
-
-        private final ITmfTrace fTrace;
-        private final IProgressMonitor fMonitor;
-        private final int fNumRequests;
-        private final @NonNull FlowScopeLog fScope;
-
-        public UpdateThread(ITmfTrace trace, int numRequests, @NonNull FlowScopeLog log) {
-            super("Line chart update"); //$NON-NLS-1$
-            fTrace = trace;
-            fNumRequests = numRequests;
-            fMonitor = new NullProgressMonitor();
-            fScope = log;
-        }
-
-        @Override
-        public void run() {
-            try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "CommonXLineChart:UpdateThread", "numRequests=", fNumRequests).setParentScope(fScope).build()) { //$NON-NLS-1$ //$NON-NLS-2$
-                ITmfXYDataProvider dataProvider = null;
-                try (FlowScopeLog scopeDp = new FlowScopeLogBuilder(LOGGER, Level.FINE, "CommonXLineChart:InitializeDataProvider").setParentScope(fScope).build()) { //$NON-NLS-1$
-                    dataProvider = initializeDataProvider(fTrace);
-                }
-                if (dataProvider == null) {
-                    TraceCompassLogUtils.traceInstant(LOGGER, Level.WARNING, "Data provider for this viewer is not available"); //$NON-NLS-1$
-                    return;
-                }
-                try {
-                    int numRequests = fNumRequests;
-                    if (numRequests == 0) {
-                        return;
-                    }
-                    Map<String, Object> parameters = createQueryParameters(getWindowStartTime(), getWindowEndTime(), numRequests);
-                    updateData(dataProvider, parameters, fMonitor);
-                } finally {
-                    /*
-                     * fDirty should have been incremented before creating the thread, so we
-                     * decrement it once it is finished
-                     */
-                    if (fDirty.decrementAndGet() < 0) {
-                        Activator.getDefault().logError(DIRTY_UNDERFLOW_ERROR, new Throwable());
-                    }
-                }
-                updateThreadFinished(this);
-            }
-        }
-
-        public void cancel() {
-            TraceCompassLogUtils.traceInstant(LOGGER, Level.FINE, "CommonXLineChart:UpdateThreadCanceled"); //$NON-NLS-1$
-            fMonitor.setCanceled(true);
-        }
-
-        /**
-         * This method is responsible for calling the
-         * {@link UpdateThread#updateDisplay(ITmfCommonXAxisModel)} when needed for the
-         * new values to be displayed.
-         *
-         * @param dataProvider
-         *                         A data provider
-         * @param parameters
-         *                         A query filter
-         * @param monitor
-         *                         A monitor for canceling task
-         */
-        private void updateData(@NonNull ITmfXYDataProvider dataProvider, @NonNull Map<String, Object> parameters, IProgressMonitor monitor) {
-            boolean isComplete = false;
-            do {
-                TmfModelResponse<ITmfXyModel> response = dataProvider.fetchXY(parameters, monitor);
-                ITmfXyModel model = response.getModel();
-                if (model != null) {
-                    updateDisplay(model, monitor);
-                }
-
-                ITmfResponse.Status status = response.getStatus();
-                if (status == ITmfResponse.Status.COMPLETED) {
-                    /* Model is complete, no need to request again the data provider */
-                    isComplete = true;
-                } else if (status == ITmfResponse.Status.FAILED || status == ITmfResponse.Status.CANCELLED) {
-                    /* Error occurred, log and return */
-                    TraceCompassLogUtils.traceInstant(LOGGER, Level.WARNING, response.getStatusMessage());
-                    isComplete = true;
-                } else {
-                    /**
-                     * Status is RUNNING. Sleeping current thread to wait before request data
-                     * provider again
-                     **/
-                    try {
-                        Thread.sleep(BUILD_UPDATE_TIMEOUT);
-                    } catch (InterruptedException e) {
-                        /**
-                         * InterruptedException is throw by Thread.Sleep and we should retry querying
-                         * the data provider
-                         **/
-                        TraceCompassLogUtils.traceInstant(LOGGER, Level.INFO, e.getMessage());
-                        Thread.currentThread().interrupt();
-                    }
-                }
-            } while (!isComplete);
-        }
-
-        /**
-         * Update the chart's values before refreshing the viewer
-         */
-        private void updateDisplay(ITmfXyModel model, IProgressMonitor monitor) {
-            try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "TmfCommonXAxisChart:UpdateDisplayRequested").setCategory(getViewerId()).build()) { //$NON-NLS-1$
-                /* Content is not up to date, increment dirtiness */
-                final ITmfXyModel seriesValues = model;
-                fDirty.incrementAndGet();
-
-                Display.getDefault().asyncExec(() -> {
-                    final TmfChartTimeStampFormat tmfChartTimeStampFormat = new TmfChartTimeStampFormat(getTimeOffset());
-                    try (FlowScopeLog log = new FlowScopeLogBuilder(LOGGER, Level.FINE, "TmfCommonXAxisChart:UpdateDisplay").setParentScope(scope).build()) { //$NON-NLS-1$
-                        if (!fTrace.equals(getTrace())) {
-                            return;
-                        }
-                        if (getSwtChart().isDisposed()) {
-                            return;
-                        }
-                        if (monitor != null && monitor.isCanceled()) {
-                            return;
-                        }
-                        double maxy = DEFAULT_MAXY;
-                        double miny = DEFAULT_MINY;
-                        long delta = getWindowEndTime() - getWindowStartTime();
-                        if (delta > 0) {
-                            for (ISeriesModel entry : seriesValues.getSeriesData()) {
-                                double[] extractXValuesToDisplay = extractXValuesToDisplay(entry.getXAxis());
-                                List<Double> dimmedX = new ArrayList<>(extractXValuesToDisplay.length);
-                                List<Double> dimmedY = new ArrayList<>(extractXValuesToDisplay.length);
-                                List<Double> brightX = new ArrayList<>(extractXValuesToDisplay.length);
-                                List<Double> brightY = new ArrayList<>(extractXValuesToDisplay.length);
-
-                                int[] propertiesArray = entry.getProperties();
-                                double[] data = entry.getData();
-                                for (int i = 0; i < extractXValuesToDisplay.length; i++) {
-                                    double value = data[i];
-                                    /*
-                                     * Find the minimal and maximum values in this series
-                                     */
-                                    maxy = Math.max(maxy, value);
-                                    miny = Math.min(miny, value);
-                                    int properties = (i < propertiesArray.length) ? propertiesArray[i] : 0;
-                                    if ((properties & IFilterProperty.EXCLUDE) == 0) {
-                                        if ((properties & IFilterProperty.DIMMED) == 0) {
-                                            brightX.add(extractXValuesToDisplay[i]);
-                                            brightY.add(value);
-                                        } else {
-                                            dimmedX.add(extractXValuesToDisplay[i]);
-                                            dimmedY.add(value);
-                                        }
-                                    }
-                                }
-                                double[] brightXArray = new double[brightX.size()];
-                                double[] brightYArray = new double[brightY.size()];
-                                for (int i = 0; i < brightX.size(); i++) {
-                                    brightXArray[i] = brightX.get(i);
-                                    brightYArray[i] = brightY.get(i);
-                                }
-                                double[] dimmedXArray = new double[dimmedX.size()];
-                                double[] dimmedYArray = new double[dimmedY.size()];
-                                for (int i = 0; i < dimmedX.size(); i++) {
-                                    dimmedXArray[i] = dimmedX.get(i);
-                                    dimmedYArray[i] = dimmedY.get(i);
-                                }
-
-                                // Create and fill the series
-                                ISeriesSet seriesSet = getSwtChart().getSeriesSet();
-                                ISeries series = seriesSet.getSeries(entry.getName());
-                                ISeries dimmedSeries = seriesSet.getSeries(entry.getName() + DIMMED_SERIES_SUFFIX);
-                                if (brightX.isEmpty()) {
-                                    // Remove the base series since there is
-                                    // nothing to show
-                                    if (series != null) {
-                                        seriesSet.deleteSeries(entry.getName());
-                                    }
-                                } else {
-                                    if (series == null) {
-                                        series = createSWTSeriesFromModel(entry);
-                                    }
-                                    series.setXSeries(brightXArray);
-                                    series.setYSeries(brightYArray);
-                                }
-                                if (dimmedX.isEmpty()) {
-                                    // Remove the base series since there is
-                                    // nothing to show
-                                    if (dimmedSeries != null) {
-                                        seriesSet.deleteSeries(entry.getName() + DIMMED_SERIES_SUFFIX);
-                                    }
-                                } else {
-                                    if (dimmedSeries == null) {
-                                        dimmedSeries = createDimmedSeriesFromModel(entry);
-                                    }
-                                    dimmedSeries.setXSeries(dimmedXArray);
-                                    dimmedSeries.setYSeries(dimmedYArray);
-                                }
-                            }
-                            maxy = maxy == DEFAULT_MAXY ? 1.0 : maxy;
-                        } else {
-                            clearContent();
-                            delta = 1;
-                        }
-
-                        IAxisSet axisSet = getSwtChart().getAxisSet();
-                        IAxisTick xTick = axisSet.getXAxis(0).getTick();
-                        xTick.setFormat(tmfChartTimeStampFormat);
-                        final double start = 1.0;
-                        axisSet.getXAxis(0).setRange(new Range(start, start + delta));
-                        AxisRange fixedYRange = getFixedYRange();
-                        if (fixedYRange == null) {
-                            axisSet.getYAxis(0).adjustRange();
-                        } else {
-                            axisSet.getYAxis(0).setRange(
-                                    new Range(fixedYRange.getLower(), fixedYRange.getUpper()));
-                        }
-                        getSwtChart().redraw();
-
-                        if (isSendTimeAlignSignals()) {
-                            /*
-                             * The width of the chart might have changed and its time axis might be
-                             * misaligned with the other views
-                             */
-                            Composite parent = TmfCommonXAxisChartViewer.this.getParent();
-                            if (parent == null || parent.getParent() == null) {
-                                return;
-                            }
-                            Point viewPos = parent.getParent().toDisplay(0, 0);
-                            int axisPos = getSwtChart().toDisplay(0, 0).x + getPointAreaOffset();
-                            int timeAxisOffset = axisPos - viewPos.x;
-                            TmfTimeViewAlignmentInfo timeAlignmentInfo = new TmfTimeViewAlignmentInfo(getControl().getShell(), viewPos, timeAxisOffset);
-                            TmfSignalManager.dispatchSignal(new TmfTimeViewAlignmentSignal(TmfCommonXAxisChartViewer.this, timeAlignmentInfo, true));
-                        }
-
-                    } finally {
-                        /* Content has been updated, decrement dirtiness */
-                        if (fDirty.decrementAndGet() < 0) {
-                            Activator.getDefault().logError(DIRTY_UNDERFLOW_ERROR, new Throwable());
-                        }
-                    }
-                });
-            }
-        }
-
-        /**
-         * Since the XY Model returned by data provider contains directly the requested
-         * time as long array, we need to convert it to double array for the SWT Chart.
-         */
-        private double[] extractXValuesToDisplay(long[] xValuesRequested) {
-            double[] xValuesToDisplay = new double[xValuesRequested.length];
-            long offset = getTimeOffset();
-
-            for (int i = 0; i < xValuesRequested.length; ++i) {
-                xValuesToDisplay[i] = (xValuesRequested[i] - offset);
-            }
-            return xValuesToDisplay;
-        }
-
-        private @NonNull ISeries createSWTSeriesFromModel(ISeriesModel yModel) {
-            ISeriesSet seriesSet = getSwtChart().getSeriesSet();
-
-            String seriesName = yModel.getName();
-            OutputElementStyle appearance = getSeriesStyle(yModel.getId());
-            BaseXYPresentationProvider presProvider = getPresentationProvider2();
-
-            String type = (String) presProvider.getStyleOrDefault(appearance, StyleProperties.SERIES_TYPE, StyleProperties.SeriesType.LINE);
-            RGBAColor rgb = presProvider.getColorStyleOrDefault(appearance, StyleProperties.COLOR, DEFAULT_COLOR);
-            COLOR_REGISTRY.put(rgb.toString(), RGBAUtil.fromRGBAColor(rgb).rgb);
-            Color color = COLOR_REGISTRY.get(rgb.toString());
-            String symbolType = (String) presProvider.getStyle(appearance, StyleProperties.SYMBOL_TYPE);
-
-            if (type.equals(StyleProperties.SeriesType.BAR)) {
-                IBarSeries barSeries = (IBarSeries) seriesSet.createSeries(SeriesType.BAR, seriesName);
-                barSeries.enableStack(true);
-                barSeries.setBarColor(color);
-                barSeries.setBarPadding(0);
-                barSeries.setVisible(true);
-                return barSeries;
-            }
-
-            /**
-             * Default is line chart
-             */
-            ILineSeries lineSeries = (ILineSeries) seriesSet.createSeries(SeriesType.LINE, seriesName);
-            lineSeries.enableArea(StyleProperties.SeriesType.AREA.equals(type));
-            lineSeries.setLineStyle(LineStyle.valueOf((String) presProvider.getStyleOrDefault(appearance, StyleProperties.SERIES_STYLE, StyleProperties.SeriesStyle.SOLID)));
-            lineSeries.setSymbolType(SYMBOL_MAP.getOrDefault(symbolType, ILineSeries.PlotSymbolType.NONE));
-            lineSeries.setSymbolSize(Math.round(presProvider.getFloatStyleOrDefault(appearance, StyleProperties.HEIGHT, 1.0f).floatValue() * DEFAULT_SYMBOL_SIZE));
-            lineSeries.setLineColor(color);
-            lineSeries.setSymbolColor(color);
-            lineSeries.setVisible(true);
-            lineSeries.setLineWidth(((Number) presProvider.getFloatStyleOrDefault(appearance, StyleProperties.WIDTH, 1.0f)).intValue());
-            return lineSeries;
-        }
-
-        private @NonNull ISeries createDimmedSeriesFromModel(ISeriesModel yModel) {
-            ISeriesSet seriesSet = getSwtChart().getSeriesSet();
-
-            String seriesName = yModel.getName() + DIMMED_SERIES_SUFFIX;
-            OutputElementStyle appearance = getSeriesStyle(yModel.getId());
-            BaseXYPresentationProvider presProvider = getPresentationProvider2();
-
-            String type = (String) presProvider.getStyleOrDefault(appearance, StyleProperties.SERIES_TYPE, StyleProperties.SeriesType.LINE);
-            RGBAColor rgbaColor = presProvider.getColorStyleOrDefault(appearance, StyleProperties.COLOR, DEFAULT_COLOR);
-            float[] rgb = rgbaColor.getHSBA();
-            COLOR_REGISTRY.put(rgb.toString(), new RGBA(rgb[0], rgb[1] * 0.5f, rgb[2] * 0.5f, rgb[3]).rgb);
-            Color color = COLOR_REGISTRY.get(rgb.toString());
-            String symbolType = (String) presProvider.getStyle(appearance, StyleProperties.SYMBOL_TYPE);
-
-            if (type.equals(StyleProperties.SeriesType.BAR)) {
-                IBarSeries barSeries = (IBarSeries) seriesSet.createSeries(SeriesType.BAR, seriesName);
-                barSeries.enableStack(true);
-                barSeries.setBarColor(color);
-                barSeries.setBarPadding(0);
-                barSeries.setVisible(true);
-                return barSeries;
-            }
-
-            /**
-             * Default is line chart
-             */
-            ILineSeries lineSeries = (ILineSeries) seriesSet.createSeries(SeriesType.LINE, seriesName);
-            lineSeries.enableArea(StyleProperties.SeriesType.AREA.equals(type));
-            lineSeries.setLineStyle(LineStyle.valueOf((String) presProvider.getStyleOrDefault(appearance, StyleProperties.SERIES_STYLE, StyleProperties.SeriesStyle.SOLID)));
-            lineSeries.setSymbolType(SYMBOL_MAP.getOrDefault(symbolType, ILineSeries.PlotSymbolType.NONE));
-            lineSeries.setSymbolSize(Math.round(presProvider.getFloatStyleOrDefault(appearance, StyleProperties.HEIGHT, 1.0f).floatValue() * DEFAULT_SYMBOL_SIZE));
-            lineSeries.setLineColor(color);
-            lineSeries.setSymbolColor(color);
-            lineSeries.setVisible(true);
-            lineSeries.setLineWidth(((Number) presProvider.getFloatStyleOrDefault(appearance, StyleProperties.WIDTH, 1.0f)).intValue());
-            return lineSeries;
-        }
-
-        private synchronized void updateThreadFinished(UpdateThread thread) {
-            if (thread == fUpdateThread) {
-                fUpdateThread = null;
-            }
-        }
-    }
-
-    private synchronized void newUpdateThread(@NonNull ITmfTrace trace, @NonNull FlowScopeLog fScope) {
-        if (getSwtChart().isDisposed()) {
-            return;
-        }
-        int numRequests = fOverrideNbPoints != 0 ? fOverrideNbPoints : (int) Math.min(getWindowEndTime() - getWindowStartTime() + 1, (long) (getSwtChart().getPlotArea().getBounds().width * fResolution));
-        fUpdateThread = new UpdateThread(trace, numRequests, fScope);
-        fUpdateThread.start();
-    }
-
-    @TmfSignalHandler
-    @Override
-    public void traceClosed(@Nullable TmfTraceClosedSignal signal) {
-        cancelUpdate();
-        super.traceClosed(signal);
-        if (signal != null) {
-            fXYPresentationProvider.remove(signal.getTrace());
-        }
-    }
-
-    /**
-     * Set or remove the global regex filter value
-     *
-     * @param signal
-     *                   the signal carrying the regex value
-     * @since 4.2
-     */
-    @TmfSignalHandler
-    public void regexFilterApplied(TmfFilterAppliedSignal signal) {
-        updateContent();
-    }
-
-    /**
-     * This method build the multimap of regexes by property that will be used to
-     * filter the timegraph states
-     *
-     * Override this method to add other regexes with their properties. The data
-     * provider should handle everything after.
-     *
-     * @return The multimap of regexes by property
-     * @since 4.2
-     */
-    protected @NonNull Multimap<@NonNull Integer, @NonNull String> getRegexes() {
-        Multimap<@NonNull Integer, @NonNull String> regexes = HashMultimap.create();
-
-        ITmfTrace trace = getTrace();
-        if (trace == null) {
-            return regexes;
-        }
-        TraceCompassFilter globalFilter = TraceCompassFilter.getFilterForTrace(trace);
-        if (globalFilter == null) {
-            return regexes;
-        }
-        regexes.putAll(IFilterProperty.DIMMED, globalFilter.getRegexes());
-
-        return regexes;
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfCommonXLineChartTooltipProvider.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfCommonXLineChartTooltipProvider.java
deleted file mode 100644
index 54e2ae7..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfCommonXLineChartTooltipProvider.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2019 École Polytechnique de Montréal and others
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Geneviève Bastien - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts;
-
-import java.text.Format;
-import java.util.Arrays;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGBA;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.tracecompass.internal.tmf.ui.Messages;
-import org.eclipse.tracecompass.tmf.core.presentation.RGBAColor;
-import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfAbstractToolTipHandler;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.ITmfChartTimeProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfBaseProvider;
-import org.swtchart.Chart;
-import org.swtchart.IAxis;
-import org.swtchart.IAxisSet;
-import org.swtchart.IBarSeries;
-import org.swtchart.ILineSeries;
-import org.swtchart.ISeries;
-
-/**
- * Displays a tooltip on line charts. For each series, it shows the y value at
- * the selected x value. This tooltip assumes that all series share a common set
- * of X axis values. If the X series is not common, the tooltip text may not be
- * accurate.
- *
- * @author Geneviève Bastien
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.linechart.TmfCommonXLineChartTooltipProvider}
- */
-@Deprecated
-public class TmfCommonXLineChartTooltipProvider extends TmfBaseProvider implements MouseTrackListener {
-
-    private final class XYToolTipHandler extends TmfAbstractToolTipHandler {
-        private static final String HTML_COLOR_TOOLTIP = "<span style=\"color:%s;\">%s</span>"; //$NON-NLS-1$
-
-        private boolean isValid(int index, ISeries serie) {
-            double[] ySeries = serie.getYSeries();
-            return serie.isVisible() && ySeries != null && ySeries.length > index;
-        }
-
-        @Override
-        public void fill(Control control, MouseEvent event, Point pt) {
-            if (getChartViewer().getWindowDuration() != 0) {
-                Chart chart = getChart();
-                IAxisSet axisSet = chart.getAxisSet();
-                IAxis xAxis = axisSet.getXAxis(0);
-
-                double xCoordinate = xAxis.getDataCoordinate(pt.x);
-
-                ISeries[] series = getChart().getSeriesSet().getSeries();
-
-                if ((xCoordinate < 0) || (series.length == 0)) {
-                    return;
-                }
-
-                /* Find the index of the value we want */
-                double[] xS = series[0].getXSeries();
-                if (xS == null) {
-                    return;
-                }
-                int index = Arrays.binarySearch(xS, xCoordinate);
-                index = index >= 0 ? index : -index - 1;
-                int maxLen = 0;
-                for (ISeries serie : series) {
-                    /* Make sure the series values and the value at index exist */
-                    if (isValid(index, serie)) {
-                        maxLen = Math.max(maxLen, serie.getId().length());
-                    }
-                }
-
-                TmfCommonXAxisChartViewer viewer = null;
-                Format format = null;
-                ITmfChartTimeProvider timeProvider = getChartViewer();
-                if (timeProvider instanceof TmfCommonXAxisChartViewer) {
-                    viewer = (TmfCommonXAxisChartViewer) timeProvider;
-                    format = viewer.getSwtChart().getAxisSet().getYAxes()[0].getTick().getFormat();
-                }
-                ITmfTimestamp time = TmfTimestamp.fromNanos((long) xCoordinate + getChartViewer().getTimeOffset());
-                addItem(null, ToolTipString.fromString(Messages.TmfCommonXLineChartTooltipProvider_time), ToolTipString.fromTimestamp(time.toString(), time.toNanos()));
-                /* For each series, get the value at the index */
-                for (ISeries serie : series) {
-                    double[] yS = serie.getYSeries();
-                    /* Make sure the series values and the value at index exist */
-                    if (isValid(index, serie)) {
-                        String key = serie.getId();
-                        Color color = getSeriesColor(serie);
-                        if (key != null && color != null) {
-                            RGBA rgba = color.getRGBA();
-                            RGBAColor rgbaColor = new RGBAColor(rgba.rgb.red, rgba.rgb.green, rgba.rgb.blue, rgba.alpha);
-                            key = String.format(HTML_COLOR_TOOLTIP, rgbaColor, key);
-                        }
-                        if (key == null) {
-                            key = ""; //$NON-NLS-1$
-                        }
-                        double yValue = yS[index];
-                        if (format == null) {
-                            addItem(null, ToolTipString.fromHtml(key), ToolTipString.fromDecimal(yValue));
-                        } else {
-                            addItem(null, ToolTipString.fromHtml(key), ToolTipString.fromString(format.format(yValue)));
-                        }
-                    }
-                }
-            }
-        }
-
-        private @Nullable Color getSeriesColor(ISeries series) {
-            if (series instanceof IBarSeries) {
-                return ((IBarSeries) series).getBarColor();
-            } else if (series instanceof ILineSeries) {
-                return ((ILineSeries) series).getLineColor();
-            }
-            return null;
-        }
-    }
-
-    private XYToolTipHandler fToolTipHandler = new XYToolTipHandler();
-
-    /**
-     * Constructor for the tooltip provider
-     *
-     * @param tmfChartViewer
-     *            The parent chart viewer
-     */
-    public TmfCommonXLineChartTooltipProvider(ITmfChartTimeProvider tmfChartViewer) {
-        super(tmfChartViewer);
-        register();
-    }
-
-    // ------------------------------------------------------------------------
-    // TmfBaseProvider
-    // ------------------------------------------------------------------------
-
-    @Override
-    public void register() {
-        fToolTipHandler.activateHoverHelp(getChart().getPlotArea());
-    }
-
-    @Override
-    public void deregister() {
-        if ((getChartViewer().getControl() != null) && !getChartViewer().getControl().isDisposed()) {
-            fToolTipHandler.deactivateHoverHelp(getChart().getPlotArea());
-        }
-    }
-
-    @Override
-    public void refresh() {
-        // nothing to do
-    }
-
-    // ------------------------------------------------------------------------
-    // MouseTrackListener
-    // ------------------------------------------------------------------------
-
-    /**
-     * @deprecated, do not extend, use as-is
-     */
-    @Deprecated
-    @Override
-    public void mouseEnter(MouseEvent e) {
-        // do nothing
-    }
-
-    /**
-     * @deprecated, do not extend, use as-is
-     */
-    @Deprecated
-    @Override
-    public void mouseExit(MouseEvent e) {
-        // do nothing
-    }
-
-    /**
-     * @deprecated, do not extend, use as-is
-     */
-    @Deprecated
-    @Override
-    public void mouseHover(MouseEvent e) {
-        // do nothing
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfFilteredXYChartViewer.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfFilteredXYChartViewer.java
deleted file mode 100644
index dcd2ab9..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfFilteredXYChartViewer.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2020 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.internal.provisional.tmf.ui.viewers.xychart.BaseXYPresentationProvider;
-import org.eclipse.tracecompass.internal.tmf.core.model.filters.FetchParametersUtils;
-import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderManager;
-import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderParameterUtils;
-import org.eclipse.tracecompass.tmf.core.model.IOutputStyleProvider;
-import org.eclipse.tracecompass.tmf.core.model.OutputElementStyle;
-import org.eclipse.tracecompass.tmf.core.model.filters.SelectionTimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfTreeXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.model.xy.ITmfXYDataProvider;
-import org.eclipse.tracecompass.tmf.core.presentation.IYAppearance;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.ICheckboxTreeViewerListener;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.ITmfTreeViewerEntry;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfGenericTreeEntry;
-import org.swtchart.Chart;
-
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.Sets;
-
-/**
- * XY chart viewer which queries and displays selected entries.
- *
- * @author Loic Prieur-Drevon
- * @since 3.2
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.linechart.TmfFilteredXYChartViewer}
- */
-@Deprecated
-public class TmfFilteredXYChartViewer extends TmfCommonXAxisChartViewer implements ICheckboxTreeViewerListener {
-
-    private static final int DEFAULT_SERIES_WIDTH = 2;
-
-    private @NonNull Collection<@NonNull Long> fSelectedIds = Collections.emptyList();
-
-    private final String fId;
-    private final Map<BaseXYPresentationProvider, Boolean> fUseDefaultStyleValues = new HashMap<>();
-
-    /**
-     * Constructor
-     *
-     * @param parent
-     *            The parent composite
-     * @param settings
-     *            See {@link TmfXYChartSettings} to know what it contains
-     * @param id
-     *            The ITmfXYDataProvider ID.
-     */
-    public TmfFilteredXYChartViewer(Composite parent, TmfXYChartSettings settings, String id) {
-        super(parent, settings);
-        Chart chart = getSwtChart();
-        // Avoid displaying chart title and axis titles (to reduce wasted space)
-        chart.getLegend().setVisible(false);
-        fId = id;
-    }
-
-    /**
-     * Update the chart depending on the selected entries.
-     *
-     * @param entries
-     *            Counters to display on the chart
-     */
-    @Override
-    public void handleCheckStateChangedEvent(Collection<ITmfTreeViewerEntry> entries) {
-        cancelUpdate();
-
-        Iterable<TmfGenericTreeEntry> counterEntries = Iterables.filter(entries, TmfGenericTreeEntry.class);
-        Collection<@NonNull Long> selectedIds = Sets.newHashSet(Iterables.transform(counterEntries, e -> e.getModel().getId()));
-        if (!selectedIds.containsAll(fSelectedIds)) {
-            clearContent();
-        }
-        fSelectedIds = selectedIds;
-        // Update the styles as well
-        BaseXYPresentationProvider presProvider = getPresentationProvider2();
-        for (ITmfTreeViewerEntry entry : entries) {
-            if (entry instanceof TmfGenericTreeEntry) {
-                TmfGenericTreeEntry<TmfTreeDataModel> genericEntry = (TmfGenericTreeEntry<TmfTreeDataModel>) entry;
-                TmfTreeDataModel model = genericEntry.getModel();
-                OutputElementStyle style = model.getStyle();
-                if (style != null) {
-                    presProvider.setStyle(model.getId(), style);
-                }
-            }
-        }
-
-        updateContent();
-    }
-
-    @TmfSignalHandler
-    @Override
-    public void traceSelected(@Nullable TmfTraceSelectedSignal signal) {
-        super.traceSelected(signal);
-        clearContent();
-        fSelectedIds.clear();
-    }
-
-    @TmfSignalHandler
-    @Override
-    public void traceClosed(@Nullable TmfTraceClosedSignal signal) {
-        if (signal != null && signal.getTrace().equals(getTrace())) {
-            fSelectedIds.clear();
-        }
-        fUseDefaultStyleValues.remove(getPresentationProvider2());
-        super.traceClosed(signal);
-    }
-
-    @Override
-    protected @NonNull Map<String, Object> createQueryParameters(long start, long end, int nb) {
-        Map<@NonNull String, @NonNull Object> parameters = FetchParametersUtils.selectionTimeQueryToMap(new SelectionTimeQueryFilter(start, end, nb, fSelectedIds));
-        Multimap<@NonNull Integer, @NonNull String> regexesMap = getRegexes();
-        if (!regexesMap.isEmpty()) {
-            parameters.put(DataProviderParameterUtils.REGEX_MAP_FILTERS_KEY, regexesMap.asMap());
-        }
-        return parameters;
-    }
-
-    /**
-     * Get the IDs of the selected entries
-     *
-     * @return a collection of the IDs of the selected entries
-     */
-    public @NonNull Collection<@NonNull Long> getSelected() {
-        return fSelectedIds;
-    }
-
-    @Override
-    public @NonNull IYAppearance getSeriesAppearance(@NonNull String seriesName) {
-        return getPresentationProvider().getAppearance(seriesName, IYAppearance.Type.LINE, DEFAULT_SERIES_WIDTH);
-    }
-
-    @Override
-    public @NonNull OutputElementStyle getSeriesStyle(@NonNull Long seriesId) {
-        BaseXYPresentationProvider presentationProvider = getPresentationProvider2();
-        return fUseDefaultStyleValues.getOrDefault(presentationProvider, true) ? presentationProvider.getSeriesStyle(seriesId, IYAppearance.Type.LINE, DEFAULT_SERIES_WIDTH) : presentationProvider.getSeriesStyle(seriesId);
-    }
-
-    @Override
-    protected ITmfXYDataProvider initializeDataProvider(ITmfTrace trace) {
-        ITmfTreeXYDataProvider<?> dataProvider = DataProviderManager.getInstance().getDataProvider(trace, fId, ITmfTreeXYDataProvider.class);
-        BaseXYPresentationProvider presentationProvider = getPresentationProvider2();
-        fUseDefaultStyleValues.computeIfAbsent(presentationProvider, pp -> {
-            if (dataProvider instanceof IOutputStyleProvider) {
-                pp.addProvider(dataProvider);
-                return false;
-            }
-            return true;
-        });
-        return dataProvider;
-    }
-
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfXYChartSettings.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfXYChartSettings.java
deleted file mode 100644
index 24c2a57..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfXYChartSettings.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2017 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- **********************************************************************/
-
-package org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts;
-
-/**
- * Contains UI settings about an XY chart. For instance, it contains its title,
- * x and y label and resolution.
- *
- * @author Yonni Chen
- * @since 3.2
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.viewers.xychart.linechart.TmfXYChartSettings}
- */
-@Deprecated
-public class TmfXYChartSettings {
-
-    private final String fTitle;
-    private final String fXLabel;
-    private final String fYLabel;
-    private final double fResolution;
-
-    /**
-     * Constructor
-     *
-     * @param title
-     *            Chart's title
-     * @param xLabel
-     *            Label describing x axis
-     * @param yLabel
-     *            Label describing y axis
-     * @param resolution
-     *            Chart's resolution. Used to calculate a sampling on x axis. It
-     *            will be used to calculate number of nanoseconds between two points
-     *            of the sampling
-     */
-    public TmfXYChartSettings(String title, String xLabel, String yLabel, double resolution) {
-        fTitle = title;
-        fXLabel = xLabel;
-        fYLabel = yLabel;
-        fResolution = resolution;
-    }
-
-    /**
-     * Gets the chart's title
-     *
-     * @return The chart's title
-     */
-    public String getTitle() {
-        return fTitle;
-    }
-
-    /**
-     * Gets the label describing x axis
-     *
-     * @return The x label
-     */
-    public String getXLabel() {
-        return fXLabel;
-    }
-
-    /**
-     * Gets the label describing x axis
-     *
-     * @return The y label
-     */
-    public String getYLabel() {
-        return fYLabel;
-    }
-
-    /**
-     * Gets the chart's resolution
-     *
-     * @return The chart's resolution
-     */
-    public double getResolution() {
-        return fResolution;
-    }
-}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java
deleted file mode 100644
index 90d7ef5..0000000
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java
+++ /dev/null
@@ -1,563 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2013, 2019 Ericsson, Draeger, Auriga
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License 2.0 which
- * accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *   Bernd Hufmann - Initial API and implementation
- **********************************************************************/
-package org.eclipse.tracecompass.tmf.ui.views;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.tracecompass.internal.tmf.ui.Activator;
-import org.eclipse.tracecompass.internal.tmf.ui.ITmfImageConstants;
-import org.eclipse.tracecompass.internal.tmf.ui.Messages;
-import org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts.TmfXyUiUtils;
-import org.eclipse.tracecompass.internal.tmf.ui.views.LockRangeDialog;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
-import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
-import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
-import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
-import org.eclipse.tracecompass.tmf.ui.signal.TmfTimeViewAlignmentInfo;
-import org.eclipse.tracecompass.tmf.ui.signal.TmfTimeViewAlignmentSignal;
-import org.eclipse.tracecompass.tmf.ui.viewers.ILegendImageProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfTimeViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.TmfViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.tree.AbstractSelectTreeViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.XYChartLegendImageProvider;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXAxisChartViewer;
-import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfFilteredXYChartViewer;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.dialogs.TriStateFilteredCheckboxTree;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.swtchart.Chart;
-
-/**
- * Base class to be used with a chart viewer {@link TmfXYChartViewer}.
- * It is responsible to instantiate the viewer class and load the trace
- * into the viewer when the view is created.
- *
- * @author Bernd Hufmann
- * @author Mikael Ferland
- * @deprecated use {@link org.eclipse.tracecompass.tmf.ui.views.xychart.TmfChartView}
- */
-@Deprecated
-public abstract class TmfChartView extends TmfView implements ITmfTimeAligned, ITimeReset, ITmfPinnable, ITmfAllowMultiple {
-
-    private static final int[] DEFAULT_WEIGHTS = {1, 3};
-    private static final String TMF_VIEW_UI_CONTEXT = "org.eclipse.tracecompass.tmf.ui.view.context"; //$NON-NLS-1$
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-    /** The TMF XY Chart reference */
-    private TmfXYChartViewer fChartViewer;
-    /** A composite that allows us to add margins */
-    private Composite fXYViewerContainer;
-    private TmfViewer fTmfViewer;
-    private SashForm fSashForm;
-    private Listener fSashDragListener;
-    /** The original view title */
-    private String fOriginalTabLabel;
-
-    private final Action fResetScaleAction = ResetUtil.createResetAction(this);
-    private Action fZoomInAction;
-    private Action fZoomOutAction;
-
-    private List<IContextActivation> fActiveContexts = new ArrayList<>();
-    private IContextService fContextService;
-
-    /** The clamp to the Y axis action */
-    private @Nullable IAction fClampAction = null;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-    /**
-     * Standard Constructor
-     *
-     * @param viewName
-     *            The view name
-     */
-    public TmfChartView(String viewName) {
-        super(viewName);
-    }
-
-    // ------------------------------------------------------------------------
-    // Accessors
-    // ------------------------------------------------------------------------
-    /**
-     * Returns the TMF XY chart viewer implementation.
-     *
-     * @return the TMF XY chart viewer {@link TmfXYChartViewer}
-     * @since 5.0
-     */
-    public TmfXYChartViewer getChartViewer() {
-        return fChartViewer;
-    }
-
-    /**
-     * Returns the left TMF viewer implementation.
-     *
-     * @return the left TMF viewer {@link TmfViewer}
-     * @since 5.0
-     */
-    public TmfViewer getLeftChildViewer() {
-        return fTmfViewer;
-    }
-
-    /**
-     * Create a {@link TmfViewer} instance to be added to the left composite
-     * of the sash. Default implementation provides an empty composite and
-     * don't overwrite this method if not needed.
-     *
-     * @param parent
-     *          the parent control
-     * @return a {@link TmfViewer} instance
-     * @since 2.0
-     */
-    protected @NonNull TmfViewer createLeftChildViewer(Composite parent) {
-        return new EmptyViewer(parent);
-    }
-
-    /**
-     * Create the TMF XY chart viewer implementation
-     *
-     * @param parent
-     *            the parent control
-     *
-     * @return The TMF XY chart viewer {@link TmfXYChartViewer}
-     * @since 1.0
-     */
-    abstract protected TmfXYChartViewer createChartViewer(Composite parent);
-
-    /**
-     * Returns the ITmfTrace implementation
-     *
-     * @return the ITmfTrace implementation {@link ITmfTrace}
-     * @since 3.3
-     */
-    @Override
-    public ITmfTrace getTrace() {
-        TmfXYChartViewer chartViewer = getChartViewer();
-        if (chartViewer != null) {
-            return chartViewer.getTrace();
-        }
-        return null;
-    }
-
-    // ------------------------------------------------------------------------
-    // Operations
-    // ------------------------------------------------------------------------
-    @Override
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-        IMenuManager menuManager = getViewSite().getActionBars().getMenuManager();
-
-        fClampAction = createClampAction();
-        menuManager.add(new Separator());
-        menuManager.add(fClampAction);
-
-        fSashForm = new SashForm(parent, SWT.NONE);
-        fTmfViewer = createLeftChildViewer(fSashForm);
-        fXYViewerContainer = new Composite(fSashForm, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        fXYViewerContainer.setLayout(layout);
-
-        fChartViewer = createChartViewer(fXYViewerContainer);
-        fChartViewer.setSendTimeAlignSignals(true);
-        fChartViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-        fChartViewer.getSwtChart().addMouseListener(new MouseAdapter() {
-            @Override
-            public void mouseDoubleClick(MouseEvent e) {
-                super.mouseDoubleClick(e);
-                resetStartFinishTime();
-            }
-        });
-
-        fChartViewer.getControl().addPaintListener(new PaintListener() {
-            @Override
-            public void paintControl(PaintEvent e) {
-                // Sashes in a SashForm are being created on layout so add the
-                // drag listener here
-                if (fSashDragListener == null) {
-                    for (Control control : fSashForm.getChildren()) {
-                        if (control instanceof Sash) {
-                            fSashDragListener = event -> TmfSignalManager.dispatchSignal(new TmfTimeViewAlignmentSignal(fSashForm, getTimeViewAlignmentInfo()));
-                            control.removePaintListener(this);
-                            control.addListener(SWT.Selection, fSashDragListener);
-                            // There should be only one sash
-                            break;
-                        }
-                    }
-                }
-            }
-        });
-        fSashForm.setWeights(DEFAULT_WEIGHTS);
-        fZoomInAction = getZoomInAction();
-        fZoomOutAction = getZoomOutAction();
-
-        IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
-        toolBarManager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, fResetScaleAction);
-        toolBarManager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, fZoomInAction);
-        toolBarManager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, fZoomOutAction);
-        ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
-        if (trace != null) {
-            loadTrace();
-        }
-
-        IStatusLineManager statusLineManager = getViewSite().getActionBars().getStatusLineManager();
-        fChartViewer.setStatusLineManager(statusLineManager);
-
-        fOriginalTabLabel = getPartName();
-        coupleSelectViewer();
-
-        IWorkbenchPartSite site = getSite();
-        fContextService = site.getWorkbenchWindow().getService(IContextService.class);
-
-        TmfXYChartViewer chartViewer = getChartViewer();
-        if (chartViewer != null) {
-            chartViewer.getControl().addFocusListener(new FocusListener() {
-                @Override
-                public void focusLost(FocusEvent e) {
-                    deactivateContextService();
-                }
-                @Override
-                public void focusGained(FocusEvent e) {
-                    activateContextService();
-                }
-            });
-        }
-    }
-
-    @Override
-    protected IAction createSaveAction() {
-        // FIXME export tree viewer or legend.
-        return SaveImageUtil.createSaveAction(getName(), this::getChartViewer);
-    }
-
-    @Override
-    public void dispose() {
-        super.dispose();
-        if (fChartViewer != null) {
-            fChartViewer.dispose();
-        }
-
-        if (fTmfViewer != null) {
-            fTmfViewer.dispose();
-        }
-    }
-
-    @Override
-    public void setFocus() {
-        fChartViewer.getControl().setFocus();
-        /* Force activation because focus gained event is not always received */
-        activateContextService();
-    }
-
-    /**
-     * Load the trace into view.
-     */
-    protected void loadTrace() {
-        // Initialize the tree viewer with the currently selected trace
-        ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
-        if (trace != null) {
-            TmfTraceSelectedSignal signal = new TmfTraceSelectedSignal(this, trace);
-            TmfViewer leftViewer = getLeftChildViewer();
-            if (leftViewer instanceof TmfTimeViewer) {
-                ((TmfTimeViewer) leftViewer).traceSelected(signal);
-            }
-            TmfXYChartViewer chartViewer = getChartViewer();
-            if (chartViewer != null) {
-                chartViewer.traceSelected(signal);
-            }
-        }
-    }
-
-    /**
-     * @since 1.0
-     */
-    @Override
-    public TmfTimeViewAlignmentInfo getTimeViewAlignmentInfo() {
-        if (fChartViewer == null) {
-            return null;
-        }
-
-        return new TmfTimeViewAlignmentInfo(fChartViewer.getControl().getShell(), fSashForm.toDisplay(0, 0), getTimeAxisOffset());
-    }
-
-    private int getTimeAxisOffset() {
-        return fSashForm.getChildren()[0].getSize().x + fSashForm.getSashWidth() + fChartViewer.getPointAreaOffset();
-    }
-
-    /**
-     * @since 1.0
-     */
-    @Override
-    public int getAvailableWidth(int requestedOffset) {
-        if (fChartViewer == null) {
-            return 0;
-        }
-
-        int pointAreaWidth = fChartViewer.getPointAreaWidth();
-        int curTimeAxisOffset = getTimeAxisOffset();
-        if (pointAreaWidth <= 0) {
-            pointAreaWidth = fSashForm.getBounds().width - curTimeAxisOffset;
-        }
-        int endOffset = curTimeAxisOffset + pointAreaWidth;
-        GridLayout layout = (GridLayout) fXYViewerContainer.getLayout();
-        int endOffsetWithoutMargin = endOffset + layout.marginRight;
-        int availableWidth = endOffsetWithoutMargin - requestedOffset;
-        availableWidth = Math.min(fSashForm.getBounds().width, Math.max(0, availableWidth));
-        return availableWidth;
-    }
-
-    /**
-     * @since 1.0
-     */
-    @Override
-    public void performAlign(int offset, int width) {
-        int total = fSashForm.getBounds().width;
-        int plotAreaOffset = fChartViewer.getPointAreaOffset();
-        int width1 = Math.max(0, offset - plotAreaOffset - fSashForm.getSashWidth());
-        int width2 = Math.max(0, total - width1 - fSashForm.getSashWidth());
-        if (width1 >= 0 && width2 > 0 || width1 > 0 && width2 >= 0) {
-            fSashForm.setWeights(new int[] { width1, width2 });
-            fSashForm.layout();
-        }
-
-        Composite composite = fXYViewerContainer;
-        GridLayout layout = (GridLayout) composite.getLayout();
-        int timeAxisWidth = getAvailableWidth(offset);
-        int marginSize = timeAxisWidth - width;
-        layout.marginRight = Math.max(0, marginSize);
-        composite.layout();
-    }
-
-    @Override
-    public void resetStartFinishTime(boolean notify) {
-        TmfWindowRangeUpdatedSignal signal = new TmfWindowRangeUpdatedSignal(this, TmfTimeRange.ETERNITY, getTrace());
-        if (notify) {
-            broadcast(signal);
-        } else {
-            getChartViewer().windowRangeUpdated(signal);
-        }
-    }
-
-    @Override
-    public void setPinned(@Nullable ITmfTrace trace) {
-
-        TmfViewer leftViewer = getLeftChildViewer();
-        if (leftViewer instanceof ITmfPinnable) {
-            ((ITmfPinnable) leftViewer).setPinned(trace);
-        }
-
-        ITmfPinnable chartViewer = getChartViewer();
-        if (chartViewer != null) {
-            chartViewer.setPinned(trace);
-        }
-
-        if (trace != null) {
-            /* Ignore relevant inbound signals */
-            TmfSignalManager.addIgnoredInboundSignal(this, TmfTraceOpenedSignal.class);
-            TmfSignalManager.addIgnoredInboundSignal(this, TmfTraceSelectedSignal.class);
-            setPartName(String.format("%s <%s>", fOriginalTabLabel, TmfTraceManager.getInstance().getTraceUniqueName(trace))); //$NON-NLS-1$
-        } else {
-            /* Handle relevant inbound signals */
-            TmfSignalManager.removeIgnoredInboundSignal(this, TmfTraceOpenedSignal.class);
-            TmfSignalManager.removeIgnoredInboundSignal(this, TmfTraceSelectedSignal.class);
-            setPartName(fOriginalTabLabel);
-        }
-        if (fPinAction != null) {
-            fPinAction.setPinnedTrace(trace);
-        }
-    }
-
-    private IAction createClampAction() {
-        Action action = new Action(Messages.TmfChartView_LockYAxis, IAction.AS_PUSH_BUTTON) {
-            @Override
-            public void run() {
-                LockRangeDialog rangeDialog = new LockRangeDialog(getSite().getShell(), getChartViewer());
-                rangeDialog.open();
-            }
-        };
-        action.setChecked(false);
-        return action;
-    }
-
-    // ------------------------------------------------------------------------
-    // Helpers
-    // ------------------------------------------------------------------------
-    /**
-     * Empty @{link TmfViewer} class.
-     */
-    private class EmptyViewer extends TmfViewer {
-        private Composite fComposite;
-        public EmptyViewer(Composite parent) {
-            super(parent);
-            fComposite = new Composite(parent, SWT.NONE);
-        }
-        @Override
-        public void refresh() {
-            // Do nothing
-        }
-        @Override
-        public Control getControl() {
-            return fComposite;
-        }
-    }
-
-    /**
-     * Returns whether or not this chart viewer is dirty. The viewer is considered
-     * dirty if it has yet to completely update its model. This method is meant to
-     * be used by tests in order to know when it is safe to proceed.
-     *
-     * @return true if the time graph view has yet to completely update its model,
-     *         false otherwise
-     * @since 3.2
-     */
-    public boolean isDirty() {
-        return fChartViewer.isDirty();
-    }
-
-    /**
-     * Handles the trace closed signal
-     *
-     * @param signal
-     *            the signal
-     * @since 3.3
-     */
-    @TmfSignalHandler
-    public void traceClosed(final TmfTraceClosedSignal signal) {
-        ITmfTrace trace = getTrace();
-        if ((trace == null || signal.getTrace() == trace) && isPinned()) {
-            setPinned(null);
-        }
-    }
-
-    /**
-     * Method to couple {@link AbstractSelectTreeViewer} and
-     * {@link TmfFilteredXYChartViewer} so that they use the same legend and that
-     * the chart listens to selected items in the tree
-     */
-    private void coupleSelectViewer() {
-        TmfViewer tree = getLeftChildViewer();
-        TmfXYChartViewer chart = getChartViewer();
-        if (tree instanceof AbstractSelectTreeViewer && chart instanceof TmfFilteredXYChartViewer) {
-            ILegendImageProvider legendImageProvider = new XYChartLegendImageProvider((TmfCommonXAxisChartViewer) chart);
-            AbstractSelectTreeViewer selectTree = (AbstractSelectTreeViewer) tree;
-            selectTree.addTreeListener((TmfFilteredXYChartViewer) chart);
-            selectTree.setLegendImageProvider(legendImageProvider);
-            TriStateFilteredCheckboxTree checkboxTree = selectTree.getTriStateFilteredCheckboxTree();
-            checkboxTree.addPreCheckStateListener(new ManyEntriesSelectedDialogPreCheckedListener(checkboxTree));
-        }
-    }
-
-    private void activateContextService() {
-        if (fActiveContexts.isEmpty()) {
-            fActiveContexts.add(fContextService.activateContext(TMF_VIEW_UI_CONTEXT));
-        }
-    }
-
-    private void deactivateContextService() {
-        fContextService.deactivateContexts(fActiveContexts);
-        fActiveContexts.clear();
-    }
-
-    @Override
-    public <T> T getAdapter(Class<T> adapter) {
-        TmfXYChartViewer chart = getChartViewer();
-        if (chart != null) {
-            return chart.getAdapter(adapter);
-        }
-        return super.getAdapter(adapter);
-    }
-
-    private Action getZoomInAction() {
-        Action zoomInAction = fZoomInAction;
-        if (zoomInAction == null) {
-            zoomInAction = new Action() {
-                @Override
-                public void run() {
-                    TmfXYChartViewer viewer = getChartViewer();
-                    if (viewer == null) {
-                        return;
-                    }
-                    Chart chart = viewer.getSwtChart();
-                    if (chart == null) {
-                        return;
-                    }
-                    TmfXyUiUtils.zoom(viewer, chart, true);
-                }
-            };
-            zoomInAction.setText(Messages.TmfTimeGraphViewer_ZoomInActionNameText);
-            zoomInAction.setToolTipText(Messages.TmfTimeGraphViewer_ZoomInActionToolTipText);
-            zoomInAction.setImageDescriptor(Activator.getDefault().getImageDescripterFromPath(ITmfImageConstants.IMG_UI_ZOOM_IN_MENU));
-        }
-        return zoomInAction;
-    }
-
-    private Action getZoomOutAction() {
-        Action zoomOutAction = fZoomOutAction;
-        if (zoomOutAction == null) {
-            zoomOutAction = new Action() {
-                @Override
-                public void run() {
-                    TmfXYChartViewer viewer = getChartViewer();
-                    if (viewer == null) {
-                        return;
-                    }
-                    Chart chart = viewer.getSwtChart();
-                    if (chart == null) {
-                        return;
-                    }
-                    TmfXyUiUtils.zoom(viewer, chart, false);
-                }
-            };
-            zoomOutAction.setText(Messages.TmfTimeGraphViewer_ZoomOutActionNameText);
-            zoomOutAction.setToolTipText(Messages.TmfTimeGraphViewer_ZoomOutActionToolTipText);
-            zoomOutAction.setImageDescriptor(Activator.getDefault().getImageDescripterFromPath(ITmfImageConstants.IMG_UI_ZOOM_OUT_MENU));
-        }
-        return zoomOutAction;
-    }
-}