summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-05-08 14:31:14 +0000
committerArtur Signell <artur.signell@itmill.com>2009-05-08 14:31:14 +0000
commitc409e55e940a89bcea658ef5bd2b1ea098fd2005 (patch)
tree1ca2729c85febf2b2f22e8eb0a7148aaff26176b /src
parent12fccb6e2b62c791cf976507e88558d7b6a67dc3 (diff)
downloadvaadin-framework-c409e55e940a89bcea658ef5bd2b1ea098fd2005.tar.gz
vaadin-framework-c409e55e940a89bcea658ef5bd2b1ea098fd2005.zip
Testcase and fix for #2917 - BeanItemContainer.sort fails if property value is null
svn changeset:7690/svn branch:6.0
Diffstat (limited to 'src')
-rw-r--r--src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerGenerator.java98
-rw-r--r--src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerNullValues.java47
2 files changed, 145 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerGenerator.java b/src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerGenerator.java
new file mode 100644
index 0000000000..b08f317f3c
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerGenerator.java
@@ -0,0 +1,98 @@
+package com.itmill.toolkit.tests.components.beanitemcontainer;
+
+import java.util.Date;
+import java.util.Random;
+
+import com.itmill.toolkit.data.util.BeanItemContainer;
+
+public class BeanItemContainerGenerator {
+
+ public static BeanItemContainer<TestBean> createContainer(int size) {
+
+ BeanItemContainer<TestBean> container = new BeanItemContainer<TestBean>(
+ TestBean.class);
+ Random r = new Random(new Date().getTime());
+ for (int i = 0; i < size; i++) {
+ container.addBean(new TestBean(r));
+ }
+
+ return container;
+
+ }
+
+ public static class TestBean {
+ private String name, address, city, country;
+ private int age, shoesize;
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public int getShoesize() {
+ return shoesize;
+ }
+
+ public void setShoesize(int shoesize) {
+ this.shoesize = shoesize;
+ }
+
+ public TestBean(Random r) {
+ age = r.nextInt(100) + 5;
+ shoesize = r.nextInt(10) + 35;
+ name = createRandomString(r, r.nextInt(5) + 5);
+ address = createRandomString(r, r.nextInt(15) + 5) + " "
+ + r.nextInt(100) + 1;
+ city = createRandomString(r, r.nextInt(7) + 3);
+ if (r.nextBoolean()) {
+ country = createRandomString(r, r.nextInt(4) + 4);
+ }
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public String getCountry() {
+ return country;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+ }
+
+ public static String createRandomString(Random r, int len) {
+ StringBuilder b = new StringBuilder();
+ for (int i = 0; i < len; i++) {
+ b.append((char) (r.nextInt('z' - 'a') + 'a'));
+ }
+
+ return b.toString();
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerNullValues.java b/src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerNullValues.java
new file mode 100644
index 0000000000..c64768975e
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/components/beanitemcontainer/BeanItemContainerNullValues.java
@@ -0,0 +1,47 @@
+package com.itmill.toolkit.tests.components.beanitemcontainer;
+
+import com.itmill.toolkit.tests.components.TestBase;
+import com.itmill.toolkit.ui.Button;
+import com.itmill.toolkit.ui.Table;
+import com.itmill.toolkit.ui.Button.ClickEvent;
+
+public class BeanItemContainerNullValues extends TestBase {
+
+ private Table table;
+
+ @Override
+ protected String getDescription() {
+ return "Null values should be sorted first (ascending sort) in a BeanItemContainer. Sort the 'country' column to see that the empty values come first.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 2917;
+ }
+
+ @Override
+ protected void setup() {
+ table = new Table();
+ table.setSortDisabled(false);
+ table.setContainerDataSource(BeanItemContainerGenerator
+ .createContainer(100));
+ table.setColumnCollapsingAllowed(true);
+
+ Button b = new Button("Disable sorting", new Button.ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ table.setSortDisabled(!table.isSortDisabled());
+ if (table.isSortDisabled()) {
+ event.getButton().setCaption("Enable sorting");
+ } else {
+ event.getButton().setCaption("Disable sorting");
+ }
+ }
+
+ });
+
+ addComponent(table);
+ addComponent(b);
+ }
+
+}