tmf.ui/timing: Update XY viewers even if there is no data
authorGenevieve Bastien <gbastien+lttng@versatic.net>
Sat, 15 Oct 2016 14:45:05 +0000 (10:45 -0400)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Wed, 26 Oct 2016 18:00:51 +0000 (14:00 -0400)
The range of the window still changed and the view should follow that
range, even though there is no data to display

Change-Id: Iaa6d180de39f6ee5b109ce5826999c096f170469
Signed-off-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/83355
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-by: Hudson CI
analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/os/linux/ui/swtbot/tests/latency/SystemCallLatencyScatterChartViewTest.java
analysis/org.eclipse.tracecompass.analysis.os.linux.ui/META-INF/MANIFEST.MF
analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/SystemCallLatencyScatterView.java
analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/scatter/AbstractSegmentStoreScatterGraphViewer.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/linecharts/TmfCommonXLineChartViewer.java

index b09a719b57f4341d34053f60afbe5f87e34d3c44..d2940d3549983b1d7a03667282e6f72285e14744 100644 (file)
@@ -35,6 +35,10 @@ import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
 import org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBotControl;
 import org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.latency.SystemCallLatencyScatterView;
 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.ui.swtbot.tests.shared.ConditionHelpers;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
 import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
@@ -66,6 +70,7 @@ public class SystemCallLatencyScatterChartViewTest {
     /** The Log4j logger instance. */
     private static final Logger fLogger = Logger.getRootLogger();
     private Chart fScatterChart;
+    private SystemCallLatencyScatterView fSystemCallLatencyScatterView = null;
 
     /**
      * Things to setup
@@ -121,6 +126,7 @@ public class SystemCallLatencyScatterChartViewTest {
         if (!(viewPart instanceof SystemCallLatencyScatterView)) {
             fail("Could not instanciate view");
         }
+        fSystemCallLatencyScatterView = (SystemCallLatencyScatterView) viewPart;
         fScatterChart = viewBot.bot().widget(WidgetOfType.widgetOfType(Chart.class));
         assertNotNull(fScatterChart);
     }
@@ -173,13 +179,24 @@ public class SystemCallLatencyScatterChartViewTest {
         SWTBotChart chartBot = new SWTBotChart(scatterChart);
         assertVisible(chartBot);
         assertEquals("", chartBot.getToolTipText());
-        final Range range = scatterChart.getAxisSet().getXAxes()[0].getRange();
+        Range range = scatterChart.getAxisSet().getXAxes()[0].getRange();
         assertEquals(100000000, range.upper - range.lower, 0);
         ISeriesSet seriesSet = fScatterChart.getSeriesSet();
         assertNotNull(seriesSet);
         ISeries[] series = seriesSet.getSeries();
         assertNotNull(series);
 
+        // Update the time range to a range where there is no data
+        long noDataStart = 1412670961274443542L;
+        long noDataEnd = 1412670961298823940L;
+        TmfTimeRange windowRange = new TmfTimeRange(TmfTimestamp.fromNanos(noDataStart), TmfTimestamp.fromNanos(noDataEnd));
+        TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, windowRange));
+
+        bot.waitUntil(ConditionHelpers.xyViewerIsReadyCondition(fSystemCallLatencyScatterView.getChartViewer()));
+
+        range = scatterChart.getAxisSet().getXAxes()[0].getRange();
+        assertEquals(noDataEnd - noDataStart, range.upper - range.lower, 0);
+
         // Verify that the chart has 1 series
         assertEquals(1, series.length);
         // Verify that each series is a ILineSeries
index 9b6b94a8a80aeeaec974f2b46ce73b8bae4b7c4a..e3ab086fc87867da231383dbfc54d720bc5fd49c 100644 (file)
@@ -20,7 +20,8 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.analysis.timing.core,
  org.eclipse.tracecompass.analysis.timing.ui
-Import-Package: com.google.common.base,
+Import-Package: com.google.common.annotations,
+ com.google.common.base,
  com.google.common.collect,
  org.swtchart
 Export-Package: org.eclipse.tracecompass.internal.analysis.os.linux.ui;x-friends:="org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests",
index 6267ce4973ae8069fbecf68f6af1be1a1c6434f2..5f879305cf0a288b4cc35a794889c8b445491d9a 100644 (file)
@@ -18,6 +18,8 @@ import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
 import org.eclipse.tracecompass.tmf.ui.views.TmfChartView;
 
+import com.google.common.annotations.VisibleForTesting;
+
 /**
  * Some stuff
  *
@@ -54,4 +56,10 @@ public class SystemCallLatencyScatterView extends TmfChartView {
         return fScatterViewer;
     }
 
+    @VisibleForTesting
+    @Override
+    public TmfXYChartViewer getChartViewer() {
+        return super.getChartViewer();
+    }
+
 }
index 006b589505e36f492c0ac84df66f1e9385b2e77e..8322bed9ce1440fdfbae983efd76b6c50d437eca 100644 (file)
@@ -310,7 +310,7 @@ public abstract class AbstractSegmentStoreScatterGraphViewer extends TmfCommonXL
         Collection<ISegment> data = fDisplayData;
 
         final int dataSize = (nb == 0) ? data.size() : nb;
-        if (dataSize == 0 || end == start) {
+        if (end == start) {
             return;
         }
 
@@ -325,7 +325,7 @@ public abstract class AbstractSegmentStoreScatterGraphViewer extends TmfCommonXL
             ySeries.add((double) segment.getLength());
         }
         setXAxis(Doubles.toArray(xSeries));
-        setSeries(Messages.SegmentStoreScatterGraphViewer_legend, Doubles.toArray(ySeries)); // $NON-NLS-1$
+        setSeries(Messages.SegmentStoreScatterGraphViewer_legend, Doubles.toArray(ySeries));
         updateDisplay();
     }
 
index 3030b00e4d384bab7b648c3162259e424caca967..a53bdf98a87b95ef259d1415443f78737a71f78e 100644 (file)
@@ -382,9 +382,6 @@ public abstract class TmfCommonXLineChartViewer extends TmfXYChartViewer {
             public void run() {
                 if (!getSwtChart().isDisposed()) {
                     double[] xValues = fXValues;
-                    if (xValues.length < 1) {
-                        return;
-                    }
                     double maxy = DEFAULT_MAXY;
                     double miny = DEFAULT_MINY;
                     for (Entry<String, double[]> entry : fSeriesValues.entrySet()) {
This page took 0.028602 seconds and 5 git commands to generate.