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.TestTreeModel; import org.erlide.cover.views.model.TestTreeObject; /** * Content provider for the EUnit test view * * @author Aleksandra Lipiec <aleksandra.lipiec@erlang-solutions.com> * */ public class TestViewContentProvider implements ITreeContentProvider { private final IViewSite viewSite; private TestTreeModel model; public TestViewContentProvider(final IViewSite viewSite) { this.viewSite = viewSite; } @Override public void dispose() { } @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { if (newInput instanceof TestTreeModel) { model = (TestTreeModel) newInput; } } @Override public Object[] getElements(final Object parent) { if (parent.equals(viewSite) && model != null || parent.equals(model)) { return model.getRootLevel().toArray(); } return getChildren(parent); } @Override public Object[] getChildren(final Object parent) { if (parent instanceof TestTreeObject && ((TestTreeObject) parent).hasChildren()) { return ((TestTreeObject) parent).getChildren().toArray(); } return new Object[0]; } @Override public Object getParent(final Object child) { if (child instanceof TestTreeObject) { return ((TestTreeObject) child).getParent(); } return null; } @Override public boolean hasChildren(final Object parent) { if (parent instanceof TestTreeObject) { return ((TestTreeObject) parent).hasChildren(); } return false; } }