/* * Copyright 2000-2016 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 java.io.Serializable; import java.util.List; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.v7.data.util.BeanContainer; import com.vaadin.v7.ui.Table; /** * * @author Vaadin Ltd */ @SuppressWarnings("serial") public class SetPageFirstItemLoadsNeededRowsOnly extends AbstractReindeerTestUI { /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#setup(com.vaadin.server. * VaadinRequest) */ @Override protected void setup(VaadinRequest request) { final VerticalLayout layout = new VerticalLayout(); addComponent(layout); final Label label = new Label(""); addComponent(label); BeanContainer<String, Bean> beans = new BeanContainer<String, Bean>( Bean.class) { @Override public List<String> getItemIds(int startIndex, int numberOfIds) { label.setValue("rows requested: " + numberOfIds); return super.getItemIds(startIndex, numberOfIds); } }; beans.setBeanIdProperty("i"); for (int i = 0; i < 2000; i++) { beans.addBean(new Bean(i)); } final Table table = new Table("Beans", beans); table.setVisibleColumns(new Object[] { "i" }); layout.addComponent(table); table.setCurrentPageFirstItemIndex(table.size() - 1); } /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#getTestDescription() */ @Override protected String getTestDescription() { return "Only cached rows and rows in viewport should be rendered after " + "calling table.setCurrentPageFirstItemIndex(n) - as opposed to all rows " + "between the previous position and new position"; } /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber() */ @Override protected Integer getTicketNumber() { return 14135; } public class Bean implements Serializable { private Integer i; public Bean(Integer i) { this.i = i; } public Integer getI() { return i; } public void setI(Integer i) { this.i = i; } } }