プロパティー・ページ

org.eclipse.ui.propertyPages

この拡張ポイントは、あるタイプのオブジェクト用プロパティー・ページを追加するために使用します。 定義されると、これらのプロパティー・ページは、そのタイプのオブジェクトのプロパティー・ダイアログ内に表示されます。

プロパティー・ページを使用することによって、ユーザーは分かりやすい形式で、オブジェクトのプロパティーを操作することができます。 オブジェクトのプロパティーの編集に使用可能なスペースが制限される「プロパティー」ビューとは異なり、プロパティー・ページでは、ラベル、アイコンなどに対し、より広い範囲でかつ複雑なコントロールを定義することが可能になります。論理的にともに使用されるプロパティーは、プロパティー・シートに分散せず、ページ内でクラスター化されていることがあります。 ただし、ほとんどのアプリケーションでは、オブジェクトのプロパティーをプロパティー・シートとプロパティー・ページの両方を使用して管理することが一般的です。

プロパティー・ページは、オブジェクトのポップアップ・メニューから「プロパティー」メニュー項目を選択して表示されるダイアログ・ボックス内に表示されます。 オブジェクト・クラスの他に、特定のオブジェクト・タイプについてのみプロパティー・ページを登録するために、名前フィルターもオプションで提供することができます。

これらのフィルター機構が不適切な場合、プロパティー・ページはフィルター機構を使用することができます。 この場合、ターゲット・オブジェクトの属性は、一連のキー値のペアに記述されます。 選択に対して適用される属性は、選択タイプに固有で、ワークベンチのドメインの範囲外であるため、ワークベンチは、実際の選択に対し、このレベルにおけるフィルタリングを委譲しています。

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

この要素は、現在の選択内の各オブジェクトの属性の状態を評価するために使用されます。 選択内の各オブジェクトに指定の属性状態がある場合のみ一致。 選択内の各オブジェクトが org.eclipse.ui.IActionFilter を実装するか、それに適合している必要があります。



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

プロパティー・ページによるキーワードへの参照です。キーワード拡張ポイントを参照してください。



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

汎用ルート要素です。 この要素を拡張ポイントの内部で使用すると、enablement 式を定義できます。 enablement 式の子は、AND 演算子を使用して結合されます。



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

この要素は、サブ要素式を評価した結果に対する NOT 演算を表します。



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

この要素は、サブ要素式すべてを評価した結果に対する AND 演算を表します。



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

この要素は、サブ要素式すべてを評価した結果に対する OR 演算を表します。



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

この要素は、フォーカスされているオブジェクトの instanceof 検査を実行するために使用されます。 オブジェクトの型が、属性値で指定されている型のサブタイプの場合、この式は EvaluationResult.TRUE を戻します。これ以外の場合は、EvaluationResult.FALSE を戻します。



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

この要素は、フォーカスされているオブジェクトのプロパティー状態を評価するために使用されます。 テスト可能なプロパティーのセットは、プロパティー・テスターの拡張ポイントを使用して拡張することができます。 実際のテストを実行するプロパティー・テスターがまだロードされていない場合、test 式は EvaluationResult.NOT_LOADED を戻します。



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

System.getProperty メソッドを呼び出してシステム・プロパティーをテストし、その結果を、 value 属性によって指定された値と比べてください。



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

この要素は、フォーカスされているオブジェクトの等号検査を実行するために使用されます。 オブジェクトが、属性値によって提供された値と等しい場合、この式は EvaluationResult.TRUE を戻します。 これ以外の場合は、EvaluationResult.FALSE を戻します。



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

この要素は、コレクション内の要素の数をテストするために使用されます。



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

<!ATTLIST with

variable CDATA #REQUIRED>

この要素は、すべての子要素がインスペクション対象であるオブジェクトを、指定の変数で参照されているオブジェクトに変更します。 変数が解決できない場合、式は、評価時に ExpressionException をスローします。 with 式の子は、AND 演算子を使用して結合されます。



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

この要素は、すべての子要素がインスペクション対象であるオブジェクトを、指定の変数で参照されているオブジェクトに変更します。 変数が解決できない場合、式は、評価時に ExpressionException をスローします。 with 式の子は、AND 演算子を使用して結合されます。



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

<!ATTLIST adapt

type CDATA #REQUIRED>

この要素は、フォーカスされているオブジェクトを、属性型で指定されている型に適合させるために使用されます。 アダプターまたは参照される型がまだロードされていない場合、式は「ロードされていない」を戻します。 型名が全く存在しない場合、評価中に ExpressionException がスローされます。 adapt 式の子は、AND 演算子を使用して結合されます。



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

<!ATTLIST iterate

operator (or|and) >

この要素は、java.util.Collection 型の変数を繰り返すために使用されます。 フォーカスされているオブジェクトの型が java.util.Collection ではない場合、式の評価時に ExpressionException がスローされます。



プロパティー・ページ定義の例を以下に示します。

   

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

class 属性は、org.eclipse.ui.IWorkbenchPropertyPage を実装するクラスの完全修飾名を指定する必要があります。

ワークベンチによって提供されているいくつかのオブジェクトには、プロパティー・ページが登録されている場合があります。 プラグインにより、これらのオブジェクトにさらにプロパティー・ページを追加することができます。 プロパティー・ページはワークベンチ・リソースに限られません。ワークベンチ内に表示されるすべてのオブジェクト (プラグインにより作成されたドメイン固有のオブジェクトを含む) は、プロパティー・ページを持つことができ、他のプラグインによりこれらにプロパティー・ページを登録することができます。