This sounds great to me. Are you sure that this will be the only breaking change?
Lets look at the common use case of creating groups within a CellTable, and I want to enable clicking on a group to collapse/expand the rows inside the group. A group within a CellTable shouldn't be associated with a row value, yet I should be able to select one, however HasData expects a SelectionModel and SelectionModel#setSelected is how you select an object, I don't know how you'd enable/distinguish between a row and its group header. So if I used the new ElementBuilder api to create a new row, and I want to be able to select that, how will I be able to do that? As I'm sure you know, if I'm going to be able to dynamically create rows in a CellTable a lot of HasDataPresenter will need to be changed as well as it assumes tableRow 0 = page * numberOfRowsInAPage. I bring this up because I tried to do this. After a week I looked upon the desolate wasteland I made of CellTable and its dependencies and I abandoned it. You may have already considered this. I just failed hard on my first attempt and hope to you don't make the same mistakes I did. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
