void setExcludedContributors(@NotNull Collection<? extends ServiceViewContributor<?>> excluded) {
    List<ServiceViewContributor<?>> toExclude = new ArrayList<>();
    List<ServiceViewContributor<?>> toInclude = new ArrayList<>();
    Collection<ServiceViewContributor<?>> services = null;
    for (Map.Entry<String, Collection<ServiceViewContributor<?>>> entry : myGroups.entrySet()) {
      if (ToolWindowId.SERVICES.equals(entry.getKey())) {
        toExclude.addAll(ContainerUtil.filter(entry.getValue(), contributor -> excluded.contains(contributor)));
        services = entry.getValue();
      }
      else {
        toInclude.addAll(ContainerUtil.filter(entry.getValue(), contributor -> !excluded.contains(contributor)));
      }
    }

    Set<String> toolWindowIds = new HashSet<>();
    toolWindowIds.addAll(excludeServices(toExclude, services));
    toolWindowIds.addAll(includeServices(toInclude, services));
    registerToolWindows(toolWindowIds);

    // Notify model listeners to update tool windows' content.
    myModel.getInvoker().invokeLater(() -> {
      for (ServiceViewContributor<?> contributor : CONTRIBUTOR_EP_NAME.getExtensionList()) {
        ServiceEvent e = ServiceEvent.createResetEvent(contributor.getClass());
        myModel.notifyListeners(e);
      }
    });

    if (toExclude.isEmpty() && !toInclude.isEmpty()) {
      toolWindowIds.add(ToolWindowId.SERVICES);
    }
    activateToolWindows(toolWindowIds);
  }
void setExcludedContributors(@NotNull Collection<? extends ServiceViewContributor<?>> excluded)