class ViewContentProvider implements ITreeContentProvider {
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
public Object[] getChildren(Object parentElement) {
System.out.println("getChildren");
if (parentElement instanceof IProject) {
IProject project = (IProject) parentElement;
IFolder folder = project.getFolder("src");
if (folder != null) {;
return folder; // Trying to return a child
}
}
return null;
}
public Object getParent(Object element) {
System.out.println("Get parent");
return ((IResource) element).getParent();
}
public boolean hasChildren(Object element) {
System.out.println("hasChildren");
if (element instanceof IProject) {
IProject project = (IProject) element;
IFolder folder = project.getFolder("src");
if (folder != null) {
return true;
}
}
return false;
}
public Object[] getElements(Object inputElement) {
System.out.println("getElements");
Vector<IProject> projects = new Vector<IProject>();
// Remove closed projects from the array
for (IProject project : workspaceRoot.getProjects()) {
if (project.isOpen()) {
projects.add(project);
}
}
return projects.toArray();
}
public void dispose() {
System.out.println("dispose");
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
// TODO Auto-generated method stub
}
}
class ViewLabelProvider extends LabelProvider {
@Override
public Image getImage(Object element) {
return super.getImage(element);
}
@Override
public String getText(Object element) {
IProjectDescription projectDescription;
try {
projectDescription = ((IProject) element).getDescription();
} catch (CoreException e) {
projectDescription = new ProjectDescription();
e.printStackTrace();
}
return projectDescription.getName();
}
}