.valueOf(localRowPosition));
if (cachedStartY != null) {
return cachedStartY.intValue();
}
IUniqueIndexLayer underlyingLayer = (IUniqueIndexLayer) getUnderlyingLayer();
int underlyingPosition = localToUnderlyingRowPosition(localRowPosition);
if (underlyingPosition < 0) {
return -1;
}
int underlyingStartY = underlyingLayer
.getStartYOfRowPosition(underlyingPosition);
if (underlyingStartY < 0) {
return -1;
}
for (Integer hiddenIndex : getHiddenRowIndexes()) {
int hiddenPosition = underlyingLayer
.getRowPositionByIndex(hiddenIndex.intValue());
// if the hidden position is -1, it is hidden in the underlying
// layer
// therefore the underlying layer should handle the positioning
if (hiddenPosition >= 0 && hiddenPosition <= underlyingPosition) {
underlyingStartY -= underlyingLayer
.getRowHeightByPosition(hiddenPosition);
}
}
startYCache.put(Integer.valueOf(localRowPosition),