Tôi có một widget UiBinder đơn giản có chứa một TextArea:Làm thế nào để khai báo tên phong cách phụ thuộc với 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>
Tôi muốn kiểm soát màu nền của textarea này cho khả năng ghi và đọc chỉ tiểu bang. GWT sử dụng tên trang trí kiểu "-readonly" để đạt được điều này. Vì vậy, tôi cố gắng này:
<!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>
Rõ ràng điều này sẽ không làm việc vì tên phong cách được obfuscated cho CssResources dẫn đến một cái gì đó như thế này:
.G1x26wpeN {
background-color:yellow
}
.G1x26wpeO {
background-color: lightgray;
}
HTML kết quả cho textarea có khả năng ghi trông như thế này:
<textarea tabindex="0" class="G1x26wpeN" rows="3"/>
Các chỉ đọc textarea trông như thế này:
<textarea tabindex="0" class="G1x26wpeN G1x26wpeN-readonly" readonly="" rows="3"/>
Làm cách nào để khai báo kiểu để GWT sẽ làm xáo trộn phần chính chứ không phải bộ giải mã "-readonly"?
Tôi biết rằng tôi có thể vô hiệu hóa sự che khuất cho toàn bộ tên kiểu. Nhưng tôi muốn giữ cho obfuscation trong khi sử dụng các trang trí.
Thật không may nó là một thay đổi css liên quan đến một phần tử vùng văn bản cụ thể. –