/** * Copyright (c) 2005-2012 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.navigator; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.mapping.ResourceMapping; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.ui.IContributorResourceAdapter; import org.python.pydev.navigator.elements.IWrappedResource; /** * This adapter factory is needed for the pydev package explorer (no, it's not enough that the objects themselves are * adaptable, there must be a factory to make that visible to it). * * @author Fabio */ public class ModelAdapter implements IAdapterFactory { @Override public <T> T getAdapter(Object adaptableObject, Class<T> adapterType) { if (adaptableObject instanceof IAdaptable) { IAdaptable adaptable = (IAdaptable) adaptableObject; T adapter = adaptable.getAdapter(adapterType); //System.out.println("Returning adapter:"+adapter+"\tfor:"+adapterType+"\tfor object:"+adaptableObject); return adapter; } return null; } @Override public Class<?>[] getAdapterList() { return new Class[] { IWrappedResource.class, ResourceMapping.class, IResource.class, IFolder.class, IFile.class, IContainer.class, IContributorResourceAdapter.class, IProject.class }; } }