Motivy

org.eclipse.ui.themes

3.0

Tento bod rozšíření slouží k přizpůsobení vzhledu uživatelského rozhraní. Umožňuje definovat položky, jako jsou barvy a písma, a také motivy. Pomocí motivů lze v aplikacích selektivně potlačit výchozí nastavení barev a písem, a přizpůsobit je tak speciálním účelům.

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

Kolekce potlačení nastavení písem, barev a dat. Tuto kolekci je možno použít ke změně vzhledu pracovní plochy. Může existovat celá řada prvků motivu se stejným Id. Díky tomu mohou autoři komponent přispívat do stávajících motivů.



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

Logické seskupení definic prvku motivu. V této kategorii mohou být zahrnuty barvy a písma.



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

Symbolická definice barvy.



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

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

Symbolická definice písma.



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

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Umožňuje přepsat nastavení barev definované v prvcích colorDefinition. Tyto barvy budou použity, je-li aktivní daný motiv.



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #REQUIRED>

Umožňuje přepsat nastavení písem definované v prvcích fontsDefinition. Tato písma budou použita, je-li aktivní daný motiv.



<!ELEMENT description (#PCDATA)>

Krátký popis použití prvků.



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

Verze prvku atributu colorFactory. Používá se, pokud colorFactory implementuje org.eclipse.core.runtime.IExecutableExtension a existují určitá parametrizovaná data, která chcete použít při jeho inicializaci.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Prvek parametru, který má být použit v rámci prvku colorFactory. Bude odeslán třídě colorFactory jako inicializační data.



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Prvek, který umožňuje k motivu či k výchozímu motivu přidružovat libovolná data. Tato data mohou obsahovat ukazatele či procenta stupnice barev, označení, informace o autorovi apod.

Tento prvek se ve výsledku projevuje obdobně jako definovaná nastavení a přepsaná nastavení. Pokud klávesa existuje ve výchozím motivu i ve zvoleném motivu, bude v okamžiku přístupu k motivu použita hodnota ze zvoleného motivu. Pokud zvolený motiv příslušnou hodnotu neobsahuje, bude použita hodnota z výchozího motivu.



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Tento prvek umožňuje nastavení hodnoty barvy u jednotlivých platforem.



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

Tento prvek umožňuje nastavení hodnoty písma u jednotlivých platforem.



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

Tento prvek umožňuje přidružení kategorie ke zvolené prezentaci popsané v bodu rozšíření org.eclipse.ui.presentationFactory. Má-li kategorie jakékoliv vazby na prezentace, uživatel ji (a příslušné dílčí prvky) bude moci konfigurovat jen tehdy, pokud je přidružená k prezentaci, která je právě aktivní. Toho lze výhodně využít, budeme-li chtít z uživatelských nastavení odstranit nepoužívané položky.



Následují příklady několika definovaných nastavení barev a písem a současně příklad motivu, který tato nastavení přepíše.

   

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

>

<!-- na GTK by měla být použita bílá -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

Tato barva je použita pro popředí editoru modulu plug-in XYZ.

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

<!-- na GTK by měla být použita černá -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

Tato barva je použita pro pozadí editoru modulu plug-in XYZ.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Editor Font"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

Toto písmo je použito v editoru modulu plug-in XYZ.

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

Metoda org.eclipse.ui.IWorkbench.getThemeManager() nabízí instanci org.eclipse.ui.themes.IThemeManager, kterou lze použít k získání pojmenovaného motivu (podle id, včetně výchozího motivu, jenž má IThemeManager.DEFAULT_THEME) nebo motivu aktuálního. Z org.eclipse.ui.themes.ITheme lze získat org.eclipse.jface.resources.ColorRegistry, org.eclipse.jface.resources.FontRegistry a doplňkové údaje přidružené k motivu.

Modul workbench poskytuje definice písem pro písmo textu, dialogového okna, nápisu a písmo části titulku. Také poskytuje definice barev pro hypertextový odkaz, aktivní hypertextový odkaz, chybu, aktivní část (části barevně odstupňovaného pozadí a popředí) a neaktivní část (části barevně odstupňovaného pozadí a popředí). Pracovní plocha také poskytuje datové konstanty pro procentuální údaje barevné stupnice titulku (u aktivního a neaktivního) a směry barevného odstupňování (u aktivního a neaktivního). Pracovní plocha sama neposkytuje žádné pojmenované motivy.