public function editFields()
 {
     global $ilToolbar;
     $this->ctrl->saveParameter($this, 'record_id');
     $this->initRecordObject();
     $perm = $this->getPermissions()->hasPermissions(ilAdvancedMDPermissionHelper::CONTEXT_RECORD, $this->record->getRecordId(), array(ilAdvancedMDPermissionHelper::ACTION_RECORD_CREATE_FIELD, ilAdvancedMDPermissionHelper::ACTION_RECORD_FIELD_POSITIONS));
     if ($perm[ilAdvancedMDPermissionHelper::ACTION_RECORD_CREATE_FIELD]) {
         // type selection
         include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
         $types = new ilSelectInputGUI("", "ftype");
         $options = array();
         foreach (ilAdvancedMDFieldDefinition::getValidTypes() as $type) {
             $field = ilAdvancedMDFieldDefinition::getInstance(null, $type);
             $options[$type] = $this->lng->txt($field->getTypeTitle());
         }
         $types->setOptions($options);
         $ilToolbar->addInputItem($types);
         $ilToolbar->setFormAction($this->ctrl->getFormAction($this, "createField"));
         include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
         $button = ilSubmitButton::getInstance();
         $button->setCaption("add");
         $button->setCommand("createField");
         $ilToolbar->addButtonInstance($button);
     }
     // show field table
     include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
     $fields = ilAdvancedMDFieldDefinition::getInstancesByRecordId($this->record->getRecordId());
     include_once "./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldTableGUI.php";
     $table_gui = new ilAdvancedMDFieldTableGUI($this, "editRecord", $this->getPermissions(), $perm[ilAdvancedMDPermissionHelper::ACTION_RECORD_FIELD_POSITIONS]);
     $table_gui->setTitle($this->lng->txt("md_adv_field_table"));
     $table_gui->parseDefinitions($fields);
     if (sizeof($fields)) {
         $table_gui->addCommandButton("updateFields", $this->lng->txt("save"));
     }
     $table_gui->addCommandButton("showRecords", $this->lng->txt('cancel'));
     $table_gui->addMultiCommand("confirmDeleteFields", $this->lng->txt("delete"));
     $table_gui->setSelectAllCheckbox("field_id");
     $this->tpl->setContent($table_gui->getHTML());
 }
 /**
  * Edit one record
  *
  * @access public
  * @param
  * 
  */
 public function editRecord()
 {
     // reset session
     $_SESSION['num_values'] = 5;
     $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.edit_record.html', 'Services/AdvancedMetaData');
     $this->ctrl->saveParameter($this, 'record_id');
     $this->initRecordObject();
     $this->initForm('edit');
     $this->tpl->setVariable('EDIT_RECORD_TABLE', $this->form->getHTML());
     // show field table
     include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
     $fields = ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($this->record->getRecordId());
     include_once "./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldTableGUI.php";
     $table_gui = new ilAdvancedMDFieldTableGUI($this, "editRecord");
     $table_gui->setTitle($this->lng->txt("md_adv_field_table"));
     $table_gui->parseDefinitions($fields);
     $table_gui->addCommandButton("updateFields", $this->lng->txt("save"));
     $table_gui->addCommandButton('createField', $this->lng->txt('add'));
     $table_gui->addCommandButton('showRecords', $this->lng->txt('cancel'));
     $table_gui->addMultiCommand("confirmDeleteFields", $this->lng->txt("delete"));
     $table_gui->setSelectAllCheckbox("field_id");
     $this->tpl->setVariable('FIELDS_TABLE', $table_gui->getHTML());
 }