def METHOD_NAME(self, *args):
    # Empty the main layout
    while True:
        item = self.uiVerticalLayout.takeAt(0)
        if item is None:
            break
        elif item.widget():
            item.widget().deleteLater()
    if len(self._filters) == 0:
        QtWidgets.QMessageBox.critical(self, "Link", "No filter available for this link. Try with a different node type.")
        self.reject()
    self._tabWidget = QtWidgets.QTabWidget(self)
    for i, filter in enumerate(self._filters):
        tab = QtWidgets.QWidget()
        self._tabWidget.addTab(tab, filter['name'])
        self._tabWidget.setTabToolTip(i, filter['description'])
        self._tabWidget.setTabIcon(i, QtGui.QIcon(':/icons/led_red.svg'))
        vlayout = QtWidgets.QVBoxLayout()
        gridLayout = QtWidgets.QGridLayout()
        line = 0
        filter["spinBoxes"] = []
        filter["textEdits"] = []
        nb_spin = 0
        for param in filter["parameters"]:
            label = QtWidgets.QLabel()
            label.setText(param["name"] + ":")
            gridLayout.addWidget(label, line, 0, 1, 1)
            if param["type"] == "int":
                spinBox = QtWidgets.QSpinBox()
                filter["spinBoxes"].append(spinBox)
                spinBox.setMinimum(param["minimum"])
                spinBox.setMaximum(param["maximum"])
                sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
                sizePolicy.setHorizontalStretch(0)
                sizePolicy.setVerticalStretch(0)
                sizePolicy.setHeightForWidth(spinBox.sizePolicy().hasHeightForWidth())
                spinBox.setSizePolicy(sizePolicy)
                try:
                    value = self._link.filters()[filter["type"]][nb_spin]
                    spinBox.setValue(value)
                    if value != 0:
                        self._tabWidget.setTabIcon(i, QtGui.QIcon(':/icons/led_green.svg'))
                except(KeyError, IndexError):
                    pass
                nb_spin += 1
                gridLayout.addWidget(spinBox, line, 1, 1, 1)
                unit = QtWidgets.QLabel()
                unit.setText(param["unit"])
                gridLayout.addWidget(unit, line, 2, 1, 1)
            elif param["type"] == "text":
                textEdit = QtWidgets.QTextEdit()
                textEdit.setAcceptRichText(False)
                filter["textEdits"].append(textEdit)
                sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
                sizePolicy.setHorizontalStretch(0)
                sizePolicy.setVerticalStretch(0)
                textEdit.setMinimumWidth(300)
                textEdit.setSizePolicy(sizePolicy)
                try:
                    text = self._link.filters()[filter["type"]][0]
                    textEdit.setPlainText(text)
                    if text:
                        self._tabWidget.setTabIcon(i, QtGui.QIcon(':/icons/led_green.svg'))
                except(KeyError, IndexError):
                    pass
                gridLayout.addWidget(textEdit, line, 1, 1, 1)
            line += 1
        spacerItem = QtWidgets.QSpacerItem(1, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        gridLayout.addItem(spacerItem, line, 0, 1, 1)
        vlayout.addLayout(gridLayout)
        tab.setLayout(vlayout)
    self.uiVerticalLayout.addWidget(self._tabWidget)