Já a um tempão estou tentando inserir objetos em uma árvore e não passo do primeiro nível dela.
Minha classe Conta, possui os atributos numeroConta e ContaPai, que funcionam mais ou menos assim:
NumConta ContaPai
1 null
1.1 1
1.2 1
1.2.1 1.2
2 null
2.1 2
Quando busco do banco eles estão como acima e preciso gerar uma árvore assim:
1
-1.1
-1.2
-1.2.2
2
-2.1
Estou usando o código abaixo:
//Instancio a lista de contas
List<Conta> lista = new LinkedList<Conta>();
//Busco do Banco todas as contas
lista = GenericDao.getInstance().getAll(Conta.class);
//Ordeno a Lista pelo numero da Conta
MeuComparator comp = new MeuComparator();
Collections.sort(lista, comp);
//Neste loop pego cada conta e insiro, se nao tiver pai, ela vai para raiz
//caso tenha pai ela sera inseria dentro do pai.
for ( Conta conta : lista ){
if (conta.getContaPai() == null){
DefaultMutableTreeNode node = new DefaultMutableTreeNode(conta, true);
modeloArvore.insertNodeInto(node, root, root.getChildCount());
} else{
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(conta, true);
DefaultMutableTreeNode nodePai = new DefaultMutableTreeNode(conta.getContaPai(), true);
modeloArvore.insertNodeInto(node2, nodePai, nodePai.getChildCount());
modeloArvore.nodeChanged(node2);
}
}
Estou usando modelo Default para a árvore.
O resultado, é que ele só tá inserindo o primeiro nível e fica assim:
raiz
1
2
O que pode estar acontecendo?
Obrigado pela força