def get_equivalent_index(self, datatype, dim_idx=-1): """ Metodo usado para se obter um DataIndex de equivalencia (e.g. obter um TWT quando self.datatype == 'MD'). Valido somente para dados de pocos, devido a busca por CurveSet. Retorna uma tupla onde o primeiro elemento informa se foi encontrado objeto equivalente diferente o DataIndex mask sendo aplicado. Em caso afirmativo, o segundo elemento da tupla contem o objeto encontrado. Caso nao tenha sido obtido index equivalente, o segundo elemento retornara o proprio objeto, se este tiver o datatype procurado. Se o datatype desejado nao for encontrado, sera retornado (False, None). """ dim_di_uid, _ = self.get_index_for_dimension(dim_idx) OM = ObjectManager() di = OM.get(dim_di_uid) if di.datatype == datatype: return False, di OM = ObjectManager() curve_set_uid = OM._getparentuid(di.uid) if curve_set_uid[0] != 'curve_set': msg = 'ERROR DataIndex.get_equivalent_data_index: curve_set not found.' raise Exception(msg) for possible_di in OM.list('data_index', curve_set_uid): if possible_di.uid == di.uid: continue if possible_di.datatype == datatype: # Found it! return True, possible_di return False, None
def get_friendly_name(self): """ Metodo duplicado em Log e DataIndex """ OM = ObjectManager() parent_well_uid = OM._getparentuid(self.uid) parent_well = OM.get(parent_well_uid) return self.name + '@' + parent_well.name
def get_curve_set(self): """ Metodo de conveniencia. Se o objeto possui curve_set, o retorna. Senão retorna None. Metodo duplicado em DataIndex e Log. """ OM = ObjectManager() curve_set_uid = OM._getparentuid(self.uid) return OM.get(curve_set_uid)
def reload_tree(self, *args): print() logging.debug("reload_tree " + str(args)) self.DeleteChildren(self._rootid) OM = ObjectManager() lista = OM.list() print(lista) print() for obj in OM.list(): self._add_tree_node(obj.uid, OM._getparentuid(obj.uid))
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