code: public void removeChild(int offset)
      {
          if (_children == null  || offset >= _children.size())
              return;
  
          TreeElement child = (TreeElement)_children.remove(offset);
          child.setParent(null);
          child.setName(null);
  
          // Rename all affected children
          int size = _children.size();
          for (int i = offset; i < size; i++) {
              TreeElement thisChild = (TreeElement) _children.get(i);
              thisChild.updateName(this, i);
          }
      }
docs: Remove the child node (and all children of that child) at the
  specified position in the child list. If there are no children
  or the specified child position is too large, then this method
  just returns. (I.e. no runtime exception if the offset argument
  is too large)
  @param offset Zero-relative offset at which the existing
  node should be removed