protected HtmlComponent generateObjectComponent(int columnIndex, MetaObject object) { MetaSlot slot = getSlotUsingName(object, columnIndex);  if (slot == null) { return new HtmlText(); }  HtmlComponent component = renderSlot(slot); component = wrapPrefixAndSuffix(component, columnIndex);  return component;
        protected HtmlComponent getComponent(int rowIndex, int columnIndex) {            MetaObject object = getObject(rowIndex);            getContext().setMetaObject(object);            if (columnIndex == 0 && isCheckable()) {                HtmlCheckBox checkBox = new HtmlCheckBox();                checkBox.setName(getCheckboxName());                                if (getCheckboxValue() != null) {                    Object realObject = object.getObject();                    try {                        String checkBoxValue = String.valueOf(PropertyUtils.getProperty(realObject,                                getCheckboxValue()));                        boolean checked = false;                        String[] existingValues = getContext().getViewState().getRequest()                                .getParameterValues(getCheckboxName());                        if (existingValues != null) {                            for (int i = 0; i < existingValues.length; i++) {                                String value = existingValues[i];                                                                if (value.equals(checkBoxValue)) {                                    checked = true;                                    break;                                }                            }                        }                                                checkBox.setChecked(checked);                        checkBox.setUserValue(checkBoxValue);                    } catch (Exception e) {                        throw new RuntimeException("could not set check box value by reading property '"                                + getCheckboxValue() + "' from object " + realObject, e);                    }                }                                return checkBox;            } else if (columnIndex < getNumberOfColumns() - getNumberOfLinks()) {                return generateObjectComponent(columnIndex - (isCheckable() ? 1 : 0), object);            } else {                return generateLinkComponent(object, rowIndex, columnIndex - (getNumberOfColumns() - getNumberOfLinks()));            }        protected HtmlComponent generateObjectComponent(int columnIndex, MetaObject object) {            MetaSlot slot = getSlotUsingName(object, columnIndex);                        if (slot == null) {                return new HtmlText();            }                        HtmlComponent component = renderSlot(slot);            component = wrapPrefixAndSuffix(component, columnIndex);                     return component;        }