From c7f0b79c6e8b183468eb62ce330265c78c6fcab8 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 19 Sep 2007 11:01:55 +0000 Subject: [PATCH] added test for trees svn changeset:2332/svn branch:trunk --- .../itmill/toolkit/tests/TestForTrees.java | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 src/com/itmill/toolkit/tests/TestForTrees.java diff --git a/src/com/itmill/toolkit/tests/TestForTrees.java b/src/com/itmill/toolkit/tests/TestForTrees.java new file mode 100644 index 0000000000..22a459b3df --- /dev/null +++ b/src/com/itmill/toolkit/tests/TestForTrees.java @@ -0,0 +1,169 @@ +package com.itmill.toolkit.tests; + +import java.util.Vector; + +import com.itmill.toolkit.event.Action; +import com.itmill.toolkit.event.Action.Handler; +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.Component; +import com.itmill.toolkit.ui.CustomComponent; +import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.OrderedLayout; +import com.itmill.toolkit.ui.Panel; +import com.itmill.toolkit.ui.Table; +import com.itmill.toolkit.ui.Tree; +import com.itmill.toolkit.ui.Button.ClickEvent; +import com.itmill.toolkit.ui.Button.ClickListener; + +/** + * + * This Component contains some simple test to see that component updates its + * contents propertly. + * + * @author IT Mill Ltd. + */ +public class TestForTrees extends CustomComponent implements Handler { + + private static final String[] firstnames = new String[] { "John", "Mary", + "Joe", "Sarah", "Jeff", "Jane", "Peter", "Marc", "Josie", "Linus" }; + + private static final String[] lastnames = new String[] { "Torvalds", + "Smith", "Jones", "Beck", "Sheridan", "Picard", "Hill", "Fielding", + "Einstein" }; + + private OrderedLayout main = new OrderedLayout(); + + private Action[] actions = new Action[] { + new Action("edit"), + new Action("delete") + }; + + private Panel al; + + private Tree contextTree; + + public TestForTrees() { + + setCompositionRoot(main); + createNewView(); + } + + public void createNewView() { + main.removeAllComponents(); + main + .addComponent(new Label( + "Some test cases for trees. Events panel logs events that happen server side.")); + + main.addComponent(new Button("commit")); + + Tree t; + + t = createTestTree(); + t.setCaption("Default settings"); + main.addComponent(createTestBench(t)); + + t = createTestTree(); + t.setCaption("Multiselect settings"); + t.setMultiSelect(true); + main.addComponent(createTestBench(t)); + + t = createTestTree(); + t.setCaption("Multiselect and immediate"); + t.setImmediate(true); + t.setMultiSelect(true); + main.addComponent(createTestBench(t)); + + + t = createTestTree(); + t.setCaption("immediate"); + t.setImmediate(true); + main.addComponent(createTestBench(t)); + + + t = createTestTree(); + t.setCaption("with actions"); + t.setImmediate(true); + t.addActionHandler(this); + OrderedLayout ol = (OrderedLayout) createTestBench(t); + al = new Panel("action log"); + ol.addComponent(al); + main.addComponent(ol); + contextTree = t; + + Button b = new Button("refresh view", this, "createNewView"); + main.addComponent(b); + + } + + public Tree createTestTree() { + Tree t = new Tree("Tree"); + String[] names = new String[100]; + for (int i = 0; i < names.length; i++) + names[i] = firstnames[(int) (Math.random() * (firstnames.length - 1))] + + " " + + lastnames[(int) (Math.random() * (lastnames.length - 1))]; + + // Create tree + t = new Tree("Organization Structure"); + for (int i = 0; i < 100; i++) { + t.addItem(names[i]); + String parent = names[(int) (Math.random() * (names.length - 1))]; + if (t.containsId(parent)) + t.setParent(names[i], parent); + } + + // Forbid childless people to have children (makes them leaves) + for (int i = 0; i < 100; i++) + if (!t.hasChildren(names[i])) + t.setChildrenAllowed(names[i], false); + return t; + } + + public Component createTestBench(Tree t) { + OrderedLayout ol = new OrderedLayout(); + ol.setOrientation(OrderedLayout.ORIENTATION_HORIZONTAL); + + ol.addComponent(t); + + final Panel status = new Panel("Events"); + final Button clear = new Button("c"); + clear.addListener(new ClickListener() { + public void buttonClick(ClickEvent event) { + status.removeAllComponents(); + status.addComponent(clear); + } + }); + status.addComponent(clear); + + status.setHeight(300); + status.setWidth(400); + + ol.addComponent(status); + + t.addListener(new Listener() { + public void componentEvent(Event event) { + status + .addComponent(new Label(event.getClass() + .getSimpleName())); + status.addComponent(new Label("selected: " + + event.getSource().toString())); + } + }); + + return ol; + } + + public Action[] getActions(Object target, Object sender) { + return actions; + } + + public void handleAction(Action action, Object sender, Object target) { + if(action == actions[1]) { + al.addComponent(new Label("Delete selected on " + target)); + contextTree.removeItem(target); + + } else { + al.addComponent(new Label("Edit selected on " + target)); + } + } +} -- 2.39.5