From 79243430fb6aa10b780319282ee2199d2a3fc72a Mon Sep 17 00:00:00 2001 From: Arthur Poiret Date: Thu, 18 Nov 2021 00:22:02 +0100 Subject: [PATCH] fix: plugin treeitems can be filtered --- .../java/com/owlplug/core/controllers/PluginsController.java | 4 ++-- .../main/java/com/owlplug/core/ui/FilterableTreeItem.java | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/PluginsController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/PluginsController.java index 369e573b..f0eb3b68 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/PluginsController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/PluginsController.java @@ -132,7 +132,7 @@ public TreeCell call(TreeView p) { if (searchTextField.getText() == null || searchTextField.getText().isEmpty()) { return null; } - return actor -> actor.toString().toLowerCase().contains(searchTextField.getText().toLowerCase()); + return item -> item.toString().toLowerCase().contains(searchTextField.getText().toLowerCase()); }, searchTextField.textProperty())); // Binds search property to plugin tree filter @@ -140,7 +140,7 @@ public TreeCell call(TreeView p) { if (searchTextField.getText() == null || searchTextField.getText().isEmpty()) { return null; } - return actor -> actor.toString().toLowerCase().contains(searchTextField.getText().toLowerCase()); + return item -> item.toString().toLowerCase().contains(searchTextField.getText().toLowerCase()); }, searchTextField.textProperty())); syncButton.setOnAction(e -> { diff --git a/owlplug-client/src/main/java/com/owlplug/core/ui/FilterableTreeItem.java b/owlplug-client/src/main/java/com/owlplug/core/ui/FilterableTreeItem.java index eb5fde73..ec974f98 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/ui/FilterableTreeItem.java +++ b/owlplug-client/src/main/java/com/owlplug/core/ui/FilterableTreeItem.java @@ -18,6 +18,7 @@ package com.owlplug.core.ui; +import java.util.Objects; import java.util.function.Predicate; import javafx.beans.binding.Bindings; import javafx.beans.property.ObjectProperty; @@ -41,10 +42,12 @@ public FilterableTreeItem(T value) { if (child instanceof FilterableTreeItem) { ((FilterableTreeItem) child).predicateProperty().set(predicate.get()); } - if (predicate.get() == null || !child.getChildren().isEmpty()) { + if (predicate.get() == null || !child.getChildren().isEmpty() || child.getValue() == null) { return true; } + return predicate.get().test(child.getValue()); + }; return p; }, predicate));