blob: caaffa9d6f6c5e9f315e2e70437ea2de8783998d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014, 2018 École Polytechnique de Montréal and others.
*
* 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:
* Geneviève Bastien - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.xychart;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.output.DataDrivenXYDataProvider;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.output.XmlDataProviderManager;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.XmlViewInfo;
import org.eclipse.tracecompass.tmf.analysis.xml.core.module.TmfXmlStrings;
import org.eclipse.tracecompass.tmf.core.model.xy.ITmfXYDataProvider;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfFilteredXYChartViewer;
import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfXYChartSettings;
import org.w3c.dom.Element;
/**
* Main viewer to display XML-defined xy charts. It uses an XML
* {@link TmfXmlStrings#XY_VIEW} element from an XML file. This element defines
* which entries from the state system will be shown and also gives additional
* information on the presentation of the view.
*
* @author Geneviève Bastien
*/
public class XmlXYViewer extends TmfFilteredXYChartViewer {
private final XmlViewInfo fViewInfo;
/**
* Constructor
*
* @param parent
* parent view
* @param settings
* See {@link TmfXYChartSettings} to know what it contains
* @param viewInfo
* The view info object
*/
public XmlXYViewer(@Nullable Composite parent, TmfXYChartSettings settings, XmlViewInfo viewInfo) {
super(parent, settings, DataDrivenXYDataProvider.ID);
fViewInfo = viewInfo;
}
@Override
protected @Nullable ITmfXYDataProvider initializeDataProvider(ITmfTrace trace) {
Element viewElement = fViewInfo.getViewElement(TmfXmlStrings.XY_VIEW);
if (viewElement == null) {
return null;
}
return XmlDataProviderManager.getInstance().getXyProvider(trace, viewElement);
}
@Override
public void updateContent() {
// make public
super.updateContent();
}
}