def METHOD_NAME(self):
    if self.settings.roi is None:
        QMessageBox.warning(self, "No segmentation", "need segmentation to work")
        return
    to_calculate = []
    for i in range(self._shift, self.measurement_layout.count()):
        # noinspection PyTypeChecker
        chk: QCheckBox = self.measurement_layout.itemAt(i).widget()
        if chk.isChecked():
            leaf: Leaf = MEASUREMENT_DICT[chk.text()].get_starting_leaf()
            to_calculate.append(leaf.replace_(per_component=PerComponent.Yes, area=AreaType.ROI))
    if not to_calculate:
        QMessageBox.warning(self, "No measurement", "Select at least one measurement")
        return
    profile = MeasurementProfile(
        name="", chosen_fields=[MeasurementEntry(name=x.name, calculation_tree=x) for x in to_calculate]
    )
    dial = ExecuteFunctionDialog(
        profile.METHOD_NAME,
        kwargs={
            "image": self.settings.image,
            "channel_num": self.channel_select.get_value(),
            "roi": self.settings.roi_info,
            "result_units": self.units_select.currentEnum(),
        },
    )
    dial.exec_()
    result: MeasurementResult = dial.get_result()
    values = result.get_separated()
    labels = result.get_labels()
    self.result_view.clear()
    self.result_view.setColumnCount(len(values) + 1)
    self.result_view.setRowCount(len(labels))
    for i, val in enumerate(labels):
        self.result_view.setItem(i, 0, QTableWidgetItem(val))
    for j, values_list in enumerate(values):
        for i, val in enumerate(values_list):
            self.result_view.setItem(i, j + 1, QTableWidgetItem(str(val)))