public @NotNull Promise<Boolean> trackingSelect(@NotNull Object service, @NotNull Class<?> contributorClass,
                                                  boolean activate, boolean focus) {
    if (!myState.selectActiveService) {
      if (activate) {
        String toolWindowId = getToolWindowId(contributorClass);
        if (toolWindowId == null) {
          return Promises.rejectedPromise("Contributor group not found");
        }
        ToolWindowManager.getInstance(myProject).invokeLater(() -> {
          ToolWindow toolWindow = ToolWindowManager.getInstance(myProject).getToolWindow(toolWindowId);
          if (toolWindow != null) {
            toolWindow.activate(null, focus, focus);
          }
        });
      }
      return expand(service, contributorClass).then(o -> false);
    }
    return doSelect(service, contributorClass, activate, focus).then(o -> true);
  }
public @NotNull Promise<Boolean> trackingSelect(@NotNull Object service, @NotNull Class<?> contributorClass,
                                                  boolean activate, boolean focus)