def METHOD_NAME(self, selection):
    model, iter = selection.get_selected()
    if iter is None:
        self.gamemodel.boards = [Board(FEN_EMPTY)]
        del self.gamemodel.moves[:]
        self.boardview.shown = 0
        self.boardview.redrawCanvas()
        return
    path = self.persp.gamelist.get_model().get_path(iter)
    rec, ply = self.persp.gamelist.get_record(path)
    if rec is None:
        return
    try:
        self.persp.chessfile.loadToModel(rec, -1, self.gamemodel)
    except LoadingError as err:
        dialogue = Gtk.MessageDialog(
            mainwindow(),
            type=Gtk.MessageType.WARNING,
            buttons=Gtk.ButtonsType.OK,
            message_format=err.args[0],
        )
        if len(err.args) > 1:
            dialogue.format_secondary_text(err.args[1])
        dialogue.connect("response", lambda dialogue, a: dialogue.hide())
        dialogue.show()
    self.boardview.noAnimation = True
    self.boardview.lastMove = None
    self.boardview._shown = self.gamemodel.lowply
    if ply > 0 or self.persp.gamelist.ply > 0:
        self.boardview.shown = ply if ply > 0 else self.persp.gamelist.ply
    else:
        self.boardview.shown = self.boardview.model.ply