Css do JavaFx TreeView

Eu gostaria de criar um elemento com aparência e comportamento como o mostrado abaixo.

Há um fundo escuro e uma lista superior de 4 elementos: "biblioteki", "Analiza" e assim por diante. Quando clicamos em uma delas, a lista é expandida e esse item e seus filhos ficam mais claros. Além disso, o item selecionado da lista filho obtém uma fonte diferente (negrito e branco). Também poderia haver apenas um item expandido no momento.

Então, eu descobri que esse é o comportamento do TreeView com os estilos adequados aplicados. Eu trabalho com o seguinte código:

    TreeView<TabMenuElement> treeView = new TreeView<>(treeRoot);
    treeView.setCellFactory(tv -> new TreeCell<TabMenuElement>() {
        @Override
        public void updateItem(TabMenuElement item, boolean empty) {
            super.updateItem(item, empty);
            setDisclosureNode(null);

            if (empty) {
                setText("");
                setGraphic(null);
            } else {
                setText(item.getName()); // appropriate text for item
                if (item.getIv() != null) {
                    setGraphic(item.getIv());
                }
            }
        }
    });
    treeView.setShowRoot(false);

TabMenuElement possui o método getIV para obter ImageView (ícone) se for definido para esse elemento e getName para obter o texto a ser exibido. Por enquanto, parece com isso

Então, eu tenho os seguintes problemas:

como alterar a fonte apenas no item selecionado no TreeView?como configurar o plano de fundo na subárvore selecionada?como forçar que no máximo uma subárvore possa ser expandidacomo definir tamanho maior para itens de nível superior?

questionAnswers(2)

yourAnswerToTheQuestion