123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package com.vaadin.tests.components;
-
- import java.util.HashMap;
- import java.util.Map;
-
- import com.vaadin.ui.HorizontalLayout;
- import com.vaadin.v7.data.Item;
- import com.vaadin.v7.data.util.HierarchicalContainer;
- import com.vaadin.v7.data.util.IndexedContainer;
- import com.vaadin.v7.ui.Tree;
-
- public class HierarchicalContainerSorting extends TestBase {
- IndexedContainer hierarchicalContainer = new HierarchicalContainer();
-
- IndexedContainer indexedContainer = new IndexedContainer();
-
- @Override
- public void setup() {
-
- populateContainer(indexedContainer);
- populateContainer(hierarchicalContainer);
-
- sort(indexedContainer);
- sort(hierarchicalContainer);
-
- HorizontalLayout hl = new HorizontalLayout();
-
- Tree tree1 = new Tree("Tree with IndexedContainer");
- tree1.setContainerDataSource(indexedContainer);
- tree1.setItemCaptionPropertyId("name");
- hl.addComponent(tree1);
-
- Tree tree2 = new Tree("Tree with HierarchicalContainer");
- tree2.setContainerDataSource(hierarchicalContainer);
- tree2.setItemCaptionPropertyId("name");
- for (Object id : tree2.rootItemIds()) {
- tree2.expandItemsRecursively(id);
- }
- hl.addComponent(tree2);
-
- addComponent(hl);
- }
-
- private static void sort(IndexedContainer container) {
- Object[] properties = new Object[1];
- properties[0] = "name";
-
- boolean[] ascending = new boolean[1];
- ascending[0] = true;
-
- container.sort(properties, ascending);
- }
-
- private static void populateContainer(IndexedContainer container) {
- container.addContainerProperty("name", String.class, null);
-
- addItem(container, "Games", null);
- addItem(container, "Call of Duty", "Games");
- addItem(container, "Might and Magic", "Games");
- addItem(container, "Fallout", "Games");
- addItem(container, "Red Alert", "Games");
-
- addItem(container, "Cars", null);
- addItem(container, "Toyota", "Cars");
- addItem(container, "Volvo", "Cars");
- addItem(container, "Audi", "Cars");
- addItem(container, "Ford", "Cars");
-
- addItem(container, "Natural languages", null);
- addItem(container, "Swedish", "Natural languages");
- addItem(container, "English", "Natural languages");
- addItem(container, "Finnish", "Natural languages");
-
- addItem(container, "Programming languages", null);
- addItem(container, "C++", "Programming languages");
- addItem(container, "PHP", "Programming languages");
- addItem(container, "Java", "Programming languages");
- addItem(container, "Python", "Programming languages");
-
- }
-
- private static int index = 0;
- private static Map<String, Integer> nameToId = new HashMap<>();
-
- public static void addItem(IndexedContainer container, String string,
- String parent) {
- nameToId.put(string, index);
- Item item = container.addItem(index);
- item.getItemProperty("name").setValue(string);
-
- if (parent != null && container instanceof HierarchicalContainer) {
- ((HierarchicalContainer) container).setParent(index,
- nameToId.get(parent));
- }
-
- index++;
- }
-
- @Override
- protected String getDescription() {
- return "The two trees contain the same data, one uses IndexedContainer, one uses HierarchicalContainer. Both should be sorted, both the root nodes and the children.";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 3095;
- }
-
- }
|