use of org.eclipse.scout.rt.client.ui.basic.tree.ITree in project scout.rt by eclipse.
the class JsonTreeTest method testMenusChangedEvent.
/**
* Tests whether a menus property change event gets sent for the json tree if the context menu changes
*/
@Test
public void testMenusChangedEvent() throws JSONException {
ITree tree = createTreeWithOneNode();
ITreeNode node = tree.getRootNode().getChildNode(0);
assertFalse(node.isSelectedNode());
JsonTree<ITree> jsonTree = m_uiSession.createJsonAdapter(tree, null);
Menu menu1 = new Menu();
tree.getContextMenu().addChildAction(menu1);
IJsonAdapter<?> jsonMenu1 = jsonTree.getAdapter(menu1);
assertNotNull(jsonMenu1);
assertTrue(jsonMenu1.isInitialized());
JSONArray jsonMenus = JsonTestUtility.extractProperty(m_uiSession.currentJsonResponse(), jsonTree.getId(), IJsonContextMenuOwner.PROP_MENUS);
assertNotNull(jsonMenus);
assertEquals(1, jsonMenus.length());
assertEquals(jsonMenu1.getId(), jsonMenus.get(0));
}
use of org.eclipse.scout.rt.client.ui.basic.tree.ITree in project scout.rt by eclipse.
the class JsonTreeTest method testGetTreeNodeForNodeId.
@Test(expected = UiException.class)
public void testGetTreeNodeForNodeId() throws Exception {
ITree tree = createTree(Collections.<ITreeNode>emptyList());
JsonTree<ITree> jsonTree = m_uiSession.createJsonAdapter(tree, null);
jsonTree.getTreeNodeForNodeId("foo");
}
use of org.eclipse.scout.rt.client.ui.basic.tree.ITree in project scout.rt by eclipse.
the class JsonTreeTest method testNodeDisposal.
/**
* Tests whether the node gets removed from the maps after deletion (m_treeNodes, m_treeNodeIds)
*/
@Test
public void testNodeDisposal() throws JSONException {
List<ITreeNode> nodes = new ArrayList<ITreeNode>();
nodes.add(new TreeNode());
nodes.add(new TreeNode());
nodes.add(new TreeNode());
ITree tree = createTree(nodes);
JsonTree<ITree> jsonTree = m_uiSession.createJsonAdapter(tree, null);
String node0Id = jsonTree.getOrCreateNodeId(nodes.get(0));
assertNotNull(node0Id);
assertNotNull(jsonTree.optTreeNodeForNodeId(node0Id));
tree.removeNode(nodes.get(0));
JsonTestUtility.processBufferedEvents(m_uiSession);
assertNull(jsonTree.optNodeId(nodes.get(0)));
assertNull(jsonTree.optTreeNodeForNodeId(node0Id));
assertNull(jsonTree.getParentNode(nodes.get(0)));
assertEquals(0, jsonTree.getChildNodes(nodes.get(0)).size());
}
use of org.eclipse.scout.rt.client.ui.basic.tree.ITree in project scout.rt by eclipse.
the class JsonTreeTest method testInsertionOrderWithExpandEvent.
/**
* Expected: adding two nodes to a common parent node and actively expanding one node should result in just one event.
*/
@Test
public void testInsertionOrderWithExpandEvent() {
ITree tree = createTreeWithOneNode();
tree.getRootNode().setExpanded(true);
JsonTree<ITree> jsonTree = m_uiSession.createJsonAdapter(tree, null);
tree.setTreeChanging(true);
TreeNode child = new TreeNode();
tree.addChildNode(tree.getRootNode(), child);
child.setExpanded(true);
tree.addChildNode(0, tree.getRootNode(), new TreeNode());
tree.setTreeChanging(false);
assertEquals(1, jsonTree.eventBuffer().consumeAndCoalesceEvents().size());
}
use of org.eclipse.scout.rt.client.ui.basic.tree.ITree in project scout.rt by eclipse.
the class JsonTreeTest method testMultipleMenuDisposallOnPropertyChange.
@Test
public void testMultipleMenuDisposallOnPropertyChange() throws JSONException {
ITree tree = createTreeWithOneNode();
ITreeNode node = tree.getRootNode().getChildNode(0);
assertFalse(node.isSelectedNode());
JsonTree<ITree> jsonTree = m_uiSession.createJsonAdapter(tree, null);
Menu menu1 = new Menu();
Menu menu2 = new Menu();
tree.getContextMenu().addChildAction(menu1);
tree.getContextMenu().addChildAction(menu2);
assertNotNull(jsonTree.getAdapter(menu1));
assertTrue(jsonTree.getAdapter(menu1).isInitialized());
assertNotNull(jsonTree.getAdapter(menu2));
assertTrue(jsonTree.getAdapter(menu2).isInitialized());
tree.getContextMenu().removeChildAction(menu1);
assertNull(jsonTree.getAdapter(menu1));
assertNotNull(jsonTree.getAdapter(menu2));
assertTrue(jsonTree.getAdapter(menu2).isInitialized());
}
Aggregations