/******************************************************************************* * This file is part of the Symfony eclipse plugin. * * (c) Robert Gruendler <r.gruendler@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. ******************************************************************************/ package com.dubture.symfony.ui.views; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.dltk.core.DLTKCore; import org.eclipse.dltk.core.IScriptProject; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import com.dubture.symfony.core.model.Bundle; import com.dubture.symfony.core.model.Service; import com.dubture.symfony.core.model.SymfonyModelAccess; public class ServiceContentProviderBundleView implements ITreeContentProvider { private SymfonyModelAccess model = SymfonyModelAccess.getDefault(); private static Object[] EMTPY = {}; @Override public void dispose() { model = null; } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @Override public Object[] getElements(Object inputElement) { return ResourcesPlugin.getWorkspace().getRoot().getProjects(); } @Override public Object[] getChildren(Object parentElement) { if (parentElement instanceof IProject) { IProject project = (IProject) parentElement; IScriptProject sProject = DLTKCore.create(project); List<Bundle> bundles = model.findBundles(sProject); return bundles.toArray(); } else if (parentElement instanceof Bundle) { Bundle bundle = (Bundle) parentElement; List<Service> services = model.findServices(bundle.getPath()); return services.toArray(); } return EMTPY; } @Override public Object getParent(Object element) { return null; } @Override public boolean hasChildren(Object element) { if (element instanceof IProject || element instanceof Bundle) return true; return false; } }