def _add_tree_node(self, objuid, parentuid=None): logging.debug("_add_tree_node " + str(objuid) + " - " + str(parentuid)) OM = ObjectManager() obj = OM.get(objuid) node_props = obj._get_tree_object_node_properties() if node_props is None: return if obj._is_tree_tid_node_needed(): obj_parent_node = self.get_object_tree_item( ID_TYPE_TID, objuid[0], parentuid) if obj_parent_node is None: if parentuid is None: # Create tid node as a root child tid_parent_node = self.GetRootItem() else: # Create tid node as another object child tid_parent_node = self.get_object_tree_item( ID_TYPE_OBJECT, parentuid) # Create tid node class_ = OM._gettype(objuid[0]) tid_label = class_._get_tid_friendly_name() obj_parent_node = self.AppendItem(tid_parent_node, tid_label) self.SetItemData(obj_parent_node, (ID_TYPE_TID, objuid[0], parentuid)) self.Expand(tid_parent_node) else: obj_parent_node = self.get_object_tree_item( ID_TYPE_OBJECT, parentuid) obj_repr = node_props.pop('name') obj_node = self.AppendItem(obj_parent_node, obj_repr) self.SetItemData(obj_node, (ID_TYPE_OBJECT, objuid, 'name')) self.Expand(obj_parent_node) for attr, attr_label in node_props.items(): logging.debug('Creating attr_node: {} - {} - {}'.format( ID_TYPE_ATTRIBUTE, objuid, attr)) attr_node = self.AppendItem(obj_node, attr_label) self.SetItemData(attr_node, (ID_TYPE_ATTRIBUTE, objuid, attr)) #print ('Creating attr_node:', (ID_TYPE_ATTRIBUTE, objuid, attr)) self.Expand(obj_node)
def create_object_node(self, objuid): OM = ObjectManager() obj = OM.get(objuid) # print ('\n\ncreate_object_node', objuid) #### # VERIFICA SE O OBJETO DEVE SER INCLUIDO NA ÁRVORE (NAO EH O TID!) # O TID EH VERIFICADO PELA FUNCAO _is_tree_tid_node_needed ABAIXO. # node_props = obj._get_tree_object_node_properties() if node_props is None: return # print () # print ('node_props:', node_props) try: parentuid = OM._getparentuid(objuid) # Find location to create tid node # print ('\nparentuid:', parentuid) if obj._is_tree_tid_node_needed(): # print ('\n\n1 - PROCURANDO TID:', objuid[0], # 'FILHO DE:', parentuid # ) # Then, tid node will be object node parent obj_parent_node = self.get_object_tree_item(ID_TYPE_TID, objuid[0], parentuid ) # print ('\n\n2 - obj_parent_node:', obj_parent_node, ID_TYPE_TID, # objuid[0], parentuid) # PAREI AQUI!!!!!! if obj_parent_node is None: # print ('\n\n2 - NÃO ACHOU O TID') # It's necessary to create tid node if parentuid is None: # Create tid node as a root child tid_parent_node = self.view.GetRootItem() else: # Create tid node as another object child # print('\n\n\nBUSCANDO PAI DO TID_NODE:', # ID_TYPE_OBJECT, parentuid # ) tid_parent_node = self.get_object_tree_item( ID_TYPE_OBJECT, parentuid ) # print('\n\n\ntid_parent_node:', tid_parent_node) # print(self.view.GetItemData(tid_parent_node)) # print('objuid[0]:', objuid[0]) # Create tid node class_ = OM._gettype(objuid[0]) # print('class_:', class_) tid_label = class_._get_tid_friendly_name() # print('PRE') # print(str(tid_label)) # print(' Tree 1 - ' + str(tid_parent_node) + ' ' + tid_label) obj_parent_node = self.view.AppendItem(tid_parent_node, tid_label) self.view.SetItemData(obj_parent_node, (ID_TYPE_TID, objuid[0], parentuid)) # print ('Creating tid_node:', (ID_TYPE_TID, objuid[0], parentuid)) self.view.Expand(tid_parent_node) else: # print (3) # Create direct link to parent object obj_parent_node = self.get_object_tree_item(ID_TYPE_OBJECT, parentuid) # Create object node itself # print ('node_props 2:', node_props) obj_repr = node_props.pop('name') # obj_repr, obj_props = node_props obj_node = self.view.AppendItem(obj_parent_node, obj_repr) # # TODO: Consider create (ID_TYPE_OBJECT, objuid, ('ATTRIBUTE','name') vs # (ID_TYPE_OBJECT, objuid, ('FUNCTION', 'function_name') # For objects and attributes # self.view.SetItemData(obj_node, (ID_TYPE_OBJECT, objuid, 'name')) # print ('Creating obj_node:', (ID_TYPE_OBJECT, objuid, 'name')) self.view.Expand(obj_parent_node) # print () # Create item object attributes for attr, attr_label in node_props.items(): # print ('Creating attr_node:', (ID_TYPE_ATTRIBUTE, objuid, attr)) attr_node = self.view.AppendItem(obj_node, attr_label) self.view.SetItemData(attr_node, (ID_TYPE_ATTRIBUTE, objuid, attr)) # print ('Creating attr_node:', (ID_TYPE_ATTRIBUTE, objuid, attr)) # self.view.Expand(obj_node) except Exception as e: print('\nERRO ARVORE:', e) raise