package org.eclipse.nebula.widgets.pagination.snippets.tree; import java.util.Collection; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.nebula.widgets.pagination.snippets.model.Team; public class TeamContentProvider implements ITreeContentProvider { private static final Object[] EMPTY_OBJECT = new Object[0]; private static TeamContentProvider instance; /** * Returns an instance of ArrayContentProvider. Since instances of this * class do not maintain any state, they can be shared between multiple * clients. * * @return an instance of ArrayContentProvider * * @since 3.5 */ public static TeamContentProvider getInstance() { synchronized (TeamContentProvider.class) { if (instance == null) { instance = new TeamContentProvider(); } return instance; } } /** * Returns the elements in the input, which must be either an array or a * <code>Collection</code>. */ public Object[] getElements(Object inputElement) { if (inputElement instanceof Object[]) { return (Object[]) inputElement; } if (inputElement instanceof Collection) { return ((Collection) inputElement).toArray(); } return EMPTY_OBJECT; } public Object[] getChildren(Object parentElement) { if (parentElement instanceof Team) { return ((Team) parentElement).getPersons().toArray(); } return EMPTY_OBJECT; } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { if (element instanceof Team) { return ((Team) element).getPersons().size() > 0; } return false; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }