void (final @NotNull AbstractProjectViewPane newPane) { ThreadingAssertions.assertEventDispatchThread(); int index; final ContentManager manager = getContentManager(); for (index = 0; index < manager.getContentCount(); index++) { Content content = manager.getContent(index); if (content == null) { continue; } String id = content.getUserData(ID_KEY); if (id == null) { continue; } AbstractProjectViewPane pane = idToPane.get(id); int comp = PANE_WEIGHT_COMPARATOR.compare(pane, newPane); LOG.assertTrue(comp != 0, "Project view pane " + newPane + " has the same weight as " + pane + ". Please make sure that you overload getWeight() and return a distinct weight value."); if (comp > 0) { break; } } final @NotNull String id = newPane.getId(); idToPane.put(id, newPane); String[] subIds = newPane.getSubIds(); subIds = subIds.length == 0 ? new String[]{null} : subIds; boolean first = true; for (String subId : subIds) { final String title = subId != null ? newPane.getPresentableSubIdName(subId) : newPane.getTitle(); final Content content = getContentManager().getFactory().createContent(getComponent(), title, false); content.setTabName(title); content.putUserData(ID_KEY, id); content.putUserData(SUB_ID_KEY, subId); content.putUserData(ToolWindow.SHOW_CONTENT_ICON, Boolean.TRUE); Icon icon = subId != null ? newPane.getPresentableSubIdIcon(subId) : newPane.getIcon(); if (!ExperimentalUI.isNewUI()) { content.setIcon(icon); content.setPopupIcon(icon); } content.setPreferredFocusedComponent(() -> { final AbstractProjectViewPane current = getCurrentProjectViewPane(); return current != null ? current.getComponentToFocus() : null; }); content.setBusyObject(this); if (first && subId != null) { content.setSeparator(newPane.getTitle()); } manager.addContent(content, index++); first = false; } }