1 /******************************************************************************* 2 * Copyright (c) 2000, 2008 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.jdt.internal.ui; 15 16 17 import org.eclipse.jface.resource.ImageDescriptor; 18 19 import org.eclipse.ui.model.IWorkbenchAdapter; 20 21 import org.eclipse.jdt.core.IJavaElement; 22 import org.eclipse.jdt.core.IParent; 23 import org.eclipse.jdt.core.JavaModelException; 24 25 import org.eclipse.jdt.ui.JavaElementLabels; 26 27 import org.eclipse.jdt.internal.ui.javaeditor.IClassFileEditorInput; 28 import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider; 29 30 /** 31 * An imlementation of the IWorkbenchAdapter for IJavaElements. 32 */ 33 public class JavaWorkbenchAdapter implements IWorkbenchAdapter { 34 35 protected static final Object[] NO_CHILDREN= new Object[0]; 36 37 private JavaElementImageProvider fImageProvider; 38 JavaWorkbenchAdapter()39 public JavaWorkbenchAdapter() { 40 fImageProvider= new JavaElementImageProvider(); 41 } 42 43 @Override getChildren(Object element)44 public Object[] getChildren(Object element) { 45 IJavaElement je= getJavaElement(element); 46 if (je instanceof IParent) { 47 try { 48 return ((IParent)je).getChildren(); 49 } catch(JavaModelException e) { 50 JavaPlugin.log(e); 51 } 52 } 53 return NO_CHILDREN; 54 } 55 56 @Override getImageDescriptor(Object element)57 public ImageDescriptor getImageDescriptor(Object element) { 58 IJavaElement je= getJavaElement(element); 59 if (je != null) 60 return fImageProvider.getJavaImageDescriptor(je, JavaElementImageProvider.OVERLAY_ICONS | JavaElementImageProvider.SMALL_ICONS); 61 62 return null; 63 64 } 65 66 @Override getLabel(Object element)67 public String getLabel(Object element) { 68 return JavaElementLabels.getTextLabel(getJavaElement(element), JavaElementLabels.ALL_DEFAULT); 69 } 70 71 @Override getParent(Object element)72 public Object getParent(Object element) { 73 IJavaElement je= getJavaElement(element); 74 return je != null ? je.getParent() : null; 75 } 76 getJavaElement(Object element)77 private IJavaElement getJavaElement(Object element) { 78 if (element instanceof IJavaElement) 79 return (IJavaElement)element; 80 if (element instanceof IClassFileEditorInput) 81 return ((IClassFileEditorInput)element).getClassFile().getPrimaryElement(); 82 83 return null; 84 } 85 } 86