51 def __build_tree_node(self, input_node: TreeNode, input_list: list, is_disabled: bool=False, disabled_elements: list=[]):
52 """Recursively build tree nodes from a list of dictionaries"""
53
54
55 if len(input_list)==0:
56 input_node.remove()
57
58
59 for config_item in input_list:
60
61 if isinstance(config_item, dict):
62
63 config_key = list(config_item.keys())[0]
64 config_objects = list(config_item.values())[0]
65
66
67 if isinstance(config_key, str):
68 item_disabled = is_disabled
69 dal_str = config_key
70 stored_data=None
71
72 else:
73 if config_key.className() == "Session":
74 disabled_elements = config_key.disabled
75
76
77
78 item_disabled = self.__check_item_disabled(config_key, disabled_elements) or is_disabled
79
80 dal_str = self._controller.generate_rich_string(config_key, item_disabled)
81 stored_data = config_key
82
83
84
85 tree_node = input_node.add(dal_str, data=stored_data)
86 if self.__node_states.get(tree_node.id):
87 tree_node.expand()
88
89 self.__build_tree_node(tree_node, config_objects, item_disabled, disabled_elements)
90
91 else:
92
93 item_disabled = self.__check_item_disabled(config_item, disabled_elements) or is_disabled
94 input_node.add_leaf(self._controller.generate_rich_string(config_item, item_disabled), data=config_item)
95