我想创建数据类型为布尔值的可编辑单元格。
我不想为布尔数据类型使用selectioncell
我的testBooleanColumn列的单元格包含值为true,false .........的字符串。
当我单击testBooleanColumn中存在的单元格时,该单元格应该是可编辑的,并且在该可编辑单元格中,我要显示具有value(true,false)的选择单元格。
当用户从selectioncell更改值为true或false时,该值将设置为testBooleanColumn中的可编辑单元格
这个怎么做?有什么提示吗?或此用例的示例代码?
最佳答案
有三种方法可以做到这一点:
将CompositeCell与ClickTextCell和SelectionCell一起使用,并重写CompositeCell的render方法以仅呈现ClickTextCell。
单击ClickTextCell时,它将自动调用ValueUpdater。
在ValueUpdater的更新功能中,您必须在ClickTextCell中设置一些布尔值。然后,您必须在CompositeCell的render方法中检查此布尔值,如果已设置,则呈现SelectionCell而不是ClickTextCell。
例如,创建一个扩展AbstractEditableCell的自定义单元(请参见此tutorial)并自己实现该功能。您可以签出SelectionCell和EditTextCell的代码,然后复制其中的大部分代码。基本上,您必须具有在单元格获得焦点时设置的某种标志。在render方法中,您必须显示一个下拉列表或仅显示一个文本。
扩展EditTextCell或SelectionCell并实现缺少的功能。好处是您可以重用某些渲染方法,而不必自己编写完整的渲染代码。