Object objExistedTreeModelSource = cycle
.getAttribute(ITreeRowSource.TREE_ROW_SOURCE_ATTRIBUTE);
cycle.setAttribute(ITreeRowSource.TREE_ROW_SOURCE_ATTRIBUTE, this);
TreeView objView = getTreeView();
ITreeModel objTreeModel = objView.getTreeModel();
ITreeDataModel objTreeDataModel = objTreeModel.getTreeDataModel();
Object objRoot = objTreeDataModel.getRoot();
Object objRootUID = objTreeDataModel.getUniqueKey(objRoot, null);
if (getShowRootNode())
{
walkTree(objRoot, objRootUID, 0, objTreeModel, writer, cycle,
TreeRowObject.FIRST_LAST_ROW, new int[0], true);
}
else
{
boolean bFirst = true;
int nChildenCount = objTreeModel.getTreeDataModel().getChildCount(
objRoot);
int nRowPossiotionType = nChildenCount == 1 ? TreeRowObject.FIRST_LAST_ROW
: TreeRowObject.FIRST_ROW;
for(Iterator iter = objTreeModel.getTreeDataModel().getChildren(
objRoot); iter.hasNext();)
{
Object objChild = iter.next();
Object objChildUID = objTreeModel.getTreeDataModel()
.getUniqueKey(objChild, objRoot);
boolean bChildLast = !iter.hasNext();
if (!bFirst)
{
if (bChildLast)