Eclipse plugin 重用Project Explorer';自定义插件项目的视图

Eclipse plugin 重用Project Explorer';自定义插件项目的视图,eclipse-plugin,eclipse-rcp,jface,Eclipse Plugin,Eclipse Rcp,Jface,我正在开发一个eclipse插件,并重用“ProjectExplorer”视图来显示树内容 我有几个问题可以让它尽可能地重复使用: 如何禁用排序-当前“Project Explorer”视图中我不需要的排序树节点。是不是只有一个地方我可以换国旗什么的?或者我必须实现一个视图分类器 如何像保存java项目那样保存项目的扩展状态,我希望为自定义插件项目实现同样的功能 如何将某些节点标记为不显示。我希望在“Project Explorer”视图中隐藏和不显示几个文件夹 插件正在使用向导(INewWiz

我正在开发一个eclipse插件,并重用“ProjectExplorer”视图来显示树内容

我有几个问题可以让它尽可能地重复使用:

  • 如何禁用排序-当前“Project Explorer”视图中我不需要的排序树节点。是不是只有一个地方我可以换国旗什么的?或者我必须实现一个视图分类器

  • 如何像保存java项目那样保存项目的扩展状态,我希望为自定义插件项目实现同样的功能

  • 如何将某些节点标记为不显示。我希望在“Project Explorer”视图中隐藏和不显示几个文件夹

  • 插件正在使用向导(INewWizard)创建一个IProject并向其中添加一些IFolder

    代码段:

    private static IProject createBaseProject(String projectName, URI location) {
            // it is acceptable to use the ResourcesPlugin class
            IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
    
            if (!newProject.exists()) {
                URI projectLocation = location;
                IProjectDescription desc = newProject.getWorkspace().newProjectDescription(newProject.getName());
                if (location != null && ResourcesPlugin.getWorkspace().getRoot().getLocationURI().equals(location)) {
                    projectLocation = null;
                }
    
                desc.setLocationURI(projectLocation);
                try {
                    newProject.create(desc, null);
                    if (!newProject.isOpen()) {
                        newProject.open(null);
                    }
                } catch (CoreException e) {
                    e.printStackTrace();
                }
            }
    
            return newProject;
        }
    
    private static void createFolder(IFolder folder) throws CoreException {
            IContainer parent = folder.getParent();
            if (parent instanceof IFolder) {
                createFolder((IFolder) parent);
            }
            if (!folder.exists()) {
                folder.create(false, true, null);
            }
        }
    

    如果您想自定义自己的ProjectExplorer视图,您需要学习Common Navigator Framework文档和教程,如

    首先解释如何重用ProjectExplorer。你到底在做什么?用快照和代码片段编辑了我的问题这里有两个问题使得回答起来很困难。可以使用“IResource”“setHidden”方法将资源标记为“hidden”,我希望Project Explorer不会显示这些方法。