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.

RefreshDataProvider.java 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * Copyright 2000-2016 Vaadin Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.vaadin.tests.components.grid.basics;
  17. import java.util.List;
  18. import com.vaadin.data.provider.DataProvider;
  19. import com.vaadin.data.provider.ListDataProvider;
  20. import com.vaadin.server.VaadinRequest;
  21. import com.vaadin.tests.components.AbstractReindeerTestUI;
  22. import com.vaadin.ui.Button;
  23. import com.vaadin.ui.Grid;
  24. /**
  25. * @author Vaadin Ltd
  26. *
  27. */
  28. public class RefreshDataProvider extends AbstractReindeerTestUI {
  29. @Override
  30. protected void setup(VaadinRequest request) {
  31. Grid<DataObject> grid = new Grid<>();
  32. List<DataObject> data = DataObject.generateObjects();
  33. ListDataProvider<DataObject> dataProvider = DataProvider
  34. .ofCollection(data);
  35. grid.setDataProvider(dataProvider);
  36. grid.setDataProvider(dataProvider);
  37. grid.addColumn(DataObject::getCoordinates).setCaption("Coordinates")
  38. .setId("Coordinates");
  39. addComponent(grid);
  40. Button update = new Button("Update data",
  41. event -> updateData(dataProvider, data));
  42. update.setId("update");
  43. addComponent(update);
  44. Button add = new Button("Add data",
  45. event -> addData(dataProvider, data));
  46. add.setId("add");
  47. addComponent(add);
  48. Button remove = new Button("Remove data",
  49. event -> removeData(dataProvider, data));
  50. remove.setId("remove");
  51. addComponent(remove);
  52. }
  53. private void updateData(DataProvider<DataObject, ?> dataProvider,
  54. List<DataObject> data) {
  55. data.get(0).setCoordinates("Updated coordinates");
  56. dataProvider.refreshAll();
  57. }
  58. private void addData(DataProvider<DataObject, ?> dataProvider,
  59. List<DataObject> data) {
  60. DataObject dataObject = new DataObject();
  61. dataObject.setCoordinates("Added");
  62. data.add(0, dataObject);
  63. dataProvider.refreshAll();
  64. }
  65. private void removeData(DataProvider<DataObject, ?> dataProvider,
  66. List<DataObject> data) {
  67. data.remove(0);
  68. dataProvider.refreshAll();
  69. }
  70. }