use of org.eclipse.scout.rt.ui.html.json.tree.fixtures.Tree in project scout.rt by eclipse.
the class JsonTreeTest method createTree.
protected Tree createTree(List<ITreeNode> nodes) {
Tree tree = new Tree(nodes);
tree.initTree();
return tree;
}
use of org.eclipse.scout.rt.ui.html.json.tree.fixtures.Tree in project scout.rt by eclipse.
the class JsonTreeTest method testInsertAndDeleteInSameRequest.
@Test
public void testInsertAndDeleteInSameRequest() throws Exception {
// Note: A test for the same problem (but without a real tree) can be found here:
// org.eclipse.scout.rt.client.ui.basic.tree.TreeEventBufferTest.testInsertAndRemoveInSameRequest()
ITree tree = new Tree();
tree.setRootNode(new TreeNode("Root"));
final List<TreeEvent> treeEventCollector = new ArrayList<>();
tree.addTreeListener(new TreeAdapter() {
@Override
public void treeChanged(TreeEvent e) {
treeEventCollector.add(e);
}
});
IJsonAdapter<? super ITree> jsonTree = m_uiSession.createJsonAdapter(tree, null);
m_uiSession.currentJsonResponse().addAdapter(jsonTree);
JSONObject response = m_uiSession.currentJsonResponse().toJson();
System.out.println("Response #1: " + response);
JsonTestUtility.endRequest(m_uiSession);
// ----------------
// (root)
// +-[A]
// +-[B]
ITreeNode nodeA = new TreeNode("A");
ITreeNode nodeB = new TreeNode("B");
// Insert A and B in one "tree changing" batch
// -> TreeEventBuffer should remove the second event (because B is a sub-node of A)
tree.setTreeChanging(true);
tree.addChildNode(tree.getRootNode(), nodeA);
tree.addChildNode(nodeA, nodeB);
tree.setTreeChanging(false);
assertEquals(1, treeEventCollector.size());
treeEventCollector.clear();
// Remove B, then A (in two separate calls)
// -> TreeEventBuffer should remove the second event (because B is a sub-node of A), altough
// only an insertion event for A exists (and A.getChildNodes() returns nothing)
tree.removeAllChildNodes(nodeA);
tree.removeAllChildNodes(tree.getRootNode());
assertEquals(2, treeEventCollector.size());
treeEventCollector.clear();
assertEquals(0, nodeA.getChildNodeCount());
assertEquals(0, tree.getRootNode().getChildNodeCount());
// Process the buffer
// -> TreeEventBuffer should remove all events
JsonTestUtility.processBufferedEvents(m_uiSession);
List<JsonEvent> events = m_uiSession.currentJsonResponse().getEventList();
assertEquals(0, events.size());
response = m_uiSession.currentJsonResponse().toJson();
System.out.println("Response #2: " + response);
JsonTestUtility.endRequest(m_uiSession);
}
use of org.eclipse.scout.rt.ui.html.json.tree.fixtures.Tree in project scout.rt by eclipse.
the class JsonTreeTest method testAllNodesUnchecked.
/**
* Test for ticket 218516. When autoCheckChildNodes is set to true the JSON layer should send the state of all child
* nodes for a given parent node.
*/
@Test
public void testAllNodesUnchecked() throws Exception {
ITree tree = new Tree();
tree.setRootNode(new TreeNode("Root"));
tree.setAutoCheckChildNodes(true);
tree.setCheckable(true);
ITreeNode parent = new TreeNode("Parent");
parent.setParentNodeInternal(tree.getRootNode());
ITreeNode child1 = new TreeNode("Child1");
child1.setParentNodeInternal(parent);
ITreeNode child2 = new TreeNode("Child2");
child2.setParentNodeInternal(parent);
tree.addChildNode(tree.getRootNode(), parent);
tree.addChildNode(parent, child1);
tree.addChildNode(parent, child2);
// set tree state before we start with the test case
m_uiSession.createJsonAdapter(tree, null);
tree.setNodeChecked(parent, true);
assertTrue(child1.isChecked());
assertTrue(child2.isChecked());
JsonTestUtility.endRequest(m_uiSession);
// <-- test case
tree.setNodeChecked(parent, false);
JsonTestUtility.processBufferedEvents(m_uiSession);
List<JsonEvent> events = m_uiSession.currentJsonResponse().getEventList();
assertEquals(1, events.size());
JsonEvent event = events.get(0);
assertEquals("nodesChecked", event.getType());
JSONArray nodes = event.getData().getJSONArray("nodes");
assertEquals(3, nodes.length());
for (int i = 0; i < nodes.length(); i++) {
JSONObject jsonNode = (JSONObject) nodes.get(i);
assertFalse(jsonNode.getBoolean("checked"));
}
}
Aggregations