Как конвертировать ObservableList в Var, используя ReactFX?
Я хочу, чтобы Var (двунаправленно) был привязан к ObservableList к Var, как мне этого добиться? Код демонстрирует идею.
LiveList<String> list = new LiveArrayList<>();
list.addListener((ListChangeListener<? super String>) c ->
System.out.println("source list changed: " + c.getList()));
// Val<List<String>> listVal = Val.create(() -> list, list);
Val<List<String>> listVal = list.collapse(Function.identity());
listVal.values().subscribe(v -> System.out.println("listval changed :" + v));
Var<List<String>> listVar = Var.fromVal(listVal, list::setAll);
listVar.values().subscribe(v -> System.out.println("listvar changed :" + v));
list.add("e1");
list.add("e2");
list.add("e3");
Однако это печатает
listval changed :[]
listvar changed :[]
source list changed: [e1]
source list changed: [e1, e2]
source list changed: [e1, e2, e3]
пока я ожидаю
listval changed :[]
listvar changed :[]
source list changed: [e1]
listval changed :[e1]
listvar changed :[e1]
source list changed: [e1, e2]
listval changed :[e1, e2]
listvar changed :[e1, e2]
source list changed: [e1, e2, e3]
listval changed :[e1, e2, e3]
listvar changed :[e1, e2, e3]
Что мне не хватает?