JPanel () { final Module module = getModule(); final Project project = module.getProject(); myContentEntryEditorListener = new MyContentEntryEditorListener(); final JPanel mainPanel = new JPanel(new BorderLayout()); addAdditionalSettingsToPanel(mainPanel); final DefaultActionGroup group = new DefaultActionGroup(); final AddContentEntryAction action = new AddContentEntryAction(); action.registerCustomShortcutSet(KeyEvent.VK_C, InputEvent.ALT_DOWN_MASK, mainPanel); group.add(action); myEditorsPanel = new ScrollablePanel(new VerticalStackLayout()); myEditorsPanel.setBackground(UIUtil.getListBackground()); JScrollPane myScrollPane = ScrollPaneFactory.createScrollPane(myEditorsPanel, true); final ToolbarPanel toolbarPanel = new ToolbarPanel(myScrollPane, group, "ContentEntryEditorToolbar", myEditorsPanel); int border = myWithBorders ? 1 : 0; toolbarPanel.setBorder(new CustomLineBorder(1, 0, border, border)); final JBSplitter splitter = new OnePixelSplitter(false); splitter.setProportion(0.6f); splitter.setHonorComponentsMinimumSize(true); myRootTreeEditor = createContentEntryTreeEditor(project); final JComponent component = myRootTreeEditor.createComponent(); component.setBorder(new CustomLineBorder(1, border, border, 0)); splitter.setFirstComponent(component); splitter.setSecondComponent(toolbarPanel); JPanel contentPanel = new JPanel(new GridBagLayout()); final ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar("ProjectStructureContentEntries", myRootTreeEditor.getEditingActionsGroup(), true); actionToolbar.setTargetComponent(myRootTreeEditor.myTree); contentPanel.add(new JLabel(ProjectBundle.message("label.text.mark.as")), new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, 0, JBInsets.create(0, 10), 0, 0)); contentPanel.add(actionToolbar.getComponent(), new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, JBInsets.emptyInsets(), 0, 0)); contentPanel.add(splitter, new GridBagConstraints(0, GridBagConstraints.RELATIVE, 2, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, JBInsets.emptyInsets(), 0, 0)); mainPanel.add(contentPanel, BorderLayout.CENTER); final JPanel innerPanel = createBottomControl(module); if (innerPanel != null) { mainPanel.add(innerPanel, BorderLayout.SOUTH); } final ModifiableRootModel model = getModel(); if (model != null) { final ContentEntry[] contentEntries = model.getContentEntries(); if (contentEntries.length > 0) { ContentEntry[] sortedContentRoots = ArrayUtil.newArray(ContentEntry.class, contentEntries.length); System.arraycopy(contentEntries, 0, sortedContentRoots, 0, contentEntries.length); Arrays.sort(sortedContentRoots, Comparator.comparing(ContentEntry::getUrl)); for (final ContentEntry contentEntry : sortedContentRoots) { addContentEntryPanel(contentEntry.getUrl()); } selectContentEntry(sortedContentRoots[0].getUrl(), false); } } return mainPanel; }