/**
  * Process the form when submitted
  *
  * @return void
  * @access public
  */
 public function postProcess()
 {
     $params = $this->controller->exportValues($this->_name);
     $tableName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $this->_values['custom_group_id'], 'table_name');
     $singleValueOps = array('Text', 'Select', 'Radio', 'Autocomplete-Select');
     $mutliValueOps = array('CheckBox', 'Multi-Select', 'AdvMulti-Select');
     $srcHtmlType = $this->_values['html_type'];
     $dstHtmlType = $params['dst_html_type'];
     $customField = new CRM_Core_DAO_CustomField();
     $customField->id = $this->_id;
     $customField->find(TRUE);
     if ($dstHtmlType == 'Text' && in_array($srcHtmlType, array('Select', 'Radio', 'Autocomplete-Select'))) {
         $customField->option_group_id = "NULL";
         CRM_Core_BAO_CustomField::checkOptionGroup($this->_values['option_group_id']);
     }
     if (in_array($srcHtmlType, $mutliValueOps) && in_array($dstHtmlType, $singleValueOps)) {
         $this->flattenToFirstValue($tableName, $this->_values['column_name']);
     } elseif (in_array($srcHtmlType, $singleValueOps) && in_array($dstHtmlType, $mutliValueOps)) {
         $this->firstValueToFlatten($tableName, $this->_values['column_name']);
     }
     $customField->html_type = $dstHtmlType;
     $customField->save();
     // Reset cache for custom fields
     CRM_Core_BAO_Cache::deleteGroup('contact fields');
     CRM_Core_Session::setStatus(ts('Input type of custom field \'%1\' has been successfully changed to \'%2\'.', array(1 => $this->_values['label'], 2 => $dstHtmlType)));
 }