protected void doClean() {
if (grid == null || !grid.isViewReady() || !bufferEnabled) {
return;
}
int count = getVisibleRowCount();
if (count > 0) {
int[] vr = getVisibleRows(count);
vr[0] -= cacheSize;
vr[1] += cacheSize;
int i = 0;
NodeList<Element> rows = getRows();
if (vr[0] <= 0) {
i = vr[1] + 1;
}
for (int len = grid.getStore().getCount(); i < len; i++) {
if ((i < vr[0] || i > vr[1])) {
detachWidget(i, false);
widgetList.set(i, null);
cleanModel(ds.getAt(i));
rows.getItem(i).setInnerHTML("");
}
}
}
}