У меня есть поле checkBoxTableCell в моем табличном представлении, которое заполняется из источника данных, и я хочу отключить флажок для некоторых строк, для которых данные строки имеют некоторые условия.
Например, допустим, мои данные представляют собой список объектов класса Person и if person.exclude=='Y'
, тогда мне нужно отключить флажок в этой строке.
Я пытаюсь сделать это в col_checkBox.setCellFactory(new Callback .....)
. Я не могу получить доступ к объекту человека в этой функции. А также я пробовал другие вещи, но безуспешно :(. Любая помощь?
Вот мой код: столбец определяется:
@FXML
private TableColumn<FVariable, Boolean> col_exclude;
Я заполняю таблицу:
ObservableList<FVariable> nt = FXCollections.observableArrayList(gd.getInputAtrributes());
tbl_Attributes.setItems(nt);
а потом;
col_exclude.setCellValueFactory(new PropertyValueFactory<>("excluded"));
// col_exclude.setCellFactory(CheckBoxTableCell.forTableColumn(col_exclude));
final Callback<TableColumn<FVariable, Boolean>,TableCell<FVariable, Boolean>> AllowCellFactory=CheckBoxTableCell.forTableColumn(col_exclude);
col_exclude.setCellFactory((TableColumn<FVariable, Boolean> param) -> {
TableCell<FVariable, Boolean> defCell= AllowCellFactory.call(param);
FVariable p=(FVariable) defCell.getTableRow().getItem();
if (p.getdType()!='S')
defCell.disableProperty().set(false);
else
defCell.disableProperty().set(true);
return defCell;
});
Person p = (Person) getTableRow().getItem();
должен предоставить вам доступ к объекту, представленному в строке из подклассаTableCell
. - person James_D   schedule 10.03.2015