blob: e845a9e0e23a07887aaa1b6f64017ecedb92e5ce [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017, 2018 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.analysis.os.linux.ui.views.io.diskioactivity;
import java.util.Comparator;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tracecompass.internal.analysis.os.linux.core.inputoutput.DisksIODataProvider;
import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
import org.eclipse.tracecompass.tmf.ui.viewers.tree.AbstractSelectTreeViewer;
import org.eclipse.tracecompass.tmf.ui.viewers.tree.ITmfTreeColumnDataProvider;
import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfGenericTreeEntry;
import org.eclipse.tracecompass.tmf.ui.viewers.tree.TmfTreeColumnData;
import com.google.common.collect.ImmutableList;
/**
* Disk IO Activity Tree Viewer
*
* @author Loic Prieur-Drevon
*/
public class DiskIOActivityTreeViewer extends AbstractSelectTreeViewer {
private final class DiskTreeLabelProvider extends TreeLabelProvider {
@Override
public @Nullable Image getColumnImage(@Nullable Object element, int columnIndex) {
if (columnIndex == 1 && element instanceof TmfGenericTreeEntry && isChecked(element)) {
TmfGenericTreeEntry<TmfTreeDataModel> entry = (TmfGenericTreeEntry<TmfTreeDataModel>) element;
if (!entry.hasChildren()) {
// ensures that only leaf nodes return images
return getLegendImage(getFullPath(entry));
}
}
return null;
}
}
/**
* Constructor
*
* @param parent
* Parent composite
*/
public DiskIOActivityTreeViewer(Composite parent) {
super(parent, 1, DisksIODataProvider.ID);
setLabelProvider(new DiskTreeLabelProvider());
}
@Override
protected ITmfTreeColumnDataProvider getColumnDataProvider() {
return () -> {
return ImmutableList.of(
createColumn(Messages.DiskIOActivityTreeViewer_DiskName, Comparator.comparing(TmfGenericTreeEntry::getName)),
new TmfTreeColumnData(Messages.DiskIOActivityTreeViewer_Legend));
};
}
}