blob: 37f531bcabee54e768938542f118f71c40ba860f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 Ericsson
*
* All rights reserved. This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Author:
* Sonia Farrah
*******************************************************************************/
package org.eclipse.tracecompass.incubator.internal.callstack.ui.flamegraph;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.tracecompass.incubator.internal.callstack.ui.flamegraph.FlameGraphView;
import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal;
import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
/**
* View to display the flame graph. This uses the flameGraphNode tree generated
* by CallGraphAnalysisUI.
*
* @author Sonia Farrah
*/
@NonNullByDefault({})
public class FlameGraphSelView extends FlameGraphView {
/**
* ID of the view
*/
public static final String SEL_ID = FlameGraphSelView.class.getPackage().getName() + ".flamegraphViewSel"; //$NON-NLS-1$
/**
* Constructor
*/
public FlameGraphSelView() {
super(SEL_ID);
}
/**
* Handles the update of the selection. If the selection is a range, then
* get the call graph for this range and update the view, otherwise get
* callgraph of the full range
*
* @param signal
* The signal
*/
@TmfSignalHandler
public void handleSelectionChange(TmfSelectionRangeUpdatedSignal signal) {
ITmfTrace trace = getTrace();
if (trace == null) {
return;
}
ITmfTimestamp beginTime = signal.getBeginTime();
ITmfTimestamp endTime = signal.getEndTime();
if (beginTime != endTime) {
buildFlameGraph(trace, beginTime, endTime);
} else {
buildFlameGraph(trace, null, null);
}
}
}