/*******************************************************************************
* Copyright (c) 2009, 2012 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.providers;
import org.eclipse.core.resources.IFile;
import org.eclipse.virgo.ide.runtime.core.artefacts.ArtefactSet;
import org.eclipse.virgo.ide.runtime.core.artefacts.IArtefact;
import org.eclipse.virgo.ide.runtime.core.artefacts.LocalArtefactSet;
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;
/**
* @author Miles Parker
* @author Christian Dupuis
*/
public class RuntimeFullLabelProvider extends RuntimeLabelProvider {
@Override
public String getText(Object element) {
if (element instanceof IServerProjectArtefact) {
return getText(((IServerProjectArtefact) element).getContainer()) + " - " + getText(((IServerProjectArtefact) element).getArtefact());
}
if (element instanceof IServerProjectContainer) {
return getText(((IServerProjectContainer) element).getServer()) + " - " + getText(((IServerProjectContainer) element).getArtefactSet());
}
if (element instanceof LibrariesNode) {
return getText(((LibrariesNode) element).getServer()) + " " + 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);
}
}