123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package com.vaadin.tests.data;
-
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.List;
- import java.util.Optional;
- import java.util.stream.Stream;
-
- import com.vaadin.annotations.Widgetset;
- import com.vaadin.data.HasDataProvider;
- import com.vaadin.data.provider.DataProvider;
- import com.vaadin.data.provider.ListDataProvider;
- import com.vaadin.data.provider.Query;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.shared.data.DataCommunicatorConstants;
- import com.vaadin.tests.components.AbstractTestUIWithLog;
- import com.vaadin.tests.widgetset.TestingWidgetSet;
- import com.vaadin.ui.AbstractSingleSelect;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.HorizontalLayout;
-
- @Widgetset(TestingWidgetSet.NAME)
- public class DummyData extends AbstractTestUIWithLog {
-
- /**
- * DataProvider that keeps track on how often the data is requested.
- */
- private class LoggingDataProvider extends ListDataProvider<String> {
- private int count = 0;
-
- private LoggingDataProvider(Collection<String> collection) {
- super(collection);
- }
-
- @Override
- public Stream<String> fetch(Query query) {
- log("Backend request #" + count++);
- return super.fetch(query);
- }
- }
-
- /**
- * Simplified server only selection model. Selection state passed in data,
- * shown as bold text.
- */
- public static class DummyComponent extends AbstractSingleSelect<String>
- implements HasDataProvider<String> {
-
- private String selected;
-
- private DummyComponent() {
- addDataGenerator((str, json) -> {
- json.put(DataCommunicatorConstants.DATA, str);
- if (isSelected(str)) {
- json.put(DataCommunicatorConstants.SELECTED, true);
- }
- });
- }
-
- @Override
- public Optional<String> getSelectedItem() {
- return Optional.ofNullable(selected);
- }
-
- @Override
- public void setValue(String item) {
- if (selected != null) {
- getDataCommunicator().refresh(selected);
- }
- selected = item;
- if (selected != null) {
- getDataCommunicator().refresh(selected);
- }
- }
-
- @Override
- public DataProvider<String, ?> getDataProvider() {
- return internalGetDataProvider();
- }
-
- @Override
- public void setDataProvider(DataProvider<String, ?> dataProvider) {
- internalSetDataProvider(dataProvider);
- }
-
- }
-
- @Override
- protected void setup(VaadinRequest request) {
- DummyComponent dummy = new DummyComponent();
- List<String> items = new ArrayList<>();
- for (int i = 0; i < 300; ++i) {
- items.add("Foo " + i);
- }
- dummy.setDataProvider(new LoggingDataProvider(items));
- dummy.setValue("Foo 200");
-
- HorizontalLayout controls = new HorizontalLayout();
- addComponent(controls);
- controls.addComponent(new Button("Select Foo 20", e -> {
- dummy.setValue("Foo " + 20);
- }));
- controls.addComponent(new Button("Reset data provider", e -> {
- dummy.setDataProvider(new LoggingDataProvider(items));
- }));
- controls.addComponent(new Button("Remove all data", e -> {
- dummy.setDataProvider(
- new LoggingDataProvider(Collections.emptyList()));
- }));
- addComponent(dummy);
- }
- }
|