public function setValue($value)
    {
        if (! $this->valueIsPossible($value)) {
            return false;
        }
        $index   = false;
        $widgets = $this->getWidgets();
        for ($i = 0, $count = count($widgets); $i < $count; $i++) {
            if (! $widgets[$i]->setValue($value)) {
                $widgets[$i]->setValue(false);
            }
        }

        return true;
    }