From 15c040586f556479d57abfb40f57a253adfe2390 Mon Sep 17 00:00:00 2001 From: Patrick Tasse Date: Thu, 7 Jun 2012 18:39:46 -0400 Subject: [PATCH] Bug 378402: Implementation of ControlFlow view and Resources view for LTTng 2.0. --- .../ui/views/controlflow/ControlFlowView.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java b/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java index d46072a2c0..de11dcf625 100644 --- a/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java +++ b/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java @@ -14,6 +14,7 @@ package org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.controlflow; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -224,6 +225,9 @@ public class ControlFlowView extends TmfView { ControlFlowEntry entry1 = (ControlFlowEntry) o1; ControlFlowEntry entry2 = (ControlFlowEntry) o2; result = entry1.getTrace().getStartTime().compareTo(entry2.getTrace().getStartTime()); + if (result == 0) { + result = entry1.getTrace().getName().compareTo(entry2.getTrace().getName()); + } if (result == 0) { result = entry1.getThreadId() < entry2.getThreadId() ? -1 : entry1.getThreadId() > entry2.getThreadId() ? 1 : 0; } @@ -507,9 +511,10 @@ public class ControlFlowView extends TmfView { fStartTime = Long.MAX_VALUE; fEndTime = Long.MIN_VALUE; fSelectedExperiment = (TmfExperiment) experiment; - ArrayList entryList = new ArrayList(); + ArrayList rootList = new ArrayList(); for (ITmfTrace trace : experiment.getTraces()) { if (trace instanceof CtfKernelTrace) { + ArrayList entryList = new ArrayList(); CtfKernelTrace ctfKernelTrace = (CtfKernelTrace) trace; IStateSystemQuerier ssq = ctfKernelTrace.getStateSystem(); long start = ssq.getStartTime(); @@ -566,19 +571,18 @@ public class ControlFlowView extends TmfView { e.printStackTrace(); } } + buildTree(entryList, rootList); } - buildTree(entryList); + Collections.sort(rootList, fControlFlowEntryComparator); + fEntryList = rootList; refresh(INITIAL_WINDOW_OFFSET); - ControlFlowEntry[] entries = fEntryList.toArray(new ControlFlowEntry[0]); - Arrays.sort(entries, fControlFlowEntryComparator); - for (ControlFlowEntry entry : entries) { - buildStatusEvents(entry); - } + } + for (ControlFlowEntry entry : rootList) { + buildStatusEvents(entry); } } - private void buildTree(ArrayList entryList) { - ArrayList rootList = new ArrayList(); + private void buildTree(ArrayList entryList, ArrayList rootList) { for (ControlFlowEntry entry : entryList) { boolean root = true; if (entry.getParentThreadId() > 0) { @@ -596,7 +600,6 @@ public class ControlFlowView extends TmfView { rootList.add(entry); } } - fEntryList = rootList; } private void buildStatusEvents(ControlFlowEntry entry) { -- 2.34.1