protected Object[] getValidChildren(IContainer container) {
    List<IResource> resources = new ArrayList<IResource>();
    try {
      for (IResource child : container.members()) {
        if (isValid(child)) {
          resources.add(child);
        }
      }
    } catch (CoreException ce) {
      Logger.logError("Error while getting children for resource: " + container, ce);
    }

    return resources.toArray();
  }
 public boolean hasChildren(Object element) {
   if (element instanceof IContainer) {
     try {
       for (IResource child : ((IContainer) element).members()) {
         if (isValid(child)) {
           return true;
         }
       }
     } catch (CoreException ce) {
       Logger.logError("Error while getting children for resource: " + element, ce);
     }
   }
   return false;
 }