protected function _FromForm() {
      $Form = new Gdn_Form();
      $Px = $this->Prefix;

      $Types = (array)$Form->GetFormValue($Px.'Type', array());
      $PermissionFields = (array)$Form->GetFormValue($Px.'PermissionField', array());
      $RoleFields = (array)$Form->GetFormValue($Px.'RoleField', array());
      $Fields = (array)$Form->GetFormValue($Px.'Field', array());
      $Expressions = (array)$Form->GetFormValue($Px.'Expr', array());

      $Conditions = array();
      for ($i = 0; $i < count($Types) - 1; $i++) { // last condition always template row.

         $Condition = array($Types[$i]);
         switch ($Types[$i]) {
            case Gdn_Condition::PERMISSION:
               $Condition[1] = GetValue($i, $PermissionFields, '');
               break;
            case Gdn_Condition::REQUEST:
               $Condition[1] = GetValue($i, $Fields, '');
               $Condition[2] = GetValue($i, $Expressions, '');
               break;
            case Gdn_Condition::ROLE:
               $Condition[1] = GetValue($i, $RoleFields);
               break;
            case '':
               $Condition[1] = '';
               break;
            default:
               continue;
         }
         $Conditions[] = $Condition;
      }
      return $Conditions;
   }