Пример #1
0
 /**
  * Adds a new choice.
  *
  * @param array $bucketForPreferred The bucket where to store the preferred
  *                                  view objects.
  * @param array $bucketForRemaining The bucket where to store the
  *                                  non-preferred view objects.
  * @param mixed $choice The choice to add.
  * @param string $label The label for the choice.
  * @param array $preferredChoices The preferred choices.
  */
 protected function addChoice(&$bucketForPreferred, &$bucketForRemaining, $choice, $label, array $preferredChoices)
 {
     $index = $this->createIndex($choice);
     if ('' === $index || null === $index || !Form::isValidName((string) $index)) {
         throw new InvalidConfigurationException('The index "' . $index . '" created by the choice list is invalid. It should be a valid, non-empty Form name.');
     }
     $value = $this->createValue($choice);
     if (!is_string($value)) {
         throw new InvalidConfigurationException('The value created by the choice list is of type "' . gettype($value) . '", but should be a string.');
     }
     $view = new ChoiceView($value, $label);
     $this->choices[$index] = $this->fixChoice($choice);
     $this->values[$index] = $value;
     if ($this->isPreferred($choice, $preferredChoices)) {
         $bucketForPreferred[$index] = $view;
     } else {
         $bucketForRemaining[$index] = $view;
     }
 }
Пример #2
0
 /**
  * Adds a new choice.
  *
  * @param array $bucketForPreferred The bucket where to store the preferred
  *                                  view objects.
  * @param array $bucketForRemaining The bucket where to store the
  *                                  non-preferred view objects.
  * @param mixed $choice The choice to add.
  * @param string $label The label for the choice.
  * @param array $preferredChoices The preferred choices.
  */
 protected function addChoice(&$bucketForPreferred, &$bucketForRemaining, $choice, $label, array $preferredChoices)
 {
     $index = $this->createIndex($choice);
     if ('' === $index || null === $index || !Form::isValidName((string) $index)) {
         throw new InvalidConfigurationException('The choice list index "' . $index . '" is invalid. Please set the choice field option "index_generation" to ChoiceList::GENERATE.');
     }
     $value = $this->createValue($choice);
     if (!is_scalar($value)) {
         throw new InvalidConfigurationException('The choice list value of type "' . gettype($value) . '" should be a scalar. Please set the choice field option "value_generation" to ChoiceList::GENERATE.');
     }
     // Always store values as strings to facilitate comparisons
     $value = $this->fixValue($value);
     $view = new ChoiceView($value, $label);
     $this->choices[$index] = $this->fixChoice($choice);
     $this->values[$index] = $value;
     if ($this->isPreferred($choice, $preferredChoices)) {
         $bucketForPreferred[$index] = $view;
     } else {
         $bucketForRemaining[$index] = $view;
     }
 }