You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

InitialFocus.java 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.vaadin.tests.components.window;
  2. import com.vaadin.server.VaadinRequest;
  3. import com.vaadin.tests.components.AbstractTestUI;
  4. import com.vaadin.ui.Button;
  5. import com.vaadin.ui.ComboBox;
  6. import com.vaadin.ui.TextField;
  7. import com.vaadin.ui.VerticalLayout;
  8. import com.vaadin.ui.Window;
  9. public class InitialFocus extends AbstractTestUI {
  10. public static final String FOCUS_NAME_BUTTON_ID = "focusNameButton";
  11. public static final String FOCUS_GENDER_BUTTON_ID = "focusGenderButton";
  12. public static final String NAME_FIELD_ID = "nameField";
  13. public static final String GENDER_FIELD_ID = "genderField";
  14. @Override
  15. protected void setup(VaadinRequest request) {
  16. Button focusNameButton = new Button("Open Window and focus Name");
  17. focusNameButton.setId(FOCUS_NAME_BUTTON_ID);
  18. focusNameButton.addClickListener(event -> {
  19. MyDialog myDialog = new MyDialog();
  20. myDialog.setClosable(true);
  21. myDialog.center();
  22. getUI().addWindow(myDialog);
  23. myDialog.bringToFront();
  24. myDialog.focusNameField();
  25. });
  26. addComponent(focusNameButton);
  27. Button focusGenderButton = new Button("Open Window and focus Gender");
  28. focusGenderButton.setId(FOCUS_GENDER_BUTTON_ID);
  29. focusGenderButton.addClickListener(event -> {
  30. MyDialog myDialog = new MyDialog();
  31. myDialog.setClosable(true);
  32. myDialog.center();
  33. getUI().addWindow(myDialog);
  34. myDialog.bringToFront();
  35. myDialog.focusGenderField();
  36. });
  37. addComponent(focusGenderButton);
  38. }
  39. private static class MyDialog extends Window {
  40. private TextField nameField;
  41. private ComboBox genderField;
  42. private MyDialog() {
  43. super("MyDialog");
  44. setWidth("400px");
  45. setHeight("300px");
  46. VerticalLayout hl = new VerticalLayout();
  47. hl.setSizeFull();
  48. nameField = new TextField("Name");
  49. nameField.setId(NAME_FIELD_ID);
  50. hl.addComponent(this.nameField);
  51. genderField = new ComboBox("Gender");
  52. genderField.setId(GENDER_FIELD_ID);
  53. hl.addComponentsAndExpand(genderField);
  54. this.setContent(hl);
  55. }
  56. private void focusNameField() {
  57. nameField.focus();
  58. }
  59. private void focusGenderField() {
  60. genderField.focus();
  61. }
  62. }
  63. }