JavaFX 2 TableView: fábrica de células diferente, dependendo dos dados dentro da célula

Eu estou tentando usar a exibição de tabela para processar / editar os pares "chave = valor". Portanto, a tabela deve ter duas colunas: "key" e "value". Key é apenas uma string normal, e value pode ser qualquer coisa. Meu problema é que o tipo de dados dos valores pode ser diferente de linha para linha. Basicamente, eu queria usar caixas de seleção para valores booleanos e opções para listas. Eu encontrei uma maneira de processar a coluna da tabela inteira com caixas de seleção ou opções, definindo a fábrica de células:

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

Mas o que eu preciso é poder inserir uma condição com base no tipo do item que será renderizado dentro da célula. Em outras palavras, alguma fábrica de células no nível da célula e não no nível da coluna. E isso avalia minha condição no tempo de renderização. Ainda não encontrei nenhuma solução para isso. Talvez alguém tenha algumas técnicas adequadas para implementar esse tipo de renderização? Talvez algum datagrid de terceiros?

questionAnswers(1)

yourAnswerToTheQuestion