`

过滤第三方插件扩展点

 
阅读更多
    在开发rcp过程中,不可避免的需要加入第三方插件,与此同时会引入很多我们不想要的扩展点,不改动源码包的情况下我们可以选择用代码的方式过滤不想要的扩展点。
    我们可以在我们定义的WorkbenchWindowAdvisor的postWindowStart()方法中对这些第三方扩展点进行过滤。

    第一种情况,过滤主菜单、工具栏。eclipse机制中的IWorkbenchWindow里面保存了菜单、工具栏等相关信息,我们可通过它来移除IContributionItem(可通过传入IContributionItem实例或者对应的ID),下面以过滤CoolBar来作为示例。
    
    static void filterCoolbar(IWorkbenchWindow window){
        CoolBarManager cbm = window.getCoolBarManager();
        cbm.remove("org.eclipse.ui.workbench.navigate");
    }
    

    上面的代码过滤了工具栏中的导航菜单。
     这个“org.eclipse.ui.workbench.navigate”id如何获取得到呢?我们可以通过以下代码:
   
    for(IContributionItem item : cbm.getItems()){
        System.out.println(item.getId());
    }
    

    输出所有的ID。

    第二种情况,直接过滤扩展点,例如说首选项、透视图、视图;下面以过滤视图的代码为例子。
   
    static void filterViews() {
        IViewRegistry viewRegistry = WorkbenchPlugin.getDefault()
				    .getViewRegistry();

        IViewDescriptor[] descriptors = viewRegistry.getViews();

        List<String> needIDs = new ArrayList<String>();
        needIDs.add("org.eclipse.ui.views.ContentOutline");

        for (IViewDescriptor descriptor : descriptors) {
            ViewDescriptor vDescriptor = (ViewDescriptor)descriptor;

            if (!needIDs.contains(vDescriptor.getId())) {
                IExtension extension = vDescriptor.getConfigurationElement().getDeclaringExtension();         
                ((ViewRegistry) viewRegistry).removeExtension(extension,new Object[] { descriptor });
			}
		}
	}
    

    上述代码功能是将除大纲视图外的所有视图对应扩展点过滤,其它类似的扩展点可通过类似代码解决。
分享到:
评论

相关推荐

    C#开发全套31个UI组件Winform 开源共享,winform第三方开源ui库,C#

    WinForms提供了一个丰富的控件库,但有时为了实现更加美观或者功能强大的界面,开发者可能会寻求第三方UI库来扩展其功能。本资源就是一个专注于C# WinForm的开源UI组件集合,包含31个不同类型的UI组件,为开发者提供...

    不同风格的VB第三方控件

    以下是一些关于不同风格VB第三方控件的知识点: 1. **控件类型与功能**: - **图表控件**:提供数据可视化功能,如条形图、饼图、线图,用于数据分析和展示。 - **日历控件**:允许用户选择日期,常见于日期输入...

    操作数据库的第三方插件,你可以很好的操作其他数据库

    标题中的“操作数据库的第三方插件”指的是用于与数据库交互的非原生工具,这些工具通常由独立软件开发商创建,以提供更丰富的功能、更好的用户体验或支持多种类型的数据库。这样的插件可以极大地提升数据库管理、...

    C#第三方控件及皮肤

    在C#编程中,开发人员经常使用第三方控件和皮肤来提升应用程序的用户界面(UI)体验,使得软件看起来更加专业且吸引人。WinForms是.NET Framework中的一个GUI(图形用户界面)应用开发平台,提供了丰富的控件集,但...

    基于WINCC组态软件和第三方自动化设备的数据访问和记录方法.rar

    《基于WINCC组态软件和第三方自动化设备的数据访问与记录方法》 在现代工业自动化领域,数据采集、处理和分析是提升生产效率和质量的关键环节。西门子的WINCC(Windows Control Center)是一款强大的人机界面(HMI...

    文件工具集.zip--数据恢复 快捷搜索 校验文件 快速复制 第三方资源管理器......

    虽然操作系统内置的搜索功能已经相当强大,但第三方工具通常提供更高级的过滤选项和更快的搜索速度。这样的工具可能支持模糊匹配、正则表达式搜索,甚至可以索引文件内容,让查找特定文件变得轻而易举。 4. **快速...

    按键精灵的懒人插件12

    懒人插件是按键精灵用户为了简化和增强其功能而开发的一系列第三方插件之一,通常包含了一些预设的脚本、模板或者工具,使得非编程背景的用户也能方便地创建和运行自动化脚本。这个"lxj_Plug.dll"文件很可能是懒人...

    DirectShow 插件文件

    6. **第三方插件**:除了Microsoft官方提供的插件外,还有许多第三方插件可增强DirectShow的功能。这些插件可能需要额外的配置步骤,如下载、安装和注册。 7. **多线程和性能**:由于DirectShow常用于实时媒体处理...

    屏蔽百度推广chrome插件.7z

    安装任何第三方插件都可能带来潜在的风险,例如数据泄露或恶意软件。因此,务必从可信赖的源获取插件,并保持插件的更新,以防止已知漏洞被利用。 总结来说,"屏蔽百度推广chrome插件"是一种实用工具,旨在提供更...

    c#log日志类和日志分析器(源码)

    在C#中,有多种方式实现日志记录,例如使用System.Diagnostics.Trace和Debug类,或者使用第三方库如Log4Net、NLog和Serilog等。 日志类通常包含以下功能: 1. **日志级别设置**:允许用户根据需要选择记录哪些级别...

    在线编辑器插件

    - 提供API或插件系统,允许用户或开发者添加自定义功能,如特殊格式的支持或第三方服务的整合。 11. **协作功能**: - 实时协作编辑,允许多人同时在线编辑同一份文档,通过WebSocket实现即时通信。 12. **错误...

    WordPress文章下载增强插件源码 支持几乎所有网盘

    通过查看源码,开发者可以学习到如何在WordPress中开发插件,如何与第三方服务集成,以及如何处理用户权限和下载统计等实用技巧。 1. **数据库模型**:源码中的模型文件展示了如何设计和操作数据库表,用于存储下载...

    哔哩哔哩助手谷歌插件

    它是许多开发者选择的目标平台,因此有丰富的第三方插件资源。 3. **CRX文件**:CRX是Chrome扩展的打包文件格式,包含了插件的所有代码和资源。用户可以通过Chrome的扩展管理界面手动安装这种类型的文件。 4. **B...

    邮箱管理软件AAAA

    9. **插件扩展**:可能允许用户安装第三方插件,以增加更多定制化的功能,如邮件模板、邮件统计等。 通过这些功能,邮箱管理软件AAAA能够为用户提供高效、安全的邮件管理体验,无论是个人还是团队使用,都能显著...

    X-SEL软件中文说明书

    2. 插件扩展:支持第三方插件,扩展软件功能,满足特定业务需求。 3. 数据安全:具备严格的数据权限管理和加密机制,保护企业敏感信息不被泄露。 六、故障排查与技术支持 遇到问题时,用户可以查阅软件内置的帮助...

    vba-for-wps-来了,vba插件控件-供大家学习研究参考

    在安装之前,确保你了解该插件的来源和安全状况,因为任何未经验证的第三方软件都可能存在潜在风险。通常,你应该只从可信赖的源下载并安装插件。 学习VBA for WPS时,你可以期待掌握以下知识点: 1. VBA基础知识...

    JAVA毕业设计之springboot基于协同过滤算法商品推荐系统项目(springboot完整源码+说明).zip

    1. **Spring Boot框架**:Spring Boot简化了Spring应用的初始搭建以及开发过程,它集成了大量常用的第三方库配置,如数据库、日志、邮件服务等,使得开发者可以快速地创建一个独立运行的、生产级别的Java应用。...

    一款可以轻松录音的软件

    4. 插件支持:通过第三方插件扩展功能,如添加特殊音效或过滤器。 5. 多轨录音:对于专业用户,多轨录音功能可同时录制和混合多个音轨。 总之,这款“可以轻松录音的软件”显然是一款注重音质、易用性并具有专业...

    慧办公,表格直接能用的表格插件

    表格插件是针对像Microsoft Excel、Google Sheets或WPS表格等电子表格软件开发的第三方扩展程序。它们通常提供额外的功能,如数据分析、图表制作、公式增强、自动化工作流程等,以弥补原生软件功能的不足。 慧办公...

    浏览器插件Adblock_Plus_3.4

    它可以阻止第三方跟踪脚本,防止用户的浏览行为被追踪,从而保护用户的在线隐私。然而,值得注意的是,尽管Adblock Plus在很大程度上提升了浏览体验,但过度的广告拦截可能会影响到某些网站的正常运行,因为部分网站...

Global site tag (gtag.js) - Google Analytics