0

gwt セル列の background-color プロパティを変更したいと思います。問題は、この色がセルのレンダリングごとに変わる可能性があることです (背景色はセルの値によって異なります)。

私はすでに 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ファイル定義のために、それを使用して「動的に」色を設定することはできません。

助けてくれてありがとう!

4

2 に答える 2

3
グリッドを使用している場合は、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());
  }
}
于 2012-08-16T19:42:20.853 に答える
-1

使用しているコンポーネントの詳細を提供していないため、操作する必要がある可能性のあるプロパティを見つけるための一般的な提案をします。

私は Eclipse を使用しており、POC の作業を支援するために GWT Designer を使用することをお勧めします。これは、どのプロパティを試してみたいかを理解するのに役立ちます。

于 2012-08-16T23:30:16.997 に答える