我正在尝试使用 UiBinder 为 GWT CellBrowser 小部件设置自定义样式,但我无法更改任何依赖样式(即我可以为整个小部件设置不同的背景颜色,但我不知道如何更改样式选定的项目)
我尝试按照此论坛中对其他小部件(例如此处或此处)的建议使用“@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{}
}
我使用GWT SDK中的 CSS 文件作为参考。
在我拥有的 ui.xml 文件中,在 < g:HTMLPanel> 标记内:
<c:CellBrowser ui:field="cellbrowser" width="100%" height="100%"/>
如果我不使用“CellBrosRes”,代码可以正常工作。因此,如果我将创建 CellBrowser 的行替换为此行:
CellBrowser browser = new CellBrowser(tvm, null);
如果我使用“CellBrosRes”,它只会忽略我的风格。我认为问题在于我创建样式资源的方式。
任何有关如何使这项工作的帮助将不胜感激。让我知道您是否需要更多详细信息或某些内容不够清楚。
谢谢