public List<PageEvent> getSubEventsRecursive() {
   if (mSubEvents.isEmpty()) {
     return mSubEvents;
   }
   ArrayList<PageEvent> tmp = new ArrayList<PageEvent>(mSubEvents);
   for (PageEvent e : mSubEvents) {
     tmp.addAll(e.getSubEventsRecursive());
   }
   return tmp;
 }