テーマ

org.eclipse.ui.themes

3.0

この拡張ポイントを使用して、UI の外観をカスタマイズします。 これにより、色、フォント、およびテーマのエンティティーを定義できます。 テーマを使用すると、アプリケーションは、特定の使用のためにデフォルトの色およびフォントの指定を選択的にオーバーライドできます。

<!ELEMENT extension (theme* , colorDefinition* , fontDefinition* , themeElementCategory* , data* , categoryPresentationBinding*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT theme (colorOverride* , fontOverride* , description? , data*)>

<!ATTLIST theme

id   CDATA #REQUIRED

name CDATA #IMPLIED>

フォント、色、およびデータのオーバーライドのコレクション。 このようなコレクションは、ワークベンチの外観を変更する場合に使用します。 多数のテーマ・エレメントが同一の ID で存在する場合があります。 これにより、コンポーネント作成者が既存のテーマに寄与することができます。



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

テーマ・エレメント定義の論理グループ。 このカテゴリーには、色とフォントが含まれています。



<!ELEMENT colorDefinition (colorFactory? , colorValue* , description?)>

<!ATTLIST colorDefinition

id           CDATA #IMPLIED

label        CDATA #REQUIRED

defaultsTo   CDATA #IMPLIED

value        CDATA #IMPLIED

categoryId   CDATA #IMPLIED

colorFactory CDATA #IMPLIED

isEditable   (true | false) >

シンボリック色定義。



<!ELEMENT fontDefinition (fontValue* , description?)>

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

シンボリック・フォント定義。



<!ELEMENT colorOverride (colorFactory? , colorValue*)>

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

colorDefinition エレメントに定義されている色をオーバーライドできるようにします。 これらの色は、テーマを使用している場合に適用されます。



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #REQUIRED>

fontsDefinition エレメントに定義されているフォントをオーバーライドできるようにします。 これらのフォントは、テーマを使用している場合に適用されます。



<!ELEMENT description (#PCDATA)>

エレメントの使用の簡略説明。



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

colorFactory 属性のエレメント・バージョン。 colorFactory が org.eclipse.core.runtime.IExecutableExtension を実装し、 初期化に使用するパラメーター化されたデータがある場合に使用されます。



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

colorFactory エレメント内で使用されるパラメーター・エレメント。 このエレメントは、初期化データとして colorFactory クラスに渡されます。



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

任意のデータをテーマまたはデフォルトのテーマに関連付けることができるエレメント。 このデータは、グラジエントの方向、パーセント、ラベル、作成者情報などになります。

このエレメントの動作は、定義またはオーバーライドと似ています。 キーがデフォルト・テーマと指定されたテーマの両方に存在する場合、指定されたテーマにアクセスがあると、指定されたテーマの値が使用されます。 指定されたテーマに値が指定されていない場合は、デフォルトが使用されます。



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

このエレメントを使用すると、プラットフォームごとに色の値を指定できます。



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

このエレメントを使用すると、プラットフォームごとにフォントの値を指定できます。



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

このエレメントを使用すると、org.eclipse.ui.presentationFactory 拡張ポイントで記述されている特定の表示にカテゴリーをバインドすることができます。 カテゴリーに表示バインドがある場合、カテゴリー (およびその子) は、アクティブな表示にバインドされているときにユーザーのみが構成できます。 これはユーザーの考慮事項から未使用の項目を除去する場合に有用です。



いくつかの色とフォントの定義、およびこれらの定義をオーバーライドするテーマの例を以下に示します。

   

<extension point=

"org.eclipse.ui.themes"

>

<themeElementCategory id=

"com.xyz.ThemeCategory"

class=

"com.xyz.XYZPreview"

label=

"XYZ Elements"

/>

<colorDefinition id=

"com.xyz.Forground"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Foreground Color"

value=

"COLOR_BLACK"

>

<!-- white should be used on GTK -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

This color is used for the forground color of the XYZ plugin editor.

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Background Color"

>

<colorFactory class=

"org.eclipse.ui.themes.RGBBlendColorFactory"

plugin=

"org.eclipse.ui"

>

<parameter name=

"color1"

value=

"COLOR_WHITE"

/>

<parameter name=

"color2"

value=

"COLOR_BLUE"

/>

</colorFactory>

<!-- black should be used on GTK -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

This color is used for the background color of the XYZ plugin editor.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Editor Font"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

This font is used by the XYY plugin editor.

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

"Harsh Colors for XYZ"

>

<colorOverride id=

"com.xyz.Forground"

value=

"COLOR_CYAN"

/>

<colorOverride id=

"com.xyz.Background"

value=

"COLOR_MAGENTA"

/>

<data name=

"com.xyz.EditorMarginWidth"

value=

"1"

/>

</theme>

</extension>

org.eclipse.ui.IWorkbench.getThemeManager() は、org.eclipse.ui.themes.IThemeManager のインスタンスを提供します。このインスタンスを使用すると、指定されたテーマを (IThemeManager.DEFAULT_THEME という ID を持つデフォルトのテーマを含め、ID で) 取得することができます。org.eclipse.ui.themes.ITheme から、org.eclipse.jface.resources.ColorRegistryorg.eclipse.jface.resources.FontRegistry、およびテーマに関連付けられている任意のデータを取得できます。

ワークベンチは、テキスト、ダイアログ、バナー、 およびヘッダー、およびパーツ・タイトル・フォントにフォント定義を提供します。 また、ワークベンチは、ハイパーリンク、アクティブ・ハイパーリンク、エラー、 アクティブ・パーツ (背景グラジエント・パーツおよび前景)、および非アクティブ・パーツ (背景グラジエント・パーツおよび前景) の色定義も提供します。 さらに、タイトル・グラジエント・パーセント (アクティブおよび非アクティブ) とグラジエントの方向 (アクティブおよび非アクティブ) のデータ定数も提供します。 ワークベンチは、指定されたテーマを提供しません。