Temas (Themes)

org.eclipse.ui.themes

3.0

Este punto de extensión se utiliza para personalizar el aspecto de la UI. Permite definir entidades de color y font, así como entidades de tema (theme). Los temas permiten a las aplicaciones alterar temporalmente de forma selectiva las especificaciones de color y font para usos determinados.

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

Colección de valores de alteración temporal de font, color y datos. Una colección de este tipo puede utilizarse para alterar el aspecto del entorno de trabajo. Pueden existir muchos elementos de temas con el mismo ID. Esto permite que los autores de componentes contribuyan a temas existentes.



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

Agrupación lógica de definiciones de elemento theme. Esta categoría puede incluir colores y fonts.



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

Definición de color simbólico.



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

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

Definición de font simbólico.



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

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Permite alterar temporalmente los colores definidos en los elementos colorDefinition. Estos colores se aplicarán cuando el tema se esté utilizando.



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #REQUIRED>

Permite alterar temporalmente los fonts definidos en los elementos fontsDefinition. Estos fonts se aplicarán cuando el tema se esté utilizando.



<!ELEMENT description (#PCDATA)>

Breve descripción de la utilización de los elementos



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

Versión del elemento del atributo colorFactory. Se utiliza cuando colorFactory implementa org.eclipse.core.runtime.IExecutableExtension y existen datos parametrizados que deben utilizarse en su inicialización.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Elemento parameter que debe utilizarse dentro del elemento colorFactory. Se pasará como datos de inicialización a la clase colorFactory.



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Elemento que permite asociar datos arbitrarios con un tema o con el tema por omisión. Estos datos pueden ser direcciones de gradiente o porcentajes, etiquetas, información de autor, etc.

Este elemento tiene un comportamiento similar al de las definiciones y alteraciones temporales. Si una clave está presente tanto en el tema por omisión como en un tema identificado, se utilizará el valor de temas identificados cuando se acceda a ese tema. Si el tema identificado no suministra un valor, se utilizaré el valor por omisión.



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Este elemento permite especificar un valor de color en función de la plataforma.



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

Este elemento permite especificar un valor de font en función de la plataforma.



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

Este elemento permite enlazar una categoría con una presentación específica, según lo descrito por el punto de extensión org.eclipse.ui.presentationFactory. Si una categoría tiene enlaces de presentación, el usuario sólo podrá configurarla a ella (y a sus hijos) si está enlazada a la presentación activa. Esto es útil para eliminar elementos no utilizados.



A continuación figura un ejemplo de varias definiciones de colores y fonts, así como un tema que los altera temporalmente:

   

<extension point=

"org.eclipse.ui.themes"

>

<themeElementCategory id=

"com.xyz.ThemeCategory"

class=

"com.xyz.XYZPreview"

label=

"Elementos XYZ"

/>

<colorDefinition id=

"com.xyz.Forground"

categoryId=

"com.xyz.ThemeCategory"

label=

"Color de primer plano de XYZ"

value=

"COLOR_BLACK"

>

<!-- en GTK debe utilizarse el blanco -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

Este color se utiliza para el primer plano del editor de conector XYZ.

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"Color de fondo 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>

<!-- en GTK debe utilizarse el negro -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

Este color se utiliza para el fondo del editor de conector XYZ.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"Font de editor XYZ"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

Este font lo utiliza el editor del conector XYY.

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

"Colores originales para 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() proporciona una instancia de org.eclipse.ui.themes.IThemeManager que puede utilizarse para obtener un tema con nombre (por ID; incluido el tema por omisión que tiene el ID IThemeManager.DEFAULT_THEME) o el tema actual. Desde org.eclipse.ui.themes.ITheme, puede obtener org.eclipse.jface.resources.ColorRegistry, org.eclipse.jface.resources.FontRegistry y los datos arbitrarios asociados con un tema.

El entorno de trabajo suministra las definiciones de font para los fonts de texto, diálogo, mensaje de cabecera, cabecera y título de componente. También suministra definiciones de color para hiperenlace, hiperenlace activo, error, componente activo (componentes de gradiente de fondo y primer plano) y componente inactivo (componentes de gradiente de fondo y primer plano). El entorno de trabajo también constantes de datos para los porcentajes de gradiente de título (activos e inactivos) y las direcciones de gradiente (activas e inactivas). El entorno de trabajo no suministra temas con nombre.