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.

ShortcutInWindow.java 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package com.vaadin.tests.components.window;
  2. import com.vaadin.annotations.Widgetset;
  3. import com.vaadin.event.ShortcutAction.KeyCode;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.shared.ui.ValueChangeMode;
  6. import com.vaadin.tests.components.AbstractTestUIWithLog;
  7. import com.vaadin.ui.Button;
  8. import com.vaadin.ui.HorizontalLayout;
  9. import com.vaadin.ui.TextField;
  10. import com.vaadin.ui.VerticalLayout;
  11. import com.vaadin.ui.Window;
  12. @Widgetset("com.vaadin.DefaultWidgetSet")
  13. public class ShortcutInWindow extends AbstractTestUIWithLog {
  14. @Override
  15. protected void setup(VaadinRequest request) {
  16. VerticalLayout content = new VerticalLayout();
  17. HorizontalLayout buttons = new HorizontalLayout();
  18. final TextField name = new TextField("Name");
  19. name.setValueChangeMode(ValueChangeMode.BLUR);
  20. name.setValueChangeTimeout(1000);
  21. name.addValueChangeListener(
  22. (e) -> log("Value Changed: " + e.getValue()));
  23. final Button toggle = new Button(name.getValueChangeMode().toString());
  24. toggle.addClickListener((e) -> {
  25. int o = name.getValueChangeMode().ordinal();
  26. int i = ValueChangeMode.values().length <= o + 1 ? 0 : o + 1;
  27. ValueChangeMode m = ValueChangeMode.values()[i];
  28. toggle.setCaption(m.toString());
  29. name.setValueChangeMode(m);
  30. log("New ValueChangeMode: " + m);
  31. });
  32. final Button submit = new Button("Submit",
  33. (e) -> log("Submitted value: " + name.getValue()));
  34. submit.setClickShortcut(KeyCode.ENTER);
  35. buttons.addComponent(toggle);
  36. buttons.addComponent(submit);
  37. content.addComponent(name);
  38. content.addComponent(buttons);
  39. Window popup = new Window();
  40. popup.center();
  41. popup.setContent(content);
  42. getUI().addWindow(popup);
  43. }
  44. }