2 * Copyright (c) 2003-2004 Alex Fitzpatrick and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v10.html
9 * Alex Fitzpatrick - initial implementation
11 * $Id: JSClassesViewContentProvider.java,v 1.1 2004-09-02 18:23:49 jsurfer Exp $
14 package net.sourceforge.phpeclipse.js.ui.views;
16 import net.sourceforge.phpeclipse.js.core.model.JSElement;
17 import net.sourceforge.phpeclipse.js.core.parser.JSSyntaxModelFactory;
19 import org.eclipse.core.resources.IProject;
20 import org.eclipse.core.resources.IWorkspace;
21 import org.eclipse.core.resources.ResourcesPlugin;
22 import org.eclipse.jface.viewers.IStructuredContentProvider;
23 import org.eclipse.jface.viewers.ITreeContentProvider;
24 import org.eclipse.jface.viewers.Viewer;
27 * Content provider for the JavaScript classes view.
29 class JSClassesViewContentProvider
30 implements IStructuredContentProvider, ITreeContentProvider {
31 private IWorkspace invisibleRoot;
36 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
37 * java.lang.Object, java.lang.Object)
39 public void inputChanged(Viewer v, Object oldInput, Object newInput) {
44 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
46 public void dispose() {
51 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
53 public Object[] getElements(Object parent) {
54 if (parent.equals(ResourcesPlugin.getWorkspace())) {
55 if (invisibleRoot == null)
56 invisibleRoot = ((IWorkspace) parent);
57 return getChildren(invisibleRoot);
59 return getChildren(parent);
64 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
66 public Object getParent(Object child) {
67 if (child instanceof IProject) {
68 return ((IProject) child).getWorkspace();
71 if (child instanceof JSElement) {
72 return ((JSElement) child).getParent(child);
79 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
81 public Object[] getChildren(Object parent) {
83 if (parent instanceof IWorkspace) {
84 return invisibleRoot.getRoot().getProjects();
87 if (parent instanceof IProject) {
88 return getClasses((IProject) parent);
91 if (parent instanceof JSElement) {
92 return ((JSElement) parent).getChildren(parent);
101 private Object[] getClasses(IProject project) {
102 return JSSyntaxModelFactory
104 .getContentOutline(project)
111 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
113 public boolean hasChildren(Object parent) {
114 return getChildren(parent).length > 0;