Fix for bug 373698: Incorrect experiment range.
authorPatrick Tasse <patrick.tasse@gmail.com>
Thu, 8 Mar 2012 18:30:50 +0000 (13:30 -0500)
committerPatrick Tasse <patrick.tasse@gmail.com>
Thu, 8 Mar 2012 20:53:02 +0000 (15:53 -0500)
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/ControlFlowView.java
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/ResourcesView.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/experiment/TmfExperiment.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/ITimeAnalysisViewer.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/TmfTimeAnalysisViewer.java

index 2a4c345fa192ed9db383ce71cc9a74ae6fc663dc..fea3b2c3d51aad937e1abbe2a70f5b269bc0d50c 100644 (file)
@@ -53,6 +53,7 @@ import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment;
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest.ExecutionType;
 import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentRangeUpdatedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentUpdatedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;
@@ -1075,6 +1076,20 @@ public class ControlFlowView extends AbsTimeUpdateView implements
                }
        }
 
+    @TmfSignalHandler
+    public void experimentUpdated(TmfExperimentUpdatedSignal signal) {
+        if (signal.getExperiment().equals(TmfExperiment.getCurrentExperiment())) {
+            final TmfTimeRange range = signal.getExperiment().getTimeRange();
+            if (range != TmfTimeRange.Null) {
+                Display.getDefault().asyncExec(new Runnable() {
+                    @Override
+                    public void run() {
+                        tsfviewer.setTimeBounds(range.getStartTime().getValue(), range.getEndTime().getValue());
+                    }});
+            }
+        }
+    }
+
        /**
         * @param source
         * @param experimentTRange
index 062b566e26447b37da0563ed97082172b1c8e098..8fad36aca9761977edef9995ba89e718df127ed9 100644 (file)
@@ -34,6 +34,7 @@ import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment;
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest.ExecutionType;
 import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentRangeUpdatedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentUpdatedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;
@@ -527,6 +528,20 @@ public class ResourcesView extends AbsTimeUpdateView implements
                }
        }
 
+    @TmfSignalHandler
+    public void experimentUpdated(TmfExperimentUpdatedSignal signal) {
+        if (signal.getExperiment().equals(TmfExperiment.getCurrentExperiment())) {
+            final TmfTimeRange range = signal.getExperiment().getTimeRange();
+            if (range != TmfTimeRange.Null) {
+                Display.getDefault().asyncExec(new Runnable() {
+                    @Override
+                    public void run() {
+                        tsfviewer.setTimeBounds(range.getStartTime().getValue(), range.getEndTime().getValue());
+                    }});
+            }
+        }
+    }
+
        /**
         * @param source
         * @param experimentTRange
index 03986e70559e9884ac427ee1dbd87c49eb85b5ba..4b02e7318c215bd37a266d52319ff28cc4002f7f 100644 (file)
@@ -891,7 +891,9 @@ public class TmfExperiment<T extends ITmfEvent> extends TmfEventProvider<T> impl
             public void handleSuccess() {
 //                long indexingEnd = System.nanoTime();
 
-                if (getRange() != TmfTimeRange.Eternity) {
+                // if the end time is a real value then it is the streaming safe time stamp
+                // set the last time to the safe time stamp to prevent unnecessary indexing requests
+                if (getRange().getEndTime() != TmfTimestamp.BigCrunch) {
                     lastTime = getRange().getEndTime();
                 }
                 updateExperiment();
index 32c14e2c649eabcb49ccb1bb4ac57deb1f5c4e7f..261995e530725734ce2293dd4d654fdb2c595557 100644 (file)
@@ -166,4 +166,12 @@ public interface ITimeAnalysisViewer extends ITmfViewer {
 \r
     public void setFocus();\r
 \r
+    /**\r
+     * Update the time bounds without changing the visible range\r
+     * \r
+     * @param beginTime\r
+     * @param endTime\r
+     */\r
+    public void setTimeBounds(long beginTime, long endTime);\r
+\r
 }
\ No newline at end of file
index 0e16be930b492c3f964375318b0a92639b2dd3c5..9498fd92e964a72652838114bb3ccdcb43f02d7b 100644 (file)
@@ -463,6 +463,17 @@ public class TmfTimeAnalysisViewer implements ITimeAnalysisViewer, ITimeDataProv
                _timeScaleCtrl.redraw();\r
        }\r
 \r
+       @Override\r
+       public void setTimeBounds(long beginTime, long endTime) {\r
+           _beginTime = beginTime;\r
+           _endTime = endTime;\r
+           _time0_ = beginTime;\r
+           _time1_ = endTime;\r
+           _stateCtrl.adjustScrolls();\r
+           _stateCtrl.redraw();\r
+           _timeScaleCtrl.redraw();\r
+       }\r
+\r
        @Override\r
        public void resetStartFinishTime() {\r
                setStartFinishTimeNotify(_time0_, _time1_);\r
This page took 0.030364 seconds and 5 git commands to generate.