JavaFX: радио-кнопка + CheckBox TreeView

со ссылкой на мой предыдущий вопросВотЯ сделал код ниже.

Я пытаюсь сделать древовидное представление, которое показывает переключатель для листьев и флажки для не листовых элементов. Код ниже ничего не показывает. Я уверен, что я делаю что-то крайне неправильно где-то (или везде). Буду признателен за любую оказанную помощь. Спасибо

public class RadioCheckBoxTreeView extends TreeView {

public RadioCheckBoxTreeView() {

    setCellFactory(new Callback<TreeView<Object>, TreeCell<Object>>() {

        @Override
        public TreeCell<Object> call(TreeView<Object> param) {
            return new RadioCheckBoxCellImpl();
        }
    });
}

private static class RadioCheckBoxCellImpl extends TreeCell<Object> {

    private final CheckBox check = new CheckBox();
    private final RadioButton radio = new RadioButton();
    private Property<Boolean> prevRadioProp;

    public RadioCheckBoxCellImpl() {
    }

    {
        setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
    }

    @Override
    public void updateItem(Object item, boolean empty) {
        if (prevRadioProp != null) {
            radio.selectedProperty().unbindBidirectional(prevRadioProp);
            prevRadioProp = null;
        }
        check.selectedProperty().unbind();

        if (!empty && item != null) {
            Property<Boolean> selectedProp = prevRadioProp;

            if (getTreeItem().isLeaf()) // display radio button
            {
                radio.setText("radio");
                radio.selectedProperty().bindBidirectional(selectedProp);
                prevRadioProp = selectedProp;
                setGraphic(radio);
            } else // display checkbox
            {
                check.setText("check");
                check.selectedProperty().bind(selectedProp);
                setGraphic(check);
            }
        } else {
            setGraphic(null);
            setText(null);
        }
    }

   }

Вот как выглядит мой метод запуска

public void start(Stage primaryStage) {


    AnchorPane pane = new AnchorPane();
    Scene scene = new Scene(pane);

    MyTreeView tv = new MyTreeView();
    tv.setRoot(new TreeItem());

    TreeItem child1 = new TreeItem();
    child1.setValue("1");

    TreeItem child2 = new TreeItem();
    child2.setValue("2");
    TreeItem child3 = new TreeItem();
    child3.setValue("3");

    tv.getRoot().getChildren().add(child1);
    tv.getRoot().getChildren().add(child2);
    child2.getChildren().add(child3);

    pane.getChildren().add(tv);
    primaryStage.setScene(scene);
    primaryStage.show();
}

Ответы на вопрос(1)

Ваш ответ на вопрос