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.

AbstractFieldDataSourceReadOnly.java 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.vaadin.tests.components.abstractfield;
  2. import com.vaadin.tests.components.TestBase;
  3. import com.vaadin.ui.Button;
  4. import com.vaadin.v7.data.util.ObjectProperty;
  5. import com.vaadin.v7.ui.TextField;
  6. public class AbstractFieldDataSourceReadOnly extends TestBase {
  7. private static class StateHolder {
  8. private ObjectProperty<String> textField = new ObjectProperty<>("");
  9. public ObjectProperty<String> getTextField() {
  10. return textField;
  11. }
  12. @SuppressWarnings("unused")
  13. public void setTextField(ObjectProperty<String> textField) {
  14. this.textField = textField;
  15. }
  16. public void buttonClicked() {
  17. textField.setReadOnly(true);
  18. }
  19. }
  20. @Override
  21. protected void setup() {
  22. final StateHolder stateHolder = new StateHolder();
  23. // Button
  24. Button button = new Button("Make data source read-only");
  25. button.addListener(event -> stateHolder.buttonClicked());
  26. // Input field
  27. TextField input = new TextField("Field");
  28. input.setPropertyDataSource(stateHolder.getTextField());
  29. addComponent(button);
  30. addComponent(input);
  31. }
  32. @Override
  33. protected String getDescription() {
  34. return "Read-only status changes in data sources are not rendered immediately";
  35. }
  36. @Override
  37. protected Integer getTicketNumber() {
  38. return 5013;
  39. }
  40. }