예제 #1
0
    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)
예제 #2
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