如何设置GWT单元格背景颜色

时间:2012-08-16 18:21:22

标签: java gwt styles cell

我想更改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文件定义。

请求帮助!

2 个答案:

答案 0 :(得分:3)

<德尔> 如果使用Grid,可以使用CellFormatter。例如。     grid.getCellFormatter()。setStyleName(row,column,“dynamicStyleName”);

对于'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。它可以帮助我了解我可能想要使用哪些属性: