GWT 同一列中的不同列类型?

the*_*oot 5 gwt gwt-2.2-celltable

我正在开发 GWT 应用程序,到目前为止我喜欢 Java 开发人员友好的 UI 框架!

到目前为止,我几乎可以用这些小部件做任何事情,但是这个让我很难过。我有一个单元格表,用作用户输入源。它只是用户输入键值对来调用我的服务的一种方式。用户可以动态添加行和删除行。

现在棘手的部分是我想强制用户输入某些键的值。这些键只有某些 4-5 个可接受的值,因此对于那些行,我想用 selectionCell 替换 editableTextCell。不确定如何在表格中混合单元格类型,因为在将列添加到表格时完成了列单元格类型声明。

任何输入表示赞赏!

谢谢

Ril*_*ark 5

您必须创建一个自定义单元格,该单元格有时会呈现 a<select>有时会呈现<input>. 如果您查看 EditableTextCell 和 SelectionCell 的代码,您可以了解如何实现这一点。它可能非常简单 - 您可以分别编写一个,然后在您的render函数中将数据传递到适当的单元格。

就像是...

public class ChoosyCell extends AbstractCell<YourData> {
    SelectionCell selectCell = new SelectionCell<YourData>();
    EditableTextCell textCell = new EditableTextCell<YourData>();

    public void render(Context context, YourData data, SafeHtmlBuilder sb) {
        if (data.isTheLimitedType()) {
            selectCell.render(context, data, sb);
        } else {
            textCell.render(context,data, sb);
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

(未经测试的代码)