diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ConfigurationError.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ConfigurationError.java index c0ffe7a36a11..565687d5c2e5 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ConfigurationError.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ConfigurationError.java @@ -15,6 +15,7 @@ */ package com.intellij.openapi.roots.ui.configuration; +import com.intellij.ui.awt.RelativePoint; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -67,7 +68,7 @@ public abstract class ConfigurationError implements Comparable fixes = myDescription.getFixes(); - if (fixes.size() == 1) { - fixes.get(0).performFix(); - } - else { - JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep(null, fixes) { - @NotNull - @Override - public String getTextFor(ConfigurationErrorQuickFix value) { - return value.getActionName(); - } + public void fix(final JComponent contextComponent, RelativePoint relativePoint) { + JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep(null, myDescription.getFixes()) { + @NotNull + @Override + public String getTextFor(ConfigurationErrorQuickFix value) { + return value.getActionName(); + } - @Override - public PopupStep onChosen(ConfigurationErrorQuickFix selectedValue, boolean finalChoice) { - selectedValue.performFix(); - return FINAL_CHOICE; - } - }).showUnderneathOf(contextComponent); - } + @Override + public PopupStep onChosen(final ConfigurationErrorQuickFix selectedValue, boolean finalChoice) { + return doFinalStep(new Runnable() { + @Override + public void run() { + selectedValue.performFix(); + } + }); + } + }).show(relativePoint); } }