diff --git a/extension/src/main/java/io/xpipe/extension/fxcomps/util/BindingsHelper.java b/extension/src/main/java/io/xpipe/extension/fxcomps/util/BindingsHelper.java index ee5ada94..a5f17494 100644 --- a/extension/src/main/java/io/xpipe/extension/fxcomps/util/BindingsHelper.java +++ b/extension/src/main/java/io/xpipe/extension/fxcomps/util/BindingsHelper.java @@ -8,6 +8,7 @@ import javafx.collections.ObservableList; import java.lang.ref.WeakReference; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; public class BindingsHelper { @@ -33,6 +34,16 @@ public class BindingsHelper { }); } + public static void bindMappedContent(ObservableList l1, ObservableList l2, Function map) { + Runnable runnable = () -> { + setContent(l1, l2.stream().map(map).toList()); + }; + runnable.run(); + l2.addListener((ListChangeListener) c -> { + runnable.run(); + }); + } + public static void setContent(ObservableList toSet, List newList) { if (toSet.equals(newList)) { return;