Thema's

org.eclipse.ui.themes

3.0

Dit extensiepunt wordt gebruikt om de presentatie van de gebruikersinterface aan te passen. U kunt de kleur, lettertypen en thema-entiteiten definiëren. Met thema's is het mogelijk om bij bepaald gebruik de standaardkleuren en -lettertypen te vervangen.

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

Een verzameling lettertypen, kleuren en gegevens die de standaarden vervangen. Zulke collecties kunnen worden gebruikt om de presentatie van de workbench te wijzigen. Er kunnen veel themaelementen met hetzelfde ID bestaan. Hierdoor kunnen componentauteurs bijdragen aan bestaande thema's leveren.



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

Een logische groepering van elementdefinities. Deze categorie kan kleuren en lettertypen bevatten.



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

Een symbolische kleurdefinitie.



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

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

Een symbolische lettertypedefinitie.



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

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Maak het overschrijven van kleuren mogelijk die zijn gedefinieerd in colorDefinition-elementen. Deze kleuren worden toegepast als het thema in gebruik is.



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #IMPLIED>

Maak het overschrijven van lettertypen mogelijk die zijn gedefinieerd in fontDefinition-elementen. Deze lettertypen worden toegepast als het thema in gebruik is.



<!ELEMENT description (#PCDATA)>

Een korte omschrijving van het gebruik van de elementen.



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

De elementversie van het kenmerk colorFactory. Deze wordt gebruikt als de colorFactory org.eclipse.core.runtime.IExecutableExtension implementeert en er parametergegevens zijn die u bij de initialisatie wilt gebruiken.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Een parameterelement dat u in colorFactory gebruikt. Dit wordt als initialisatiegegeven doorgegeven aan de colorFactory-klasse.



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Een element waarmee willekeurige gegevens gekoppeld kunnen worden aan thema of het standaardthema. Deze gegevens zijn bijvoorbeeld hellingshoeken of -percentages, labels, informatie over de auteur enzovoort.

Het element gedraagt zich op dezelfde manier als definities en vervangingsacties. Als er een sleutel aanwezig is in zowel het standaardthema als een geïdentificeerd thema, wordt de waarde van het geïdentificeerde thema gebruikt. Als het geïdentificeerde thema geen waarde bevat, wordt de standaardwaarde gebruikt.



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Dit element maakt het mogelijk om een kleur op te geven op basis van het platform.



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

Dit element maakt het mogelijk om een lettertypewaarde op te geven op basis van het platform.



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

Met dit element kunt u een categorie aan een specifieke presentatie binden die beschreven is in het extensiepunt org.eclipse.ui.presentationFactory. Als een categorie presentatiebindingen heeft, kan de gebruiker de categorie (en de onderliggende items) alleen configureren als deze is gebonden aan de actieve presentatie. Dit is een krachtige manier om ongebruikte items als gebruikersoptie te verwijderen.



Hieronder volgt een voorbeeld van verschillende kleur- en lettertypedefinities en een thema dat deze overschrijft.

   

<extension point=

"org.eclipse.ui.themes"

>

<themeElementCategory id=

"com.xyz.ThemeCategory"

class=

"com.xyz.XYZPreview"

label=

"XYZ-elementen"

/>

<colorDefinition id=

"com.xyz.Forground"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ-voorgrondkleur"

value=

"COLOR_BLACK"

>

<!-- in GTK moet wit worden gebruikt -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

Deze kleur wordt gebruikt als voorgrondkleur in de plugineditor XYZ.

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ-achtergrondkleur"

>

<colorFactory class=

"org.eclipse.ui.themes.RGBBlendColorFactory"

plugin=

"org.eclipse.ui"

>

<parameter name=

"color1"

value=

"COLOR_WHITE"

/>

<parameter name=

"color2"

value=

"COLOR_BLUE"

/>

</colorFactory>

<!-- in GTK moet zwart worden gebruikt -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

Deze kleur wordt gebruikt als achtergrondkleur in de plugineditor XYZ.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"Lettertype XYZ-editor"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

Dit lettertype wordt gebruikt door de plugineditor XYY.

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

"Felle kleuren voor 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() biedt een instance van org.eclipse.ui.themes.IThemeManager die gebruikt kan worden om een benoemd thema te vinden (op ID, inclusief het standaardthema met het ID IThemeManager.DEFAULT_THEME) of het huidige thema te gebruiken. U kunt uit een org.eclipse.ui.themes.ITheme een org.eclipse.jface.resources.ColorRegistry, een org.eclipse.jface.resources.FontRegistry en de willekeurige gegevens die gekoppeld zijn aan een thema ophalen.

De workbench biedt de lettertypedefinities voor tekst, dialoogvensters, banners, kopteksten en subtitels. Ook levert de workbench de kleurdefinities voor hyperlinks, actieve hyperlinks, fouten, actieve delen (achtergrond en voorgrond) en inactieve delen (achtergrond en voorgrond). Verder biedt de workbench gegevensconstanten voor de hellingshoek van de titel (actief en inactief) en de hellingrichting (actief en inactief). De workbench bevat geen benoemde thema's.