I have a requirement that our users should be able to dynamically create 
groups of rows inside a celltable.

For example, lets say a user was searching for books, and wanted to group by 
Author. The Author column should be hidden (this isn't a problem), but there 
should be a new row with a colspan="numColumns" and eventually the ability 
to show/hide the Books written by the author. The tricky part is adding a 
new row basically breaks a lot of assumptions inside HasDataPresenter. From 
what I can gather, and through my testing, it assumes row x = list.get(x) 
which is true under the current model of CellTable, but that becomes false 
when I start dynamcially adding rows. So now in order to get rows/columns to 
work properly, i've got a ton of copy/paste coding to do.

HasDataPresenter, AbstractHasData and CellTable are the 3 that I've narrowed 
down so far that I need to copy/paste and then modify in order to get access 
to the correct items. The only reason I need to extend AbstractHasData is 
because I need to plug in my own version of HasDataPresenter.

So my first question is, what would you think about changing AbstractHasData 
to allow for a pluggable HasDataPresenter and changing HasDataPresenter to 
be a protected instead of package private class and then refactoring some of 
the methods in there to be overrideable and refactor some of them to be 
smaller,  HasDataPresenter#resolvePendingState() for example.

If I'm missing something and there is an easy way to do what I've described 
above, I would love to hear how to do it, but currently I'm doing the 
ugly/error prone/non-updateable process of copy/pasting those classes and 
making my own CellTable etc.

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to