| /********************************************************************* |
| * 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.eclipse.core.resources.IFile; |
| import org.eclipse.jdt.internal.ui.JavaPlugin; |
| import org.eclipse.jdt.internal.ui.JavaPluginImages; |
| import org.eclipse.jface.viewers.LabelProvider; |
| import org.eclipse.pde.internal.ui.PDEPlugin; |
| import org.eclipse.pde.internal.ui.PDEPluginImages; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.ui.ISharedImages; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.virgo.ide.runtime.core.artefacts.ArtefactSet; |
| import org.eclipse.virgo.ide.runtime.core.artefacts.ArtefactType; |
| import org.eclipse.virgo.ide.runtime.core.artefacts.IArtefact; |
| import org.eclipse.virgo.ide.runtime.core.artefacts.IArtefactTyped; |
| import org.eclipse.virgo.ide.runtime.core.artefacts.LocalArtefactSet; |
| import org.eclipse.virgo.ide.runtime.core.artefacts.LocalBundleArtefact; |
| import org.eclipse.virgo.ide.runtime.internal.ui.ServerUiImages; |
| import org.eclipse.virgo.ide.runtime.internal.ui.editor.Messages; |
| 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.ProjectFileReference; |
| |
| /** |
| * @author Miles Parker |
| * @author Christian Dupuis |
| */ |
| public class RuntimeLabelProvider extends LabelProvider { |
| |
| @Override |
| public Image getImage(Object element) { |
| if (element instanceof IServerProjectArtefact) { |
| return getImage(((IServerProjectArtefact) element).getArtefact()); |
| } |
| if (element instanceof IServerProjectContainer) { |
| return getImage(((IServerProjectContainer) element).getArtefactSet()); |
| } |
| if (element instanceof ProjectFileReference) { |
| return ServerUiImages.getImage(ServerUiImages.IMG_OBJ_VIRGO); |
| } |
| if (element instanceof ArtefactSet) { |
| ArtefactType artefactType = ((IArtefactTyped) element).getArtefactType(); |
| if (artefactType == ArtefactType.BUNDLE) { |
| return PDEPlugin.getDefault().getLabelProvider().get(PDEPluginImages.DESC_JAR_LIB_OBJ); |
| } else if (artefactType == ArtefactType.LIBRARY) { |
| return ServerUiImages.getImage(ServerUiImages.IMG_OBJ_VIRGO_LIB); |
| } |
| } |
| if (element instanceof IFile) { |
| return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE); |
| } |
| if (element instanceof IArtefactTyped) { |
| ArtefactType artefactType = ((IArtefactTyped) element).getArtefactType(); |
| if (artefactType == ArtefactType.BUNDLE) { |
| if (element instanceof LocalBundleArtefact && ((LocalBundleArtefact) element).isSourceDownloaded()) { |
| return JavaPlugin.getImageDescriptorRegistry().get(JavaPluginImages.DESC_OBJS_EXTJAR_WSRC); |
| } |
| return JavaPlugin.getImageDescriptorRegistry().get(JavaPluginImages.DESC_OBJS_EXTJAR); |
| } else if (artefactType == ArtefactType.LIBRARY) { |
| return ServerUiImages.getImage(ServerUiImages.IMG_OBJ_VIRGO_FILE); |
| } |
| } |
| if (element instanceof LibrariesNode) { |
| return ServerUiImages.getImage(ServerUiImages.IMG_OBJ_LIB); |
| } |
| return super.getImage(element); |
| } |
| |
| @Override |
| public String getText(Object element) { |
| if (element instanceof IServerProjectArtefact) { |
| return getText(((IServerProjectArtefact) element).getArtefact()); |
| } |
| if (element instanceof IServerProjectContainer) { |
| return getText(((IServerProjectContainer) element).getArtefactSet()); |
| } |
| if (element instanceof LibrariesNode) { |
| return Messages.RepositoryBrowserEditorPage_BundlesAndLibraries; |
| } |
| if (element instanceof IFile) { |
| return ((IFile) element).getName(); |
| } |
| if (element instanceof ArtefactSet) { |
| ArtefactSet set = (ArtefactSet) element; |
| String label = set.getArtefactType().getPluralLabel(); |
| if (element instanceof LocalArtefactSet) { |
| label = ((LocalArtefactSet) element).getRelativePath() + " [" + label + "]"; |
| } |
| return label; |
| } else if (element instanceof IArtefact) { |
| IArtefact version = (IArtefact) element; |
| StringBuilder l = new StringBuilder(); |
| if (version.getName() != null) { |
| l.append(version.getName()); |
| l.append(" - "); |
| } |
| l.append(version.getSymbolicName()); |
| l.append(" ("); |
| l.append(version.getVersion()); |
| l.append(")"); |
| return l.toString(); |
| } |
| return super.getText(element); |
| } |
| |
| } |