Я пытаюсь использовать представление таблицы для рендеринга/редактирования пар "ключ = значение". Таким образом, таблица должна иметь два столбца: "ключ" и "значение". Ключ - это просто нормальная строка, а значение может быть любым. Моя проблема в том, что тип данных значений может отличаться от строки к строке. В принципе, я хотел использовать флажки для логических значений и вариантов для списков. Я нашел способ сделать весь столбец таблицы флажками или выборами, установив ячейку factory:
final TableColumn<FieldValue, Field> valueColumn = new TableColumn<>("Value");
valueColumn.setCellFactory(new Callback<TableColumn<FieldValue, Field>, TableCell<FieldValue, Field>>() {
@Override
public TableCell<FieldValue, Field> call(final TableColumn<FieldValue, Field> column) {
// if (value instanceof Boolean)
return new CheckBoxTableCell<>();
}
});
Но мне нужно иметь возможность вставить условие, основанное на типе элемента, который будет отображаться внутри ячейки. Другими словами, некоторая ячейка factory на уровне ячейки, а не на уровне столбца. И это оценивает мое состояние во время рендеринга. Я еще не нашел решения. Может быть, у кого-то есть подходящие методы для реализации такого рода рендеринга? Может быть, некоторые сторонние datagrid?