| /******************************************************************************* |
| * 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 |
| *******************************************************************************/ |
| /* |
| * Created on Jan 19, 2004 |
| * |
| * To change the template for this generated file go to |
| * Window - Preferences - Java - Code Generation - Code and Comments |
| */ |
| package org.eclipse.jst.j2ee.internal.webservice; |
| |
| import org.eclipse.core.resources.IFile; |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.emf.common.notify.AdapterFactory; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.emf.ecore.resource.Resource; |
| import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; |
| import org.eclipse.jem.util.emf.workbench.ProjectUtilities; |
| import org.eclipse.jface.viewers.ILabelProviderListener; |
| import org.eclipse.jst.j2ee.ejb.Session; |
| import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin; |
| import org.eclipse.jst.j2ee.internal.webservice.helper.WebServicesManager; |
| import org.eclipse.jst.j2ee.internal.webservices.WSDLServiceExtManager; |
| import org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper; |
| import org.eclipse.jst.j2ee.webservice.wsclient.ServiceRef; |
| import org.eclipse.jst.j2ee.webservice.wsdd.EJBLink; |
| import org.eclipse.jst.j2ee.webservice.wsdd.Handler; |
| import org.eclipse.jst.j2ee.webservice.wsdd.PortComponent; |
| import org.eclipse.jst.j2ee.webservice.wsdd.ServiceImplBean; |
| import org.eclipse.jst.j2ee.webservice.wsdd.ServletLink; |
| import org.eclipse.jst.j2ee.webservice.wsdd.WSDLPort; |
| import org.eclipse.jst.j2ee.webservice.wsdd.WebServiceDescription; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper; |
| import org.eclipse.wst.common.internal.emfworkbench.integration.DynamicAdapterFactory; |
| |
| /** |
| * @author jlanuti |
| * |
| * To change the template for this generated type comment go to Window - Preferences - Java - Code |
| * Generation - Code and Comments |
| */ |
| public class WebServicesNavigatorLabelProvider extends AdapterFactoryLabelProvider { |
| |
| private final static String VIEWER_ID = "org.eclipse.wst.navigator.ui.WTPCommonNavigator";//$NON-NLS-1$ |
| |
| public WebServicesNavigatorLabelProvider() { |
| super(createAdapterFactory()); |
| } |
| |
| /** |
| * Configure and return a composite adapter factory for our contents |
| */ |
| public static AdapterFactory createAdapterFactory() { |
| return new DynamicAdapterFactory(VIEWER_ID); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) |
| */ |
| @Override |
| public Image getImage(Object element) { |
| WSDLServiceHelper serviceHelper = WSDLServiceExtManager.getServiceHelper(); |
| if (element instanceof WebServiceNavigatorGroup) |
| return J2EEUIPlugin.getDefault().getImage("webServicesFolder_obj"); //$NON-NLS-1$ |
| else if (element instanceof String) |
| return J2EEUIPlugin.getDefault().getImage("wsdl"); //$NON-NLS-1$ |
| else if (element instanceof WebServiceNavigatorGroupType) |
| return J2EEUIPlugin.getDefault().getImage("folder"); //$NON-NLS-1$ |
| else if (serviceHelper.isService(element)) { |
| if (WebServicesManager.getInstance().isServiceInternal((EObject) element)) |
| return J2EEUIPlugin.getDefault().getImage("webServiceItemProvider_obj"); //$NON-NLS-1$ |
| return J2EEUIPlugin.getDefault().getImage("extwebserviceitemprovider_obj"); //$NON-NLS-1$ |
| } else if (serviceHelper.isWSDLResource(element)) |
| return J2EEUIPlugin.getDefault().getImage("wsdl"); //$NON-NLS-1$ |
| else |
| return super.getImage(element); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) |
| */ |
| @Override |
| public String getText(Object element) { |
| WSDLServiceHelper serviceHelper = WSDLServiceExtManager.getServiceHelper(); |
| String space = " "; //$NON-NLS-1$ |
| if (element instanceof WebServiceDescription) |
| return getWebServiceDescriptionText((WebServiceDescription) element); |
| else if (element instanceof PortComponent) |
| return WebServiceUIResourceHandler.PORT_UI_ + space + super.getText(element); |
| else if (element instanceof Handler) |
| return WebServiceUIResourceHandler.HANDLER_UI_ + space + super.getText(element); |
| else if (element instanceof WSDLPort) |
| return WebServiceUIResourceHandler.WSDL_PORT_UI_ + space + super.getText(element); |
| else if (element instanceof ServiceImplBean) |
| return WebServiceUIResourceHandler.SERVICE_CLASSES_UI_; |
| else if (element instanceof EJBLink) |
| return WebServiceUIResourceHandler.SERVICE_IMPL_UI_ + space + super.getText(element); |
| else if (element instanceof ServletLink) |
| return WebServiceUIResourceHandler.SERVICE_IMPL_UI_ + space + super.getText(element); |
| else if (serviceHelper.isService(element)) |
| return serviceHelper.getServiceLocalPart(element); |
| else if (serviceHelper.isWSDLResource(element)) { |
| String result = ""; //$NON-NLS-1$ |
| IFile file = WorkbenchResourceHelper.getFile((Resource) element); |
| if (file != null && file.exists()) |
| result = file.getFullPath().toString(); |
| else |
| result = ((Resource) element).getURI().toString(); |
| return WebServiceUIResourceHandler.WSDL_UI_ + space + result; |
| } else if (element instanceof ServiceRef) { |
| String beanName14 = ""; //$NON-NLS-1$ |
| if (WebServicesManager.getInstance().isJ2EE14((ServiceRef) element)) { |
| if (((ServiceRef) element).eContainer() instanceof Session) |
| beanName14 = ((Session) ((ServiceRef) element).eContainer()).getName() + ": "; //$NON-NLS-1$ |
| } |
| IProject refProj = ProjectUtilities.getProject((ServiceRef) element); |
| return (refProj != null) ? refProj.getName() : "" + ": " + beanName14 //$NON-NLS-1$ //$NON-NLS-2$ |
| + ((ServiceRef) element).getServiceRefName(); |
| } else |
| return super.getText(element); |
| } |
| |
| /** |
| * get text for web service |
| */ |
| private String getWebServiceDescriptionText(WebServiceDescription description) { |
| Resource res = description.eResource(); |
| IProject project = null; |
| String projString = ""; //$NON-NLS-1$ |
| if (res != null) |
| project = WorkbenchResourceHelper.getProject(res); |
| if (project != null) |
| projString = project.getName() + ": "; //$NON-NLS-1$ |
| return projString + super.getText(description); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) |
| */ |
| @Override |
| public void addListener(ILabelProviderListener listener) { |
| // TODO add any listeners? |
| |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() |
| */ |
| @Override |
| public void dispose() { |
| // TODO handle dispose |
| |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, |
| * java.lang.String) |
| */ |
| @Override |
| public boolean isLabelProperty(Object element, String property) { |
| // TODO do something smart here? |
| return false; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener) |
| */ |
| @Override |
| public void removeListener(ILabelProviderListener listener) { |
| // TODO how do we remove listeners? |
| |
| } |
| |
| } |