package org.jboss.ide.eclipse.packages.ui.providers; import org.eclipse.core.resources.IProject; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.jboss.ide.eclipse.packages.core.model.IPackage; import org.jboss.ide.eclipse.packages.core.model.IPackageNode; import org.jboss.ide.eclipse.packages.core.model.PackagesCore; public class PackagesContentProvider implements ITreeContentProvider { public PackagesContentProvider () { } private boolean showProjectRoot () { return true; //return PackagesUIPlugin.getDefault().getPluginPreferences().getBoolean(PackagesUIPlugin.PREF_SHOW_PROJECT_ROOT); } public Object[] getChildren(Object parentElement) { if( parentElement instanceof IProject) { IPackage[] packs = PackagesCore.getProjectPackages((IProject)parentElement, null, false); return packs; } if( parentElement instanceof IPackageNode ) { return ((IPackageNode)parentElement).getAllChildren(); } return new Object[0]; } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { return getChildren(element).length > 0; } public Object[] getElements(Object inputElement) { if( showProjectRoot()) return new Object[]{inputElement}; if( inputElement instanceof IProject ) { IProject tmp = (IProject)inputElement; return PackagesCore.getProjectPackages(tmp, null, false); } return new Object[]{}; } public void dispose() {} public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }