Я пытаюсь выбрать все дочерние флажки из родительского корня. Действие вызывается при выборе родительского флажка.CheckBoxTreeTableCell Выбрать всех детей под родительским событием
Вот псевдо/модифицированный/укороченный набор с scenebuilder:
@FXML
private TreeTableView<Info> testTable;
@FXML
private TreeTableColumn<Info, Boolean> checkBoxCol;
Модель:
public class Info{
private final BooleanProperty onHold;
public Info(){
this.onHold = new SimpleBooleanProperty(false);
}
public Boolean getOnHold(){
return onHold.get();
}
public void setOnHold(Boolean onHold) {
this.onHold.set(onHold);
}
public BooleanProperty onHoldProperty(){
return onHold;
}
}
Контроллер:
checkBoxCol.setCellValueFactory(new TreeItemPropertyValueFactory("onHold"));
checkBoxCol.setCellFactory(CheckBoxTreeTableCell.forTreeTableColumn(checkBoxCol));
Конечный результат будет выглядеть следующим образом (когда родительский узлы):
Я попробовал onEditCommit/start/cancel, но похоже, что это касается только ячейки, а не флажков. Я не совсем уверен, как получить слушателя только для родительских узлов, чтобы он мог проверять все значения под ними (если у них есть дети). Если слишком сложно разрешить только родительским узлам иметь слушателя, тогда у всех флажков могут быть слушатели, и я могу просто проверить, есть ли дети с: node.getChildren().size()
Если вы хотите прикрепить слушателя к CheckBox затем идти в класс, который представляет этот флажок и посмотреть на его методы. Там вы найдете метод только для этого. –