Descrição: Esse ponto de extensão é utilizado para registrar extensões de capacidades de projeto. As capacidades são a UI equivalente de naturezas de projeto do CORE e têm um relacionamento um a um com naturezas do projeto. O workbench permite que o usuário inclua e remova capacidades de um projeto a qualquer momento utilizando o diálogo propriedades ou no novo assistente do projeto.
As capacidades representam as habilidades específicas de um projeto. Por exemplo, um projeto pode ter uma capacidade "Java" que permite que os arquivos *.java do projeto sejam compilados utilizando um compilador Java. Se a função do projeto for alterada com o tempo, as capacidades do projeto poderão ser modificadas para adequar as novas necessidades. Por exemplo, um projeto pode começar como uma capacidade simples do Java, mas pode, posteriormente, obter um novo requisito para utilizar JNI para alguma biblioteca legada. Em seguida, o usuário pode incluir uma capacidade "C++" (se existir uma) no projeto para atender este novo requisito.
Algumas capacidades podem manipular a interface do usuário para outras capacidades. Geralmente, isso ocorre quando uma capacidade requer um número de outras capacidades (observe que as informações de pré-requisito são derivadas do ponto de extensão org.eclipse.core.resources.natures). Por exemplo, uma capacidade "Web" precisa da capacidade "Java" para compilar servlets, mas pode apresentar uma página muito mais simples para configurar a capacidade "Java" ou, talvez, nem mesmo apresentar quaisquer páginas sobre a capacidade "Java" e apenas incluí-la nos padrões apropriados.
O assistente de instalação de uma capacidade é responsável pela coleta de informações necessárias do usuário para incluir sua natureza e as naturezas de quaisquer capacidades que ele manipula para a UI. O assistente de instalação deve manipular a situação onde algumas ou todas as capacidades requeridas já estão instaladas e configuradas.
O assistente de desinstalação de uma capacidade é responsável pela coleta de informações necessárias do usuário para remover sua natureza. Além disso, é necessário remover quaisquer outras natureza das capacidades que o usuário deseja que sejam removidas e que a capacidade manipula para a UI. Essas outras capacidades que o usuário deseja que sejam removidas serão fornecidas no método init.
As capacidades podem especificar quais perspectivas um usuário pode alternar para quando incluir o projeto. Isso permite que o usuário descubra novas perspectivas que podem tirar proveito das novas capacidades. As capacidades que manipulam a interface do usuário de outras capacidades também controlam a lista de perspectivas destas capacidades. Por exemplo, a capacidade "Web" manipula a interface do usuário para a capacidade "Java" que é requerida. A capacidade "Web" pode optar por incluir ou não as várias perspectivas Java.
As categorias definidas por um plug-in podem ser mencionadas por outros plug-ins utilizando o atributo category.
Observe que o nome da capacidade apresentado para o usuário vem do atributo "name" no elemento de extensão do ponto de extensão org.eclipse.core.resources.natures.
Desde: Release 2.0
Marcação da Configuração:
<!ELEMENT category EMPTY>
<!ATTLIST category
id
CDATA #REQUIRED
name
CDATA #REQUIRED
>
A seguir encontra-se um exemplo de uma configuração de capacidade:
<extension point="org.eclipse.ui.capabilities">
<category
id="com.xyz.weather"
name="Elementos do Tempo">
</category>
<capability
id="com.xyz.snowCapability"
natureId="com.xyz.snowNature"
category="com.xyz.weather"
icon="./icons/snowCapability.gif"
installWizard="com.xyz.SnowCapabilityWizard">
installDetails="Será
pedido que você forneça um ID do locale.">
description="Execute
seu projeto em um país de inverno!">
<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="Será
pedido que você forneça um ID do locale.">
description="Execute
seu projeto em um país chuvoso!">
<perspectiveChoice
id="com.xyz.rainPerspective"
</perspectiveChoice>
<perspectiveChoice
id="com.xyz.drinkPerspective"
</perspectiveChoice>
</capability>
</extensão>
Informações de API: O valor do atributo de installWizard deve representar uma classe que implementa org.eclipse.ui.ICapabilityInstallWizard. O IProject transmitido no método init existirá e poderá ser consultado para a existência de outras naturezas. O assistente de instalação de capacidade não deve ser fechado nem incluir o projeto transmitido no método init.
O valor do atributo uninstallWizard deve representar uma classe que implementa a interface org.eclipse.ui.ICapabilityUninstallWizard. O IProject transmitido no método init existirá e poderá ser consultado para a existência de outras naturezas. O assistente de desinstalação de capacidade não deve ser fechado nem incluir o projeto transmitido no método init.
Implementação Fornecida: O workbench não fornece nenhuma capacidade.