public void clearAllElements() {

    // this deletion code was copied from an old version of LWComponent deletion code
    // todo: probably should sync this up with whatever the menu action does.

    Iterator li = getAllDescendents().iterator();

    while (li.hasNext()) {
      LWComponent c = (LWComponent) li.next();

      LWContainer parent = c.getParent();
      if (parent == null) {
        // System.out.println("DELETE: " + c + " skipping: null parent (already deleted)");
      } else if (c.isDeleted()) {
        // System.out.println("DELETE: " + c + " skipping (already deleted)");
      } else if (parent.isDeleted()) { // after prior check, this case should be impossible now
        // System.out.println("DELETE: " + c + " skipping (parent already deleted)"); // parent will
        // call deleteChildPermanently
      } else if (parent.isSelected()) { // if parent selected, it will delete it's children
        // System.out.println("DELETE: " + c + " skipping - parent selected & will be deleting");
      } else {
        parent.deleteChildPermanently(c);
      }
    }
  }