tmf: Bug 494767: Events in selection not updated in Statistics view
authorPatrick Tasse <patrick.tasse@gmail.com>
Mon, 30 May 2016 18:52:44 +0000 (14:52 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Tue, 31 May 2016 15:27:29 +0000 (11:27 -0400)
- Make sure the time range created from TmfSelectionRangeUpdatedSignal
always has the earliest time as start time.

- If the events per type map is empty for a time range stats update,
reset all time range event counts.

Change-Id: I2c860bdd0dd9e033933c690f230aaf79e6f60b5e
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/73973
Reviewed-by: Hudson CI
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/statistics/StatisticsUpdateJob.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/viewers/statistics/TmfStatisticsViewer.java

index 31c6480ef925ecd2f1b4fb7792c8c62eeedb2055..ed2e010a55180bda042a790a2be1229e2684b808 100644 (file)
@@ -22,6 +22,7 @@ import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.tracecompass.internal.tmf.ui.viewers.piecharts.model.TmfPieChartStatisticsModel;
 import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTree;
 import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTreeManager;
+import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode;
 import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
 import org.eclipse.tracecompass.tmf.core.statistics.ITmfStatistics;
 import org.eclipse.tracecompass.tmf.core.statistics.TmfStatisticsEventTypesModule;
@@ -175,9 +176,17 @@ class StatisticsUpdateJob extends Job {
          * </pre>
          */
 
-        /* Fill in an the event counts (either cells C or D) */
-        for (Map.Entry<String, Long> entry : map.entrySet()) {
-            statsData.setTypeCount(name, entry.getKey(), fIsGlobal, entry.getValue());
+        if (map.isEmpty() && !fIsGlobal) {
+            /* Reset all time range event counts (cells D) */
+            TmfStatisticsTreeNode eventTypeNode = statsData.getNode(name, TmfStatisticsTree.HEADER_EVENT_TYPES);
+            if (eventTypeNode != null) {
+                eventTypeNode.resetTimeRangeValue();
+            }
+        } else {
+            /* Fill in the event counts (either cells C or D) */
+            for (Map.Entry<String, Long> entry : map.entrySet()) {
+                statsData.setTypeCount(name, entry.getKey(), fIsGlobal, entry.getValue());
+            }
         }
 
         /*
index ac89d9bb9b96dc58de22b4721134cf009a07bba0..1369baccfd8b8265db048c44644d1f8794634f98 100644 (file)
@@ -229,7 +229,12 @@ public class TmfStatisticsViewer extends TmfViewer {
         }
         ITmfTimestamp begin = signal.getBeginTime();
         ITmfTimestamp end = signal.getEndTime();
-        TmfTimeRange timeRange = new TmfTimeRange(begin, end);
+        TmfTimeRange timeRange;
+        if (begin.compareTo(end) <= 0) {
+            timeRange = new TmfTimeRange(begin, end);
+        } else {
+            timeRange = new TmfTimeRange(end, begin);
+        }
         requestTimeRangeData(fTrace, timeRange);
     }
 
This page took 0.0273 seconds and 5 git commands to generate.