/*******************************************************************************
* Copyright (c) 2016 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.latency;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableView;
import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableViewer;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.TmfXmlUiStrings;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.XmlLatencyViewInfo;
/**
* The latency table view for pattern analysis
*
* @author Jean-Christian Kouame
*/
public class PatternLatencyTableView extends AbstractSegmentStoreTableView {
/** The view's ID */
public static final @NonNull String ID = "org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.latencytable"; //$NON-NLS-1$
private final XmlLatencyViewInfo fViewInfo = new XmlLatencyViewInfo(ID);
private PatternLatencyTableViewer fViewer;
/**
* Constructor
*/
public PatternLatencyTableView() {
this.addPartPropertyListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(TmfXmlUiStrings.XML_LATENCY_OUTPUT_DATA)) {
Object newValue = event.getNewValue();
if (newValue instanceof String) {
String data = (String) newValue;
fViewInfo.setViewData(data);
loadLatencyView();
}
}
}
});
}
private void loadLatencyView() {
if (fViewer != null) {
fViewer.updateViewer(fViewInfo.getViewAnalysisId());
}
}
@Override
protected @NonNull AbstractSegmentStoreTableViewer createSegmentStoreViewer(@NonNull TableViewer tableViewer) {
PatternLatencyTableViewer viewer = new PatternLatencyTableViewer(tableViewer);
fViewer = viewer;
loadLatencyView();
return viewer;
}
}