Páginas de Propriedade

org.eclipse.ui.propertyPages

Esse ponto de extensão é utilizado para incluir uma página de propriedade adicional para objetos de um determinado tipo. Uma vez definidas, essas páginas de propriedades aparecerão no Diálogo Propriedades para objetos desse tipo.

Uma página de propriedades é um modo amigável para o usuário interagir com as propriedades de um objeto. Ao contrário da exibição Propriedades, que restringe o espaço disponível para edição de uma propriedade do objeto; uma página de propriedade pode beneficiar-se da liberdade de definir controles mais amplos e complexos com etiquetas, ícones, etc. As propriedades que logicamente vão junto, podem também ser agrupadas em uma página em vez de serem dispersadas em uma página de propriedades. Entretanto, na maioria dos aplicativos será adequado expor algumas propriedades de um objeto via páginas de propriedade.

As páginas de propriedade são mostradas em uma caixa de diálogo que normalmente é visível quando o item do menu "Propriedades" é selecionado em um menu pop-up para um objeto. Além disso, para a classe de objeto, o filtro do nome pode opcionalmente ser fornecido para a páginas de propriedade de registro somente para tipos de objetos especificados.

Se esses mecanismos de filtragem forem inadequados, uma página de propriedades pode utilizar o mecanismo filtro. Nesse caso os atributos do objeto de destino são descritos em uma série de pares chave-valor. Os atributos que aplicam-se à seleção são específicos dos tipos e além do domínio do próprio workbench, de modo que o workbench delegará a filtragem nesse nível na seleção atual.

<!ELEMENT extension (page*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT page (filter* , keywordReference* , enabledWhen?)>

<!ATTLIST page

id          CDATA #REQUIRED

name        CDATA #REQUIRED

icon        CDATA #IMPLIED

objectClass CDATA #IMPLIED

class       CDATA #REQUIRED

nameFilter  CDATA #IMPLIED

adaptable   (true | false)

category    CDATA #IMPLIED>


<!ELEMENT filter EMPTY>

<!ATTLIST filter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Esse elemento é utilizado para avaliar o estado de atributo de cada objeto na seleção atual. Uma correspondência ocorrerá apenas se cada objeto na seleção tiver o estado de atributo especificado. Cada objeto na seleção deve implementar, ou se adaptar a, org.eclipse.ui.IActionFilter.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

Uma referência por uma página de propriedades para uma palavra-chave. Consulte o ponto de extensão de palavras-chave.



<!ELEMENT enabledWhen (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>



<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Um elemento de raiz genérico. O elemento pode ser utilizado dentro de um ponto de extensão para definir sua expressão de ativação. Os filhos de uma expressão de ativação são combinados utilizando o operador and.



<!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>

Esse elemento representa uma operação NOT como resultado da avaliação da expressão do subelemento.



<!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Esse elemento representa uma operação AND como resultado da avaliação de todas as expressões dos subelementos.



<!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Esse elemento representa uma operação OR como resultado da avaliação de todas as expressões do subelemento.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Este elemento é utilizado para executar uma instância de verificação do objeto em foco. A expressão retornará EvaluationResult.TRUE se o tipo do objeto for um subtipo do tipo especificado pelo valor do atributo. Caso contrário, EvaluationResult.FALSE será retornado.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Esse elemento é utilizado para avaliar o estado da propriedade do objeto em foco. O conjunto de propriedades testáveis pode ser estendido utilizando o ponto de extensão do testador de propriedade. A expressão de teste retornará EvaluationResult.NOT_LOADED se o testador de propriedade que realiza o teste real ainda não estiver carregado.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Testa uma propriedade do sistema chamando o método System.getProperty e compara o resultado com o valor especificado por meio do atributo de valor.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Esse elemento é utilizado para executar uma verificação equals do objeto em foco. A expressão retorna EvaluationResult.TRUE se o objeto for igual ao valor fornecido pelo valor do atributo. Caso contrário, EvaluationResult.FALSE será retornado.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Esse elemento é utilizado para testar o número de elementos em uma coleta.



<!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST with

variable CDATA #REQUIRED>

O elemento altera o objeto, a ser inspecionado para todos os seus elementos filho, para o objeto referido pela variável fornecida. Se a variável não puder ser resolvida, a expressão lançará um ExpressionException ao avaliá-la. Os filhos de uma expressão são combinados utilizando o operador and.



<!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

O elemento altera o objeto, a ser inspecionado para todos os seus elementos filho, para o objeto referido pela variável fornecida. Se a variável não puder ser resolvida, a expressão lançará um ExpressionException ao avaliá-la. Os filhos de uma expressão são combinados utilizando o operador and.



<!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST adapt

type CDATA #REQUIRED>

Este elemento é utilizado para adaptar o objeto em foco ao tipo especificado pelo tipo de atributo. A expressão será retornada sem carregar, se o adaptador ou o tipo referido ainda não estiver carregado. Isso lança um ExpressionException durante a avaliação se o nome do tipo não existir. Os filhos de uma expressão de adaptação são combinados utilizando o operador and.



<!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST iterate

operator (or|and) >

Esse elemento é utilizado para repetir uma variável do tipo java.util.Collection. Se o objeto em foco não for do tipo java.util.Collection uma ExpressionException será lançada durante a avaliação da expressão.



A seguir, um exemplo da definição da página de propriedade:

   

<extension point=

"org.eclipse.ui.propertyPages"

>

<page id=

"com.xyz.projectPage"

name=

"Propriedades Java XYZ"

objectClass=

"org.eclipse.core.resources.IFile"

class=

"com.xyz.ppages.JavaPropertyPage"

nameFilter=

"*.java"

>

<filter name=

"readOnly "

value=

"true"

/>

</page>

</extension>

O atributo class deve especificar um nome completo da classe que implementa org.eclipse.ui.IWorkbenchPropertyPage.

Alguns objetos fornecidos pelo workbench podem ter páginas de propriedade registradas. Aos plug-ins é permitido incluir mais páginas de propriedade para esses objetos. As páginas de Propriedade não são limitadas aos recursos do workbench: todos os objetos mostrados no workbench (até objetos específicos de domínio criados pelos plug-ins) podem ter páginas de propriedade e a outros plug-ins é permitido registrar páginas de propriedade para eles.