/******************************************************************************* * Copyright (c) 2009 SpringSource, a divison of VMware, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SpringSource, a division of VMware, Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.virgo.ide.runtime.internal.ui; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.virgo.ide.bundlerepository.domain.ArtefactRepository; import org.eclipse.virgo.ide.bundlerepository.domain.BundleArtefact; import org.eclipse.virgo.ide.bundlerepository.domain.LibraryArtefact; import org.eclipse.virgo.ide.runtime.internal.ui.RepositoryViewerUtils.Bundles; import org.eclipse.virgo.ide.runtime.internal.ui.RepositoryViewerUtils.Libraries; /** * @author Christian Dupuis */ public class RepositorySearchResultContentProvider implements ITreeContentProvider { private Bundles bundles = null; private Libraries libraries = null; public void dispose() { } public Object[] getChildren(Object parentElement) { if (parentElement instanceof Bundles) { bundles = ((Bundles) parentElement); List<Object> children = new ArrayList<Object>(); children.addAll(bundles.getBundles()); return children.toArray(); } else if (parentElement instanceof Libraries) { libraries = ((Libraries) parentElement); List<Object> children = new ArrayList<Object>(); children.addAll(libraries.getLibraries()); return children.toArray(); } return new Object[0]; } public Object[] getElements(Object inputElement) { if (inputElement instanceof ArtefactRepository) { Object[] children = new Object[2]; children[0] = new Bundles(((ArtefactRepository) inputElement).getBundles()); children[1] = new Libraries(((ArtefactRepository) inputElement).getLibraries()); return children; } return new Object[0]; } public Object getParent(Object element) { if (element instanceof BundleArtefact) { return bundles; } else if (element instanceof LibraryArtefact) { return libraries; } return null; } public boolean hasChildren(Object element) { return getChildren(element).length > 0; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }