code: public void removeChild(TreeElement child)
      {
  
          if (child == null || _children == null)
              return;
  
          int size = _children.size();
          int removeIndex = -1;
          for (int i = 0; i < size; i++) {
              if (child == (TreeElement) _children.get(i)) {
                  _children.remove(i);
                  child.setParent(null);
                  removeIndex = i;
                  break;
              }
          }
          if (removeIndex >= 0) {
              size = _children.size();
              for (int i = removeIndex; i < size; i++) {
                  TreeElement thisChild = (TreeElement) _children.get(i);
                  thisChild.updateName(this, i);
              }
          }
      }
docs: Remove the specified child node.  All of the
  children of this child node will also be removed.
  @param child Child node to be removed