gpt4 book ai didi

java - 如何配置 NatTable FilterComboBox 为每列使用不同的 DataProvider

转载 作者:行者123 更新时间:2023-12-02 04:36:54 25 4
gpt4 key购买 nike

在我的 NatTable 中,我使用类似于 ExcelLikeFilterRowCustomTypesExample 的 ComboBoxFilterRowHeaderComposite 。它工作得相当好,但是组合框过滤在大表中添加了太多项目以方便过滤。然而,我试图通过只用某些项目填充组合来解决这个问题;在我的表中,某些列仅适用于具有有限数量的不同值的类型或操作,我想为它们添加所有选项。而对于其他列,我只想添加根项目。

为了实现这一点,我认为我需要修改comboBoxDataProvider,但是;为了达到我想要的全部效果,某些列需要不同的数据提供者。

这是正确的方法吗?如果是这样,我该怎么做?

这就是我当前配置组合框组合的方式:

    ComboBoxFilterRowHeaderComposite<GroupedPerfRecord> filterRowHeaderLayer =
new ComboBoxFilterRowHeaderComposite<GroupedPerfRecord>(
bodyLayerStack.getFilterList(),
bodyLayerStack.getBodyDataLayer(),
bodyLayerStack.getSortedList(),
columnPropertyAccessor, columnHeaderLayer,
columnHeaderDataProvider, configRegistry, false);

final IComboBoxDataProvider comboBoxDataProvider = filterRowHeaderLayer.getComboBoxDataProvider();
filterRowHeaderLayer.addConfiguration(new ComboBoxFilterRowConfiguration() {
{
this.cellEditor = new FilterRowComboBoxCellEditor(comboBoxDataProvider, 5);
this.filterIconPainter = new ComboBoxFilterIconPainter(comboBoxDataProvider, GUIHelper.getImage("filter"), null);
}
});

最佳答案

如果默认过滤器行具有用于单项选择的组合框,您将为每列使用不同的 IComboBoxDataProvider。但您选择了 ComboBoxFilterRowHeaderComposite,它在后面具有不同的过滤机制,以支持多选和全选处理,类似于众所周知的电子表格应用程序。因此,没有内置机制可以允许简单地配置所需的行为。

但是 ComboBoxFilterRowHeaderComposite 中有一个构造函数,它采用 FilterRowComboBoxDataProvider 作为参数。因此,您可以提供自己的 FilterRowComboBoxDataProvider 实现(可能是 GlazedListsFilterRowComboBoxDataProvider 的子类),并根据列在 getValue() 中实现所需的行为索引。

关于java - 如何配置 NatTable FilterComboBox 为每列使用不同的 DataProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56546673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com