void createToolWindowContent(@NotNull ToolWindow toolWindow) {
    String toolWindowId = toolWindow.getId();
    Collection<ServiceViewContributor<?>> contributors = myGroups.get(toolWindowId);
    if (contributors == null) return;

    if (myAutoScrollToSourceHandler == null) {
      myAutoScrollToSourceHandler = ServiceViewSourceScrollHelper.createAutoScrollToSourceHandler(myProject);
    }
    ToolWindowEx toolWindowEx = (ToolWindowEx)toolWindow;
    Wrapper toolWindowHeaderSideComponent = setToolWindowHeaderSideComponent(toolWindowEx);
    ServiceViewSourceScrollHelper.installAutoScrollSupport(myProject, toolWindowEx, myAutoScrollToSourceHandler);

    Pair<ServiceViewState, List<ServiceViewState>> states = getServiceViewStates(toolWindowId);
    AllServicesModel mainModel = new AllServicesModel(myModel, myModelFilter, contributors);
    ServiceView mainView = ServiceView.createView(myProject, mainModel, prepareViewState(states.first));
    mainView.setAutoScrollToSourceHandler(myAutoScrollToSourceHandler);

    ContentManager contentManager = toolWindow.getContentManager();
    ServiceViewContentHolder holder =
      new ServiceViewContentHolder(mainView, contentManager, contributors, toolWindowId, toolWindowHeaderSideComponent);
    myContentHolders.add(holder);
    contentManager.addContentManagerListener(new ServiceViewContentMangerListener(myModelFilter, myAutoScrollToSourceHandler, holder));
    myProject.getMessageBus().connect(contentManager).subscribe(ToolWindowManagerListener.TOPIC, new ToolWindowManagerListener() {
      @Override
      public void stateChanged(@NotNull ToolWindowManager toolWindowManager,
                               @NotNull ToolWindow toolWindow,
                               @NotNull ToolWindowManagerEventType changeType) {
        if (!toolWindowId.equals(toolWindow.getId())) return;

        if (changeType == ToolWindowManagerEventType.SetSideToolAndAnchor) {
          boolean verticalSplit = !toolWindow.getAnchor().isHorizontal();
          for (Content content : holder.contentManager.getContents()) {
            ServiceView serviceView = getServiceView(content);
            if (serviceView != null) {
              serviceView.getUi().setSplitOrientation(verticalSplit);
            }
          }
          return;
        }
        if (changeType == ToolWindowManagerEventType.SetContentUiType) {
          updateNavBar(holder);
        }
      }
    });
    if (toolWindowHeaderSideComponent != null) {
      DataManager.registerDataProvider(toolWindowHeaderSideComponent, dataId -> {
        Content content = contentManager.getSelectedContent();
        ServiceView serviceView = content == null ? null : getServiceView(content);
        DataProvider dataProvider = serviceView == null ? null : DataManager.getDataProvider(serviceView);
        return dataProvider == null ? null : dataProvider.getData(dataId);
      });
    }
    addMainContent(toolWindow.getContentManager(), mainView);
    loadViews(contentManager, mainView, contributors, states.second);
    ServiceViewDragHelper.installDnDSupport(myProject, toolWindowEx.getDecorator(), contentManager);
  }
void createToolWindowContent(@NotNull ToolWindow toolWindow)