diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsDirectoryConfigurationPanel.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsDirectoryConfigurationPanel.java index 024b8952e34e..89101463d853 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsDirectoryConfigurationPanel.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsDirectoryConfigurationPanel.java @@ -28,6 +28,7 @@ import com.intellij.openapi.vcs.impl.VcsDescriptor; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.*; import com.intellij.ui.components.JBLabel; +import com.intellij.ui.components.JBScrollPane; import com.intellij.ui.components.labels.LinkLabel; import com.intellij.ui.components.labels.LinkListener; import com.intellij.ui.table.TableView; @@ -390,7 +391,10 @@ public class VcsDirectoryConfigurationPanel extends PanelWithButtons implements } private JComponent createErrorList() { - Box box = Box.createVerticalBox(); + final int DEFAULT_HEIGHT = 200; + final JComponent errorPanel = Box.createVerticalBox(); + final JBScrollPane pane = new JBScrollPane(errorPanel); + for (Map.Entry entry : myCheckers.entrySet()) { VcsRootChecker checker = entry.getValue(); for (final String root : checker.getUnregisteredRoots()) { @@ -401,13 +405,25 @@ public class VcsDirectoryConfigurationPanel extends PanelWithButtons implements @Override public void run() { addMapping(new VcsDirectoryMapping(root, vcs)); - vcsRootErrorLabel.setVisible(false); + errorPanel.remove(vcsRootErrorLabel); + if (errorPanel.getComponentCount() == 0) { + pane.setVisible(false); + } + pane.setMinimumSize(new Dimension(-1, calcMinHeight(errorPanel, DEFAULT_HEIGHT))); + validate(); } }); - box.add(vcsRootErrorLabel); + errorPanel.add(vcsRootErrorLabel); } } - return box; + pane.setMinimumSize(new Dimension(-1, calcMinHeight(errorPanel, DEFAULT_HEIGHT))); + pane.setMaximumSize(new Dimension(-1, DEFAULT_HEIGHT)); + return pane; + } + + private static int calcMinHeight(@NotNull JComponent errorPanel, int defaultHeight) { + int height = errorPanel.getPreferredSize().height; + return height > defaultHeight ? defaultHeight : height; } private JComponent createProjectMappingDescription() {