Thanks for posting the ShowCase url. Looks slick!

http://gwt-code-reviews.appspot.com/1499808/diff/1/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/1/samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java#newcode185
samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java:185:
tr.startTH().colSpan(2).rowSpan(2).className(headerStyle + " " +
firstColumnStyle);
Didn't you already prepend this space to firstColumnStyle in the
constructor?

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/dom/builder/shared/StylesBuilder.java
File user/src/com/google/gwt/dom/builder/shared/StylesBuilder.java
(right):

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/dom/builder/shared/StylesBuilder.java#newcode44
user/src/com/google/gwt/dom/builder/shared/StylesBuilder.java:44: public
interface StylesBuilder {
I know this isn't the right patch for this conversation, but have you
consider the api evolution issue here? At the very least these
interfaces need comments warning that they are subject to change, and
that custom implementations should expect to get broken, yes?

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/dom/client/Style.java
File user/src/com/google/gwt/dom/client/Style.java (right):

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/dom/client/Style.java#newcode798
user/src/com/google/gwt/dom/client/Style.java:798: private static final
String STYLE_LINE_HEIGHT = "lineHeight";
Huge amount of redundancy between these strings and those in
c.g.g.dom.client.Style, etc. Do I not worry about that because they all
get inlined?

Also, Style is missing this lineHeight attribute. Should it be added
there at the same time? Is there anything we can do to tie the
maintenance of the two packages together?

Confused by camel case here but hyphens in SafeStyleUtils (third
redundant bag-o-strings). Are they actually different in css and js?

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

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java#newcode368
user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java:368:
* columns.
Should be in its own file. AbstractCellTable is huge.

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java#newcode428
user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java:428:
// Cache the styles for faster access.
Here and in the showcase app, did you actually measure improved speed
from this caching?

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java#newcode826
user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java:826:
private class HeaderUtilityImpl extends
CellTableHeaderBuilder.Utility<T> {
Does Utility really need the param type T? What happens if it deals with
Column<?, ?> instead of Column<T, ?>?

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java#newcode896
user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java:896:
while (section.getDepth() > 0) {
Should this loop be added to the builders as endAll()?

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java#newcode1296
user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java:1296:
// Strip the table section tags off of the tbody.
It seems like you have to do this kind of stripping a lot. Can the
builders learn to do this for you? Render the inner build only?

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java#newcode2972
user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java:2972:
if (elem == null) {
You sure you want this to mask NPEs?

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

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/src/com/google/gwt/user/cellview/client/CellTableHeaderBuilder.java#newcode34
user/src/com/google/gwt/user/cellview/client/CellTableHeaderBuilder.java:34:
public abstract class Utility<T> {
"Utility" is right up there with "Misc" in the pantheon of
non-descriptive names. Even "Helper" would be better. Or Worker? Really,
it seems like this thing is the builder, and CellTableHeaderBuilder is
the CellTableHeaderDelegate.

Can you document just where implementations and instances of this are
found?

Why is this an abstract class while the builder is an interface? How are
you making these choices?

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/test/com/google/gwt/user/cellview/client/CellTableTest.java
File user/test/com/google/gwt/user/cellview/client/CellTableTest.java
(right):

http://gwt-code-reviews.appspot.com/1499808/diff/1/user/test/com/google/gwt/user/cellview/client/CellTableTest.java#newcode195
user/test/com/google/gwt/user/cellview/client/CellTableTest.java:195:
table.getPresenter().flush();
Why are these calls becoming necessary?

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

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

Reply via email to