@Override
 public void setSelection(final ISelection selection) {
   assert (selection != null && !selection.isEmpty());
   final Object firstElement = ((IStructuredSelection) selection).getFirstElement();
   /*
    * breadcrumbViewer.setInput is called every time an item is selected.
    * Because of this, it does not make sense for the content provider
    * associated with the breadcrumbViewer to register a listener on the model
    */
   breadcrumbViewer.setInput(firstElement);
   breadcrumbViewer.setSelection(selection, true);
   contentPanel.setSelection(firstElement);
   contentPanel.setFocus();
 }