ss: Move plugins to Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui.tests / src / org / eclipse / linuxtools / tmf / ui / tests / views / uml2sd / loader / Uml2SDTestFacility.java
index 3d342faee87e6c5304a50e25abc554291c51faeb..94020d9dcd62f3e9c9ba059f8dc428c748c1387b 100644 (file)
@@ -29,6 +29,8 @@ import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;
 import org.eclipse.linuxtools.tmf.core.trace.ITmfEventParser;
 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
 import org.eclipse.linuxtools.tmf.core.trace.TmfExperiment;
+import org.eclipse.linuxtools.tmf.core.trace.indexer.ITmfTraceIndexer;
+import org.eclipse.linuxtools.tmf.core.trace.indexer.checkpoint.TmfCheckpointIndexer;
 import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub;
 import org.eclipse.linuxtools.tmf.ui.tests.uml2sd.trace.TmfUml2SDTestTrace;
 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.SDView;
@@ -62,7 +64,7 @@ public class Uml2SDTestFacility {
     private TmfUml2SDTestTrace    fParser = null;
     private TmfExperiment fExperiment = null;
 
-    private boolean fIsInitialized = false;
+    private volatile boolean fIsInitialized = false;
 
     // ------------------------------------------------------------------------
     // Constructors
@@ -152,8 +154,14 @@ public class Uml2SDTestFacility {
      */
     public void dispose() {
         if (fIsInitialized) {
-            fTrace.broadcast(new TmfTraceClosedSignal(this, fExperiment));
-            fExperiment.dispose();
+            ITmfTrace trace = fTrace;
+            TmfExperiment experiment = fExperiment;
+            if (trace == null || experiment == null) {
+                throw new IllegalStateException();
+            }
+
+            trace.broadcast(new TmfTraceClosedSignal(this, experiment));
+            experiment.dispose();
 
             // Wait for all Eclipse jobs to finish
             waitForJobs();
@@ -173,7 +181,13 @@ public class Uml2SDTestFacility {
             final long endTimeMillis = System.currentTimeMillis() + waitTimeMillis;
             while(System.currentTimeMillis() < endTimeMillis) {
                 if (!display.readAndDispatch()) {
-                    display.sleep();
+                    // We do not use Display.sleep because it might never wake up
+                    // if there is no user interaction
+                    try {
+                        Thread.sleep(Math.min(waitTimeMillis, 10));
+                    } catch (final InterruptedException e) {
+                        // Ignored
+                    }
                 }
                 display.update();
             }
@@ -291,11 +305,14 @@ public class Uml2SDTestFacility {
         fTrace = setupTrace(fParser);
         fParser.setTrace(fTrace);
 
-//        fTrace = setupTrace(fParser);
-
         final ITmfTrace traces[] = new ITmfTrace[1];
         traces[0] = fTrace;
-        fExperiment = new TmfExperiment(ITmfEvent.class, "TestExperiment", traces);
+        fExperiment = new TmfExperiment(ITmfEvent.class, "TestExperiment", traces) {
+            @Override
+            protected ITmfTraceIndexer createIndexer(int interval) {
+                return new TmfCheckpointIndexer(this, interval);
+            }
+        };
         fTrace.broadcast(new TmfTraceOpenedSignal(this, fExperiment, null));
         fTrace.broadcast(new TmfTraceSelectedSignal(this, fExperiment));
         if (wait) {
@@ -311,8 +328,13 @@ public class Uml2SDTestFacility {
      * Disposes the experiment.
      */
     public void disposeExperiment() {
-        fTrace.broadcast(new TmfTraceClosedSignal(this, fExperiment));
-        fExperiment.dispose();
+        ITmfTrace trace = fTrace;
+        TmfExperiment experiment = fExperiment;
+        if (trace == null || experiment == null) {
+            throw new IllegalStateException();
+        }
+        trace.broadcast(new TmfTraceClosedSignal(this, experiment));
+        experiment.dispose();
         delay(IUml2SDTestConstants.GUI_REFESH_DELAY);
     }
 
@@ -321,7 +343,7 @@ public class Uml2SDTestFacility {
      */
     public void createFilterCriteria() {
         // Create Filter Criteria and save tme
-        final List<FilterCriteria> filterToSave = new ArrayList<FilterCriteria>();
+        final List<FilterCriteria> filterToSave = new ArrayList<>();
         Criteria criteria = new Criteria();
         criteria.setLifeLineSelected(true);
         criteria.setExpression(IUml2SDTestConstants.FIRST_PLAYER_NAME);
This page took 0.02652 seconds and 5 git commands to generate.