Question: In my Eclipse RCP application I use the Selection Service as described in this nice [article](http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html). There is a *TreeViewer* in one view registered as a *SelectionProvider*:

`getSite().setSelectionProvider(viewer);`

Another view is receiving the events from the *TreeViewer*:

```
selectionListener = new ISelectionListener() {
  public void selectionChanged(IWorkbenchPart part, ISelection selection) {
    pageSelectionChanged(part, selection);
  }
 };
 getSite().getPage().addSelectionListener(selectionListener);

```

Everything works fine, if the events are triggered my normal mouse clicks. I would like to programmatically fire a selection events by selection an item in the tree:

```
treeViewer.setSelection(new StructuredSelection(element),true);

```

This is not working. Method *selectionChanged* is not called in the receiver-view. The issue is discussed in this [forum thread](http://www.eclipse.org/forums/index.php/m/328232/). There is no solution.

**EDIT** 

There is no proper way to handle a mouse triggered click the same way as a programmatically selection. A mouse click activates the view a programmatically selection does not.

My Solution is to register the second view the same way by `Selection Service` as the first view. After that both view are getting selection events directly from the active editor.

Answer: 
I've just had this problem and solved it like this:

```
treeViewer.getControl.setFocus();
treeViewer.setSelection(new StructuredSelection(element),true);

```

Giving the focus to the tree before making the selection seemed to notify the listeners, where before it was not.
Try `addPostSelectionListener` instead of `addSelectionListener` to register your listener at the workbench page. Looking at the code of `StructuredViewer`, the mentioned method `firePostSelectionChanged` will be called when programmatically setting the selection.