整理一下org.eclipse.ui.activities的使用
扩展点的定义
org.eclipse.ui.activities的定义位于org.eclipse.ui插件中,具体见
<extension-point id="activities" name="%ExtPoint.activities" schema="schema/activities.exsd"/>
扩展点的概述
看Eclipse API的描述,这个扩展点是用来声明activity的,至于activity是干什么的,这里也说不太清楚,我一般用来进行过滤插件、菜单、视图等。
比如一个RCP程序中,引入了一些Eclipse下面的插件,于是就多出来许多相关的菜单,尤其是工具栏菜单,在不改动代码的情况下,我们可以采用这个扩展点过滤掉它们。
扩展点的使用
这里先看看Eclipse是如何使用这个扩展点的,下面的代码位于org.eclipse.equinox.p2.ui.sdk中
<extension
point="org.eclipse.ui.activities">
<activity
description="%classicCategoryDesc"
id="org.eclipse.equinox.p2.ui.sdk.classicUpdate"
name="%classicCategoryName">
</activity>
<activityPatternBinding
activityId="org.eclipse.equinox.p2.ui.sdk.classicUpdate"
isEqualityPattern="false"
pattern=".*org\.eclipse\.update\.internal.*">
</activityPatternBinding>
<activityPatternBinding
activityId="org.eclipse.equinox.p2.ui.sdk.classicUpdate"
isEqualityPattern="false"
pattern=".*org\.eclipse\.ui\.update.*">
</activityPatternBinding>
<category
description="%classicCategoryDesc"
id="org.eclipse.equinox.p2.ui.sdk.category.classicUpdate"
name="%classicCategoryName">
</category>
<categoryActivityBinding
activityId="org.eclipse.equinox.p2.ui.sdk.classicUpdate"
categoryId="org.eclipse.equinox.p2.ui.sdk.category.classicUpdate">
</categoryActivityBinding>
</extension>
主要就是用来屏蔽旧的update机制下的一些视图 菜单等。
示例
下面来一个示例
场景:在RCP中引入了org.eclipse.ui.ide插件以后,首选项里面就会多出来General这一个首选项,下面有很多首选项页面。这些页面都是跟RCP本身无关的。这里就考虑使用 org.eclipse.ui.activities 过滤掉它们。
<extension
point="org.eclipse.ui.activities">
<activity
id="org.salever.rcp.demo.preference.activity"
name="prefFilter">
</activity>
<activityPatternBinding
activityId="org.salever.rcp.demo.preference.activity"
isEqualityPattern="false"
pattern=".*org\.eclipse\.ui\.preferencePages.*"><!-- 这里是关键-->
</activityPatternBinding>
其中
pattern=".*org\.eclipse\.ui\.preferencePages.*"
是关键,这里的pattern就是用来过滤的,定义一定要准确,否则将无法起作用。
其他的过滤,依此类推就行了,不赘述了。
理解Eclipse UI Activities扩展点的应用与实现
本文深入探讨了Eclipse UI Activities扩展点的使用方法,通过实例展示了如何利用此扩展点来过滤不必要的菜单、视图等元素,以优化用户界面体验。重点解析了扩展点的定义、使用方式及示例应用。
2126

被折叠的 条评论
为什么被折叠?



