blob: 80bdfbdda324b01ebdb172cf7ba5e7c73a0d8b5d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2017 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
*
* Contributors:
* Francois Chouinard - Initial API and implementation
* Patrick Tasse - Deprecate current time
*******************************************************************************/
package org.eclipse.tracecompass.tmf.core.signal;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
/**
* A new range has been selected for the visible (zoom) time range.
*
* To update the selection range instead, use
* {@link TmfSelectionRangeUpdatedSignal}.
*
* @author Francois Chouinard
* @since 1.0
*/
public class TmfWindowRangeUpdatedSignal extends TmfSignal {
private final TmfTimeRange fCurrentRange;
private final @Nullable ITmfTrace fTrace;
/**
* Constructor
*
* @param source
* Object sending this signal
* @param range
* The new time range
*/
public TmfWindowRangeUpdatedSignal(Object source, TmfTimeRange range) {
this(source, range, TmfTraceManager.getInstance().getActiveTrace());
}
/**
* Constructor
*
* @param source
* Object sending this signal
* @param range
* The new time range
* @param trace
* The trace that triggered the window range update, or null
* @since 3.2
*/
public TmfWindowRangeUpdatedSignal(Object source, TmfTimeRange range, ITmfTrace trace) {
super(source);
fCurrentRange = range;
fTrace = trace;
}
/**
* @return This signal's time range
*/
public TmfTimeRange getCurrentRange() {
return fCurrentRange;
}
/**
* Gets the trace that triggered the window range update
*
* @return The trace, or null
* @since 3.2
*/
public @Nullable ITmfTrace getTrace() {
return fTrace;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder(getClass().getSimpleName());
sb.append(" [source="); //$NON-NLS-1$
if (getSource() != null) {
sb.append(getSource().toString());
} else {
sb.append("null"); //$NON-NLS-1$
}
sb.append(", range="); //$NON-NLS-1$
if (fCurrentRange != null) {
sb.append(fCurrentRange.toString());
} else {
sb.append("null"); //$NON-NLS-1$
}
sb.append(']');
return sb.toString();
}
}