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?