1 /******************************************************************************* 2 * Copyright (c) 2000, 2015 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.ui.model; 15 16 import org.eclipse.core.runtime.Adapters; 17 import org.eclipse.jface.viewers.ITreeContentProvider; 18 import org.eclipse.jface.viewers.Viewer; 19 20 /** 21 * Tree content provider for objects that can be adapted to the interface 22 * {@link org.eclipse.ui.model.IWorkbenchAdapter IWorkbenchAdapter}. 23 * <p> 24 * This class may be instantiated, or subclassed. 25 * </p> 26 * 27 * @see IWorkbenchAdapter 28 * @since 3.0 29 */ 30 public class BaseWorkbenchContentProvider implements ITreeContentProvider { 31 32 /** 33 * Creates a new workbench content provider. 34 * 35 */ BaseWorkbenchContentProvider()36 public BaseWorkbenchContentProvider() { 37 super(); 38 } 39 40 @Override dispose()41 public void dispose() { 42 // do nothing 43 } 44 45 /** 46 * Returns the implementation of IWorkbenchAdapter for the given object. Returns 47 * null if the adapter is not defined or the object is not adaptable. 48 * 49 * @param element the element 50 * @return the corresponding workbench adapter object 51 */ getAdapter(Object element)52 protected IWorkbenchAdapter getAdapter(Object element) { 53 return Adapters.adapt(element, IWorkbenchAdapter.class); 54 } 55 56 @Override getChildren(Object element)57 public Object[] getChildren(Object element) { 58 IWorkbenchAdapter adapter = getAdapter(element); 59 if (adapter != null) { 60 return adapter.getChildren(element); 61 } 62 return new Object[0]; 63 } 64 65 @Override getElements(Object element)66 public Object[] getElements(Object element) { 67 return getChildren(element); 68 } 69 70 @Override getParent(Object element)71 public Object getParent(Object element) { 72 IWorkbenchAdapter adapter = getAdapter(element); 73 if (adapter != null) { 74 return adapter.getParent(element); 75 } 76 return null; 77 } 78 79 @Override hasChildren(Object element)80 public boolean hasChildren(Object element) { 81 return getChildren(element).length > 0; 82 } 83 84 @Override inputChanged(Viewer viewer, Object oldInput, Object newInput)85 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 86 // do nothing 87 } 88 89 } 90