public function setValue($value, $data = array())
{
$this->child->setValue($value);
if ($this->alwaysVisible) {
$this->checkbox->setValue(true);
} elseif (is_array($data)) {
$this->checkbox->setValue(isset($data['Visible'][$this->name]) && $data['Visible'][$this->name]);
} else {
$this->checkbox->setValue(in_array($this->name, $data->getPublicFields()));
}
return $this;
}