Strony właściwości

org.eclipse.ui.propertyPages

Ten punkt rozszerzenia umożliwia dodawanie stron właściwości związanych z obiektami danego typu. Zdefiniowane strony właściwości są wyświetlane w oknie dialogowym właściwości dotyczącym obiektów tego typu.

Strona właściwości to przyjazny dla użytkownika sposób interakcji z właściwościami wybranego obiektu. W odróżnieniu od widoku Właściwości, w którym dostępny obszar edycji właściwości obiektu jest ograniczony, na stronie właściwości można swobodnie definiować większe, bardziej złożone elementy sterujące z etykietami, ikonami itp. Ponadto właściwości logicznie ze sobą powiązane mogą być zgrupowane na jednej stronie, a nie porozrzucane po całym arkuszu właściwości. Jednak w większości aplikacji bardziej odpowiednie będzie wyświetlanie niektórych właściwości obiektu na arkuszu właściwości, a innych - na stronach właściwości.

Strony właściwości są widoczne w oknie dialogowym, które jest zwykle wyświetlane po wybraniu opcji Właściwości z menu podręcznego obiektu. Poza klasą obiektu można opcjonalnie podać filtr nazwy, który umożliwi rejestrowanie stron właściwości tylko dla określonych typów obiektów.

Jeśli te mechanizmy filtrowania nie są wystarczające, na stronie właściwości można użyć elementu filter. W takim przypadku atrybuty obiektu docelowego są opisane zbiorem par klucz/wartość. Atrybuty dające się zastosować do wyboru zależą od typu i wykraczają poza domenę środowiska roboczego, dlatego filtrowanie na tym poziomie jest delegowane ze środowiska roboczego do faktycznego wyboru.

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

Ten element służy do wartościowania stanu atrybutu każdego obiektu w bieżącym wyborze. Zgodność występuje tylko w przypadku, gdy każdy obiekt w wyborze ma określony stan atrybutu. Każdy obiekt w wyborze musi implementować interfejs org.eclipse.ui.IActionFilter lub dopasowywać się do niego.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

Odwołanie strony właściwości do słowa kluczowego. Patrz opis punktu rozszerzenia słów kluczowych.



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

Ogólny element główny. Może być on używany w punkcie rozszerzenia w celu definiowania wyrażenia aktywującego. Elementy potomne wyrażenia aktywującego są składane przy użyciu operatora "and".



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

Ten element reprezentuje operację NOT wykonywaną na wyniku wartościowania wyrażeń stanowiących jego podelementy.



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

Ten element reprezentuje operację AND wykonywaną na wyniku wartościowania wyrażeń stanowiących jego podelementy.



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

Ten element reprezentuje operację OR wykonywaną na wyniku wartościowania wyrażeń stanowiących jego podelementy.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Ten element służy do wykonywania sprawdzenia instanceof na obiekcie aktywnym. Wyrażenie zwraca wartość EvaluationResult.TRUE, jeśli typ obiektu to podtyp typu określonego w wartości atrybutu. W przeciwnym razie zwracana jest wartość EvaluationResult.FALSE.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Ten element służy do wartościowania stanu właściwości aktywnego obiektu. Zestaw właściwości, które można testować, można rozszerzyć przy użyciu punktu rozszerzenia testera właściwości. Wyrażenie testujące zwraca wartość EvaluationResult.NOT_LOADED, jeśli tester właściwości, który wykonuje faktyczne sprawdzenie właściwości, nie został jeszcze załadowany.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Testuje właściwość systemową wywołując metodę System.getProperty i porównuje wynik z wartością określoną przez atrybut value.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Ten element służy do wykonywania sprawdzenia equals na obiekcie aktywnym. Wyrażenie zwraca wartość EvaluationResult.TRUE, jeśli obiekt jest równy wartości w atrybucie value. W przeciwnym razie zwracana jest wartość EvaluationResult.FALSE.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Ten element służy do testowania liczby elementów w kolekcji.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Ten element zmienia obiekt poddany badaniu we wszystkich elementach potomnych na obiekt wskazany przez daną zmienną. Jeśli zmiennej nie można rozwiązać, wyrażenie spowoduje zgłoszenie wyjątku ExpressionException podczas wartościowania. Elementy potomne wyrażenia with są składane przy użyciu operatora and.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Ten element zmienia obiekt poddany badaniu we wszystkich elementach potomnych na obiekt wskazany przez daną zmienną. Jeśli zmiennej nie można rozwiązać, wyrażenie spowoduje zgłoszenie wyjątku ExpressionException podczas wartościowania. Elementy potomne wyrażenia with są składane przy użyciu operatora and.



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

<!ATTLIST adapt

type CDATA #REQUIRED>

Ten element służy do dopasowywania aktywnego obiektu do typu określonego przez typ atrybutu. Wyrażenie zwraca wartość oznaczającą, że element nie jest załadowany, jeśli nie został jeszcze załadowany adapter lub typ, do którego prowadzi odwołanie. Jeśli nazwa typu w ogóle nie istnieje, podczas wartościowania zgłaszany jest wyjątek ExpressionException. Elementy potomne wyrażenia dopasowywania są składane przy użyciu operatora AND.



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

<!ATTLIST iterate

operator (or|and) >

Element jest wykorzystywany do iteracji na zmiennej typu java.util.Collection. Jeśli aktywny obiekt nie jest typu java.util.Collection, podczas wartościowania zgłaszany jest wyjątek ExpressionException.



Poniżej przedstawiono przykład definicji strony właściwości:

   

<extension point=

"org.eclipse.ui.propertyPages"

>

<page id=

"com.xyz.projectPage"

name=

"Właściwości Java XYZ"

objectClass=

"org.eclipse.core.resources.IFile"

class=

"com.xyz.ppages.JavaPropertyPage"

nameFilter=

"*.java"

>

<filter name=

"readOnly"

value=

"true"

/>

</page>

</extension>

Atrybut class musi określać pełną nazwę klasy implementującej interfejs org.eclipse.ui.IWorkbenchPropertyPage.

W przypadku niektórych obiektów dostępnych w środowisku roboczym mogą już istnieć zarejestrowane strony właściwości. Wtyczki mogą dodawać kolejne strony właściwości dla tych obiektów. Strony właściwości nie są ograniczone tylko do zasobów środowiska roboczego. Wszystkie obiekty wyświetlane w środowisku roboczym (nawet obiekty specyficzne dla domeny, tworzone przez wtyczki) mogą mieć strony właściwości, a inne wtyczki mogą rejestrować nowe strony właściwości tych obiektów.