Bug 378402: Implementation of ControlFlow view and Resources view for
authorPatrick Tasse <patrick.tasse@gmail.com>
Fri, 25 May 2012 21:58:20 +0000 (17:58 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Fri, 25 May 2012 21:59:22 +0000 (17:59 -0400)
LTTng 2.0.

org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowEntry.java
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/ResourcesEntry.java
org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java

index 1597439619ea6aad367dd21b2d6864793ec85ae2..0c364b33ef17e61da1645f7e11dd7ef3e2b971f0 100644 (file)
@@ -76,6 +76,11 @@ public class ControlFlowEntry implements ITimeGraphEntry, Comparable<ControlFlow
         return fEndTime;\r
     }\r
 \r
+    @Override\r
+    public boolean hasTimeEvents() {\r
+        return true;\r
+    }\r
+\r
     @Override\r
     public Iterator<ITimeEvent> getTimeEventsIterator() {\r
         return new EventIterator(fEventList, fZoomedEventList);\r
index 9b6e9fa93b98086a65da822352f6c84ebdb24400..68ae09365349831d14df9a22012513a3d5288947 100644 (file)
@@ -225,10 +225,11 @@ public class ControlFlowView extends TmfView {
 \r
         @Override\r
         public void run() {\r
-            if (fEntryList == null) {\r
+            ArrayList<ControlFlowEntry> entryList = fEntryList;\r
+            if (entryList == null) {\r
                 return;\r
             }\r
-            for (ControlFlowEntry entry : fEntryList) {\r
+            for (ControlFlowEntry entry : entryList) {\r
                 if (fMonitor.isCanceled()) {\r
                     return;\r
                 }\r
@@ -453,7 +454,7 @@ public class ControlFlowView extends TmfView {
         fStartTime = Long.MAX_VALUE;\r
         fEndTime = Long.MIN_VALUE;\r
         fSelectedExperiment = (TmfExperiment<ITmfEvent>) experiment;\r
-        fEntryList = new ArrayList<ControlFlowEntry>();\r
+        ArrayList<ControlFlowEntry> entryList = new ArrayList<ControlFlowEntry>();\r
         for (ITmfTrace<?> trace : experiment.getTraces()) {\r
             if (trace instanceof CtfKernelTrace) {\r
                 CtfKernelTrace ctfKernelTrace = (CtfKernelTrace) trace;\r
@@ -498,7 +499,7 @@ public class ControlFlowView extends TmfView {
                                     ppid = ppidInterval.getStateValue().unboxInt();\r
                                 }\r
                                 ControlFlowEntry entry = new ControlFlowEntry(threadQuark, ctfKernelTrace, execName, threadId, ppid, birthTime, startTime, endTime);\r
-                                fEntryList.add(entry);\r
+                                entryList.add(entry);\r
                                 entry.addEvent(new TimeEvent(entry, startTime, endTime - startTime));\r
                             } else {\r
                                 birthTime = -1;\r
@@ -513,7 +514,7 @@ public class ControlFlowView extends TmfView {
                     }\r
                 }\r
             }\r
-            buildTree();\r
+            buildTree(entryList);\r
             refresh(INITIAL_WINDOW_OFFSET);\r
             ControlFlowEntry[] entries = fEntryList.toArray(new ControlFlowEntry[0]);\r
             Arrays.sort(entries);\r
@@ -523,12 +524,12 @@ public class ControlFlowView extends TmfView {
         }\r
     }\r
 \r
-    private void buildTree() {\r
+    private void buildTree(ArrayList<ControlFlowEntry> entryList) {\r
         ArrayList<ControlFlowEntry> rootList = new ArrayList<ControlFlowEntry>();\r
-        for (ControlFlowEntry entry : fEntryList) {\r
+        for (ControlFlowEntry entry : entryList) {\r
             boolean root = true;\r
             if (entry.getPPID() > 0) {\r
-                for (ControlFlowEntry parent : fEntryList) {\r
+                for (ControlFlowEntry parent : entryList) {\r
                     if (parent.getThreadId() == entry.getPPID() &&\r
                             entry.getStartTime() >= parent.getStartTime() &&\r
                             entry.getStartTime() <= parent.getEndTime()) {\r
index 6a67d2e3dd85297d3a0d17914af8fa8aea3511e5..4e07d99cfb513854cbdecd364d469cf5382262fe 100644 (file)
@@ -74,6 +74,11 @@ public class ResourcesEntry implements ITimeGraphEntry {
         return fEndTime;\r
     }\r
 \r
+    @Override\r
+    public boolean hasTimeEvents() {\r
+        return true;\r
+    }\r
+\r
     @Override\r
     public Iterator<ITimeEvent> getTimeEventsIterator() {\r
         return new EventIterator(fEventList, fZoomedEventList);\r
index ca0cf604d1d0bcd79a114204a299d03a655754a5..eae8f8fc1ed9d7b653ab86b110520743a6e79405 100644 (file)
@@ -148,6 +148,11 @@ public class ResourcesView extends TmfView {
             return -1;\r
         }\r
 \r
+        @Override\r
+        public boolean hasTimeEvents() {\r
+            return false;\r
+        }\r
+\r
         @Override\r
         public Iterator<ITimeEvent> getTimeEventsIterator() {\r
             return null;\r
@@ -193,11 +198,12 @@ public class ResourcesView extends TmfView {
 \r
         @Override\r
         public void run() {\r
-            if (fEntryList == null) {\r
+            ArrayList<TraceEntry> entryList = fEntryList;\r
+            if (entryList == null) {\r
                 return;\r
             }\r
             long resolution = Math.max(1, (fZoomEndTime - fZoomStartTime) / fDisplayWidth);\r
-            for (TraceEntry traceEntry : fEntryList) {\r
+            for (TraceEntry traceEntry : entryList) {\r
                 for (ITimeGraphEntry child : traceEntry.getChildren()) {\r
                     ResourcesEntry entry = (ResourcesEntry) child;\r
                     if (fMonitor.isCanceled()) {\r
@@ -336,7 +342,7 @@ public class ResourcesView extends TmfView {
                     return;\r
                 }\r
                 fTimeGraphViewer.setStartFinishTime(startTime, endTime);\r
-                fTimeGraphViewer.setSelectedTime(time, true);\r
+                fTimeGraphViewer.setSelectedTime(time, false);\r
                 startZoomThread(startTime, endTime);\r
             }\r
         });\r
@@ -351,12 +357,12 @@ public class ResourcesView extends TmfView {
         fStartTime = Long.MAX_VALUE;\r
         fEndTime = Long.MIN_VALUE;\r
         fSelectedExperiment = (TmfExperiment<ITmfEvent>) experiment;\r
-        fEntryList = new ArrayList<TraceEntry>();\r
+        ArrayList<TraceEntry> entryList = new ArrayList<TraceEntry>();\r
         for (ITmfTrace<?> trace : experiment.getTraces()) {\r
             if (trace instanceof CtfKernelTrace) {\r
                 CtfKernelTrace ctfKernelTrace = (CtfKernelTrace) trace;\r
                 TraceEntry groupEntry = new TraceEntry(ctfKernelTrace, trace.getName());\r
-                fEntryList.add(groupEntry);\r
+                entryList.add(groupEntry);\r
                 IStateSystemQuerier ssq = ctfKernelTrace.getStateSystem();\r
                 long startTime = ssq.getStartTime();\r
                 long endTime = ssq.getCurrentEndTime() + 1;\r
@@ -391,6 +397,7 @@ public class ResourcesView extends TmfView {
                 }\r
             }\r
         }\r
+        fEntryList = entryList;\r
         refresh(INITIAL_WINDOW_OFFSET);\r
         for (TraceEntry traceEntry : fEntryList) {\r
             CtfKernelTrace ctfKernelTrace = ((TraceEntry) traceEntry).getTrace();\r
This page took 0.029273 seconds and 5 git commands to generate.