package com.vaadin.tests.components.table;
import com.vaadin.server.VaadinRequest;
import com.vaadin.shared.ui.ContentMode;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Label;
import com.vaadin.v7.ui.Table;
public class TableRowScrolledBottom extends AbstractReindeerTestUI {
final static String part1 = "This is a test item with long text so that there is something to see Nr. ";
final static String part2 = ". This text must be long otherwise the timing issue on Firefox does not occur. This works fine in IE";
@Override
protected void setup(VaadinRequest request) {
final Table table = new Table();
table.setSizeFull();
table.addContainerProperty("Test", Label.class, null);
table.setHeight("100%");
Button button = new Button("Add 100 items");
button.addClickListener(new Button.ClickListener() {
int i = 0;
@Override
public void buttonClick(Button.ClickEvent event) {
for (int j = 0; j < 100; j++) {
++i;
table.addItem(new Object[] {
new Label(part1 + "<b>" + i + "</b>" + part2,
ContentMode.HTML) },
i);
table.setCurrentPageFirstItemIndex(
table.getContainerDataSource().size() - 1);
}
}
});
addComponent(table);
addComponent(button);
getLayout().setExpandRatio(table, 1f);
}
@Override
protected String getTestDescription() {
return "Table should be scrolled to bottom when adding rows and updating currentPageFirstItemIndex to last item";
}
@Override
protected Integer getTicketNumber() {
return 10970;
}
}