活动

org.eclipse.ui.activities

3.0

org.eclipse.ui.activities 扩展点用来声明活动和相关联的元素。平台使用活动来从用户视图中过滤某些插件添加项,直到它们表示对它们感兴趣时为止。这允许 Eclipse 根据用户的使用模式而动态地增长。

<!ELEMENT extension (activity , activityRequirementBinding , activityPatternBinding , category , categoryActivityBinding , defaultEnablement)*>

<!ATTLIST extension

id    CDATA #IMPLIED

name  CDATA #IMPLIED

point CDATA #REQUIRED>


<!ELEMENT activity EMPTY>

<!ATTLIST activity

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

此元素用来定义活动。如果存在具有相同 id 属性的多个这样的元素,则仅最后声明的那个元素(以读取注册表的顺序)才被认为是有效的。



<!ELEMENT activityRequirementBinding EMPTY>

<!ATTLIST activityRequirementBinding

requiredActivityId CDATA #REQUIRED

activityId         CDATA #REQUIRED>

此元素允许用户将活动绑定至活动。关系是这样的,如果先前启用了 activityId,则也会启用 requiredActivityId。



<!ELEMENT activityPatternBinding EMPTY>

<!ATTLIST activityPatternBinding

activityId CDATA #REQUIRED

pattern    CDATA #REQUIRED>

此元素允许用户将活动绑定至模式。



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

此元素用来定义类别。如果存在具有相同 id 属性的多个这样的元素,则仅最后声明的那个元素(以读取注册表的顺序)才被认为是有效的。



<!ELEMENT categoryActivityBinding EMPTY>

<!ATTLIST categoryActivityBinding

activityId CDATA #REQUIRED

categoryId CDATA #REQUIRED>

此元素允许用户将类别绑定至活动。



<!ELEMENT defaultEnablement EMPTY>

<!ATTLIST defaultEnablement

id CDATA #REQUIRED>

此元素允许用户指定缺省情况下应该启用给定的活动。



以下是几个活动和类别定义以及相关联的绑定的示例。

 

<extension point=

"org.eclipse.ui.activities"

>

<activity id=

"com.xyz.Activity"

description=

"Filters contributions from com.xyz"

name=

"My Activity"

/>

<activity id=

"com.xyz.OtherActivity"

description=

"Filters other contributions from com.xyz"

name=

"My Other Activity"

/>

<!-- other activity requires activity -->

<activityRequirementBinding activityId=

"com.xyz.OtherActivity"

requiredActivityId=

"com.xyz.Activity"

/>

<category id=

"com.xyz.Category"

description=

"com.xyz Activities"

name=

"My Category"

/>

<!-- put the activity in the category -->

<categoryActivityBinding activityId=

"com.xyz.Activity"

categoryId=

"com.xyz.Category"

/>

<!-- bind all contributions from plugin com.xyz -->

<activityPatternBinding id=

"com.xyz.Activity"

pattern=

"com\.xyz/.*"

/>

<!-- bind my.contribution from plugin com.xyz.other -->

<activityPatternBinding id=

"com.xyz.OtherActivity"

pattern=

"com\.xyz\.other/my.contribution"

/>

<!-- our activity should be enabled by default -->

<defaultEnablement id=

"com.xyz.Activity"

/>

</extension>

当前没有公用 API 用于声明除了此扩展点之外的活动或相关联的元素。可通过 org.eclipse.ui.IWorkbench.getActivitySupport() 来访问工作台中的活动的状态。从此处可以查询和更新当前已启用的活动集合。

工作台没有提供“缺省活动”。打算在产品级别(例如,Eclipse SDK)定义活动,以便紧密集成产品包含的所有(已知)组件。