Я пытаюсь установить собственный стиль для виджета GWT CellBrowser с помощью UiBinder, но я не могу изменить какие-либо зависимые стили (т.е. я могу установить другой цвет фона для всего виджета, но я не знаю, как изменитьстиль для выбранного элемента)
Я пытался использовать "@external", как предлагается на этом форуме, для других виджетов (например, здесь или здесь ), но это помоглоне имеет никакого эффекта, я думаю, это из-за того, как стили определены в CellBrowser.
Я думаю, что подход, который я должен использовать, должен быть более похож на http://crazygui.wordpress.com/2011/11/01/how-to-skin-a-gwt-celltable/. Адаптация их кода кCellBrowser вместо CellTable Я использую:
@UiField (provided=true) CellBrowser cellbrowser;
interface CellBrowserCompanyUiBinder extends UiBinder<Widget, CellBrowserCompany> {}
public CellBrowserCompany() {
TreeViewModel tvm = new TreeViewModelImpl();
CellBrowser.Resources reso = GWT.create(CellBrowsRes.class);
cellbrowser = new CellBrowser(tvm, null, reso);
cellbrowser.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
initWidget(uiBinder.createAndBindUi(this));
}
public interface CellBrowsRes extends CellBrowser.Resources{
@Source({CellBrowser.Style.DEFAULT_CSS, "path/to/css.css"})
BrowserStyle cellbrowserstyle();
interface BrowserStyle extends CellBrowser.Style{}
}
, и я использую CSS-файл из GWT SDK в качестве ссылки.
В файле ui.xmlУ меня внутри тега :
<c:CellBrowser ui:field="cellbrowser" width="100%" height="100%"/>
Код работает нормально, если я не использую "CellBrosRes".Таким образом, это работает, если я заменяю строку, которая создает CellBrowser, на эту:
CellBrowser browser = new CellBrowser(tvm, null);
Если я использую "CellBrosRes", он просто игнорирует мой стиль.Я думаю, проблема в том, как я создаю ресурс стиля.
Любая помощь в том, как получить эту работу, будет принята с благодарностью.Дайте мне знать, если вам нужны дополнительные детали или если что-то не совсем понятно.
Спасибо