vaadin / framework

Vaadin 6, 7, 8 is a Java framework for modern Java web applications.
http://vaadin.com/
Other
1.78k stars 729 forks source link

TextField looses focus on .withStatusLabel on FormLayout #10356

Open aschemschat opened 6 years ago

aschemschat commented 6 years ago

Hi,

i've had an issue with the input-focus while using the binders .withStatusLabel on a textfield. The following snippet is reproducing the problem. If I focus the (empty) textfield and enter some text the status-label is hidden and the input-field looses focus. If i refocus the input and clear all text the status-label is made visible and the input looses focus again. If i use a HorizontalLayout instead of a Formlayout the problem doesn't appear, the focus is kept regardless of the status-label.

TextField fieldA = new TextField("Field A");
Label errorA = new Label();
FormLayout form = new FormLayout(fieldA, errorA);
binder.forField(fieldA)
          .asRequired("required")
          .withStatusLabel(errorA)
          .bind(ImageViewerDemoUI::getA, ImageViewerDemoUI::setA);

Vaadin-Version 8.1.6 Demo-Projekt: vaadin-tester.zip

tsuoanttila commented 6 years ago

I would assume that the FormLayout does a full redraw when ever the content changes, and this leads to losing the focus when ever the hierarchy changes. As a workaround for now (if you can live with the label existing with empty content) you can use your own implementation for the withStatusLabel by doing:

binder.forField(fieldA)
          .asRequired("required")
          .withValidationStatusHandler(status -> 
               errorA.setValue(status.getMessage().orElse("")))
          .bind(ImageViewerDemoUI::getA, ImageViewerDemoUI::setA);
stale[bot] commented 6 years ago

Hello there!

It looks like this issue hasn't progressed lately. There are so many issues that we just can't deal them all within a reasonable timeframe.

There are a couple of things you could help to get things rolling on this issue (this is an automated message, so expect that some of these are already in use):

Thanks again for your contributions! Even though we haven't been able to get this issue fixed, we hope you to report your findings and enhancement ideas in the future too!

stale[bot] commented 4 years ago

Hello there!

We are sorry that this issue hasn't progressed lately. We are prioritizing issues by severity and the number of customers we expect are experiencing this and haven't gotten around to fix this issue yet.

There are a couple of things you could help to get things rolling on this issue (this is an automated message, so expect that some of these are already in use):

Thanks again for your contributions! Even though we haven't been able to get this issue fixed, we hope you to report your findings and enhancement ideas in the future too!