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.
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.
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.
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.