| /********************************************************************** |
| * This file is part of "Object Teams Development Tooling"-Software |
| * |
| * Copyright 2003, 2007 Fraunhofer Gesellschaft, Munich, Germany,
|
| * for its Fraunhofer Institute and Computer Architecture and Software |
| * Technology (FIRST), Berlin, Germany and Technical University Berlin, |
| * Germany. |
| * |
| * This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Please visit http://www.objectteams.org for updates and contact. |
| * |
| * Contributors: |
| * Fraunhofer FIRST - Initial API and implementation |
| * Technical University Berlin - Initial API and implementation |
| **********************************************************************/
|
| package org.eclipse.objectteams.otdt.debug.ui.internal;
|
|
|
| import org.eclipse.core.runtime.IAdapterFactory;
|
| import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
|
| import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
|
| import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider;
|
| import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory;
|
| import org.eclipse.objectteams.otdt.debug.OTDebugElementsContainer; |
| import org.eclipse.objectteams.otdt.debug.TeamInstance; |
| import org.eclipse.objectteams.otdt.debug.ui.internal.model.OTDebugElementsContainerContentProvider; |
| import org.eclipse.objectteams.otdt.debug.ui.internal.model.OTDebugElementsContainerLabelProvider; |
| import org.eclipse.objectteams.otdt.debug.ui.internal.model.OTDefaultModelProxyFactory; |
| import org.eclipse.objectteams.otdt.debug.ui.internal.model.OTVariableColumnFactoryAdapter; |
| import org.eclipse.objectteams.otdt.debug.ui.internal.model.TeamInstanceContentProvider; |
| import org.eclipse.objectteams.otdt.debug.ui.internal.model.TeamInstanceLabelProvider; |
|
|
| /**
|
| * This factory installs our content/label providers into the TeamView
|
| */ |
| @SuppressWarnings("restriction") // team view as variant of variables view needs access to internals
|
| public class OTDebugElementAdapterFactory implements IAdapterFactory
|
| {
|
|
|
| private static IModelProxyFactory fgModelProxyFactoryAdapter= new OTDefaultModelProxyFactory();
|
| private static IColumnPresentationFactory fgVariableColumnFactory = new OTVariableColumnFactoryAdapter();
|
|
|
| private static IElementLabelProvider _LPElementContainer= new OTDebugElementsContainerLabelProvider();
|
| private static IElementLabelProvider _LPTeamInstance= new TeamInstanceLabelProvider();
|
|
|
| private static IElementContentProvider _CPElementContainer= new OTDebugElementsContainerContentProvider();
|
| private static IElementContentProvider _CPTeamInstance= new TeamInstanceContentProvider();
|
|
|
|
|
| public Object getAdapter(Object adaptableObject, Class adapterType)
|
| {
|
| if (adapterType.equals(IElementContentProvider.class))
|
| {
|
| if(adaptableObject instanceof OTDebugElementsContainer)
|
| return _CPElementContainer;
|
|
|
| if(adaptableObject instanceof TeamInstance)
|
| return _CPTeamInstance;
|
| }
|
|
|
| if (adapterType.equals(IElementLabelProvider.class))
|
| {
|
| if(adaptableObject instanceof OTDebugElementsContainer)
|
| return _LPElementContainer;
|
|
|
| if(adaptableObject instanceof TeamInstance)
|
| return _LPTeamInstance;
|
| }
|
| if (adapterType.equals(IModelProxyFactory.class)) {
|
| if (adaptableObject instanceof OTDebugElementsContainer)
|
| return fgModelProxyFactoryAdapter;
|
| }
|
|
|
| if (adapterType.equals(IColumnPresentationFactory.class)) {
|
| if (adaptableObject instanceof OTDebugElementsContainer) {
|
| return fgVariableColumnFactory;
|
| }
|
| }
|
|
|
| return null;
|
| }
|
|
|
| public Class[] getAdapterList()
|
| {
|
| return new Class[]{IElementContentProvider.class,
|
| IElementLabelProvider.class,
|
| IModelProxyFactory.class,
|
| IColumnPresentationFactory.class};
|
| }
|
|
|
| }
|