From 0e81748462400b60277bd01d21f5448724d850d4 Mon Sep 17 00:00:00 2001
From: Alexander Diewald <diewald@fortiss.org>
Date: Thu, 6 Aug 2020 12:00:52 +0200
Subject: [PATCH] Common.UI JFX: Beautify TreeContentProvider Filter API

Issue-Ref: 3541
Issue-Url: https://af3-developer.fortiss.org/issues/3541
Signed-off-by: Alexander Diewald <diewald@fortiss.org>
---
 .../ui/javafx/control/treetableview/.ratings       |  2 +-
 .../DynamicTreeContentProviderBase.java            | 10 +++++-----
 .../tooling/kernel/ui/internal/views/.ratings      |  2 +-
 .../ui/internal/views/ModelElementsViewFX.java     | 14 --------------
 4 files changed, 7 insertions(+), 21 deletions(-)

diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
index b544444e6..4aca8284b 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
@@ -1,7 +1,7 @@
 DynamicList.java 786300e2e914826da239329d190abea1710478ea YELLOW
 DynamicListContentProvider.java 817cba44f246a361207a88ef9a4e1869215803f7 YELLOW
 DynamicStreamContentProvider.java f46e91400609cba54793dd240be0fe2aa0d5cced YELLOW
-DynamicTreeContentProviderBase.java 6760a6dc5721175b1dada8f30fd9da05f7bcc4b3 GREEN
+DynamicTreeContentProviderBase.java 941f6ce923d08638bdea08b1c80ec6eb4d1220be YELLOW
 DynamicTreeItem.java 7486071d20e896d6ca9a9101bf105caccf3656d0 YELLOW
 DynamicTreeItemBase.java d883066ecc181120302ca32f328538de7a45b093 YELLOW
 DynamicTreeTableUIProviderBase.java f78c0f8b52fbc939166b3f94f7f6006cc0f4d32b GREEN
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeContentProviderBase.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeContentProviderBase.java
index 6760a6dc5..941f6ce92 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeContentProviderBase.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeContentProviderBase.java
@@ -51,10 +51,10 @@ public abstract class DynamicTreeContentProviderBase<T> {
 	 * toString() contains the filter value. Sub-classes may override or implement
 	 * {@link #filter(Object, String)}.
 	 */
-	protected Predicate<T> getFilterPredicate(String filterValue) {
-		if(filterValue != null && !"".equals(filterValue.trim())) {
+	protected Predicate<T> getFilterPredicate() {
+		if(getFilterExpression() != null && !"".equals(getFilterExpression().trim())) {
 			return (o) -> {
-				return filter(o, filterValue);
+				return filter(o, getFilterExpression());
 			};
 		}
 		return (o) -> true;
@@ -82,7 +82,7 @@ public abstract class DynamicTreeContentProviderBase<T> {
 		if(l == null) {
 			return emptyList();
 		}
-		return l.stream().filter(getFilterPredicate(getFilterExpression()))
-				.sorted(getSortingComparator()).collect(toList());
+		return l.stream().filter(getFilterPredicate()).sorted(getSortingComparator())
+				.collect(toList());
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings
index 3eaf20505..e2d8a442d 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings
@@ -4,7 +4,7 @@ LibraryViewDragSourceAdapter.java 56ef61b214ef5d6cb5b751791a92158bda0391ec GREEN
 LinkWithEditorPartListener.java c5ab74424378e7b158a805c4dd14fc03c8abeded GREEN
 MarkerViewContentProvider.java 4cb1192baebe21bca951c439c163d0c171512515 GREEN
 MarkerViewPart.java cbb650271b6877af205421b7cb11f930440a7ef9 GREEN
-ModelElementsViewFX.java b1d03d57b67bf2c7b1d8da0ad3b16ea7d59efab5 GREEN
+ModelElementsViewFX.java 68accd2cc94a0df58a2742329f75f6fda25a8606 YELLOW
 NavigatorNewMenu.java a35e391960d1dacbe7f77982e53e1891e9382d5a GREEN
 NavigatorTreeContentComparator.java d9f1354cfdff78b104b28887d2397e5ca0e9755b GREEN
 NavigatorTreeContentProvider.java 1fbe97bebf3805cc1af190cecd784fc1cfd12306 GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ModelElementsViewFX.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ModelElementsViewFX.java
index b1d03d57b..68accd2cc 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ModelElementsViewFX.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ModelElementsViewFX.java
@@ -24,7 +24,6 @@ import static org.fortiss.tooling.kernel.utils.KernelModelElementUtils.getParent
 import java.util.Collection;
 import java.util.List;
 import java.util.Set;
-import java.util.function.Predicate;
 
 import org.conqat.ide.commons.ui.ui.EmptyPartListener;
 import org.conqat.lib.commons.collections.IdentityHashSet;
@@ -193,19 +192,6 @@ public final class ModelElementsViewFX extends FXViewPart {
 			}
 			return false;
 		}
-
-		/** {@inheritDoc} */
-		@Override
-		protected Predicate<Object> getFilterPredicate(String filterValue) {
-			// this override is needed, because super implementation does not
-			// call filter(Object, String) when filter value is null.
-			if(filterValue == null || "".equals(filterValue)) {
-				return (o) -> {
-					return filter(o, null);
-				};
-			}
-			return super.getFilterPredicate(filterValue);
-		}
 	}
 
 	/** {@link DynamicTreeUIProviderBase} for the library view. */
-- 
GitLab