/******************************************************************************* * Copyright (c) 2003, 2005 IBM Corporation and others. * 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.internal.provider; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jst.j2ee.ejb.ExcludeList; import org.eclipse.jst.j2ee.ejb.MethodPermission; import org.eclipse.jst.j2ee.ejb.MethodTransaction; import org.eclipse.jst.j2ee.ejb.internal.impl.EjbFactoryImpl; import org.eclipse.jst.j2ee.internal.ejb.provider.AbstractMethodsContentProvider; import org.eclipse.jst.j2ee.internal.ejb.provider.ExcludeListContentProvider; import org.eclipse.jst.j2ee.internal.ejb.provider.MethodPermissionsContentProvider; import org.eclipse.jst.j2ee.internal.ejb.provider.MethodTransactionContentProvider; public class MethodsProviderDelegate implements ITreeContentProvider { protected ExcludeListContentProvider excludeListContentProvider; protected MethodPermissionsContentProvider methodPermissionsContentProvider; protected MethodTransactionContentProvider methodTransactionContentProvider; protected static EObject EL_META = EjbFactoryImpl.getPackage().getExcludeList(); protected static EObject MP_META = EjbFactoryImpl.getPackage().getMethodPermission(); protected static EObject MT_META = EjbFactoryImpl.getPackage().getMethodTransaction(); public static boolean providesContentFor(Object object) { return object instanceof AbstractMethodsContentProvider.EJBMethodItem || object instanceof MethodPermission || object instanceof MethodTransaction || object instanceof ExcludeList; } public MethodsProviderDelegate(AdapterFactory adapterFactory) { super(); excludeListContentProvider = new ExcludeListContentProvider(adapterFactory, false); methodPermissionsContentProvider = new MethodPermissionsContentProvider(adapterFactory, false); methodTransactionContentProvider = new MethodTransactionContentProvider(adapterFactory, false); } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ public void dispose() { if (excludeListContentProvider != null) excludeListContentProvider.dispose(); if (methodPermissionsContentProvider != null) methodPermissionsContentProvider.dispose(); if (methodTransactionContentProvider != null) methodTransactionContentProvider.dispose(); } public AbstractMethodsContentProvider getContentProvider(Object object) { EObject metaClass = null; if (object instanceof AbstractMethodsContentProvider.EJBMethodItem) metaClass = ((AbstractMethodsContentProvider.EJBMethodItem) object).refObject.eClass(); else metaClass = ((EObject) object).eClass(); if (metaClass == EL_META) return excludeListContentProvider; else if (metaClass == MP_META) return methodPermissionsContentProvider; else if (metaClass == MT_META) return methodTransactionContentProvider; return null; } /** * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer, Object, Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { excludeListContentProvider.inputChanged(viewer, oldInput, newInput); methodPermissionsContentProvider.inputChanged(viewer, oldInput, newInput); methodTransactionContentProvider.inputChanged(viewer, oldInput, newInput); } /** * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(Object) */ public Object[] getChildren(Object parentElement) { AbstractMethodsContentProvider prov = getContentProvider(parentElement); return prov == null ? null : prov.getChildren(parentElement); } /** * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(Object) */ public Object getParent(Object element) { AbstractMethodsContentProvider prov = getContentProvider(element); return prov == null ? null : prov.getParent(element); } /** * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(Object) */ public boolean hasChildren(Object element) { AbstractMethodsContentProvider prov = getContentProvider(element); return prov != null && prov.hasChildren(element); } /** * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object) */ public Object[] getElements(Object inputElement) { AbstractMethodsContentProvider prov = getContentProvider(inputElement); return prov == null ? null : prov.getElements(inputElement); } }