void (final Collection<FilePath> roots) { final JPanel configureRootsPanel = getRootsPanel(); configureRootsPanel.setLayout(new BorderLayout()); final ArrayList<FilePath> rootsCopy = new ArrayList<>(roots); rootsCopy.sort(FilePathByPathComparator.getInstance()); for (FilePath root : rootsCopy) { Url url = getUrlFor(root); if (url != null) { myRootToPanel.put(root, createRootPanel(root, myVCS, roots)); } Container parent = configureRootsPanel.getParent(); parent.remove(configureRootsPanel); parent.setLayout(new BorderLayout()); JPanel additionalPanel = getAdditionalPanel(); if (additionalPanel != null) { parent.remove(additionalPanel); } if (myRootToPanel.size() == 1) { configureRootsPanel.add(myRootToPanel.values().iterator().next().getPanel(), BorderLayout.CENTER); parent.add(configureRootsPanel, BorderLayout.NORTH); if (additionalPanel != null) { parent.add(additionalPanel, BorderLayout.CENTER); } } else { final MultipleRootEditorWithSplitter multipleRootsEditor = new MultipleRootEditorWithSplitter(myRootToPanel, myVCS.getProject()); configureRootsPanel.add(multipleRootsEditor, BorderLayout.CENTER); parent.add(configureRootsPanel, BorderLayout.CENTER); if (additionalPanel != null) { parent.add(additionalPanel, BorderLayout.SOUTH); } } } }