/** @see ContentOutlinePage#createControl */
  public void createControl(Composite parent) {
    super.createControl(parent);
    ColumnViewerToolTipSupport.enableFor(getTreeViewer());

    IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
    if (page != null) {
      fEditor = page.getActiveEditor();
    }

    fDragAdapter = new DelegatingDragAdapter();
    fDragSource = new DragSource(getControl(), DND.DROP_COPY | DND.DROP_MOVE);
    fDropAdapter = new DelegatingDropAdapter();
    fDropTarget = new DropTarget(getControl(), DND.DROP_COPY | DND.DROP_MOVE);

    setConfiguration(getConfiguration());

    /*
     * ContentOutlinePage only implements ISelectionProvider while the
     * tree viewer implements both ISelectionProvider and
     * IPostSelectionProvider. Use an ISelectionProvider that listens to
     * post selection from the tree viewer and forward only post selection
     * to the selection service.
     */
    getTreeViewer()
        .addPostSelectionChangedListener(fSelectionProvider.getPostSelectionChangedListener());
    getTreeViewer().addSelectionChangedListener(fSelectionProvider.getSelectionChangedListener());
    if (fDoubleClickProvider == null) {
      fDoubleClickProvider = new DoubleClickProvider();
    }
    getTreeViewer().addDoubleClickListener(fDoubleClickProvider);
    getSite().setSelectionProvider(fSelectionProvider);
  }
 /** Selects all in the view. */
 public void run() {
   if (fControl instanceof StyledText) ((StyledText) fControl).selectAll();
   else {
     // FIXME: see
     // https://bugs.eclipse.org/bugs/show_bug.cgi?id=63022
     // ((Browser)fControl).selectAll();
     if (fSelectionProvider != null) fSelectionProvider.fireSelectionChanged();
   }
 }
 /*
  * (non-Javadoc)
  *
  * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
  */
 public ISelection getSelection() {
   return fSelectionProvider.getSelection();
 }