У меня есть класс, который расширяет Composite и содержит DisclosurePanel на верхнем уровне связанного файла UiBinder.
В DisclosurePanel HTML-код выглядит следующим образом:
<table class="gwt-DisclosurePanel gwt-DisclosurePanel-closed>
<tr>
<td>
<a href="javascript:void(0);" style="display: block;" class="header">
<div class=""> <!-- an HTMLPanel I've shoved in to a <gwt:customHeader> block -->
...
</div>
</a>
...
В моем файле UiBinder я могу использовать addStyleNames = "{style. ???}" и стилизовать некоторые вещи, например, я могу стилизовать саму DisclosurePanel и я могу стилизовать мою HTMLPanel внутри, но я не могу стилизовать
<a>
кроме как делать это:
disclosurePanel.getHeader().getParent().getElement().getStyle().setTextDecoration(TextDecoration.NONE);
disclosurePanel.getHeader().getParent().getElement().getStyle().setColor("black");
в коде, но это ужасно, и стиль теперь находится в двух местах: код и файл UiBinder.
Причина, по которой я это делаю, состоит в том, чтобы избавиться от подчеркивания и синего цвета, которые есть по умолчанию. Другая альтернатива - сделать что-то вроде этого:
.gwt-DisclosurePanel a {
text-decoration: none;
text: black;
}
но тогда мне нужно будет сослаться на этот CSS-файл с моей домашней страницы (Client.html) или на ссылку из файла gwt.xml, но оба этих способа устарели.
Как мне сделать это лучше или это невозможно?