| /******************************************************************************* |
| * Copyright (c) 2015 Composent, Inc. 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: Scott Lewis - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.ecf.remoteserviceadmin.ui.rsa.model; |
| |
| import org.eclipse.core.runtime.IAdapterFactory; |
| import org.eclipse.ui.model.IWorkbenchAdapter; |
| import org.eclipse.ui.model.IWorkbenchAdapter2; |
| import org.eclipse.ui.model.IWorkbenchAdapter3; |
| |
| /** |
| * @since 3.3 |
| */ |
| public class RSAAdapterFactory implements IAdapterFactory { |
| |
| private ExportedServicesRootNodeWorkbenchAdapter exportedServicesRootAdapter = new ExportedServicesRootNodeWorkbenchAdapter(); |
| private ImportedEndpointsRootNodeWorkbenchAdapter importedEndpointsRootAdapter = new ImportedEndpointsRootNodeWorkbenchAdapter(); |
| private ExportRegistrationNodeWorkbenchAdapter exportRegistrationAdapter = new ExportRegistrationNodeWorkbenchAdapter(); |
| private ImportRegistrationNodeWorkbenchAdapter importRegistrationAdapter = new ImportRegistrationNodeWorkbenchAdapter(); |
| private NameValuePropertyNodeWorkbenchAdapter nameValuePropertyAdapter = new NameValuePropertyNodeWorkbenchAdapter(); |
| private EndpointDescriptionRSANodeWorkbenchAdapter edAdapter = new EndpointDescriptionRSANodeWorkbenchAdapter(); |
| private ExceptionNodeWorkbenchAdapter enAdapter = new ExceptionNodeWorkbenchAdapter(); |
| |
| @Override |
| public Object getAdapter(Object adaptableObject, @SuppressWarnings("rawtypes") Class adapterType) { |
| if (adapterType.isInstance(adaptableObject)) { |
| return adaptableObject; |
| } |
| if (adapterType == IWorkbenchAdapter.class || adapterType == IWorkbenchAdapter2.class |
| || adapterType == IWorkbenchAdapter3.class) { |
| return getWorkbenchElement(adaptableObject); |
| } |
| return null; |
| } |
| |
| protected Object getWorkbenchElement(Object adaptableObject) { |
| if (adaptableObject instanceof ExceptionNode || adaptableObject instanceof StackTraceElementNode) |
| return enAdapter; |
| if (adaptableObject instanceof ExportedServicesRootNode) |
| return exportedServicesRootAdapter; |
| if (adaptableObject instanceof ImportedEndpointsRootNode) |
| return importedEndpointsRootAdapter; |
| if (adaptableObject instanceof ExportRegistrationNode) |
| return exportRegistrationAdapter; |
| if (adaptableObject instanceof ImportRegistrationNode) |
| return importRegistrationAdapter; |
| if (adaptableObject instanceof NameValuePropertyNode) |
| return nameValuePropertyAdapter; |
| if (adaptableObject instanceof EndpointDescriptionRSANode) |
| return edAdapter; |
| return null; |
| } |
| |
| @SuppressWarnings("rawtypes") |
| @Override |
| public Class[] getAdapterList() { |
| return new Class[] { IWorkbenchAdapter.class, IWorkbenchAdapter2.class, IWorkbenchAdapter3.class }; |
| } |
| |
| } |