def METHOD_NAME(self):
    self._reset_scene()
    if self.graph is None:
        return
    # remove all edges
    scene = self.scene()
    for p in self._edge_paths:
        scene.removeItem(p)
    # remove all nodes
    self.blocks.clear()
    # self.remove_all_children()
    self._edge_paths = []
    node_sizes = {}
    for node in self.graph.nodes():
        self.blocks.add(node)
        node_sizes[node] = (node.width, node.height)
    gl = GraphLayouter(self.graph, node_sizes, node_compare_key=lambda n: 0)
    self._edges = gl.edges
    min_x, max_x, min_y, max_y = 0, 0, 0, 0
    scene = self.scene()
    for node, (x, y) in gl.node_coordinates.items():
        scene.addItem(node)
        node.setPos(x, y)
        min_x = min(min_x, node.x())
        max_x = max(max_x, node.x() + node.width)
        min_y = min(min_y, node.y())
        max_y = max(max_y, node.y() + node.height)
    min_x -= self.LEFT_PADDING
    max_x += self.LEFT_PADDING
    min_y -= self.TOP_PADDING
    max_y += self.TOP_PADDING
    (max_x - min_x) + 2 * self.LEFT_PADDING
    (max_y - min_y) + 2 * self.TOP_PADDING
    self._reset_view()