Pessoal, to com um problema.
Não consigo ordenar um TreeMap, ja to ficando louco …
Bom, tenho uma estrutura no banco de dados que armazena algo do tipo:
| ID | DSC | Parent
| 1 | Principal 1 | null
| 2 | Menu 1 | 1
| 3 | Submenu 1 | 2
| 4 | Submenu 2 | 2
| 6 | Peincipal 2 | null
| 7 | Menu 2 | 1
| 8 | Submenu 1 | 5
[color=red]| 9 | Submenu 3 | 2[/color]
Criei um TreeMap e estou comparando
Até ai ele cria a estrutura normal
Principal 1
– Menu 1
----- Submenu 1
----- Submenu 2
Principal 2
– Menu 2
------ Submenu 1
[color=red]------ Submenu 3[/color]
O problema é este submenu 3 que está aparecendo em baixo do Menu 2 e deveria aparecer embaixo do Menu 1
a ordenacao que eu faço obedece o que vindo do manco de dados (Não da para ordenar no banco de dados)
Minha Class:
[code] public java.util.TreeSet createSortedTree() throws Exception
{
Comparator activeCompare = new Comparator()
{
public int compare(SupportValeurFixe vf1, SupportValeurFixe vf2)
{
int result = 0;
if (vf1.getIdParent() == 0 && vf2.getIdParent() != 0)
{
if (vf1.getId() == vf2.getIdParent())
result = -1;
else
result = 1;
}
else if (vf1.getIdParent() != 0 && vf2.getIdParent() == 0)
{
if (vf1.getIdParent() == vf2.getId())
result = 1;
else
result = 1;
}
else
{
if (vf1.getId() > vf2.getId())
result = 1;
else if (vf1.getId() < vf2.getId())
result = -1;
else
result = 0;
}
return result;
}
};
TreeSet<SupportValeurFixe> supportItemSujetTree = new TreeSet<SupportValeurFixe>(activeCompare);
List<SupportValeurFixe> l = getValeurFixe("TREE");
supportItemSujetTree.addAll(l);
return supportItemSujetTree;
}
[/code]
Alguem pode me dar uma luz de como eu ordeno o maldito Submenu 3 para ele ser adcionado embaixo do menu 1 como mostra o PARENT.
Obrigado, ja estou ficando doido …