Stephen Haberman has posted comments on this change. Change subject: Add interfaces for widgets. ......................................................................
Patch Set 6: (9 comments) .................................................... File user/src/com/google/gwt/dom/client/HasStyle.java Line 29: void setStyleName(String styleName); Done .................................................... File user/src/com/google/gwt/dom/client/IsElement.java Line 61: void appendChild(IsElement element);The reason only getChild/removeFromParent are included is simply that those are the only methods I'd needed so far, and I've built all of these interfaces lazily/as needed over the last few years.
I agree that if some of these methods are going to be here, then they all should.
I won't do that just yet, but will after the patch is in/very-close-to-being-2+'d.
....................................................
File user/src/com/google/gwt/dom/client/Style.java
Line 31: public class Style extends JavaScriptObject implements IsStyle {
True, but that is fine--IsStyle is not a characteristic interface, which
would need to be implemented by many other classes.
That said, I did make a HasStyle, which is a characteristic interface that both Element (a JSO) and Widget (a regular object/non-JSO) implement.
But that is also kosher, and I wouldn't anticipate other JSOs wanting to implement it. (As Element should already be a base class of any element-ish JSO that wanted to implement it.)
.................................................... File user/src/com/google/gwt/user/client/ui/IndexedPanel.javaLine 34: * Extends this interface with convenience methods to handle {@link IsWidget}.
Done .................................................... File user/src/com/google/gwt/user/client/ui/IsImage.java Line 34: void setUrl(String url);Personally, I think the point of these interfaces (and what makes them handy) is that they expose the widget's API exactly as it is, so that your code can do anything it would to a real widget, but via the faked interface.
So, in that regard, I don't think the interface itself is the place to start enforcing SafeUri--instead, I think we would deprecate-then-remove the non-SafeUris methods in both the interface & widget at the same time.
.................................................... File user/src/com/google/gwt/user/client/ui/IsUIObject.java Line 27: IsElement getIsElement(); Done Line 27: IsElement getIsElement();Colin, I believe Thomas's suggestion is fine because, as he said, the API of UIObject stays Element, no breaking changes.
But since Element implements IsElement, it still fulfills the "IsElement getElement" contract of IsUIObject.
.................................................... File user/src/com/google/gwt/user/client/ui/IsWidget2.javaLine 28: public interface IsWidget2 extends IsWidget, IsUIObject, EventListener, HasHandlers, Np--although feel free to follow up on the mailing list if the thread gets too long...
RE IsWidget vs. IsWidget2, yes, the "IsWidget2" is for mocking. Although, AFAIK, this is the same purpose as the original IsWidget, or at least that is what its javadoc insinuates.
The "2" was just an ugly name that means "the same thing as the original, but with more methods, except we can't really add them to the original, because it would break backwards compatibility". E.g. it's just for versioning the interface.
I've since renamed "IsWidget2" to "IsWidget.Extended", an inner-interface, which is more like how the existing GWT interfaces, like IndexedPanel, were extended for the original IsWidget.
.................................................... File user/src/com/google/gwt/user/client/ui/Panel.java Line 118: return new IsWidgetIteratorAdaptor(iterator());Ah, yes, another great catch--I believe that I had to do this in Tessell since I couldn't change Widget itself.
But now, you're right, the adaptor isn't needed, and the cast seems to work just fine.
-- To view, visit https://gwt-review.googlesource.com/3231 To unsubscribe, visit https://gwt-review.googlesource.com/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ibd17162d37e367720829bcdaf9a350e446c833b9 Gerrit-PatchSet: 6 Gerrit-Project: gwt Gerrit-Branch: master Gerrit-Owner: Stephen Haberman <[email protected]> Gerrit-Reviewer: Colin Alworth <[email protected]> Gerrit-Reviewer: Daniel Kurka <[email protected]> Gerrit-Reviewer: Goktug Gokdogan <[email protected]> Gerrit-Reviewer: Leeroy Jenkins <[email protected]> Gerrit-Reviewer: Stephen Haberman <[email protected]> Gerrit-Reviewer: Thomas Broyer <[email protected]> Gerrit-HasComments: Yes -- http://groups.google.com/group/Google-Web-Toolkit-Contributors--- You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
