In UIXTreeTable the focusRowKey attribute specifies the rowKey of the
currently focused row. In the renderer, the row with the focusRowKey is
rendered as the root node of the TreeTable and a focus path is rendered
above the TreeTable.

When no focusRowKey attribute is specified on the component, UIXTreeTable
defaults the focusRowKey to the first node in the treeModel. So the
focusRowKey can never be null.

This defaulting of the focusRowKey is OK for UIXTreeTable because it only
supports a single root node.

The issue I have with this is that I want to support multi-rooted
TreeTables. So I want to do two things:

1) When no focusRowKey attribute is specified on the component, I will
render all of the root nodes in the TreeTable (multi-rooted TreeTable).
2) When a focusRowKey attribute is specified, I will render the row with the
focusRowKey as the single root node of the TreeTable.

Unfortunately, becuase UIXTreeTable always sets a default focusRowKey,  I
can't achieve #1 above. The defaulting of the focusRowKey is done in the
_init() method of UIXTreeTable, which is a package scoped method. So I can't
override this default behavior in my subclass of UIXTreeTable.

There are a couple of solutions to this:

1) Move the defaulting logic to a protected method in the UIXTreeTable so
that it can be overriden in subclasses
2) Move the defaulting logic out of the component and into the renderer.


I hope all of this makes sense, and any input on this is very much
appreciated.


-- Kamran

Reply via email to