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