我想更改gwt单元格列的背景颜色属性。问题是这种颜色在每次渲染时都会发生变化(背景颜色取决于单元格的值)。
我已经尝试覆盖TextColumn的单元格样式名称方法,如下所示:
@Override
public String getCellStyleNames(final Context context, final Object data) {
if (my_condition) return "a custom style";
else return "default style"; // or null...
}
好吧,你当然知道它只在属性中添加一个类名,所以我不能用它来动态设置颜色"由于静态css文件定义。
请求帮助!
答案 0 :(得分:3)
对于'color'属性的动态更新,我建议扩展TextCell(并将其传递给'TextColumn'构造函数)。这样的事情:
public class CustomCell extends TextCell<String> {
interface Template extends SafeHtmlTemplates {
@Template("<div style=\"color:{0}\">{1}</div>")
SafeHtml div(String url, String text);
}
private static Template template;
public CustomCell () {
if (template == null) {
template = GWT.create(Template.class);
}
}
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
String color = "red";
if (value != null) {
// The template will sanitize the URI.
sb.append(template.div(color, value));
}
}
}
public class CustomColumn<T> extends TextColumn<T> {
public CustomColumn() {
super(new CustomCell());
}
}
答案 1 :(得分:-1)
由于您没有提供您正在使用的组件的详细信息,因此我将提供一个通用建议,以尝试找出您可能需要使用的属性。
我使用eclipse并建议使用GWT Designer来帮助你处理POC。它可以帮助我了解我可能想要使用哪些属性: