0

AbstractCell に基づくクラス ContactCell があります。2 つのラベルと 1 つの画像 (GWT 2.5 の UiBinder で定義) があります。

Column.addColumn() でこのカスタム セルを CellTable に追加するにはどうすればよいですか?

その場合、getValue() が単純な値 (文字列など) のみを返す場合に、メソッド getValue() を使用して ContactCell のフィールドにデータを入力するにはどうすればよいですか。

Column<Contact, String> column = new Column<Contact, String>(
    new ContactCell()) {
  @Override
  public String getValue(Contact object) {
    return object... CAN ONLY RETURN ONE VALUE. HOW TO POPULATE 2 LABELS & IMAGE?
  }
};
4

3 に答える 3

0

次のように、セルの onrender mathod をオーバーライドすることで、レンダリング文字列を変更できます。

2 つのラベルと、getValue メソッドによって返された値から画像を計算できると仮定します。

ContactCell contactCell = new ContactCell()
{
    @Override
    public void render( com.google.gwt.cell.client.Cell.Context context, SafeHtml value, SafeHtmlBuilder sb )
    {

    // do value check and compute label1 and label2 and calso compute the image path.       

    sb.appendHtmlConstant( "<label>LABEL1</label>" +"<label>LABEL2</label>"+"<image></image>" )
    }
});


Column<Contact, String> column = new Column<Contact, String>( contactCell ) 
{
  @Override
  public String getValue(Contact object) 
  {
    return object... CAN ONLY RETURN ONE VALUE. HOW TO POPULATE 2 LABELS & IMAGE?
  }
};
于 2013-02-25T16:53:37.047 に答える
0

に基づくセルAbstractCellが を使用して定義されている場合、UiBinder現在のところ(GWT 2.5、そのようなセルを に追加することはできませんCellTable

于 2013-02-28T16:53:07.913 に答える
0

IdentityColumn法線の代わりに を使用するかColumn (Contact オブジェクト全体を通過します)、次のColumnような法線を使用できます。

Column<Contact, String[]> column = new Column<Contact, String[]>(
    new ContactCell()) {
  @Override
  public String[] getValue(Contact object) {
    String[] retvalue = new String[2];
    retvalue[0] = "SOMETHING";
    retvalue[1] = "SOME OTHER THING";
    return retvalue;
  }
};
于 2013-02-26T15:54:06.930 に答える