Re: Textarea KeyUpHandler not working
Hi Thomas, thanks for your explanation. I had that setElement(rootPanel.getElement()) thing in my mind, but I didn't really got what it does until your explanation. Now it makes much sense to me what happened. Cheers, Marco Am Mittwoch, 28. November 2012 14:45:51 UTC+1 schrieb Thomas Broyer: > > > > 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/-/vlSS2xPuS5AJ. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Textarea KeyUpHandler not working
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 google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Textarea KeyUpHandler not working
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. Cheers Am Mittwoch, 28. November 2012 08:34:43 UTC+1 schrieb marco: > > Hi there, > > I'm trying to implement a counter for a textarea. Something like this is > working for me > > final TextArea textArea = new TextArea();final Label counter = new > Label("Number of characters: 0");...private void addlistener() { > textArea.addKeyUpHandler(new KeyUpHandler() { > public void onKeyUp(KeyUpEvent keyUpEvent) { > counter.setText(" Number of > characters:"+textArea.getText().length()); > } > }); > > > In my project the TextArea is enhanced e.g. for displaying validation errors. > > > public class ValidatableTextarea extends ComplexPanel > private FlowPanel rootPanel; > protected TextArea input; > private Label errorLabel; > > @UiConstructor > public ValidatableTextarea() { > input = new TextArea(); > rootPanel = new FlowPanel(); > rootPanel.add(input); > setElement(rootPanel.getElement()); > } > ... > public void setText(String text) { > input.setText(String Text); > } > ... > public void addKeyUpHandler(KeyUpHandler keyUpHandler) { > input.addKeyUpHandler(keyUpHandler); > } > > My Presenter is calling ValidatableTextarea.addKeyUpHandler onBind but > the keyhandler seems not to be added. The same thing happens when I call > ValidatableTextarea.setText > My Presenter is a dialog, so when I call those functions in Presenter.openat > least > ValidatableTextarea.setText is working and the given text is displayed, > but there is still no keyUpHandler working. > > So is there any magic working I don't see? Any event I can listen to be > sure that my ValidatableTextarea is ready to accept my keyUpHandler? Or > is my given Handler somehow overwritten? > > Thanks in advance, > Marco > -- 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/-/e2xreRpjzXQJ. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Textarea KeyUpHandler not working
Hi there, I'm trying to implement a counter for a textarea. Something like this is working for me final TextArea textArea = new TextArea();final Label counter = new Label("Number of characters: 0");...private void addlistener() { textArea.addKeyUpHandler(new KeyUpHandler() { public void onKeyUp(KeyUpEvent keyUpEvent) { counter.setText(" Number of characters:"+textArea.getText().length()); } }); In my project the TextArea is enhanced e.g. for displaying validation errors. public class ValidatableTextarea extends ComplexPanel private FlowPanel rootPanel; protected TextArea input; private Label errorLabel; @UiConstructor public ValidatableTextarea() { input = new TextArea(); rootPanel = new FlowPanel(); rootPanel.add(input); setElement(rootPanel.getElement()); } ... public void setText(String text) { input.setText(String Text); } ... public void addKeyUpHandler(KeyUpHandler keyUpHandler) { input.addKeyUpHandler(keyUpHandler); } My Presenter is calling ValidatableTextarea.addKeyUpHandler onBind but the keyhandler seems not to be added. The same thing happens when I call ValidatableTextarea.setText My Presenter is a dialog, so when I call those functions in Presenter.openat least ValidatableTextarea.setText is working and the given text is displayed, but there is still no keyUpHandler working. So is there any magic working I don't see? Any event I can listen to be sure that my ValidatableTextarea is ready to accept my keyUpHandler? Or is my given Handler somehow overwritten? Thanks in advance, Marco -- 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/-/kBaHPnWDL5oJ. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.