blob: 640b6aba042512e1e7c7c49042a31b3471cff390 [file] [log] [blame]
package org.eclipse.jdt.internal.debug.ui.launcher;
/**********************************************************************
Copyright (c) 2000, 2002 IBM Corp. All rights reserved.
This file is made available under the terms of the Common Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v10.html
**********************************************************************/
import java.io.File;
import java.util.zip.ZipFile;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.internal.ui.JavaPluginImages;
import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jdt.launching.sourcelookup.LocalFileStorage;
import org.eclipse.jdt.launching.sourcelookup.ZipEntryStorage;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
/**
* A label provider for source element qaulifiers found with a JavaSourceLocator
*/
public class SourceElementQualifierProvider extends LabelProvider implements ILabelProvider {
/**
* @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
*/
public String getText(Object element) {
if (element instanceof IJavaElement) {
IJavaProject project = ((IJavaElement)element).getJavaProject();
return project.getElementName();
} else if (element instanceof ZipEntryStorage) {
ZipEntryStorage storage = (ZipEntryStorage)element;
ZipFile zipFile = storage.getArchive();
IPath path = new Path(zipFile.getName());
IRuntimeClasspathEntry entry = JavaRuntime.newArchiveRuntimeClasspathEntry(path);
IResource res = entry.getResource();
if (res == null) {
// external
return zipFile.getName();
} else {
// intenral
return res.getName();
}
} else if (element instanceof LocalFileStorage) {
LocalFileStorage storage = (LocalFileStorage)element;
File extFile = storage.getFile();
IPath path = new Path(extFile.getAbsolutePath());
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
if (file == null) {
// external
return extFile.getParent();
} else {
// internal
return file.getProject().getName();
}
}
return super.getText(element);
}
/**
* @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
*/
public Image getImage(Object element) {
if (element instanceof IJavaElement) {
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_PROJECT);
} else if (element instanceof ZipEntryStorage) {
return JavaPluginImages.get(JavaPluginImages.IMG_OBJS_JAR_WSRC);
} else if (element instanceof LocalFileStorage) {
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
}
return super.getImage(element);
}
}