Thèmes

org.eclipse.ui.themes

3.0

Ce point d'extension sert à personnaliser l'apparence de l'interface utilisateur. Il permet la définition de la couleur et de la police, ainsi que du thème. Grâce aux thèmes, les applications peuvent remplacer de façon sélective les spécifications de couleur et de police pour des usages particuliers.

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

Une collection de remplacements de polices, de couleurs et de données. Une telle collection peut servir à modifier l'apparence du plan de travail. Il peut exister de nombreux éléments de thèmes avec le même ID. Cela permet aux créateurs de composants de contribuer aux thèmes existants.



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

Un regroupement logique des définitions de l'élément de thème. Cette catégorie peut inclure des couleurs et des polices.



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

Une définition de couleur symbolique.



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

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

Une définition de police symbolique.



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

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Permet de remplacer des couleurs définies dans les éléments colorDefinition. Ces couleurs seront appliquées lorsque le thème est utilisé.



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #REQUIRED>

Permet de remplacer des polices définies dans les éléments fontsDefinition. Ces polices seront appliquées lorsque le thème est utilisé.



<!ELEMENT description (#PCDATA)>

Une brève description de l'utilisation des éléments.



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

La version de l'élément de l'attribut colorFactory. Elle est utilisée lorsque colorFactory implémente org.eclipse.core.runtime.IExecutableExtension et que des données paramétrées doivent être employée à son initialisation.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Un élément de paramètre à utiliser dans l'élément colorFactory. Il sera transmis comme donnée d'initialisation à la classe colorFactory.



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Un élément permettant que des données arbitraires soient associées à un thème (par défaut ou non). Ces données peuvent correspondre à des sens ou des pourcentages de dégradés, à des intitulés, à des informations sur l'auteur, etc.

Le comportement de cet élément est similaire aux définitions et aux remplacements. Si une clé figure dans le thème par défaut et celui identifié, la valeur de ce dernier sera utilisée si l'utilisateur y accède. Si le thème identifié ne fournit pas une valeur, celle par défaut est alors employée.



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Cet élément permet la spécification d'une valeur de couleur par plateforme.



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

Cet élément permet la spécification d'une valeur de police par plateforme.



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

Cet élément permet de lier une catégorie à une présentation spécifique, comme décrit par le point d'extension org.eclipse.ui.presentationFactory. Si une catégorie renferme des liaisons de présentation, elle et ses enfants peuvent uniquement être configurés par l'utilisateur si elle est liée à une présentation active. Cette opération est pratique pour supprimer des éléments inutilisés.



L'exemple ci-dessous illustre plusieurs définitions de couleurs et de polices, ainsi qu'un thème les remplaçant.

   

<extension point=

"org.eclipse.ui.themes"

>

<themeElementCategory id=

"com.xyz.ThemeCategory"

class=

"com.xyz.XYZPreview"

label=

"Eléments XYZ"

/>

<colorDefinition id=

"com.xyz.Forground"

categoryId=

"com.xyz.ThemeCategory"

label=

"Couleur d'avant-plan XYZ"

value=

"COLOR_BLACK"

>

<!-- le blanc doit être utilisé sur GTK -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

Cette couleur est utilisée pour l'avant-plan de l'éditeur de plug-in XYZ.

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"Couleur d'arrière-plan XYZ"

>

<colorFactory class=

"org.eclipse.ui.themes.RGBBlendColorFactory"

plugin=

"org.eclipse.ui"

>

<parameter name=

"color1"

value=

"COLOR_WHITE"

/>

<parameter name=

"color2"

value=

"COLOR_BLUE"

/>

</colorFactory>

<!-- le noir doit être utilisé sur GTK -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

Cette couleur est utilisée pour l'arrière-plan de l'éditeur de plug-in XYZ.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"Police de l'éditeur XYZ"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

Cette police est utilisée par l'éditeur de plug-in XYZ.

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

"Couleurs vives pour 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() fournit une instance de org.eclipse.ui.themes.IThemeManager qui peut être utilisée pour obtenir un thème nommé (par ID, y compris le thème par défaut dont l'ID est IThemeManager.DEFAULT_THEME) ou le thème en cours. A partir de org.eclipse.ui.themes.ITheme, vous pouvez obtenir org.eclipse.jface.resources.ColorRegistry, org.eclipse.jface.resources.FontRegistry et les données arbitraires associées à un thème.

Le plan de travail fournit des définitions de police pour les textes, les boîtes de dialogue, les bannières, les en-têtes et les titres de parties. Il fournit également des définitions de couleurs pour les hyperliens, les erreurs, les parties actives (dégradé d'arrière-plan ou avant-plan) et celles inactives (dégradés d'arrière-plan et avant-plan). Enfin, il fournit des constantes de données pour les pourcentages de dégradés de titre (actif et inactif) et le sens de dégradé (actif et inactif). Le plan de travail ne fournit aucun thème nommé.