デコレーター

ID: org.eclipse.ui.decorators

このリリース以降: 2.0

説明: この拡張ポイントは、デコレーター・マネージャーにサブスクライブするビューに、 デコレーターを追加するために使用します。 リリース 2.1 以降では、デコレーターのイメージ管理を扱う、ライト・ウェイト・デコレーターという概念があります。また、プラグインからのインプリメンテーションを必要としない、使用可能になったときに単純にアイコンをオーバーレイするライト・ウェイト・デコレーターを宣言することも可能です。

アクションの使用可能性と可視性は、エレメント enablementvisibility をそれぞれ使用することによって定義できます。 これらの 2 つのエレメントにはブール式が含まれ、この式が評価されて使用可能性と可視性を決定します。

enablement エレメントと visibility エレメントは同じ構文です。 どちらにも、1 つのブール式サブエレメントだけが含まれています。 最も単純なケースでは、これは 1 つの objectClassobjectStatepluginState、または systemProperty エレメントになります。 もっと複雑なケースになると、andor、および not のエレメントで結合して、1 つのブール式を構成している場合があります。 and および or エレメントの両方に、2 つのサブエレメントが含まれていなければなりません。 not エレメントには、 1 つのサブエレメントだけが含まれなければなりません。

構成マークアップ:

   <!ELEMENT extension (decorator*)>

   <!ATTLIST extension
     point CDATA #REQUIRED
     id    CDATA #IMPLIED
     name  CDATA #IMPLIED
   >

   <!ELEMENT decorator (description? , enablement?)>

   <!ATTLIST decorator
     id          CDATA #REQUIRED
     label       CDATA #REQUIRED
     class       CDATA #IMPLIED
     objectClass CDATA #IMPLIED
     adaptable   (true | false)
     state       (true | false)
     quadrant    (TOP_LEFT|TOP_RIGHT|BOTTOM_RIGHT|BOTTOM_LEFT)
     lightweight (true|false)
     icon        CDATA #IMPLIED
     location    (TOP_LEFT|TOP_RIGHT|BOTTOM_LEFT|BOTTOM_RIGHT|UNDERLAY)
   >

   <!ELEMENT description (#CDATA)>

   デコレーターの簡単な説明テキストを本文に含む、オプショナルのサブエレメント。これは「デコレーター」設定ページに表示されるため、組み込むことをお勧めします。 デフォルト値は空のストリングです。

   <!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>

  このエレメントは、アクションの使用可能性を定義するために使用されます。

   <!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>

  このエレメントは、アクションの可視性を定義するために使用されます。

   <!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>

  このエレメントは、2 つのサブエレメント式を評価した結果に対するブール AND 演算を表します。

   <!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>

  このエレメントは、2 つのサブエレメント式を評価した結果に対するブール OR 演算を表します。

   <!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>

  このエレメントは、2 つのサブエレメント式を評価した結果に対するブール NOT 演算を表します。

   <!ELEMENT objectClass EMPTY>

   このエレメントは、現行の選択内の各オブジェクトのクラスまたはインターフェースを評価するために使用されます。 選択内の各オブジェクトが指定されたクラスまたはインターフェースをインプリメントしている場合、式は真と評価されます。

   <!ATTLIST objectClass
     name CDATA #REQUIRED
   >

   <!ELEMENT objectState EMPTY>

   このエレメントは、現行の選択内の各オブジェクトの属性の状態を評価するために使用されます。 選択内の各オブジェクトが指定された属性状態である場合、式は真と評価されます。 このタイプの式を評価するには、 選択内の各オブジェクトが org.eclipse.ui.IActionFilter インターフェースをインプリメントするか、または適合している必要があります。

   <!ATTLIST objectState
     name  CDATA #REQUIRED
     value CDATA #REQUIRED
   >

   <!ELEMENT pluginState EMPTY>

   このエレメントは、プラグインの状態を評価するために使用されます。プラグインの状態は、 installed または activated のどちらかにできます。

   <!ATTLIST pluginState
     id    CDATA #REQUIRED
     value (installed|activated) "installed"
   >

   <!ELEMENT systemProperty EMPTY>

  このエレメントは、いくつかのシステム・プロパティーの状態を評価するために使用されます。プロパティーの値は、java.lang.System から検索されます。

   <!ATTLIST systemProperty
     name  CDATA #REQUIRED
     value CDATA #REQUIRED
   >
例: 以下はデコレーターの例です。

フル・デコレーターです。 プラグインの開発者は、それらの独自のイメージ・サポートを処理する必要があります。

 <extension point="org.eclipse.ui.decorators"> 
        <decorator
            id="com.xyz.decorator"
            label="XYZ Decorator"
               state="true"
            class="com.xyz.DecoratorContributor">
            <enablement>
                <objectClass name="org.eclipse.core.resources.IResource"/> 
            </enablement>
        </decorator>
</extension>

ライト・ウェイト・デコレーターです。具体的なクラスはありますが、そのクラスは ILightweightLabelDecorator であり、テキストと ImageDescriptor を提供するだけで良いため、リソースを処理する必要はありません。

 <extension point="org.eclipse.ui.decorators"> 
        <decorator
            id="com.xyz.lightweight.decorator"
            label="XYZ Lightweight Decorator"          
            state="false"
            class="com.xyz.LightweightDecoratorContributor"
            lightweight="true" >
            <enablement>
                <objectClass name="org.eclipse.core.resources.IResource"/> 
            </enablement>
        </decorator>
</extension>

宣言型ライト・ウェイト・デコレーターです。具体的なクラスがないため、アイコンと、そのアイコンが適用される 4 等分画面を指定します。

 <extension point="org.eclipse.ui.decorators"> 
        <decorator
            id="com.xyz.lightweight.declarative.decorator"
            label="XYZ Lightweight Declarative Decorator"
            state="false"
            lightweight="true"
            icon="icons/full/declarative.gif"
            location="TOP_LEFT"> 
            <enablement>
                <objectClass name="org.eclipse.core.resources.IResource"/> 
            </enablement>
        </decorator>
</extension>

API 情報: class 属性の値は、org.eclipse.jface.viewers.ILabelDecorator (lightweight が false の場合) または org.eclipse.jface.viewers.ILightweightLabelDecorator をインプリメントするクラスの完全修飾名である必要があります。このクラスは、プラグイン全体が必要となる場合に全体がロードされることのないよう、 できる限り後からロードされます。 宣言型デコレーターは、プラグインを活動化する必要がなく、使用可能であればいつでも使用できるものである必要があります。ライト・ウェイトでないデコレーターは、最終的には使用すべきではありません。

提供されるインプリメンテーション: プラグインは、この拡張ポイントを使用して新しいデコレーターを追加し、それらのラベル・デコレーターとしてデコレーター・マネージャーを使用するビューに適用します。 デコレーター・マネージャーを使用するには、IViewPart.getDecoratorManager() の結果を、DecoratingLabelProvider のインスタンスのデコレーターとして使用します。 これは、現在リソース・ナビゲーターによって使用されています。

Copyright (c) 2002,2003 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html