Bug 141435 [Viewers] ListViewer without a selection loses scrolled state when refreshed
When the ListViewer does not contain a selection and is refreshed it loses its vertically scrolled to position. This is because AbstractListViewer removes all items and adds them back (it has to) when a refresh occurs. This is remedied in the use cases where there is a selection because the selected item is revealed after the refresh occurs. Without a selection no reveal can occur therefore it loses its position.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java
*/
    protected abstract int[] listGetSelectionIndices();
    /**
     * Returns the number of items contained in the underlying widget.
     *
     * @return the number of items
     */
    protected abstract int listGetItemCount();
    /**
     * Sets the underlying widget's items to be the given array of items.
     *
     * @param labels the array of label text
     */
    protected abstract void listSetItems(String[] labels);
    /**
     * Removes all of the items from the underlying widget.
     */
    protected abstract void listRemoveAll();
    /**
     * Removes the item from the underlying widget at the given
     * zero-relative index.
     * 
     * @param index the index for the item
     */
    protected abstract void listRemove(int index);
    /**
     * Selects the items at the given zero-relative indices in the underlying widget.
     * The current selection is cleared before the new items are selected.
     * <p>
     * Indices that are out of range and duplicate indices are ignored.