tmf: Provide Event Density view for statistics

The view already exists in the example plug-in with the name
New Histogram View. It is populated by the Histogram Data Provider
that uses the statistics analysis module.

[Added] Event Density view for statistics
[Deleted] New Histogram view from example plug-in in the code base

Change-Id: I3cc31272079526e796f1933b77911bf7736c70a0
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/c/tracecompass/org.eclipse.tracecompass/+/182122
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/doc/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF b/doc/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF
index bfd3e5e..b5eb9d9 100644
--- a/doc/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF
+++ b/doc/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF
@@ -17,9 +17,7 @@
 Export-Package: org.eclipse.tracecompass.examples.core.analysis;x-internal:=true,
  org.eclipse.tracecompass.examples.core.data.provider;x-internal:=true,
  org.eclipse.tracecompass.examples.ui;x-internal:=true,
- org.eclipse.tracecompass.examples.ui.viewers.histogram;x-internal:=true,
- org.eclipse.tracecompass.examples.ui.views.data.provider,
- org.eclipse.tracecompass.examples.ui.views.histogram;x-internal:=true
+ org.eclipse.tracecompass.examples.ui.views.data.provider
 Bundle-Vendor: %Bundle-Vendor
 Import-Package: com.google.common.collect,
  org.eclipse.swtchart
diff --git a/doc/org.eclipse.tracecompass.examples/plugin.xml b/doc/org.eclipse.tracecompass.examples/plugin.xml
index 42b17a1..ce7a213 100644
--- a/doc/org.eclipse.tracecompass.examples/plugin.xml
+++ b/doc/org.eclipse.tracecompass.examples/plugin.xml
@@ -3,13 +3,6 @@
 <plugin>
    <extension
          point="org.eclipse.ui.views">
-            <view
-            category="org.eclipse.linuxtools.tmf.ui.views.category"
-            class="org.eclipse.tracecompass.examples.ui.views.histogram.NewHistogramView"
-            id="org.eclipse.tracecompass.examples.ui.views.NewHistogramView"
-            name="%tracing.examples.histogram.view.name"
-            restorable="true">
-      </view>
       <view
             category="org.eclipse.linuxtools.tmf.ui.views.category"
             class="org.eclipse.tracecompass.examples.ui.views.data.provider.ExampleTimeGraphDataProviderView"
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/META-INF/MANIFEST.MF b/tmf/org.eclipse.tracecompass.tmf.core/META-INF/MANIFEST.MF
index a784898..7a8276d 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/META-INF/MANIFEST.MF
+++ b/tmf/org.eclipse.tracecompass.tmf.core/META-INF/MANIFEST.MF
@@ -33,7 +33,7 @@
  org.eclipse.tracecompass.internal.tmf.core.callstack;x-friends:="org.eclipse.tracecompass.tmf.ui,org.eclipse.tracecompass.tmf.core.tests",
  org.eclipse.tracecompass.internal.tmf.core.component;x-friends:="org.eclipse.tracecompass.tmf.core.tests",
  org.eclipse.tracecompass.internal.tmf.core.filter;x-friends:="org.eclipse.tracecompass.tmf.core.tests,org.eclipse.tracecompass.tmf.ui",
- org.eclipse.tracecompass.internal.tmf.core.histogram;x-friends:="org.eclipse.tracecompass.tmf.ctf.core.tests,org.eclipse.tracecompass.examples",
+ org.eclipse.tracecompass.internal.tmf.core.histogram;x-friends:="org.eclipse.tracecompass.tmf.ctf.core.tests,org.eclipse.tracecompass.tmf.ui",
  org.eclipse.tracecompass.internal.tmf.core.markers;x-friends:="org.eclipse.tracecompass.tmf.ui,org.eclipse.tracecompass.tmf.core.tests,org.eclipse.tracecompass.tmf.ui.tests",
  org.eclipse.tracecompass.internal.tmf.core.model;
   x-friends:="org.eclipse.tracecompass.analysis.graph.core,
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 7a5677a..0d2c1fa 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/META-INF/MANIFEST.MF
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/META-INF/MANIFEST.MF
@@ -64,6 +64,7 @@
  org.eclipse.tracecompass.internal.tmf.ui.project.wizards.tracepkg.importexport;x-friends:="org.eclipse.tracecompass.tmf.remote.ui",
  org.eclipse.tracecompass.internal.tmf.ui.symbols;x-friends:="org.eclipse.tracecompass.tmf.ui.tests",
  org.eclipse.tracecompass.internal.tmf.ui.util;x-friends:="org.eclipse.tracecompass.tmf.ui.tests",
+ org.eclipse.tracecompass.internal.tmf.ui.viewers.eventdensity;x-internal:=true,
  org.eclipse.tracecompass.internal.tmf.ui.viewers.piecharts;x-friends:="org.eclipse.tracecompass.tmf.ui.tests",
  org.eclipse.tracecompass.internal.tmf.ui.viewers.piecharts.model;x-friends:="org.eclipse.tracecompass.tmf.ui.tests",
  org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics;x-friends:="org.eclipse.tracecompass.tmf.ui.tests",
@@ -72,6 +73,7 @@
  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.views;x-friends:="org.eclipse.tracecompass.tmf.ui.swtbot.tests",
+ org.eclipse.tracecompass.internal.tmf.ui.views.eventdensity,
  org.eclipse.tracecompass.internal.tmf.ui.views.handler;x-internal:=true,
  org.eclipse.tracecompass.internal.tmf.ui.views.histogram;x-internal:=true,
  org.eclipse.tracecompass.internal.tmf.ui.views.statistics;
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/plugin.properties b/tmf/org.eclipse.tracecompass.tmf.ui/plugin.properties
index 36a87dd..fd50f65 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/plugin.properties
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/plugin.properties
@@ -31,6 +31,7 @@
 events.editor.name = Events Editor
 uml2sd.view.name = Sequence Diagram
 histogram.view.name = Histogram
+eventdensity.view.name = Event Density
 ssvisualizer.view.name = State System Explorer
 callstack.view.name = Call Stack
 synchronization.view.name = Synchronization
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/plugin.xml b/tmf/org.eclipse.tracecompass.tmf.ui/plugin.xml
index 566737f..7d0b984 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/plugin.xml
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/plugin.xml
@@ -84,6 +84,15 @@
       <view
             allowMultiple="false"
             category="org.eclipse.linuxtools.tmf.ui.views.category"
+            class="org.eclipse.tracecompass.internal.tmf.ui.views.eventdensity.EventDensityView"
+            icon="icons/eview16/histogram.gif"
+            id="org.eclipse.tracecompass.tmf.ui.views.eventdensity"
+            name="%eventdensity.view.name"
+            restorable="true">
+      </view>
+      <view
+            allowMultiple="false"
+            category="org.eclipse.linuxtools.tmf.ui.views.category"
             class="org.eclipse.tracecompass.tmf.ui.views.synchronization.TmfSynchronizationView"
             icon="icons/eview16/synced.gif"
             id="org.eclipse.linuxtools.tmf.ui.views.synchronization"
@@ -2180,6 +2189,13 @@
                id="org.eclipse.linuxtools.tmf.core.statistics.analysis">
             </analysisId>
       </output>
+      <output
+            class="org.eclipse.tracecompass.tmf.ui.analysis.TmfAnalysisViewOutput"
+            id="org.eclipse.tracecompass.tmf.ui.views.eventdensity">
+            <analysisId
+               id="org.eclipse.linuxtools.tmf.core.statistics.analysis">
+            </analysisId>
+      </output>
    </extension>
    <extension
          point="org.eclipse.linuxtools.tmf.ui.tracetypeui">
diff --git a/doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/HistogramTreeViewer.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/eventdensity/EventDensityTreeViewer.java
similarity index 92%
rename from doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/HistogramTreeViewer.java
rename to tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/eventdensity/EventDensityTreeViewer.java
index 10b778f..a44a26c 100644
--- a/doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/HistogramTreeViewer.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/eventdensity/EventDensityTreeViewer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2017, 2018 Ericsson
+ * Copyright (c) 2017, 2021 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License 2.0 which
@@ -9,7 +9,7 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************/
 
-package org.eclipse.tracecompass.examples.ui.viewers.histogram;
+package org.eclipse.tracecompass.internal.tmf.ui.viewers.eventdensity;
 
 import java.util.Comparator;
 
@@ -31,7 +31,7 @@
  *
  * @author Loic Prieur-Drevon
  */
-public class HistogramTreeViewer extends AbstractSelectTreeViewer2 {
+public class EventDensityTreeViewer extends AbstractSelectTreeViewer2 {
 
     private class HistogramLabelProvider extends TreeLabelProvider {
 
@@ -66,7 +66,7 @@
      * @param parent
      *            the parent {@link Composite}
      */
-    public HistogramTreeViewer(Composite parent) {
+    public EventDensityTreeViewer(Composite parent) {
         super(parent, 1, HistogramDataProvider.ID);
         setLabelProvider(new HistogramLabelProvider());
     }
diff --git a/doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/NewHistogramViewer.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/eventdensity/EventDensityViewer.java
similarity index 89%
rename from doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/NewHistogramViewer.java
rename to tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/eventdensity/EventDensityViewer.java
index 245c38f..025a85d 100644
--- a/doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/NewHistogramViewer.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/eventdensity/EventDensityViewer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013, 2017 Ericsson
+ * Copyright (c) 2013, 2021 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License 2.0 which
@@ -12,7 +12,7 @@
  *   Alexandre Montplaisir - Initial API and implementation
  *   Bernd Hufmann - Updated to new TMF chart framework
  *******************************************************************************/
-package org.eclipse.tracecompass.examples.ui.viewers.histogram;
+package org.eclipse.tracecompass.internal.tmf.ui.viewers.eventdensity;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.swt.widgets.Composite;
@@ -31,7 +31,7 @@
  * @author Alexandre Montplaisir
  * @author Bernd Hufmann
  */
-public class NewHistogramViewer extends TmfFilteredXYChartViewer {
+public class EventDensityViewer extends TmfFilteredXYChartViewer {
 
     private static final int DEFAULT_SERIES_WIDTH = 1;
 
@@ -43,7 +43,7 @@
      * @param settings
      *            See {@link TmfXYChartSettings} to know what it contains
      */
-    public NewHistogramViewer(Composite parent, TmfXYChartSettings settings) {
+    public EventDensityViewer(Composite parent, TmfXYChartSettings settings) {
         super(parent, settings, HistogramDataProvider.ID);
 
         /* Hide the grid */
diff --git a/doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/views/histogram/NewHistogramView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/eventdensity/EventDensityView.java
similarity index 71%
rename from doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/views/histogram/NewHistogramView.java
rename to tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/eventdensity/EventDensityView.java
index 81ee697..e58b2ea 100644
--- a/doc/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/views/histogram/NewHistogramView.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/eventdensity/EventDensityView.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013, 2015 Ericsson
+ * Copyright (c) 2013, 2021 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License 2.0 which
@@ -11,11 +11,11 @@
  * Contributors:
  *   Bernd Hufmann - Initial API and implementation
  *******************************************************************************/
-package org.eclipse.tracecompass.examples.ui.views.histogram;
+package org.eclipse.tracecompass.internal.tmf.ui.views.eventdensity;
 
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tracecompass.examples.ui.viewers.histogram.HistogramTreeViewer;
-import org.eclipse.tracecompass.examples.ui.viewers.histogram.NewHistogramViewer;
+import org.eclipse.tracecompass.internal.tmf.ui.viewers.eventdensity.EventDensityTreeViewer;
+import org.eclipse.tracecompass.internal.tmf.ui.viewers.eventdensity.EventDensityViewer;
 import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
@@ -29,25 +29,25 @@
  *
  * @author Bernd Hufmann
  */
-public class NewHistogramView extends TmfChartView {
+public class EventDensityView extends TmfChartView {
     /** The view ID. */
-    public static final String ID = "org.eclipse.tracecompass.examples.ui.views.NewHistogramView"; //$NON-NLS-1$
+    public static final String ID = "org.eclipse.tracecompass.tmf.ui.views.eventdensity"; //$NON-NLS-1$
 
     /**
      * Default Constructor
      */
-    public NewHistogramView() {
+    public EventDensityView() {
         super(ID);
     }
 
     @Override
     protected TmfXYChartViewer createChartViewer(Composite parent) {
-        return new NewHistogramViewer(parent, new TmfXYChartSettings(null, null, null, 1));
+        return new EventDensityViewer(parent, new TmfXYChartSettings(null, null, null, 1));
     }
 
     @Override
     public TmfViewer createLeftChildViewer(Composite parent) {
-        HistogramTreeViewer histogramTreeViewer = new HistogramTreeViewer(parent);
+        EventDensityTreeViewer histogramTreeViewer = new EventDensityTreeViewer(parent);
         ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
         if (trace != null) {
             histogramTreeViewer.traceSelected(new TmfTraceSelectedSignal(this, trace));