gpt4 book ai didi

java - NAT表过滤

转载 作者:行者123 更新时间:2023-12-01 09:11:52 34 4
gpt4 key购买 nike

我试图同时对 NatTable 应用两种不同类型的过滤。每个过滤器单独工作都很好,但当它们组合在一起时,它们就不能像我预期的那样工作。

  • 我做的第一件事是调用 FilterList.setMatcher() 以根据外部条件减少行数
  • 我要做的下一件事是使用 FilterRowHeaderComposite 来应用进一步的过滤,但它似乎忽略了输入(即使我在过滤器标题单元格中看到输入/图标)并且没有应用过滤器

下面是一些基本代码片段,显示了我的设置...

public void basicSetup() {
eventList = GlazedLists.eventList(values);
TransformedList<T, T> rowObjectsGlazedList = GlazedLists.
threadSafeList(eventList);
sortedList = new SortedList<>(rowObjectsGlazedList, myComparator<>());
filterList = new FilterList<>(sortedList);

//... code ommitted

FilterRowHeaderComposite<T> filterRowHeaderLayer = new
FilterRowHeaderComposite<>(
new DefaultGlazedListsFilterStrategy<T>(bodyLayerStack.
getFilterList(), columnPropertyAccessor, configRegistry),
sortHeaderLayer, columnHeaderDataLayer.getDataProvider(),
configRegistry);

}

public void applyExternalFilter() {
getBodyLayerStack().getFilterList().setMatcher(myCriteria);
}

public void resetExternalFilter() {
getBodyLayerStack().getFilterList().setMatcher(null);
}

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

您正在尝试通过过滤器行将编程应用的过滤器与用户应用的过滤器混合。这不起作用,因为过滤器行处理 FilterList 上的匹配器,并且无法识别哪些过滤器是由谁添加的。

要支持将静态过滤器与用户定义的过滤器混合,您需要使用支持添加其他静态过滤器的 DefaultGlazedListsStaticFilterStrategy

NatTable 示例应用程序 -> 教程示例 -> GlazedLists -> Filter -> GlazedListsStaticFilterExample (_6033_GlazedListsStaticFilterExample.java) 中提供了一个示例

DefaultGlazedListsStaticFilterStrategy filterStrategy = new DefaultGlazedListsStaticFilterStrategy(
bodyLayerStack.getFilterList(),
columnPropertyAccessor,
configRegistry);

FilterRowHeaderComposite filterRowHeaderLayer =
new FilterRowHeaderComposite(
filterStrategy,
columnHeaderLayer,
columnHeaderDataLayer.getDataProvider(),
configRegistry);

然后可以通过

应用静态过滤器
filterStrategy#addStaticFilter(Matcher);

目前还没有明确的方法。只能删除先前应用的过滤器。但请随意创建用于清算的增强票并提供补丁。

关于java - NAT表过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40871988/

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