Label implements HasText, so it can contain text that is then passed to
setText (as if you used a text="" attribute on the element).
Button implements HasHTML, so it can contain HTML that is then passed to
setHTML.
Both cases are handled by specialized ElementParsers (HasTextParser and
HasHTMLParser) that make use of "interpreters" (TextInterpreter and
HtmlInterpreter respectively) that in turn defer to some other interpreters
(TextPlaceholderInterpreter and UiTextInterpreter for TextInterpreter,
HtmlInterpreter adds UiSafeHtmlInterpreter and various interpreters working
on attribute values –to resolve {} references–)
@UiChild are handled by the UiChildParser.
Now, back to your question: you cannot use @UiChild with a String, it must
be either a DOM element (a subclass of com.google.gwt.dom.client.Element;
the type of the declared attribute is matched to the type corresponding to
the element used in the ui.xml by looking at the @TagName annotations on
the Element subclasses) or an "imported class" (i.e. you used an
xmlns:XXX="urn:import:the.package" and then <XXX:TheClass>).
If you want to set a text property from a ui.xml, you have to use an
attribute (in your case: errorMessage="the message"); and that means you
cannot use <ui:msg>. You can however use the <ui:attribute> to localize the
value (it's only documented for "HTML attributes" <
http://code.google.com/webtoolkit/doc/latest/DevGuideUiBinderI18n.html#HTML_attributes_that_need_translation>
but
looking at the code it should also work for widgets), or of course a {}
reference to an external Constants or Messages method.
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-web-toolkit/-/J0hfkoOCXN0J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.