Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

TUTORIALVaadin lets you build secure, UX-first PWAs entirely in Java.
Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Calling javascript synchronously by Enver Haase, 1 month ago
Incorrect field is focussed when visibility is changed
When using a text field or ComboBox the field focus change appears to be processed before value change. If visibility of the next field is determined by the previous field's value. Field focus can be lost or misplaced.
Native select seems to work. TextField does not. I have so far only tested this using Liferay 6.2.ga6 and Vaadin 7.6.6., not stand-alone.
@VaadinPortletUI
public class TestUI2 extends UI{
/**
*
*/
private static final long serialVersionUID = 1L;
final static Logger log = LoggerFactory.getLogger(TestUI2.class);
VerticalLayout root = new VerticalLayout();
@Override
protected void init(VaadinRequest request) {
// Based on test-case at https://dev.vaadin.com/ticket/12730#no1
// https://vaadin.com/forum#!/thread/1326316
setContent(root);
// Text field FAIL
/*final TextField s1tf1 = new TextField();
s1tf1.setImmediate(true);*/
// even with eager text change
final TextField s1tf1 = new TextField();
s1tf1.setImmediate(true);
s1tf1.setTextChangeEventMode(TextChangeEventMode.EAGER);
// THIS WORKS!!!! change event is set immediately no chance for blur to occur before change
/*final NativeSelect s1tf1 = new NativeSelect();
s1tf1.addItems(new String[]{"Yes","No","Unknown"});
s1tf1.setImmediate(true);*/
// This fails miserably!
/*final ComboBox s1tf1 = new ComboBox();
s1tf1.addItems(new String[]{"Yes","No","Unknown"});
s1tf1.setImmediate(true);*/
// This seems better, but is not. still fails!
/*final ComboBox s1tf1 = new ComboBox();
s1tf1.addItems(new String[]{"Yes","No","Unknown"});
s1tf1.setImmediate(true);
s1tf1.setTextInputAllowed(false);*/
final TextField s1tf2 = new TextField();
s1tf2.setImmediate(true);
// Thought this might be having some effect but no.
//s1tf2.setVisible(false);
final TextField s1tf3 = new TextField();
s1tf3.setImmediate(true);
s1tf3.setTextChangeEventMode(TextChangeEventMode.EAGER);
s1tf1.addValueChangeListener(new Property.ValueChangeListener() {
@Override
public void valueChange(Property.ValueChangeEvent event) {
s1tf2.setVisible(!s1tf2.isVisible());
}
});
root.addComponent(s1tf1);
root.addComponent(s1tf2);
root.addComponent(s1tf3);
// even with hard-coded tab indexes we get problems
s1tf1.setTabIndex(701);
s1tf2.setTabIndex(702);
s1tf3.setTabIndex(703);
}
}
Last updated on
You cannot reply to this thread.