tmf.ui: Add a SWTbot condition for XY charts ready
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / tracecompass / tmf / ui / viewers / xycharts / linecharts / TmfCommonXLineChartViewer.java
index 10db54ba7168a57a9393ef71852f2867650080c9..3030b00e4d384bab7b648c3162259e424caca967 100644 (file)
@@ -15,6 +15,7 @@ package org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.logging.Logger;
 
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -72,6 +73,8 @@ public abstract class TmfCommonXLineChartViewer extends TmfXYChartViewer {
 
     private UpdateThread fUpdateThread;
 
+    private volatile AtomicInteger fDirty = new AtomicInteger();
+
     /**
      * Constructor
      *
@@ -134,6 +137,7 @@ public abstract class TmfCommonXLineChartViewer extends TmfXYChartViewer {
      */
     protected void reinitialize() {
         fSeriesValues.clear();
+        fDirty.incrementAndGet();
         Thread thread = new Thread() {
             // Don't use TmfUiRefreshHandler (bug 467751)
             @Override
@@ -148,6 +152,7 @@ public abstract class TmfCommonXLineChartViewer extends TmfXYChartViewer {
                                 /* Delete the old series */
                                 clearContent();
                                 createSeries();
+                                fDirty.decrementAndGet();
                             }
                         }
                     });
@@ -185,6 +190,7 @@ public abstract class TmfCommonXLineChartViewer extends TmfXYChartViewer {
                 public void run() {
                     LOGGER.info(() -> getLogMessage("UpdateDataStart", "tid=" + getId())); //$NON-NLS-1$ //$NON-NLS-2$
                     updateData(getWindowStartTime(), getWindowEndTime(), fNumRequests, fMonitor);
+                    fDirty.decrementAndGet();
                     LOGGER.info(() -> getLogMessage("UpdateDataEnd", "tid=" + getId())); //$NON-NLS-1$ //$NON-NLS-2$
                 }
             });
@@ -227,6 +233,7 @@ public abstract class TmfCommonXLineChartViewer extends TmfXYChartViewer {
 
     @Override
     protected void updateContent() {
+        fDirty.incrementAndGet();
         getDisplay().asyncExec(new Runnable() {
             @Override
             public void run() {
@@ -438,4 +445,16 @@ public abstract class TmfCommonXLineChartViewer extends TmfXYChartViewer {
         super.clearContent();
     }
 
+    @Override
+    public boolean isDirty() {
+        boolean dirty = super.isDirty();
+
+        if (dirty) {
+            return dirty;
+        }
+
+        // Check the specific dirtiness of this view
+        return fDirty.get() != 0;
+    }
+
 }
This page took 0.026211 seconds and 5 git commands to generate.