@Override
  protected void createTool() {
    myHierarchyTree = createHierarchyTree(false);
    myOccurenceNavigator =
        new OccurenceNavigatorSupport(myHierarchyTree) {
          @Nullable
          @Override
          protected Navigatable createDescriptorForNode(DefaultMutableTreeNode node) {
            if (!(node instanceof HierarchyTreeNode)) {
              return null;
            }

            SNodeReference ptr = ((HierarchyTreeNode) node).getNodeReference();

            Navigatable n = new NodeNavigatable(getMPSProject(), ptr);
            return (n.canNavigate() ? n : null);
          }

          @Override
          public String getPreviousOccurenceActionName() {
            return UsageViewBundle.message("action.previous.occurrence");
          }

          @Override
          public String getNextOccurenceActionName() {
            return UsageViewBundle.message("action.next.occurrence");
          }
        };
    myHierarchyTree.setRootVisible(true);
    this.myComponent = new AbstractHierarchyView.RootPanel();
    myScrollPane = ScrollPaneFactory.createScrollPane(myHierarchyTree, true);
    myComponent.setContent(myScrollPane);
    showItemInHierarchy(null);
    createControlPanel();
  }