At the moment, the Table and the TreeTable implement the BaseTable. IMO it would be a good idea, to let the TreeTableItem and the TableItem do the same (e.g. a BaseTableItem).
This would come in handy to deal with the selection (getSelectedItems(), which could be moved up into the interface BaseTable, too) and when someone wants to use the Table and the TreeTable interchangable.

Or would you rather suggest to use a TreeTable for both presenations (Table and TreeTable) but in the first case without the children?