/**
  * Get all settings with the correct input field
  *
  * @return array
  */
 protected function getSettingsInputs()
 {
     $settings = array();
     /** @var $setting srCertificateDefinitionSetting */
     foreach ($this->definition->getSettings() as $setting) {
         $identifier = $setting->getIdentifier();
         $value = $setting->getValue();
         if ($identifier == srCertificateTypeSetting::IDENTIFIER_VALIDITY) {
             continue;
         }
         // Validity itself is set depending on the validity type and displayed as subitem
         switch ($identifier) {
             case srCertificateTypeSetting::IDENTIFIER_DEFAULT_LANG:
                 // Select contains all available languages defined in the type
                 $input = $this->getDefaultLangInput();
                 $input->setValue($value);
                 break;
             case srCertificateTypeSetting::IDENTIFIER_VALIDITY_TYPE:
                 $input = $this->getValidityInput($setting);
                 $input->setValue($value);
                 break;
             case srCertificateTypeSetting::IDENTIFIER_GENERATION:
                 $input = new ilRadioGroupInputGUI($this->pl->txt('setting_id_generation'), $identifier);
                 $input->setRequired(true);
                 $option = new ilRadioOption($this->pl->txt('setting_generation_auto'), srCertificateTypeSetting::GENERATION_AUTO);
                 $input->addOption($option);
                 $option = new ilRadioOption($this->pl->txt('setting_generation_manually'), srCertificateTypeSetting::GENERATION_MANUAL);
                 $input->addOption($option);
                 $input->setValue($value);
                 break;
             case srCertificateTypeSetting::IDENTIFIER_DOWNLOADABLE:
             case srCertificateTypeSetting::IDENTIFIER_NOTIFICATION_USER:
             case srCertificateTypeSetting::IDENTIFIER_SCORM_TIMING:
                 $input = new ilCheckboxInputGUI($this->pl->txt("setting_id_{$identifier}"), $identifier);
                 $input->setInfo($this->pl->txt("setting_id_{$identifier}_info"));
                 $input->setValue(1);
                 if ($setting->getValue()) {
                     $input->setChecked(true);
                 }
                 break;
             default:
                 $input = new ilTextInputGUI($this->pl->txt("setting_id_{$identifier}"), $identifier);
                 $input->setInfo($this->pl->txt("setting_id_{$identifier}_info"));
                 $input->setValue($value);
                 break;
         }
         $input->setDisabled(!$setting->isEditable());
         $settings[$identifier] = $input;
     }
     return $settings;
 }