--- /dev/null
+package com.itmill.toolkit.tests.components.table;\r
+\r
+import com.itmill.toolkit.data.Item;\r
+import com.itmill.toolkit.data.util.IndexedContainer;\r
+import com.itmill.toolkit.tests.components.TestBase;\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.HorizontalLayout;\r
+import com.itmill.toolkit.ui.Table;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class RowAdditionTest extends TestBase {\r
+\r
+ @Override\r
+ protected String getDescription() {\r
+ return "Adding a row should refresh client area only if newly added row is in the rendered area.";\r
+ }\r
+\r
+ @Override\r
+ protected Integer getTicketNumber() {\r
+ return new Integer(2799);\r
+ }\r
+\r
+ @Override\r
+ protected void setup() {\r
+ final Table table = new Table();\r
+ final IndexedContainer container = (IndexedContainer) table\r
+ .getContainerDataSource();\r
+ table.addContainerProperty("column1", String.class, "test");\r
+\r
+ for (int i = 0; i < 100; ++i) {\r
+ table.addItem();\r
+ }\r
+\r
+ HorizontalLayout hl = new HorizontalLayout();\r
+ hl.addComponent(new Button("Add first", new Button.ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ Item item = container.addItemAt(0, new Object());\r
+ item.getItemProperty("column1").setValue("0");\r
+ }\r
+ }));\r
+ hl.addComponent(new Button("Add at position 50",\r
+ new Button.ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ Item item = container.addItemAt(50, new Object());\r
+ item.getItemProperty("column1").setValue("50");\r
+ }\r
+ }));\r
+ hl.addComponent(new Button("Add at position 100",\r
+ new Button.ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ Item item = container.addItemAt(100, new Object());\r
+ item.getItemProperty("column1").setValue("100");\r
+ }\r
+ }));\r
+\r
+ getLayout().addComponent(table);\r
+ getLayout().addComponent(hl);\r
+ }\r
+}\r