A patch is coming that modifies the TableBuilder API to make it more
flexible.  TableBuilder.Utility is going away completely, and the event
handling implementation is moved from AbstractCellTable into
AbstractTableBuilder.  This will allow users to implement a simple grid
based TableBuilder with faster rendering and event handling logic.

The new API is also much more builder-like, and simpler to boot.Once
those changes are in, I'll revisit HeaderCreator and apply similar
changes, hopefully eliminating the Helper class.  Either way, there will
be follow-up changes that
unify the terminology used in TableBuilder/HeaderCreator.


http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java
File
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java
(right):

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode79
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:79:
* Example file.
On 2011/08/16 02:16:25, skybrian wrote:
"Defines a custom table that displays a contact in each row.
This is an example that shows how to completely customize the
appearance of the
headers, data rows, and footers in a CellTable."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode143
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:143:
* A custom header builder.
On 2011/08/16 02:16:25, skybrian wrote:
"Renders custom headers that ..."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode164
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:164:
public void buildHeader(Helper<ContactInfo> utility) {
On 2011/08/16 02:16:25, skybrian wrote:
s/utility/helper/

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode209
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:209:
* Build a single header.
On 2011/08/16 02:16:25, skybrian wrote:
"Renders the header of one column, with the given options."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode211
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:211:
* @param utility the utility used to builder the header
On 2011/08/16 02:16:25, skybrian wrote:
"used to build"

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode213
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:213:
* @param header the header to buil
On 2011/08/16 02:16:25, skybrian wrote:
"the Header to render"

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode220
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:220:
private void buildHeader(Helper<ContactInfo> utility, TableRowBuilder
tr, Header<?> header,
On 2011/08/16 02:16:25, skybrian wrote:
rename utility -> helper
rename tr -> out.
Maybe reorder first arguments to match renderHeader()

maybe rename to renderOneHeader()?

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode295
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:295:
* A custom version of {@link CellTableBuilder}.
On 2011/08/16 02:16:25, skybrian wrote:
"Renders the data rows that display each contact in the table."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode489
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:489:
* A map containing the IDs of {@link ContactInfo} who's friends list is
On 2011/08/16 02:16:25, skybrian wrote:
"Contains the contact id for each row in the table where the friends
list is
currently expanded."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode636
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:636:
* Initialize the column.
On 2011/08/16 02:16:25, skybrian wrote:
"Defines the columns in the custom table. Maps the data in the
ContactInfo for
each row into the appropriate column in the table, and defines
handlers for each
column."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java
File user/src/com/google/gwt/user/cellview/client/HeaderCreator.java
(right):

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode23
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:23: *
Creates the header or footer section of a CellTable.
On 2011/08/16 02:16:25, skybrian wrote:
"Creates the DOM elements for the header"...

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode32
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:32:
public interface HeaderCreator<T> {
On 2011/08/16 02:16:25, skybrian wrote:
Hmm, it seems like it should be HeaderBuilder to be consistent with
TableBuilder?

On the other hand, it doesn't actually create Header objects. Perhaps
"HeaderRenderer" and "RowRenderer" might make more sense.

I'll rename TableBuilder to TableCreator in another CL.  I just don't
want to bloat this CL, which is already big enough.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode35
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:35: * A
utility for building the header or footer.
On 2011/08/16 02:16:25, skybrian wrote:
"Contains methods that {@link #buildHeader} can call while building a
header or
footer."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode38
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:38: *
The cell table being rendered will define the Utility implementation and
On 2011/08/16 02:16:25, skybrian wrote:
s/Utility/Helper/

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode73
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:73:
public abstract void enabledColumnHandlers(ElementBuilderBase<?>
builder, Column<T, ?> column);
On 2011/08/16 02:16:25, skybrian wrote:
s/enabled/enable/

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode78
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:78:
public AbstractCellTable<T> getCellTable() {
On 2011/08/16 02:16:25, skybrian wrote:
Could be just "getTable"

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode83
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:83: *
Render a Header into the specified {@link ElementBuilderBase}. Use this
On 2011/08/16 02:16:25, skybrian wrote:
"Renders a given Header into a given ElementBuilderBase. This method
ensures
that the CellTable widget will handle events " ...

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode90
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:90: *
      and must be in a state where a attributes and html can be added.
On 2011/08/16 02:16:25, skybrian wrote:
"a state that allows both attributes and elements to be added."

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode91
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:91: *
@param context the {@link Context} of the cell
On 2011/08/16 02:16:25, skybrian wrote:
which cell?

Done.

http://gwt-code-reviews.appspot.com/1499808/diff/14004/user/src/com/google/gwt/user/cellview/client/HeaderCreator.java#newcode116
user/src/com/google/gwt/user/cellview/client/HeaderCreator.java:116:
void buildHeader(Helper<T> utility);
On 2011/08/16 02:16:25, skybrian wrote:
s/utility/helper/

Maybe this should be named renderHeaders()? (I see in the example that
it
doesn't actually build the Header objects.)

The API is still in flux.  There is a pending change that makes
TableBuilder a true builder API and completely eliminates the
Helper/Utility class.  We'll make similar changes to HeaderBuilder.

If you can look the other way for a couple more changes, the API will
soon be improved based on real use.

http://gwt-code-reviews.appspot.com/1499808/

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

Reply via email to