/*******************************************************************************
- * Copyright (c) 2014, 2015 École Polytechnique de Montréal
+ * Copyright (c) 2014, 2017 École Polytechnique de Montréal
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
};
}
+ @Override
+ protected ITmfTrace getTrace() {
+ return super.getTrace();
+ }
+
// ------------------------------------------------------------------------
// Operations
// ------------------------------------------------------------------------
/**
* Save a data in the data map of {@link TmfTraceContext}
*/
- private static void saveData(@NonNull String key, @NonNull Object data) {
- ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
+ private void saveData(@NonNull String key, @NonNull Object data) {
+ ITmfTrace trace = getViewerTrace();
if (trace == null) {
return;
}
builder -> builder.setData(key, data));
}
- private static Object getData(@NonNull String key) {
- TmfTraceContext ctx = TmfTraceManager.getInstance().getCurrentTraceContext();
+ private Object getData(@NonNull String key) {
+ ITmfTrace trace = getViewerTrace();
+ if (trace == null) {
+ return null;
+ }
+ TmfTraceContext ctx = TmfTraceManager.getInstance().getTraceContext(trace);
return ctx.getData(key);
}
+ private ITmfTrace getViewerTrace() {
+ CpuUsageComposite treeViewer = fTreeViewer;
+ return (treeViewer != null) ? treeViewer.getTrace() : null;
+ }
+
@Override
public void setFocus() {
if (fXYViewer != null) {
/**********************************************************************
- * Copyright (c) 2016 Polytechnique de Montréal
+ * Copyright (c) 2016, 2017 Polytechnique de Montréal
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
};
}
+ @Override
+ protected ITmfTrace getTrace() {
+ return super.getTrace();
+ }
+
// ------------------------------------------------------------------------
// Operations
// ------------------------------------------------------------------------
**********************************************************************/
package org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.kernelmemoryusage;
-import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
-
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
private final class SelectionChangeListener implements ISelectionChangedListener {
@Override
public void selectionChanged(SelectionChangedEvent event) {
+ KernelMemoryUsageTreeViewer treeViewer = fTreeViewerReference;
+ KernelMemoryUsageViewer chartViewer = (KernelMemoryUsageViewer) getChartViewer();
+ if (treeViewer == null || chartViewer == null) {
+ return;
+ }
+ ITmfTrace trace = treeViewer.getTrace();
+ if (trace == null) {
+ return;
+ }
ISelection selection = event.getSelection();
if (selection instanceof IStructuredSelection) {
Object structSelection = ((IStructuredSelection) selection).getFirstElement();
if (structSelection instanceof KernelMemoryUsageEntry) {
KernelMemoryUsageEntry entry = (KernelMemoryUsageEntry) structSelection;
- fTreeViewerReference.setSelectedThread(entry.getTid());
- ((KernelMemoryUsageViewer) getChartViewer()).setSelectedThread(entry.getTid());
- ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
- if (trace == null) {
+ String tid = entry.getTid();
+ if (tid == null) {
return;
}
+ treeViewer.setSelectedThread(tid);
+ chartViewer.setSelectedThread(tid);
TmfTraceManager.getInstance().updateTraceContext(trace,
- builder -> builder.setData(KERNEL_MEMORY, checkNotNull(entry.getTid())));
+ builder -> builder.setData(KERNEL_MEMORY, tid));
}
}
}