Eigenschaftenseiten

org.eclipse.ui.propertyPages

An diesem Erweiterungspunkt können zusätzliche Eigenschaftenseiten für Objekte eines bestimmten Typs hinzugefügt werden. Sobald die Seiten definiert wurden, werden sie im Dialog "Eigenschaften" für Objekte dieses Typs angezeigt.

Eine Eigenschaftenseite ist eine benutzerfreundliche Möglichkeit für die Interaktion mit den Eigenschaften eines Objekts. Anders als die Sicht "Eigenschaften", die den verfügbaren Bereich für die Bearbeitung einer Objekteigenschaft einschränkt, kann ein Eigenschaftenseite von der Möglichkeit profitieren, größere und komplexere Steuerelemente mit Bezeichnungen, Symbolen usw. zu definieren. Logisch zusammengehörende Eigenschaften können außerdem auf einer Seite zusammengefasst werden, statt über die gesamte Eigenschaftenseite verteilt zu sein. In den meisten Anwendungen ist es jedoch sinnvoll, manche Eigenschaften eines Objekts über die Sicht "Eigenschaften" und andere über die Eigenschaftenseiten anzugeben.

Eigenschaftenseiten werden in einem Dialogfenster angezeigt, das normalerweise aufgerufen wird, wenn im Kontextmenü eines Objekts die Option "Eigenschaften" ausgewählt wird. Neben der Objektklasse kann optional der Namensfilter angegeben werden, damit Eigenschaftenseiten nur für spezifische Objekttypen registriert werden.

Falls diese Filtermechanismen ungeeignet sind, kann eine Eigenschaftenseite einen eigenen Filtermechanismus verwenden. In diesem Fall werden die Attribute des Zielobjekts in einer Reihe von Schlüssel/Wert-Paaren beschrieben. Die für die Auswahl geltenden Attribute sind typspezifisch und gehen über die Domäne der eigentlichen Workbench hinaus. Daher delegiert die Workbench die Filterung auf dieser Ebene an die aktuelle Auswahl.

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

Mit diesem Element wird der Attributstatus aller Objekte in der aktuellen Auswahl ausgewertet. Eine Übereinstimmung liegt nur dann vor, wenn alle Objekte in der Auswahl den angegebenen Attributstatus aufweisen. Alle Objekte in der Auswahl müssen org.eclipse.ui.IActionFilter implementieren oder zugeordnet sein.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

Ein Verweis einer Eigenschaftenseite auf ein Schlüsselwort. Weitere Informationen finden Sie unter Erweiterungspunkt des Schlüsselworts.



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

Ein generisches Stammelement. Das Element kann in einem Erweiterungspunkt zum Definieren seines Ausdrucks "enablement" eingesetzt werden. Die untergeordneten Elemente eines Ausdrucks "enablement" werden durch den Einsatz des Operators "and" kombiniert.



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

Dieses Element stellt eine Operation NOT für das Ergebnis der Auswertung seiner Unterelementausdrücke dar.



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

Dieses Element stellt eine Operation AND für das Auswertungsergebnis aller seiner Unterelementausdrücke dar.



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

Dieses Element stellt eine Operation OR für das Auswertungsergebnis aller seiner Unterelementausdrücke dar.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Dieses Element wird zur Durchführung einer Prüfung des Typs "instanceof" für das Objekt im Fokus eingesetzt. Der Ausdruck gibt "EvaluationResult.TRUE" zurück, wenn es sich bei dem Objekttyp um einen Untertyp des im Attribut "value" angegebenen Typs handelt. Andernfalls wird "EvaluationResult.FALSE" zurückgegeben.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Dieses Element wird verwendet, um den Eigenschaftsstatus des Objekts im Fokus zu auszuwerten. Die Gruppe der Eigenschaften, die getestet werden können, kann mit Hilfe des Erweiterungspunktes "propertyTesters" für Testfunktionen für Eigenschaften erweitert werden. Der Ausdruck "test" gibt "EvaluationResult.NOT_LOADED" zurück, wenn die Testfunktion für Eigenschaften, die den Test durchführt, noch nicht geladen ist.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Testet eine Systemeigenschaft, indem die Methode "System.getProperty" aufgerufen wird und das Ergebnis mit dem im Attribut "value" angegebenen Wert verglichen wird.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Dieses Element wird zur Durchführung einer Prüfung des Typs "equals" für das Objekt im Fokus eingesetzt. Der Ausdruck gibt "EvaluationResult.TRUE" zurück, wenn das Objekt mit dem Wert übereinstimmt, der von dem Attributwert zur Verfügung gestellt wird. Andernfalls wird "EvaluationResult.FALSE" zurückgegeben.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Dieses Element wird verwendet, um die Anzahl der Elemente in einer Gruppe zu testen.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Dieses Element ändert das zu untersuchende Objekt für alle seine untergeordneten Elemente in das Objekt, auf das mit der betreffenden Variablen verwiesen wird. Kann die Variable nicht aufgelöst werden, löst der Ausdruck bei der Auswertung der Variablen die Ausnahmebedingung "ExpressionException" aus. Die untergeordneten Elemente des Ausdrucks "with" werden durch Verwendung des Operators "and" kombiniert.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Dieses Element ändert das zu untersuchende Objekt für alle seine untergeordneten Elemente in das Objekt, auf das mit der betreffenden Variablen verwiesen wird. Kann die Variable nicht aufgelöst werden, löst der Ausdruck bei der Auswertung der Variablen die Ausnahmebedingung "ExpressionException" aus. Die untergeordneten Elemente des Ausdrucks "with" werden durch Verwendung des Operators "and" kombiniert.



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

<!ATTLIST adapt

type CDATA #REQUIRED>

Dieses Element wird verwendet, um das Objekt im Fokus an den Typ anzupassen, der im Attribut "type" angegeben ist. Der Ausdruck gibt "not loaded" zurück, wenn entweder der Adapter oder der verwiesene Typ noch nicht geladen ist. Während der Auswertung wird die Ausnahmebedingung "ExpressionException" ausgelöst, wenn der Typname überhaupt nicht existiert. Die untergeordneten Elemente eines Ausdrucks "adapt" werden mit Hilfe des Operators "and" kombiniert.



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

<!ATTLIST iterate

operator (or|and) >

Dieses Element wird zur Iteration einer Variablen des Typs "java.util.Collection" eingesetzt. Wenn das Objekt im Fokus nicht den Typ "java.util.Collection" hat, wird während der Auswertung des Ausdrucks die Ausnahmebedingung "ExpressionException" ausgelöst.



Das folgende Beispiel ist eine Definition einer Eigenschaftenseite:

   

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

Das Attribut class muss den vollständig qualifizierten Namen einer Klasse angeben, die org.eclipse.ui.IWorkbenchPropertyPage implementiert.

Für einige durch die Workbench bereitgestellte Objekte können Eigenschaftenseiten definiert sein. Plug-ins können weitere Eigenschaftenseiten für diese Objekte hinzufügen. Die Verwendung von Eigenschaftenseiten ist nicht auf Workbench-Ressourcen beschränkt: Alle in der Workbench angezeigten Objekte (sogar domänenspezifische Objekte, die durch die Plug-ins erstellt werden) können Eigenschaftenseiten verwenden, und andere Plug-ins können Eigenschaftenseiten für diese Objekte registrieren.