tengo un widget UiBinder simple que contiene un TextArea:¿Cómo declarar los nombres de estilo dependientes con UiBinder
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<g:TextArea visibleLines="3" />
</ui:UiBinder>
que quieren controlar el color de fondo de esta área de texto para los permisos de escritura y leer sólo los estados. GWT usa el decorador de nombres de estilo "-readonly" para lograr esto. Así que intento esto:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
.textBoxStyle {
background-color:yellow;
}
.textBoxStyle-readonly {
background-color:lightgray;
}
</ui:style>
<g:TextArea styleName="{style.textBoxStyle}" visibleLines="3" />
</ui:UiBinder>
Obviamente, esto no funcionará porque los nombres de estilo se ofuscado por CssResources que resulta en algo como esto:
.G1x26wpeN {
background-color:yellow
}
.G1x26wpeO {
background-color: lightgray;
}
El HTML resultado para el área de texto se puede escribir el siguiente aspecto:
<textarea tabindex="0" class="G1x26wpeN" rows="3"/>
La única área de texto leído se parece a esto:
<textarea tabindex="0" class="G1x26wpeN G1x26wpeN-readonly" readonly="" rows="3"/>
¿Cómo declaro el estilo para que GWT ofusque la parte principal pero no el declorador "-readonly"?
Sé que puedo desactivar la ofuscación de todo el nombre de estilo. Pero me gustaría mantener la ofuscación al hacer uso de los decoradores.
Desafortunadamente es un cambio de CSS relevante para un elemento de área de texto específico. –