JavaFX 2 TableView: diferente fábrica de células dependiendo de los datos dentro de la célula

Estoy tratando de usar la vista de tabla para representar / editar los pares "clave = valor". Así que la tabla se supone que tiene dos columnas: "clave" y "valor". La clave es solo una cadena normal, y el valor puede ser cualquier cosa. Mi problema es que el tipo de datos de los valores puede ser diferente de una fila a otra. Básicamente, quería usar casillas de verificación para valores booleanos y opciones para listas. He encontrado una forma de representar toda la columna de la tabla con casillas de verificación u opciones configurando la fábrica de celdas:

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<>();
    }
});

Pero lo que necesito es poder insertar una condición según el tipo de elemento que se va a representar dentro de la celda. En otras palabras, alguna fábrica de células en el nivel de celda y no en el nivel de columna. Y eso evalúa mi condición en el tiempo de renderizado. Todavía no he encontrado ninguna solución a eso. Tal vez alguien tiene algunas técnicas adecuadas para implementar este tipo de representación? Tal vez algunos datos de terceros?

Respuestas a la pregunta(1)

Su respuesta a la pregunta