Темы

org.eclipse.ui.themes

3.0

Этот точка расширения предназначена для настройки внешнего пользовательского интерфейса. Она позволяет задавать определения элементов цветов и шрифтов, а также элементов тем. Темы позволяют приложениям выборочно переопределять спецификации цветов и шрифтов, применяемые по умолчанию в конкретных случаях.

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

Набор переопределений цветов, шрифтов и данных. Такой набор может применяться для изменения оформления рабочей среды. Один идентификатор может указываться в нескольких элементах theme. Это позволяет разработчикам компонентов дополнять существующие темы.



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

Логическое группирование определений элементов theme. Эта категория может включать цвета и шрифты.



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

Элемент, позволяющий связывать произвольные данные с темой или темой по умолчанию. Это могут быть следующие данные: направления градиентов, доли в процентах, метки, информация об авторах и т.д.

Этот элемент работает так же, как элементы определения и переопределения. Если ключ содержится как в теме по умолчанию, так и в идентифицированной теме, то при обращении к теме будет использоваться атрибут value идентифицированной темы. Если для идентифицированной темы не задан атрибут value, то применяется значение по умолчанию.



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

/>

<colorDefinition id=

"com.xyz.Forground"

categoryId=

"com.xyz.ThemeCategory"

label=

"Цвет текста XYZ"

value=

"COLOR_BLACK"

>

<!-- для GTK должен применяться белый цвет -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

Это цвет текста в редакторе модуля XYZ.

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"Цвет фона 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>

<!-- для GTK должен применяться черный цвет -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

Это цвет фона в редакторе модуля XYZ.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"Шрифт редактора XYZ"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

Это шрифт, используемый редактором модуля XYY.

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

"Контрастные цвета для 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) или текущей темы. Из интерфейса org.eclipse.ui.themes.ITheme можно получить org.eclipse.jface.resources.ColorRegistry, org.eclipse.jface.resources.FontRegistry и произвольные данные, связанные с темой.

Рабочая среда предоставляет определения шрифтов для текста, окон, баннеров, заголовков и названий компонентов, а также определения цвета для для гиперссылки, активной гиперссылки, ошибки, активного и неактивного компонента (для текста и градиентов фона). Кроме того, предоставляются константы для относительных значений и направлений градиентов активных и неактивных заголовков. Не предоставляются именованные темы.