Temas

org.eclipse.ui.themes

3.0

Esse ponto de extensão é utilizado para personalizar a aparência da UI. Ele permite a definição de entidades de cor e de fonte, assim como de entidades de tema. Os temas permitem que os aplicativos substituam seletivamente as especificações de cor e fonte padrão para utilizações específicas.

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

Uma coleta de substituições de fontes, cores e dados. Essa coleta pode ser utilizada para alterar a aparência do workbench. Muitos elementos do tema podem existir com o mesmo ID. Isso permite que os autores do componente contribuam com temas existentes.



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

Um agrupamento lógico de definições de elementos do tema. Essa categoria pode incluir cores e fontes.



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

Uma definição simbólica de cor.



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

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

Uma definição simbólica de fonte.



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

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Permite a substituição de cores definidas em elementos colorDefinition. Essas cores serão aplicadas quando o tema estiver sendo utilizado.



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #REQUIRED>

Permite a substituição de fontes definidas em elementos fontsDefinition. Essas fontes serão aplicadas quando o tema estiver sendo utilizado.



<!ELEMENT descrição (#PCDATA)>

Uma breve descrição sobre o uso de elementos.



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

A versão de elemento do atributo colorFactory. É utilizado quando colorFactory implementa org.eclipse.core.runtime.IExecutableExtension e há dados de parâmetros que você deseja utilizar na inicialização.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Um elemento de parâmetro a ser utilizado no elemento colorFactory. Ele será transmitido como dados de inicialização para a classe colorFactory.



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Um elemento que permite aos dados arbitrários serem associados a um tema ou ao tema padrão. Esses dados podem ser direções ou porcentagens de gradiente, etiquetas, informações de autoria, etc.

Esse elemento tem o comportamento semelhante a definições e substituições. Se uma chave estiver presente no tema padrão e em um tema identificado, o valor dos temas identificados será utilizado quando esse tema for acessado. Se o tema identificado não fornecer um valor, o padrão será utilizado.



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

Esse elemento permite a especificação de um valor de cor com base na plataforma.



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

Esse elemento permite a especificação de um valor de fonte com base na plataforma.



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

Esse elemento permite que uma categoria seja ligada a uma apresentação específica, conforme descrito pelo ponto de extensão org.eclipse.ui.presentationFactory. Se uma categoria tiver ligações de apresentação, ela (e seus filhos) será configurável apenas pelo usuário se ele estiver ligado à apresentação ativa. Isso é útil para a remoção de itens não utilizados de acordo com o usuário.



A seguir, um exemplo de várias definições de cores e fontes, assim como um tema que os substitui.

   

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

"Cor XYZ do Primeiro Plano"

value=

"COLOR_BLACK"

>

<!-- deve ser utilizado branco no GTK -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

Essa é a cor utilizada para o primeiro plano do editor de plug-in XYZ.

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"Cor do Segundo Plano 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>

<!-- deve ser utilizado preto no GTK -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

Essa é a cor utilizada para o segundo plano do editor de plug-in XYZ.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"Fonte do Editor XYZ"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

Essa é a fonte utilizada pelo editor de plugin XYY.

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

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

A org.eclipse.ui.IWorkbench.getThemeManager() fornece uma instância de org.eclipse.ui.themes.IThemeManager que pode ser utilizada para obter um tema nomeado (pelo id, incluindo o tema padrão que possui um ID de IThemeManager.DEFAULT_THEME) ou o tema atual. A partir de um org.eclipse.ui.themes.ITheme, é possível obter um org.eclipse.jface.resources.ColorRegistry, um org.eclipse.jface.resources.FontRegistry e os dados arbitrários associados a um tema.

O workbench fornece as definições de fonte para fontes de textos, diálogos, banners, cabeçalhos e títulos de partes. Também fornece definições de cores para o hyperlink, hyperlink ativo, erro, parte ativa (partes de gradiente do segundo plano e primeiro plano) e parte inativa (partes de gradiente do segundo plano e primeiro plano). O workbench também fornece constantes de dados para as porcentagens de gradiente (ativo e inativo) e de direções de gradiente (ativo e inativo) do título. O workbench não fornece temas nomeados.