【问题标题】:Add a multi-select ComboBoxCellEditor in a Filter Row在过滤器行中添加多选 ComboBoxCellEditor
【发布时间】:2020-10-28 23:04:42
【问题描述】:

我想在某些列的过滤器行中有一个复选框。

为此,我添加了一个 ComboCellEditor,其中包含可供选择的指定复选框值。

final ComboBoxCellEditor comboBoxCellEditor = new ComboBoxCellEditor(checkBoxValues);
comboBoxCellEditor.setMultiselect(true);
comboBoxCellEditor.setUseCheckbox(true);
comboBoxCellEditor.setMultiselectTextBracket("", "");
configRegistry.registerConfigAttribute(EditConfigAttributes.CELL_EDITOR, comboBoxCellEditor,
        DisplayMode.EDIT, region);

这允许我选择我想要过滤的值。选择它们后,它将它们以[first value, second value, third value] 的形式存储在单元格中。这意味着不会带回任何行,因为列中没有任何内容与完整字符串匹配。

考虑到这一点,我假设我必须将文本更改为某种形式的正则表达式并将TextMatchingMode 设置为REGULAR_EXPRESSION。我一直在尝试实现DisplayConverter,但我不知道该怎么做。

我查看了示例以尝试解决此问题,但我找不到涵盖我的情况的示例。 StaticFilterGridExample 是一个普通的组合框,可以选择一个值(我已经正常工作)或ExcelLikeFilterRowExample 为每一列添加一个复选框过滤器。我只想对单个列执行此操作,因此我无法使用该层。

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: java nattable


    【解决方案1】:

    IIUC 您希望将类似 Excel 的过滤器与带有复选框和/或文本字段的简单过滤器混合使用。对吗?

    目前在 NatTable 中不支持开箱即用。您将需要创建自己的两种默认实现的混合以使其正常工作。

    【讨论】:

    • 是的,没错。我们需要可编辑的文本、组合框和复选框过滤器。默认实现是指处理此问题的新层还是注册表配置中的实现?
    • 一种过滤策略
    • 好吧,看看这个例子,你可能需要一个类似于ComboBoxFilterRowHeaderComposite 的新层和一个类似于ComboBoxGlazedListsFilterStrategy 的新过滤策略。
    • 就是这样。我设法通过将注册表配置设置为使用组合框单元格编辑器并创建自定义ComboBoxGlazedListsFilterStrategy 来做到这一点。我现在可以在一张表中同时使用多种过滤器类型。感谢您的帮助!
    • 完美!如果您愿意,我们会接受贡献 ;-)
    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2022-10-22
    相关资源
    最近更新 更多