]> source.dussan.org Git - vaadin-framework.git/commitdiff
Merged fixes for
authorArtur Signell <artur.signell@itmill.com>
Tue, 23 Feb 2010 09:55:51 +0000 (09:55 +0000)
committerArtur Signell <artur.signell@itmill.com>
Tue, 23 Feb 2010 09:55:51 +0000 (09:55 +0000)
 - Use of Java6 annotation
 - #4215
 - #4216

svn changeset:11484/svn branch:6.2

src/com/vaadin/data/util/ContainerHierarchicalWrapper.java
src/com/vaadin/data/util/HierarchicalContainer.java
src/com/vaadin/terminal/FileResource.java
tests/src/com/vaadin/tests/components/tree/TreeFiltering.java [new file with mode: 0644]
tests/src/com/vaadin/tests/components/window/WindowScrollingUp.java [new file with mode: 0644]
tests/src/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java [new file with mode: 0644]
tests/src/com/vaadin/tests/resources/NonExistingFileResource.java

index 6420aaf8381db5671dbba1545e7914ca58926012..72d69627362a2c379c56e8b95803f14eec139842 100644 (file)
@@ -217,7 +217,12 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
             return ((Container.Hierarchical) container)
                     .areChildrenAllowed(itemId);
         }
-        return !noChildrenAllowed.contains(itemId);
+
+        if (noChildrenAllowed.contains(itemId)) {
+            return false;
+        }
+
+        return containsId(itemId);
     }
 
     /*
@@ -281,7 +286,11 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
             return ((Container.Hierarchical) container).isRoot(itemId);
         }
 
-        return parent.get(itemId) == null;
+        if (parent.containsKey(itemId)) {
+            return false;
+        }
+
+        return containsId(itemId);
     }
 
     /*
index f5b65f1dad9fb0f2bd9ee8e6f5072db671d90c35..988676be8c77215ec9443ae2ca8f0a5dd810804d 100644 (file)
@@ -51,7 +51,10 @@ public class HierarchicalContainer extends IndexedContainer implements
      * here, we use the default documentation from implemented interface.
      */
     public boolean areChildrenAllowed(Object itemId) {
-        return !noChildrenAllowed.contains(itemId);
+        if (noChildrenAllowed.contains(itemId)) {
+            return false;
+        }
+        return containsId(itemId);
     }
 
     /*
@@ -91,7 +94,11 @@ public class HierarchicalContainer extends IndexedContainer implements
      * interface.
      */
     public boolean isRoot(Object itemId) {
-        return parent.get(itemId) == null;
+        if (parent.containsKey(itemId)) {
+            return false;
+        }
+
+        return containsId(itemId);
     }
 
     /*
index 7a9feae6745f3f6ecac0fcb3a225475a4ae52ce4..571622b0e4a627632bc12d1d2b6ffa2ca12ad8a5 100644 (file)
@@ -71,7 +71,6 @@ public class FileResource implements ApplicationResource {
             // Log the exception using the application error handler
             getApplication().getErrorHandler().terminalError(new ErrorEvent() {
 
-                @Override
                 public Throwable getThrowable() {
                     return e;
                 }
diff --git a/tests/src/com/vaadin/tests/components/tree/TreeFiltering.java b/tests/src/com/vaadin/tests/components/tree/TreeFiltering.java
new file mode 100644 (file)
index 0000000..495e6cf
--- /dev/null
@@ -0,0 +1,84 @@
+package com.vaadin.tests.components.tree;\r
+\r
+import com.vaadin.data.Item;\r
+import com.vaadin.data.util.HierarchicalContainer;\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Tree;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
+\r
+public class TreeFiltering extends TestBase {\r
+\r
+    @Override\r
+    public void setup() {\r
+\r
+        final Tree ccTree = new Tree();\r
+        addComponent(ccTree);\r
+        final HierarchicalContainer cont = new HierarchicalContainer();\r
+        cont.addContainerProperty("caption", String.class, "");\r
+\r
+        Item item;\r
+        for (int i = 0; i < 5; i++) {\r
+            item = cont.addItem(i);\r
+            item.getItemProperty("caption").setValue("Number " + i);\r
+            cont.setParent(i, i - 1);\r
+        }\r
+\r
+        for (int i = 0; i < 5; i++) {\r
+            Object id = cont.addItem();\r
+            item = cont.getItem(id);\r
+            item.getItemProperty("caption").setValue("0-" + i);\r
+            cont.setParent(id, 0);\r
+        }\r
+\r
+        ccTree.setContainerDataSource(cont);\r
+        ccTree.setItemCaptionPropertyId("caption");\r
+\r
+        for (final Object o : ccTree.getItemIds()) {\r
+            ccTree.expandItem(o);\r
+        }\r
+\r
+        final Button b = new Button("Add filter 'foo'", new ClickListener() {\r
+            public void buttonClick(final ClickEvent event) {\r
+                cont.addContainerFilter("caption", "foo", true, false);\r
+\r
+            }\r
+        });\r
+        addComponent(b);\r
+        final Button b2 = new Button("Add filter 'Num'", new ClickListener() {\r
+            public void buttonClick(final ClickEvent event) {\r
+                cont.addContainerFilter("caption", "Num", true, false);\r
+\r
+            }\r
+        });\r
+\r
+        addComponent(b2);\r
+        final Button num = new Button("Add filter '0'", new ClickListener() {\r
+            public void buttonClick(final ClickEvent event) {\r
+                cont.addContainerFilter("caption", "0", true, false);\r
+\r
+            }\r
+        });\r
+\r
+        addComponent(num);\r
+        final Button r = new Button("Remove filter", new ClickListener() {\r
+            public void buttonClick(final ClickEvent event) {\r
+                cont.removeAllContainerFilters();\r
+\r
+            }\r
+        });\r
+        addComponent(r);\r
+    }\r
+\r
+    @Override\r
+    protected String getDescription() {\r
+        return "Filtering in a tree should work as expected. Roots and their children which match the filter should be shown. Other nodes should be hidden";\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        return 4192;\r
+    }\r
+\r
+}
\ No newline at end of file
diff --git a/tests/src/com/vaadin/tests/components/window/WindowScrollingUp.java b/tests/src/com/vaadin/tests/components/window/WindowScrollingUp.java
new file mode 100644 (file)
index 0000000..a97341d
--- /dev/null
@@ -0,0 +1,39 @@
+package com.vaadin.tests.components.window;\r
+\r
+import com.vaadin.tests.components.AbstractTestCase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Table;\r
+import com.vaadin.ui.Window;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+\r
+public class WindowScrollingUp extends AbstractTestCase {\r
+\r
+    @Override\r
+    protected String getDescription() {\r
+        return "Scroll down, click 'up' and the view should scroll to the top";\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        return 4206;\r
+    }\r
+\r
+    @Override\r
+    public void init() {\r
+        Table table = new Table();\r
+        table.setPageLength(50);\r
+\r
+        final Button up = new Button("up");\r
+        up.addListener(new Button.ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                up.getWindow().setScrollTop(0);\r
+            }\r
+        });\r
+\r
+        setMainWindow(new Window(""));\r
+        getMainWindow().addComponent(table);\r
+        getMainWindow().addComponent(up);\r
+\r
+    }\r
+}\r
diff --git a/tests/src/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java b/tests/src/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java
new file mode 100644 (file)
index 0000000..f5e3d8e
--- /dev/null
@@ -0,0 +1,41 @@
+package com.vaadin.tests.layouts;\r
+\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.CssLayout;\r
+import com.vaadin.ui.TextField;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
+\r
+public class CssLayoutRemoveComponentWithCaption extends TestBase {\r
+\r
+    @Override\r
+    protected void setup() {\r
+        final CssLayout layout = new CssLayout();\r
+        final TextField tf = new TextField("Caption");\r
+        Button b = new Button("Remove field and add new", new ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                layout.removeComponent(tf);\r
+                addComponent(new TextField("new field"));\r
+\r
+            }\r
+\r
+        });\r
+        layout.addComponent(tf);\r
+        layout.addComponent(b);\r
+\r
+        addComponent(layout);\r
+    }\r
+\r
+    @Override\r
+    protected String getDescription() {\r
+        return "Clicking on the button should remove the text field and add a new 'new field' text field";\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        return 4204;\r
+    }\r
+\r
+}\r
index b8947566034db38f14a2e9f1ba7d9bb3d2476be7..81db64dea0b469b26cdcc7d1be59b7dbbb467aa8 100644 (file)
@@ -21,7 +21,6 @@ public class NonExistingFileResource extends TestBase {
         Button b = new Button("Download " + filename);\r
         b.addListener(new Button.ClickListener() {\r
 \r
-            @Override\r
             public void buttonClick(ClickEvent event) {\r
                 FileResource res = new FileResource(new File(getContext()\r
                         .getBaseDirectory()\r