My 2 cents:
The pattern for adding child elements seems a little surprising to me.
I'm used to seeing builder methods always return an object to "keep the
building going". But with this, startOption() (for example) jumps on a
tangent, building something else -- with no way to return to building
the original element.

So I'd have to do this to build a select element with two options:


HtmlBuilderFactory fact = HtmlBuilderFactory.get();

SelectElementBuilder selectBuilder =
    fact.createSelectElementBuilder().setSomeAttributesForSelect(...);
// option #1
selectBuilder.startOption().setSomeAttributesForOption(...);
// option #2
selectBuilder.startOption().setSomeAttributesForOption(...);
// build the element
return selectBuilder.end();


But I think something like this is what I'd expect (more intuitive,
imo):


HtmlBuilderFactory fact = HtmlBuilderFactory.get();

// create select w/ two options
return fact.createSelectElementBuilder()
    .setSomeAttributesForSelect(...)
    .addOption(fact.createOptionElementBuilder()
        .setSomeAttributesForOption(...)
        .end())
    .addOption(fact.createOptionElementBuilder()
        .setSomeAttributesForOption(...)
        .end())
    .end();


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

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

Reply via email to