123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- package com.vaadin.tests.components.table;
-
- import com.vaadin.annotations.Push;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.tests.components.AbstractReindeerTestUI;
- import com.vaadin.ui.Button;
- import com.vaadin.v7.data.util.IndexedContainer;
- import com.vaadin.v7.ui.Table;
-
- /**
- * Test to see if VScrollTable handles Push updates correctly.
- *
- * @author Vaadin Ltd
- */
- @Push
- public class AsyncPushUpdates extends AbstractReindeerTestUI {
-
- public int clickCount = 0;
-
- public static final String VALUE_PROPERTY_ID = "value";
-
- private final IndexedContainer container = createContainer();
- private final Table table = new Table();
-
- @Override
- public void setup(VaadinRequest request) {
- table.setWidth("100%");
- table.setContainerDataSource(container);
-
- Button button = new Button("START");
- button.addClickListener(event -> {
- ++clickCount;
-
- container.removeAllItems();
- for (int i = 0; i < 100; i++) {
- container.getContainerProperty(container.addItem(),
- VALUE_PROPERTY_ID).setValue("A" + i);
- }
-
- Runnable generateNewRows = new Runnable() {
- public int id = 0;
-
- @Override
- public void run() {
- getSession().lock();
- try {
- Thread.sleep(500);
- ++id;
- container.removeAllItems();
- for (int i = 0; i < 11; i++) {
- container.getContainerProperty(
- container.addItem(), VALUE_PROPERTY_ID)
- .setValue(clickCount + " - " + id
- + " - " + i);
- }
-
- } catch (InterruptedException e) {
- // NOOP
- } finally {
- getSession().unlock();
- }
- }
- };
- new Thread(generateNewRows).start();
- });
- addComponent(table);
- addComponent(button);
- }
-
- private static IndexedContainer createContainer() {
- IndexedContainer container = new IndexedContainer();
- container.addContainerProperty(VALUE_PROPERTY_ID, String.class, "");
- return container;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.components.AbstractTestUI#getTestDescription()
- */
- @Override
- protected String getTestDescription() {
- return "Make sure there are no duplicates on the table.";
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber()
- */
- @Override
- protected Integer getTicketNumber() {
- return 13562;
- }
-
- }
|