| /********************************************************************* |
| * Copyright (c) 2009, 2012 SpringSource, a division of VMware, Inc. |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| **********************************************************************/ |
| |
| package org.eclipse.virgo.ide.runtime.internal.ui.providers; |
| |
| import org.apache.commons.lang.ArrayUtils; |
| import org.eclipse.virgo.ide.runtime.internal.ui.projects.IServerProjectArtefact; |
| import org.eclipse.virgo.ide.runtime.internal.ui.projects.IServerProjectContainer; |
| import org.eclipse.virgo.ide.runtime.internal.ui.projects.ServerProject; |
| import org.eclipse.virgo.ide.runtime.internal.ui.projects.ServerProjectManager; |
| import org.eclipse.wst.server.core.IServer; |
| |
| /** |
| * Common content provider for repository installation nodes. |
| * |
| * @author Miles Parker |
| */ |
| public class FlattenedArtefactsContentProvider extends RuntimeContainersContentProvider { |
| |
| @Override |
| public Object[] getElements(Object inputElement) { |
| |
| /* |
| * while (items.hasNext()) { Object next = items.next(); if (next instanceof IServer) { servers.add((IServer) |
| * next); } if (next instanceof LibrariesNode) { servers.add(((LibrariesNode) next).getServer()); } if (next |
| * instanceof IServerProjectContainer || next instanceof ArtefactSet) { containers.add(next); } if (next |
| * instanceof IArtefact || next instanceof IServerProjectArtefact) { artifacts.add(next); } } |
| */ |
| |
| if (inputElement instanceof IServer) { |
| IServer server = (IServer) inputElement; |
| ServerProject project = ServerProjectManager.getInstance().getProject(server); |
| if (project != null) { |
| IServerProjectContainer[] containers = project.getContainers().toArray(new IServerProjectContainer[0]); |
| Object[] members = new Object[0]; |
| for (IServerProjectContainer container : containers) { |
| Object[] roots = container.getMembers(); |
| members = ArrayUtils.addAll(members, roots); |
| } |
| return members; |
| } |
| } |
| return super.getElements(inputElement); |
| } |
| |
| @Override |
| public Object getParent(Object element) { |
| if (element instanceof IServerProjectArtefact) { |
| return ((IServerProjectArtefact) element).getContainer().getServer(); |
| } |
| return super.getParent(element); |
| } |
| |
| } |