Páginas de Propriedades

org.eclipse.ui.propertyPages

Este ponto de extensão é utilizado para adicionar uma página de propriedades adicional de um determinado tipo. Assim que forem definidas, essas páginas de propriedades irão aparecer na caixa de diálogo Properties para objectos desse tipo.

Uma página de propriedades é um modo intuitivo de interagir com as propriedades de um objecto. Ao contrário da vista Properties, que restringe o espaço disponível para editar uma propriedade de objecto, a página de propriedades poderá beneficiar da liberdade para definir controlos maiores e mais complexos com etiquetas, ícones, etc. As propriedades que logicamente aparecem em conjunto podem igualmente ser agrupadas numa página, em vez de estarem dispersas na folha de propriedades. No entanto, na maioria das aplicações, será apropriado expor algumas propriedades de um objecto através da folha de propriedades e algumas através das páginas de propriedades.

As páginas de propriedades são mostradas numa caixa de diálogo que está normalmente visível quando o artigo do menu "Properties" é seleccionado num menu emergente para um objecto. Além da classe do objecto, o filtro do nome pode ser fornecido opcionalmente para registar páginas de propriedades apenas tipos de objectos específicos.

Se estes mecanismos de filtragem não forem adequados, uma página de propriedades poderá utilizar o mecanismo de filtragem. Neste caso, os atributos do objecto de destino são descritos numa série de pares chave-valor. Os atributos que se aplicam à selecção são específicos do tipo e estão para além do domínio da área de trabalho, por isso, a área de trabalho delegará a filtragem neste nível à selecção real.

<!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>

Este elemento é utilizado para avaliar o estado do atributo de cada objecto na selecção actual. É uma correspondência apenas se cada objecto da selecção estiver no estado de atributo especificado. Cada objecto na selecção tem de implementar ou adaptar-se a org.eclipse.ui.IActionFilter.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

Uma referência de uma página de propriedades a 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 raiz genérico. O elemento pode ser utilizado dentro de um ponto de extensão para definir a respectiva expressão de activação. Os elementos descendentes de uma expressão de activação são combinados com recurso ao operador and.



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

Este elemento representa uma operação NOT no resultado de avaliação da respectiva expressão de subelemento.



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

Este elemento representa uma operação AND no resultado de avaliação de todas as respectivas expressões de subelementos.



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

Este elemento representa uma operação OR no resultado de avaliação de todas as respectivas expressões de subelemento.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Este elemento é utilizado para desempenhar uma verificação instanceof do objecto em questão. A expressão devolve EvaluationResult.TRUE se o tipo do objecto for um subtipo do tipo especificado pelo valor do atributo. De outro modo, devolve EvaluationResult.FALSE.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Este elemento é utilizado para avaliar o estado de propriedade do objecto em questão. O conjunto de propriedades verificáveis pode ser alargado utilizando o ponto de extensão do dispositivo de testes de propriedade. A expressão do teste devolve EvaluationResult.NOT_LOADED se o dispositivo de testes de propriedade que está a fazer o teste ainda não estiver carregado.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Testa uma propriedade de sistema solicitando o método System.getProperty e compara o resultado com o valor especificado através do atributo value.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Este elemento é utilizado para desempenhar uma verificação equals do objecto em questão. A expressão devolve EvaluationResult.TRUE se o objecto for igual ao valor fornecido pelo atributo value. De outro modo, devolve EvaluationResult.FALSE.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Este elemento é utilizado para testar o número de elementos numa recolha.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Este elemento altera o objecto a ser inspeccionado em todos os elementos descendentes, para o objecto referenciado pela dada variável. Se a variável não puder ser processada, a expressão apresenta ExpressionException quando estiver a fazer a avaliação. Os elementos descendentes de uma expressão with são combinados com recurso ao operador and.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Este elemento altera o objecto a ser inspeccionado em todos os elementos descendentes, para o objecto referenciado pela dada variável. Se a variável não puder ser processada, a expressão apresenta ExpressionException quando estiver a fazer a avaliação. Os elementos descendentes de uma expressão with são combinados com recurso ao 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 objecto em questão ao tipo especificado pelo tipo do atributo. A expressão devolve not loaded se o adaptador ou o tipo referenciados ainda não estiverem carregados. Apresenta ExpressionException durante a avaliação se o nome do tipo não existir. Os elementos descendentes de uma expressão adapt são combinados com recurso ao operador and.



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

<!ATTLIST iterate

operator (or|and) >

Este elemento é utilizado para iterar numa variável que seja de tipo java.util.Collection. Se o objecto em questão não for do tipo java.util.Collection, surge ExpressionException durante a avaliação da expressão.



A seguir encontra-se um exemplo da definição de página de propriedades:

   

<extension point=

"org.eclipse.ui.propertyPages"

>

<page id=

"com.xyz.projectPage"

name=

"XYZ Java Properties"

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 totalmente qualificado da classe que implementa org.eclipse.ui.IWorkbenchPropertyPage.

Alguns objectos fornecidos pela área de trabalho podem ter registadas páginas de propriedades. Os conectores podem para adicionar mais páginas de propriedades para estes objectos. As páginas de propriedades não se limitam aos recursos da área de trabalho: todos os objectos que aparecem na área de trabalho (até os objectos específicos do domínio criados pelos conectores) podem ter páginas de propriedades e outros conectores podem registar páginas de propriedades.