public BreadcrumbNavigationView(Composite parent, int style) {
    super(parent, style);

    addDisposeListener(
        new DisposeListener() {
          public void widgetDisposed(DisposeEvent e) {
            setInput(null);
          }
        });

    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    setLayout(layout);
    setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    breadcrumbViewer =
        new BreadcrumbViewer(this, SWT.HORIZONTAL) {
          @Override
          protected void configureDropDownViewer(TreeViewer viewer, Object input) {
            viewer.setContentProvider(new BreadcrumbContentProvider());
            viewer.setLabelProvider(new ModelLabelProvider());
            viewer.setComparator(new ModelNodeViewerComparator());
          }
        };

    breadcrumbViewer.addOpenListener(
        new IOpenListener() {
          public void open(OpenEvent event) {
            setSelection(event.getSelection());
          }
        });
    breadcrumbViewer.addSelectionChangedListener(
        new ISelectionChangedListener() {
          public void selectionChanged(SelectionChangedEvent event) {
            fireSelectionChangedEvent(event);
          }
        });

    breadcrumbViewer.setLabelProvider(new ModelLabelProvider());
    breadcrumbViewer.setContentProvider(new BreadcrumbContentProvider());
    contentPanel = new ContentPanel(this, SWT.NONE);
  }