code: def set_existing_extra_keywords(self):
          
          extra_keywords = self.parent.get_existing_keyword('extra_keywords')
          for key, widgets in list(self.widgets_dict.items()):
              value = extra_keywords.get(key)
              if value is None:
                  widgets[0].setChecked(False)
              else:
                  widgets[0].setChecked(True)
                  if isinstance(widgets[1], QLineEdit):
                      widgets[1].setText(value)
                  elif isinstance(widgets[1], QComboBox):
                      value_index = widgets[1].findData(value)
                      widgets[1].setCurrentIndex(value_index)
                  elif isinstance(widgets[1], QDoubleSpinBox):
                      try:
                          value = float(value)
                          widgets[1].setValue(value)
                      except ValueError:
                          LOGGER.warning('Failed to convert %s to float' % value)
                  elif isinstance(widgets[1], QDateTimeEdit):
                      try:
                          value_datetime = datetime.strptime(
                              value, "%Y-%m-%dT%H:%M:%S.%f")
                          widgets[1].setDateTime(value_datetime)
                      except ValueError:
                          try:
                              value_datetime = datetime.strptime(
                                  value, "%Y-%m-%dT%H:%M:%S")
                              widgets[1].setDateTime(value_datetime)
                          except ValueError:
                              LOGGER.info(
                                  'Failed to convert %s to datetime' % value)
docs: Set extra keywords from the value from metadata.