public final void update(
      final DynamicArray aEntries, final Rectangle aBounds, final FontGenerator aFont) {
    final int numberOfEntries = aEntries.size;
    final float spacing = calcSuitableSpacing(aBounds.height, aEntries.size, aFont.charHeight());
    final int entriesOffset = (int) ((aBounds.height - numberOfEntries * spacing) / 2);

    final int offsetX = aBounds.x;
    final int offsetY = (int) (aBounds.y + entriesOffset + spacing / 2);

    for (int idx = 0; idx < numberOfEntries; idx++) {
      final PositionableEntry entry = (PositionableEntry) aEntries.get(idx);
      entry.setAvailableWidth(aBounds.width);

      final Position position = entry.getPositionByReference();
      position.x = offsetX;
      position.y = (int) (offsetY + idx * spacing);
    }
  }