package org.erlide.cover.ui.views.helpers; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.ui.IViewSite; import org.erlide.cover.views.model.ICoverageObject; import org.erlide.cover.views.model.StatsTreeModel; /** * Content provider for statistics view * * @author Aleksandra Lipiec <aleksandra.lipiec@erlang.solutions.com> * */ public class StatsViewContentProvider implements ITreeContentProvider { private final IViewSite viewSite; private StatsTreeModel model; public StatsViewContentProvider(final IViewSite viewSite) { this.viewSite = viewSite; } @Override public void inputChanged(final Viewer v, final Object oldInput, final Object newInput) { if (newInput instanceof StatsTreeModel) { model = (StatsTreeModel) newInput; } } @Override public void dispose() { } @Override public Object[] getElements(final Object parent) { if (parent.equals(viewSite) && model != null || parent.equals(model)) { return new ICoverageObject[] { model.getRoot() }; } return getChildren(parent); } @Override public Object getParent(final Object child) { if (child instanceof ICoverageObject) { return ((ICoverageObject) child).getParent(); } return null; } @Override public Object[] getChildren(final Object parent) { if (parent instanceof ICoverageObject && ((ICoverageObject) parent).hasChildren()) { return ((ICoverageObject) parent).getChildren(); } return new Object[0]; } @Override public boolean hasChildren(final Object parent) { if (parent instanceof ICoverageObject) { return ((ICoverageObject) parent).hasChildren(); } return false; } }