blob: 11f301003f56aee9ccc109684b424e09dc249a47 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017, 2019 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
*******************************************************************************/
package org.eclipse.tracecompass.internal.tmf.ui.viewers.xycharts;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.ITmfChartTimeProvider;
import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.TmfXYChartViewer;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.ITimeDataProvider;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils.TimeFormat;
/**
* Tmf Chart data provider wrapper to comply with Time data provider API
*
* @author Matthew Khouzam
*/
public final class TmfXYChartTimeAdapter implements ITimeDataProvider {
private final TmfXYChartViewer fTimeProvider;
private TimeFormat fTimeFormat;
/**
* Constructor, requires a {@link ITmfChartTimeProvider}
*
* @param provider
* the provider to wrap
*/
public TmfXYChartTimeAdapter(@NonNull TmfXYChartViewer provider) {
fTimeProvider = provider;
}
@Override
public long getBeginTime() {
return fTimeProvider.getStartTime();
}
@Override
public long getEndTime() {
return fTimeProvider.getEndTime();
}
@Override
public long getMinTimeInterval() {
return 1L;
}
@Override
public int getNameSpace() {
// charts have no namespace
return 0;
}
@Override
public long getSelectionBegin() {
return fTimeProvider.getSelectionBeginTime();
}
@Override
public long getSelectionEnd() {
return fTimeProvider.getSelectionEndTime();
}
@Override
public long getTime0() {
return fTimeProvider.getWindowStartTime();
}
@Override
public long getTime1() {
return fTimeProvider.getWindowEndTime();
}
@Override
public void setSelectionRangeNotify(long beginTime, long endTime, boolean ensureVisible) {
// Do nothing
}
@Override
public void setSelectionRange(long beginTime, long endTime, boolean ensureVisible) {
// Do nothing
}
@Override
public long getMinTime() {
return fTimeProvider.getStartTime();
}
@Override
public long getMaxTime() {
return fTimeProvider.getEndTime();
}
@Override
public TimeFormat getTimeFormat() {
return fTimeFormat;
}
@Override
public int getTimeSpace() {
return getAxisWidth();
}
/**
* Get the width of the axis
*
* @return the width of the axis
*/
public int getAxisWidth() {
return fTimeProvider.getSwtChart().getPlotArea().getBounds().width;
}
// -------------------------------------------------------------------------
// Override rest if need be
// -------------------------------------------------------------------------
@Override
public void setStartFinishTimeNotify(long time0, long time1) {
fTimeProvider.updateWindow(time0, time1);
}
@Override
public void setStartFinishTime(long time0, long time1) {
// Do nothing
}
@Override
public void notifyStartFinishTime() {
// Do nothing
}
@Override
public void setSelectedTimeNotify(long time, boolean ensureVisible) {
// Do nothing
}
@Override
public void setSelectedTime(long time, boolean ensureVisible) {
// Do nothing
}
@Override
public void setNameSpace(int width) {
// Do nothing
}
/**
* Set the time format.
*
* @param timeFormat
* the time format
*/
public void setTimeFormat(org.eclipse.tracecompass.tmf.ui.views.FormatTimeUtils.TimeFormat timeFormat) {
fTimeFormat = TimeFormat.convert(timeFormat);
}
}