Kompozycje

org.eclipse.ui.themes

3.0

Ten punkt rozszerzenia umożliwia dostosowywanie wyglądu interfejsu użytkownika. Pozwala on definiować obiekty koloru i czcionki, a także obiekty kompozycji. Dzięki kompozycjom aplikacje mogą selektywnie przesłaniać domyślne specyfikacje kolorów i czcionek na potrzeby konkretnych zastosowań.

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

Kolekcja przesłonięć czcionki, koloru i danych. Za pomocą takiej kolekcji można zmieniać wygląd środowiska roboczego.Wiele elementów kompozycji może mieć taki sam identyfikator. Umożliwia to autorom komponentu wnoszenie nowych elementów do istniejących kompozycji.



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

Logiczna grupa definicji elementów kompozycji. Kategoria ta może obejmować kolory i czcionki.



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

Symboliczna definicja koloru.



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

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

Symboliczna definicja czcionki.



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

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Umożliwia przesłanianie kolorów zdefiniowanych w elementach colorDefinition. Kolory te będą stosowane, gdy używana jest dana kompozycja.



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #REQUIRED>

Umożliwia przesłanianie czcionek zdefiniowanych w elementach fontsDefinition. Czcionki te będą stosowane, gdy używana jest dana kompozycja.



<!ELEMENT description (#PCDATA)>

Krótki opis zastosowania elementu.



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

Element będący wersją atrybutu colorFactory. Używa się go, gdy atrybut colorFactory implementuje interfejs org.eclipse.core.runtime.IExecutableExtension i istnieją sparametryzowane dane, które mają być użyte podczas jego inicjowania.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Element parameter przeznaczony do używania razem z elementem colorFactory. Zostanie on przekazany jako dane inicjowania do klasy colorFactory.



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Element umożliwiający powiązanie dowolnych danych z wybraną kompozycją lub kompozycją domyślną. Dane te mogą obejmować kierunki lub procenty gradientów, etykiety, informacje o autorze itp.

Działanie tego elementu jest podobne do działania definicji i przesłonięć. Jeśli dany klucz występuje w kompozycji domyślnej i kompozycji określonej identyfikatorem, to po uzyskaniu dostępu do kompozycji określonej identyfikatorem zostanie użyta występująca w niej wartość. Jeśli w kompozycji z identyfikatorem nie ma podanej wartości, używana jest wartość domyślna.



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Ten element umożliwia określenie wartości koloru w zależności od platformy.



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

Ten element umożliwia określenie wartości czcionki w zależności od platformy.



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

Ten element umożliwia powiązanie kategorii z konkretną prezentacją opisaną przez punkt rozszerzenia org.eclipse.ui.presentationFactory. Jeśli kategoria jest powiązana z prezentacjami, to użytkownik może konfigurować tę kategorię (i jej elementy potomne) tylko wtedy, gdy jest powiązana z aktywną prezentacją. Jest to przydatne w przypadku usuwania nieużywanych elementów, które nie powinny niepotrzebnie zwracać uwagi użytkownika.



Poniżej przedstawiono przykłady kilku definicji kolorów i czcionek, a także przesłaniającej je kompozycji.

   

<extension point=

"org.eclipse.ui.themes"

>

<themeElementCategory id=

"com.xyz.ThemeCategory"

class=

"com.xyz.XYZPreview"

label=

"Elementy XYZ"

/>

<colorDefinition id=

"com.xyz.Forground"

categoryId=

"com.xyz.ThemeCategory"

label=

"Kolor pierwszego planu XYZ"

value=

"COLOR_BLACK"

>

<!-- w przypadku systemu GTK należy użyć koloru białego -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

Ten kolor jest używany w przypadku pierwszego planu edytora modułu dodatkowego XYZ.

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"Kolor tła 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>

<!-- w przypadku systemu GTK należy użyć koloru czarnego -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

Ten kolor jest używany w przypadku tła edytora modułu dodatkowego XYZ.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"Czcionka edytora XYZ"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

Ta czcionka jest używana w edytorze modułu dodatkowego XYZ.

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

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

Klasa org.eclipse.ui.IWorkbench.getThemeManager() udostępnia instancję interfejsu org.eclipse.ui.themes.IThemeManager, za pomocą którego można uzyskać kompozycję o określonej nazwie (według identyfikatora, co odnosi się także do kompozycji domyślnej, która ma identyfikator IThemeManager.DEFAULT_THEME) lub kompozycję bieżącą. Z interfejsu org.eclipse.ui.themes.ITheme można uzyskać rejestr org.eclipse.jface.resources.ColorRegistry, rejestr org.eclipse.jface.resources.FontRegistry oraz dowolne dane powiązane z kompozycją.

W środowisku roboczym dostępne są definicje czcionek tekstu, okna dialogowego, banera, nagłówka i tytułu części. Ponadto zawiera ono definicje kolorów odsyłacza hipertekstowego, aktywnego odsyłacza hipertekstowego, błędu, części aktywnej (gradient tła i pierwszy plan) oraz części nieaktywnej (gradient tła i pierwszy plan). W środowisku roboczym są także dostępne stałe określające procenty gradientu tytułu (aktywnego i nieaktywnego) oraz kierunki gradientu (aktywnego i nieaktywnego). W środowisku roboczym nie są dostępne kompozycje o konkretnych nazwach.