使用 NatTable 在树表中的单个列中同时编辑 CheckBox 和 Text

Posted

技术标签:

【中文标题】使用 NatTable 在树表中的单个列中同时编辑 CheckBox 和 Text【英文标题】:Editor for both CheckBox and Text in a single column in Tree Table using NatTable 【发布时间】:2021-10-27 07:20:25 【问题描述】:

我正在尝试从 natTableExamples 重新创建此“TreeGridWithCheckBoxFieldsExample”,并且我希望第一列可编辑,不仅是复选框,还包括它包含的文本。 但是,当我注册 TextCellEditor 时,我无法通过单击它来设置 CheckBox 值,如果我单击 CheckBox,由于下面代码中的 MouseEditAction(),它会进入旁边文本的编辑模式。

uiBindingRegistry.registerFirstSingleClickBinding(
                    new CellPainterMouseEventMatcher(
                            GridRegion.BODY,
                            MouseEventMatcher.LEFT_BUTTON,
                            checkBoxPainter),
                    new MouseEditAction());

但是如果我删除它,我将无法选择 CheckBox,并且由于下面代码中的 DefaultBooleanDisplayConverter,编辑后的文本不会被编辑,因为它获得的 dataValue 是布尔类型。

configRegistry.registerConfigAttribute(
                    CellConfigAttributes.DISPLAY_CONVERTER,
                    new DefaultBooleanDisplayConverter(),
                    DisplayMode.NORMAL,
                    TreeLayer.TREE_COLUMN_CELL);

谢谢。

【问题讨论】:

【参考方案1】:

这是开箱即用不支持的 afaik。转换器和编辑器按列/单元格注册。为一个行对象的两个不同属性在一个列/单元格中混合两个编辑器和转换器并不是一件容易的事。您将需要实施自定义机制来实现这一目标。

【讨论】:

自定义机制是指自定义编辑器或自定义小部件(包含复选框和文本)。 具有自定义绑定的自定义编辑器对单击复选框的反应与单击单元格文本的反应不同。

以上是关于使用 NatTable 在树表中的单个列中同时编辑 CheckBox 和 Text的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MS SQL 表中具有 MM/DD/YYYY 日期的单个列中减去

使用 PHP 将多个 SQL 列组合成 HTML 表的单个列

查找三个表中的孤立行

SQL 查询将多条记录中的值组合到单个列中

SQL 将许多 tsv 文件连接到数据库中的单个表中,同时跟踪文件源 (MonetDBLite)

NatTable 中的值如何与 GlazedLists 进行比较?