private void recreateListItem(final ItemGroup<Object, Object> group, final List<ListItem> list) {
        for (Object child : group.getItemsAndGroups()) {
            if (child instanceof ItemGroup) {
                list.add(createForGroup((ItemGroup<Object, Object>) child));
                recreateListItem((ItemGroup<Object, Object>) child, list);
            } else {
                list.add(createForItem(child, group));
            }
        }
    }
This view displays and maintains a list of simple view items, mainly for (single or multiple)
item selection lists. It provides special support for grouping, filtering and "select all" for such
lists.
main/src/main/java/cgeo/geocaching/ui/SimpleItemListView.java