def METHOD_NAME(self):
    groups = {}
    parameters = self._procedure.parameter_objects()
    for name in self._inputs:
        parameter = parameters[name]
        group_state = {g: True for g in parameter.group_by}
        for group_name, condition in parameter.group_by.items():
            if group_name not in self._inputs or group_name == name:
                continue
            if isinstance(getattr(self, group_name), BooleanInput):
                # Adjust the boolean condition to a condition suitable for a checkbox
                condition = bool(condition)
            if group_name not in groups:
                groups[group_name] = []
            groups[group_name].append((name, condition, group_state))
    for group_name, group in groups.items():
        toggle = partial(self.toggle_group, group_name=group_name, group=group)
        group_el = getattr(self, group_name)
        if isinstance(group_el, BooleanInput):
            group_el.toggled.connect(toggle)
            toggle(group_el.isChecked())
        elif isinstance(group_el, StringInput):
            group_el.textChanged.connect(toggle)
            toggle(group_el.text())
        elif isinstance(group_el, (IntegerInput, ScientificInput)):
            group_el.valueChanged.connect(toggle)
            toggle(group_el.value())
        elif isinstance(group_el, ListInput):
            group_el.currentTextChanged.connect(toggle)
            toggle(group_el.currentText())
        else:
            raise NotImplementedError(
                f"Grouping based on {group_name} ({group_el}) is not implemented.")