return ((Container.Hierarchical) container)
.areChildrenAllowed(itemId);
}
- return !noChildrenAllowed.contains(itemId);
+
+ if (noChildrenAllowed.contains(itemId)) {
+ return false;
+ }
+
+ return containsId(itemId);
}
/*
return ((Container.Hierarchical) container).isRoot(itemId);
}
- return parent.get(itemId) == null;
+ if (parent.containsKey(itemId)) {
+ return false;
+ }
+
+ return containsId(itemId);
}
/*
* 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);
}
/*
* interface.
*/
public boolean isRoot(Object itemId) {
- return parent.get(itemId) == null;
+ if (parent.containsKey(itemId)) {
+ return false;
+ }
+
+ return containsId(itemId);
}
/*
// Log the exception using the application error handler
getApplication().getErrorHandler().terminalError(new ErrorEvent() {
- @Override
public Throwable getThrowable() {
return e;
}
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
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