/// <summary> /// Adds all elements (of the subtree) as Sysmbols to the braille tree /// </summary> /// <param name="subtree">subtree to add as Symbols</param> /// <param name="lastRect">position of the last UI element which was added</param> /// <param name="idToIgnore">a list of all (ids of) elements which should NOT be added as symbol</param> public void addsAllElementsAsSymbols(object subtree, ref Rect lastRect, string[] idToIgnore = null) { ATemplateUi generalUiInstance = new TemplateNode(strategyMgr, grantTrees, treeOperation); RendererUiElementConnector defaultRendererUiConnector = new RendererUiElementConnector("Text", "Text", new RendererUiElementConnector.SizeUiElement(5, 21)); foreach (Object node in strategyMgr.getSpecifiedTree().DirectChildrenNodes(subtree)) { /* Prüfen, ob der Knoten Ignoriert werden soll * nicht ignorieren -> Kinder * nur Kinder Zeichnen -> ControllType der Eltern beachten --> evtl. werden mehrere Kinder mit einmal dargestellt */ OSMElements.OSMElement osmNode = strategyMgr.getSpecifiedTree().GetData(node); if (idToIgnore == null || !idToIgnore.Contains(osmNode.properties.IdGenerated)) { RendererUiElementConnector connector = rendererUiElementConnectorContainsControltype(osmNode.properties.controlTypeFiltered); if (connector == null && strategyMgr.getSpecifiedTree().HasChild(node)) { //consider the children addsAllElementsAsSymbols(node, ref lastRect, idToIgnore); } else { if (connector == null) { connector = defaultRendererUiConnector; } //TODO: use a diffenent template for every element type? generalUiInstance.createUiElementFromTemplate(node, createTemplateObjectFromNode(node, connector, ref lastRect));//new type of view } } } }