*/
class Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Checkbox
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
protected $_defaultWidth = 55;
protected $_values;
/**
* Returns values of the column
*
* @return array
*/
public function getValues()
{
if (is_null($this->_values)) {
$this->_values = $this->getColumn()->getData('values') ? $this->getColumn()->getData('values') : array();
}
return $this->_values;
}
/**
* Renders grid column
*
* @param Varien_Object $row
* @return string
*/
public function render(Varien_Object $row)
{
$values = $this->getColumn()->getValues();
$value = $row->getData($this->getColumn()->getIndex());
if (is_array($values)) {
$checked = in_array($value, $values) ? ' checked="checked"' : '';
}
else {
$checked = ($value === $this->getColumn()->getValue()) ? ' checked="checked"' : '';
}
$disabledValues = $this->getColumn()->getDisabledValues();
if (is_array($disabledValues)) {
$disabled = in_array($value, $disabledValues) ? ' disabled="disabled"' : '';
}
else {
$disabled = ($value === $this->getColumn()->getDisabledValue()) ? ' disabled="disabled"' : '';
}
$this->setDisabled($disabled);
if ($this->getNoObjectId() || $this->getColumn()->getUseIndex()){
$v = $value;
} else {
$v = ($row->getId() != "") ? $row->getId():$value;
}
return $this->_getCheckboxHtml($v, $checked);
}
/**
* @param string $value Value of the element
* @param bool $checked Whether it is checked
* @return string
*/
protected function _getCheckboxHtml($value, $checked)
{
$html = 'getColumn()->getFieldName() . '" ';
$html .= 'value="' . $this->escapeHtml($value) . '" ';
$html .= 'class="'. ($this->getColumn()->getInlineCss() ? $this->getColumn()->getInlineCss() : 'checkbox') .'"';
$html .= $checked . $this->getDisabled() . '/>';
return $html;
}
/**
* Renders header of the column
*
* @return string
*/
public function renderHeader()
{
if($this->getColumn()->getHeader()) {
return parent::renderHeader();
}
$checked = '';
if ($filter = $this->getColumn()->getFilter()) {
$checked = $filter->getValue() ? ' checked="checked"' : '';
}
$disabled = '';
if ($this->getColumn()->getDisabled()) {
$disabled = ' disabled="disabled"';
}
$html = 'getColumn()->getFieldName() . '" ';
$html .= 'onclick="' . $this->getColumn()->getGrid()->getJsObjectName() . '.checkCheckboxes(this)" ';
$html .= 'class="checkbox"' . $checked . $disabled . ' ';
$html .= 'title="'.Mage::helper('adminhtml')->__('Select All') . '"/>';
return $html;
}
}