コード例 #1
0
  public void walk(
      FacesContext context,
      final DataVisitor dataVisitor,
      Range range,
      Object rowKey,
      Object argument,
      boolean last)
      throws IOException {

    T cachedTreeNode = locateTreeNode((TreeRowKey) rowKey);
    T treeNode = treeDataModel.locateTreeNode((TreeRowKey) rowKey);

    if (treeNode != null) {
      if (cachedTreeNode == null
          || (nodeAdaptor.isLeaf(cachedTreeNode) && !nodeAdaptor.isLeaf(treeNode))) {
        // fill cache
        treeDataModel.walk(context, new CacheFillingVisitor(), range, rowKey, argument, last);
      }

      super.walk(context, dataVisitor, range, rowKey, argument, last);
    }
  }