Reputation: 2220
I have a TableView
and I would like to bind the disable property of a Button
with the size of the ObservableList
model of the table. In particular, I would like to disable the button when the size of the ObservableList
is grater than 2.
How can I achieve that?
To disable another button when no row is selected in table I used
editRoadButton.disableProperty().bind(roadsTable.getSelectionModel().selectedItemProperty().isNull());
Is there a similar way?
Upvotes: 14
Views: 18294
Reputation: 51535
There are factory methods for useful bindings in the Bindings class. In your case f.i.:
button.disableProperty().bind(Bindings.size(items).greaterThan(2));
Upvotes: 22
Reputation: 5032
You can do something like that
ListProperty<String> list = new SimpleListProperty<>(FXCollections.<String>emptyObservableList());
Button foo = new Button();
foo.disableProperty().bind(new BooleanBinding() {
{
bind(list);
}
@Override
protected boolean computeValue() {
return list.size() > 2;
}
});
Upvotes: 2