Bug 378402: Implementation of ControlFlow view and Resources view for
authorPatrick Tasse <patrick.tasse@gmail.com>
Fri, 1 Jun 2012 20:01:10 +0000 (16:01 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Fri, 1 Jun 2012 20:01:10 +0000 (16:01 -0400)
LTTng 2.0.

org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java
org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java

index 0af82c4462fd258d68cbefacad35ddb95272718b..56464358be3021f190b10abb165c96d9d3d29ea6 100644 (file)
@@ -40,6 +40,7 @@ import org.eclipse.linuxtools.tmf.core.interval.ITmfStateInterval;
 import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;\r
 import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;\r
 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;\r
+import org.eclipse.linuxtools.tmf.core.signal.TmfStateSystemBuildCompleted;\r
 import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;\r
 import org.eclipse.linuxtools.tmf.core.statesystem.IStateSystemQuerier;\r
 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;\r
@@ -267,6 +268,10 @@ public class ControlFlowView extends TmfView {
         }\r
 \r
         private void zoom(ControlFlowEntry entry, IProgressMonitor monitor) {\r
+            if (fZoomStartTime <= entry.getStartTime() && fZoomEndTime >= entry.getEndTime()) {\r
+                entry.setZoomedEventList(null);\r
+                return;\r
+            }\r
             List<ITimeEvent> zoomedEventList = getEventList(entry, fZoomStartTime, fZoomEndTime, fResolution, monitor);\r
             if (fMonitor.isCanceled()) {\r
                 return;\r
@@ -474,6 +479,26 @@ public class ControlFlowView extends TmfView {
         });\r
     }\r
 \r
+    @TmfSignalHandler\r
+    public void stateSystemBuildCompleted (final TmfStateSystemBuildCompleted signal) {\r
+        final TmfExperiment<?> selectedExperiment = fSelectedExperiment;\r
+        if (selectedExperiment == null) {\r
+            return;\r
+        }\r
+        for (ITmfTrace<?> trace : selectedExperiment.getTraces()) {\r
+            if (trace == signal.getTrace() && trace instanceof CtfKernelTrace) {\r
+                final Thread thread = new Thread("ControlFlowView build") { //$NON-NLS-1$\r
+                    @Override\r
+                    public void run() {\r
+                        // rebuild the model\r
+                        selectExperiment(selectedExperiment);\r
+                    }\r
+                };\r
+                thread.start();\r
+            }\r
+        }\r
+    }\r
+\r
     // ------------------------------------------------------------------------\r
     // Internal\r
     // ------------------------------------------------------------------------\r
@@ -489,7 +514,7 @@ public class ControlFlowView extends TmfView {
                 CtfKernelTrace ctfKernelTrace = (CtfKernelTrace) trace;\r
                 IStateSystemQuerier ssq = ctfKernelTrace.getStateSystem();\r
                 long start = ssq.getStartTime();\r
-                long end = ssq.getCurrentEndTime();\r
+                long end = ssq.getCurrentEndTime() + 1;\r
                 fStartTime = Math.min(fStartTime, start);\r
                 fEndTime = Math.max(fEndTime, end);\r
                 List<Integer> threadQuarks = ssq.getQuarks(Attributes.THREADS, "*"); //$NON-NLS-1$\r
@@ -512,7 +537,7 @@ public class ControlFlowView extends TmfView {
                             continue;\r
                         }\r
                         int ppidQuark = ssq.getQuarkRelative(threadQuark, Attributes.PPID);\r
-                        List<ITmfStateInterval> execNameIntervals = ssq.queryHistoryRange(execNameQuark, start, end);\r
+                        List<ITmfStateInterval> execNameIntervals = ssq.queryHistoryRange(execNameQuark, start, end - 1);\r
                         long birthTime = -1;\r
                         for (ITmfStateInterval execNameInterval : execNameIntervals) {\r
                             if (!execNameInterval.getStateValue().isNull() && execNameInterval.getStateValue().getType() == 1) {\r
@@ -578,7 +603,7 @@ public class ControlFlowView extends TmfView {
     private void buildStatusEvents(ControlFlowEntry entry) {\r
         IStateSystemQuerier ssq = entry.getTrace().getStateSystem();\r
         long start = ssq.getStartTime();\r
-        long end = ssq.getCurrentEndTime();\r
+        long end = ssq.getCurrentEndTime() + 1;\r
         long resolution = Math.max(1, (end - start) / fDisplayWidth);\r
         List<ITimeEvent> eventList = getEventList(entry, entry.getStartTime(), entry.getEndTime(), resolution, new NullProgressMonitor());\r
         entry.setEventList(eventList);\r
index 5b7e97e57ee6e397b1d1762b4db56ef18efc7622..e7045b2c147cd5a34d7a30f69a3a6da7cb628a11 100644 (file)
@@ -39,6 +39,7 @@ import org.eclipse.linuxtools.tmf.core.interval.ITmfStateInterval;
 import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;\r
 import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;\r
 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;\r
+import org.eclipse.linuxtools.tmf.core.signal.TmfStateSystemBuildCompleted;\r
 import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;\r
 import org.eclipse.linuxtools.tmf.core.statesystem.IStateSystemQuerier;\r
 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;\r
@@ -227,6 +228,10 @@ public class ResourcesView extends TmfView {
             for (TraceEntry traceEntry : entryList) {\r
                 for (ITimeGraphEntry child : traceEntry.getChildren()) {\r
                     ResourcesEntry entry = (ResourcesEntry) child;\r
+                    if (fZoomStartTime <= entry.getStartTime() && fZoomEndTime >= entry.getEndTime()) {\r
+                        entry.setZoomedEventList(null);\r
+                        return;\r
+                    }\r
                     if (fMonitor.isCanceled()) {\r
                         break;\r
                     }\r
@@ -370,6 +375,26 @@ public class ResourcesView extends TmfView {
         });\r
     }\r
 \r
+    @TmfSignalHandler\r
+    public void stateSystemBuildCompleted (final TmfStateSystemBuildCompleted signal) {\r
+        final TmfExperiment<?> selectedExperiment = fSelectedExperiment;\r
+        if (selectedExperiment == null) {\r
+            return;\r
+        }\r
+        for (ITmfTrace<?> trace : selectedExperiment.getTraces()) {\r
+            if (trace == signal.getTrace() && trace instanceof CtfKernelTrace) {\r
+                final Thread thread = new Thread("ResourcesView build") { //$NON-NLS-1$\r
+                    @Override\r
+                    public void run() {\r
+                        // rebuild the model\r
+                        selectExperiment(selectedExperiment);\r
+                    }\r
+                };\r
+                thread.start();\r
+            }\r
+        }\r
+    }\r
+\r
     // ------------------------------------------------------------------------\r
     // Internal\r
     // ------------------------------------------------------------------------\r
This page took 0.028612 seconds and 5 git commands to generate.