描述:此扩展点用来注册项目功能扩展。功能是等价于 CORE 的项目性质的 UI,它与项目性质具有一对一关系。工作台允许用户随时使用特性对话框或在新项目向导中将功能添加至项目以及从项目除去功能。
功能表示项目的特定能力。例如,项目可能具有“Java”功能,该功能允许使用 Java 编译器编译项目的 *.java 文件。如果项目角色随着时间的推移而发生了改变,则可修改项目的功能以满足新的需要。例如,项目开始可以是简单 Java 功能,但以后可获取新需求以将 JNI 用于某些传统库。于是,用户可将“C++”功能(如果存在有的话)添加至项目以满足此新需求。
某些功能可能想处理其它功能的用户界面。这通常在某一功能需要其它多个功能时发生:(注意,先决条件信息是从 org.eclipse.core.resources.natures 扩展点派生的)。例如,“Web”功能需要“Java”功能来编辑 servlet,但可能想要提供更简单的页面来配置“Java”功能,或甚至可能不提供有关“Java”功能的任何页面,而只是用适当的缺省值添加一个页面。
功能的安装向导负责收集来自用户的必需信息以便添加它的性质以及它为其处理 UI 的任何功能的性质。安装向导必须处理已安装和配置某些或全部必需功能的情况。
功能的卸载向导负责收集来自用户的必需信息以便除去它的性质。还必须除去用户想要除去的功能以及为其处理 UI 的功能的任何其它性质。这些用户想要除去的其它功能将在 init 方法中提供。
功能可以指定当添加至项目时用户可以切换至哪些透视图。这允许用户发现可以利用新功能的新透视图。为其它功能处理用户界面的功能还控制这些功能的透视图列表。例如,“Web”功能处理它需要的“Java”功能的用户界面。“Web”功能可以选择包括或不包括各种 Java 透视图。
一个插件定义的类别可以由其它插件使用 category 属性来引用。
注意,显示给用户的功能名来自于 org.eclipse.core.resources.natures 扩展点的扩展元素中的“名称”属性。
起始发行版:发行版 2.0
配置标记:
<!ELEMENT category EMPTY>
<!ATTLIST category
id
CDATA #REQUIRED
name
CDATA #REQUIRED
>
以下是功能配置的一个示例:
<extension point="org.eclipse.ui.capabilities">
<category
id="com.xyz.weather"
name="Weather Elements">
</category>
<capability
id="com.xyz.snowCapability"
natureId="com.xyz.snowNature"
category="com.xyz.weather"
icon="./icons/snowCapability.gif"
installWizard="com.xyz.SnowCapabilityWizard">
installDetails="You
will be asked to supply a locale id.">
description="Turn
your project into a winter wonderland!">
<handleUI
id="com.xyz.waterCapability"
</handleUI>
<perspectiveChoice
id="com.xyz.skiPerspective"
</perspectiveChoice>
<perspectiveChoice
id="com.xyz.rainPerspective"
</perspectiveChoice>
</capability>
<capability
id="com.xyz.waterCapability"
natureId="com.xyz.waterNature"
category="com.xyz.weather"
icon="./icons/waterCapability.gif"
installWizard="com.xyz.WaterCapabilityWizard">
installDetails="You
will be asked to supply a locale id.">
description="Turn
your project into a watery wonderland!">
<perspectiveChoice
id="com.xyz.rainPerspective"
</perspectiveChoice>
<perspectiveChoice
id="com.xyz.drinkPerspective"
</perspectiveChoice>
</capability>
</extension>
API 信息:installWizard 属性的值必须表示实现 org.eclipse.ui.ICapabilityInstallWizard 接口的类。在 init 方法中传递的 IProject 将存在并且可查询其它性质是否存在。功能安装向导一定不能关闭或删除在 init 方法中传递的项目。
uninstallWizard 属性的值必须表示实现 org.eclipse.ui.ICapabilityUninstallWizard 接口的类。在 init 方法中传递的 IProject 将存在并且可查询其它性质是否存在。功能卸载向导一定不能关闭或删除在 init 方法中传递的项目。
所提供的实现:工作台不提供任何功能。