Bug 324078 [IDE] Cannot create a virtual TreeViewer in ContentOutlinePage
org.eclipse.ui.views.contentoutline.ContentOutlinePage has a private field TreeViewer treeViewer, that is initialized in the createControl method. If you want to use a virtual tree viewer, you cannot do that by subclassing as it requires an additonal flag in the constructor call. As a consequence, you have to double all the code in your implementation. Possible solutions - provide a protected setTreeViewer() method - extract the initialization flags into a protected method protected int getFlags() { return SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL; }
bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java
IContentOutlinePage, ISelectionChangedListener {
    private ListenerList selectionChangedListeners = new ListenerList();
    private TreeViewer treeViewer;
    /**
     * Create a new content outline page.
     */
    protected ContentOutlinePage() {
        super();
    }
    /* (non-Javadoc)
     * Method declared on ISelectionProvider.
     */
    public void addSelectionChangedListener(ISelectionChangedListener listener) {
        selectionChangedListeners.add(listener);
    }
    /**
     * The <code>ContentOutlinePage</code> implementation of this 
     * <code>IContentOutlinePage</code> method creates a tree viewer. Subclasses
     * must extend this method configure the tree viewer with a proper content 
     * provider, label provider, and input element.
     * @param parent
     */