def METHOD_NAME(self):
    if not self._model:
        return
    if self.currentItem():
        self._lastID = self.currentItem().data(0, Qt.UserRole)
    self._updating = True
    self.clear()
    plots = self._model.getPlotsByImportance()
    h = [self.tr("Main"), self.tr("Secondary"), self.tr("Minor")]
    for i in range(3):
        cat = QTreeWidgetItem(self, [h[i]])
        cat.setBackground(0, QBrush(QColor(S.highlightLight)))
        cat.setForeground(0, QBrush(QColor(S.highlightedTextDark)))
        cat.setTextAlignment(0, Qt.AlignCenter)
        f = cat.font(0)
        f.setBold(True)
        cat.setFont(0, f)
        cat.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
        self.addTopLevelItem(cat)
        # cat.setChildIndicatorPolicy(cat.DontShowIndicator)
        for ID in plots[i]:
            name = self._model.getPlotNameByID(ID)
            if not self._filter.lower() in name.lower():
                continue
            item = QTreeWidgetItem(cat, [name])
            item.setData(0, Qt.UserRole, ID)
            item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
            if self._showSubPlot:
                f = item.font(0)
                f.setBold(True)
                item.setFont(0, f)
                for subID, name, summary in self._model.getSubPlotsByID(ID):
                    sub = QTreeWidgetItem(item, [name])
                    # sub.setData(0, Qt.UserRole, "{}:{}".format(ID, subID))
                    sub.setData(0, Qt.UserRole, ID)
            if ID == self._lastID:
                self.setCurrentItem(item)
    self.expandAll()
    self._updating = False