package com.ponysdk.core.ui.datagrid.impl;
import com.ponysdk.core.ui.basic.PWidget;
import com.ponysdk.core.ui.datagrid.CellRenderer;
public abstract class TypedCellRenderer<DataType, WidgetType extends PWidget> implements CellRenderer<DataType> {
@Override
public PWidget update(final DataType value, final PWidget current) {
return update0(value, cast(current));
}
private WidgetType cast(final PWidget w) {
return (WidgetType) w;
}
@Override
public void reset(final PWidget widget) {
reset0(cast(widget));
}
@Override
public abstract WidgetType render(final DataType value);
protected abstract WidgetType update0(final DataType value, final WidgetType widget);
protected abstract void reset0(final WidgetType widget);
}