J'ai un simple widget UiBinder contenant un TextArea :
<!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>
Je veux contrôler la couleur d'arrière-plan de cette zone de texte pour les états en écriture et en lecture seule. GWT utilise le décorateur de nom de style "-readonly" pour y parvenir. Donc j'essaie ceci :
<!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>
Évidemment, cela ne fonctionnera pas car les noms de style sont obscurcis pour les CssResources, ce qui donne quelque chose comme ceci :
.G1x26wpeN {
background-color:yellow
}
.G1x26wpeO {
background-color: lightgray;
}
Le résultat HTML pour la zone de texte inscriptible ressemble à ceci :
<textarea tabindex="0" class="G1x26wpeN" rows="3"/>
La zone de texte en lecture seule ressemble à ceci :
<textarea tabindex="0" class="G1x26wpeN G1x26wpeN-readonly" readonly="" rows="3"/>
Comment puis-je déclarer le style pour que GWT obfusque la partie primaire mais pas le décodeur "-readonly" ?
Je sais que je peux désactiver l'obscurcissement pour l'ensemble du nom du style. Mais j'aimerais conserver l'obfuscation tout en utilisant les décorateurs.