示例#1
0
    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
示例#2
0
 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
示例#3
0
 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)
示例#4
0
    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))
示例#5
0
文件: tree.py 项目: giruenf/GRIPy
    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