On Wednesday, November 28, 2012 1:40:18 PM UTC+1, marco wrote:
>
> Ok I fixed it, with the following changes
>
> -public class ValidatableTextarea extends ComplexPanel
> +public class ValidatableTextarea extends FlowPanel
> - private FlowPanel rootPanel;
> protected TextArea input;
> private Label errorLabel;
>
> @UiConstructor
> public ValidatableTextarea() {
> input = new TextArea();
> - rootPanel = new FlowPanel();
> - rootPanel.add(input);
> + add(input)
>
> - setElement(rootPanel.getElement());
> }
> ...
> public void setText(String text) {
> input.setText(String Text);
> }
> ...
> public void addKeyUpHandler(KeyUpHandler keyUpHandler) {
> input.addKeyUpHandler(keyUpHandler);
> }
>
> Don't know why but it's working now.
>
I know why: setElement() is only meant to be used when you create your own
Widget, not when you extend an existing one. The root of your problem was
actually using rootPanel;getElement() as the element for another widget,
yet adding widgets to rootPanel (which is never *attached* to the DOM: its
element is "physically" attached, by way of the ValidatableTextArea, but
the FlowPanel itself is not "logically" attached.
Now, instead of *extending* FlowPanel, you should extend Composite instead,
and use a FlowPanel with setWidget (more or less reverting to your previous
code, fixing it: ComplexPanel→Composite, setElement→setWidget)
--
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/-/Nh8uJGPtOKsJ.
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.