// finden, die nirgends zugeordnet sind. Und es waere um einiges
// schwieriger, nur die Umsaetze anzuzeigen, die den aktuellen
// Filter-Kriterien entsprechen.
Map<String,UmsatzTreeNode> lookup = new HashMap<String,UmsatzTreeNode>();
lookup.put(null,new UmsatzTreeNode(null)); // Pseudo-Kategorie "Nicht zugeordnet"
while (list.hasNext())
{
Umsatz u = (Umsatz) list.next();
getNode(lookup,u.getUmsatzTyp()).add(u);
}
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
// Jetzt kopieren wir das noch in ein Array, damit wir es
// nach Nummer sortieren koennen. Wir nehmen aber nur die Root-Elemente
Iterator<UmsatzTreeNode> it = lookup.values().iterator();
List<UmsatzTreeNode> items = new ArrayList<UmsatzTreeNode>();
while (it.hasNext())
{
UmsatzTreeNode u = it.next();
if (u.getParent() == null)
items.add(u);
}
Collections.sort(items);
////////////////////////////////////////////////////////////////