diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/provisional/tmf/core/model/events/TmfEventTableDataProvider.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/provisional/tmf/core/model/events/TmfEventTableDataProvider.java index 5969cb7592..bc64aeccfa 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/provisional/tmf/core/model/events/TmfEventTableDataProvider.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/provisional/tmf/core/model/events/TmfEventTableDataProvider.java @@ -45,6 +45,8 @@ import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect; import org.eclipse.tracecompass.tmf.core.event.aspect.MultiAspect; import org.eclipse.tracecompass.tmf.core.event.aspect.TmfBaseAspects; +import org.eclipse.tracecompass.tmf.core.event.aspect.TmfCallsiteAspect; +import org.eclipse.tracecompass.tmf.core.event.lookup.ITmfCallsite; import org.eclipse.tracecompass.tmf.core.filter.FilterManager; import org.eclipse.tracecompass.tmf.core.filter.ITmfFilter; import org.eclipse.tracecompass.tmf.core.filter.model.ITmfFilterTreeNode; @@ -561,7 +563,12 @@ private static EventTableLine buildEventTableLine(Map> List entry = new ArrayList<>(aspects.size()); for (Entry> aspectEntry : aspects.entrySet()) { ITmfEventAspect aspect = Objects.requireNonNull(aspectEntry.getValue()); - Object aspectResolved = aspect.resolve(event); + Object aspectResolved = null; + if (aspect instanceof TmfCallsiteAspect) { + aspectResolved = toCallsiteString(event, (TmfCallsiteAspect) aspect); + } else { + aspectResolved = aspect.resolve(event); + } String cellContent = aspectResolved == null ? StringUtils.EMPTY : String.valueOf(aspectResolved); entry.add(new VirtualTableCell(cellContent)); } @@ -570,6 +577,17 @@ private static EventTableLine buildEventTableLine(Map> return tableLine; } + private static @Nullable String toCallsiteString(ITmfEvent event, TmfCallsiteAspect callsiteAspect) { + List result = callsiteAspect.resolve(event); + if (result != null && !result.isEmpty()) { + if (result.size() == 1) { + return result.get(0).toString(); + } + return result.toString(); + } + return null; + } + /** * Apply a filter to this provider that will be used for future request. If * the current filter is null or not equal to the provided filter, the