modeladapter.java

来自「Python Development Environment (Python I」· Java 代码 · 共 38 行

JAVA
38
字号
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{

    public Object getAdapter(Object adaptableObject, Class adapterType) {
        if(adaptableObject instanceof IAdaptable){
            IAdaptable adaptable = (IAdaptable) adaptableObject;
            Object adapter = adaptable.getAdapter(adapterType);
            //System.out.println("Returning adapter:"+adapter+"\tfor:"+adapterType+"\tfor object:"+adaptableObject);
            return adapter;
            
        }
        return null;
    }

    public Class[] getAdapterList() {
        return new Class[]{IWrappedResource.class, ResourceMapping.class, IResource.class, IFolder.class, IFile.class, 
                IContainer.class, IContributorResourceAdapter.class, IProject.class};
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?