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
*/
    public void insert(Object element, int position) {
    	if (getComparator() != null || hasFilters()) {
    		add(element);
    		return;
    	}
    	
    	insertItem((ILabelProvider) getLabelProvider(), element, position);
    }
    
    
    /**
     * Return the text for the element from the labelProvider.
     * If it is null then return the empty String.
     * @param labelProvider ILabelProvider
     * @param element
     * @return String. Return the emptyString if the labelProvider
     * returns null for the text.
     * 
     * @since 3.1
     */
    private String getLabelProviderText(ILabelProvider labelProvider, Object element){
    	String text = labelProvider.getText(element);
        if(text == null) {
			return "";
		}
        return text;
    }
    /**
     * Adds the given element to this list viewer.