_converter = $converter; } /** * Returns values of the column * * @return array */ public function getValues() { if ($this->_values === null) { $this->_values = $this->getColumn()->getData('values') ? $this->getColumn()->getData('values') : []; } return $this->_values; } /** * Prepare data for renderer * * @return array */ protected function _getValues() { $values = $this->getColumn()->getValues(); return $this->_converter->toFlatArray($values); } /** * Renders grid column * * @param \Magento\Framework\DataObject $row * @return string * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ public function render(\Magento\Framework\DataObject $row) { $values = $this->_getValues(); $value = $row->getData($this->getColumn()->getIndex()); $checked = ''; if (is_array($values)) { $checked = in_array($value, $values) ? ' checked="checked"' : ''; } else { $checkedValue = $this->getColumn()->getValue(); if ($checkedValue !== null) { $checked = $value === $checkedValue ? ' checked="checked"' : ''; } } $disabled = ''; $disabledValues = $this->getColumn()->getDisabledValues(); if (is_array($disabledValues)) { $disabled = in_array($value, $disabledValues) ? ' disabled="disabled"' : ''; } else { $disabledValue = $this->getColumn()->getDisabledValue(); if ($disabledValue !== null) { $disabled = $value === $disabledValue ? ' 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 = ''; /* ToDo UI: add class="admin__field-label" after some refactoring _fields.less */ 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="admin__control-checkbox"' . $checked . $disabled . ' '; $html .= 'title="' . __('Select All') . '"/>'; return $html; } }