code: @Override
  	int getIndexOf(final V value) {
  		Validate.notNull(value, "Value required");
  		Validate.validState(getSize() > 0, "No data");
  
  		// search for value in current page
  		final List<V> data = getData();
  		final int currentPageSize = data.size();
  		final K valueKey = getKeyOf(value);
  		for (int localIndex = 0; localIndex < currentPageSize; localIndex++) {
  			if (getKeyOf(data.get(localIndex)).equals(valueKey)) {
  				return first + localIndex;
  			}
  		}
  		return -1;
  	}
docs: <p>
  Returns the index of the first occurrence of the specified value in this
  controller, or -1 if value was not found. This implementation does a
  lookup on the current page's data, i.e. if the value wasn't found it
  doesn't mean the value is not contained in the controller.
  </p>
  <p>
  Override this method if you need an absolute lookup.
  </p>
  
  @param value
  @return found index, or -1 if value was not found
  @throws NullPointerException
  if parameter value is null
  @throws IllegalStateException
  if there is no data available