code: public void bindFilterPredicate(ObjectProperty<TreeItemPredicate<Category>> predicateProperty) {
      predicateProperty.bind(Bindings.createObjectBinding(() -> {
        if (searchText.get() == null || searchText.get().isEmpty()) {
          return null;
        }
        return TreeItemPredicate.create(filterPredicate);
      }, searchText));
    }
docs: Binds the predicateProperty to ensure filtering according to the searchText.
  
  @param predicateProperty of the rootItem of a {@link FilterableTreeItem}