private @NotNull DefaultMutableTreeNode buildNodes() {
    DefaultMutableTreeNode root = new DefaultMutableTreeNode(new Descriptor());
    RunManagerImpl runManager = RunManagerImpl.getInstanceImpl(myProject);
    for (Map.Entry<ConfigurationType, Map<String, List<RunnerAndConfigurationSettings>>> entry : runManager.getConfigurationsGroupedByTypeAndFolder(false).entrySet()) {
      ConfigurationType type = entry.getKey();
      final Icon icon = type.getIcon();
      boolean selectedAll = true;
      GroupConfigurationDescriptor groupConfigurationDescriptor = new GroupConfigurationDescriptor(type, icon);
      DefaultMutableTreeNode typeNode = new DefaultMutableTreeNode(groupConfigurationDescriptor);
      root.add(typeNode);
      Set<String> addedNames = CollectionFactory.createSmallMemoryFootprintSet();
      for (List<RunnerAndConfigurationSettings> list : entry.getValue().values()) {
        for (RunnerAndConfigurationSettings configuration : list) {
          final String configurationName = configuration.getName();
          if (!addedNames.add(configurationName)) {
            // add only the first configuration if more than one has the same name
            continue;
          }
          boolean assigned = isConfigurationAssigned(configuration.getConfiguration());
          selectedAll = selectedAll && assigned;
          typeNode.add(new DefaultMutableTreeNode(new ConfigurationDescriptor(configuration.getConfiguration(), assigned)));
        }
        groupConfigurationDescriptor.setChecked(selectedAll);
      }
    }
    buildTemplatesNode(root);
    return root;
  }
private @NotNull DefaultMutableTreeNode buildNodes()