diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemDescription.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemDescription.java index 20317b52c8d1..7b26ed3bb02e 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemDescription.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemDescription.java @@ -18,30 +18,46 @@ package com.intellij.openapi.roots.ui.configuration.artifacts; import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ConfigurationErrorQuickFix; import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureProblemDescription; import com.intellij.packaging.elements.PackagingElement; +import com.intellij.packaging.ui.ArtifactEditor; import com.intellij.packaging.ui.ArtifactProblemQuickFix; import com.intellij.ui.navigation.Place; +import com.intellij.util.SmartList; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Collections; import java.util.List; /** * @author nik */ public class ArtifactProblemDescription extends ProjectStructureProblemDescription { - private List myQuickFixes; - private List> myPathToPlace; + private final List myQuickFixes; + private final List> myPathToPlace; public ArtifactProblemDescription(@NotNull String message, @NotNull Severity severity, @Nullable List> pathToPlace, - @NotNull List quickFixes, @NotNull Place place) { - super(message, null, severity, place, Collections.emptyList()); + @NotNull List quickFixes, + @NotNull Place place, + @NotNull ArtifactEditor artifactEditor) { + super(message, null, severity, place, convertQuickFixed(quickFixes, artifactEditor)); myPathToPlace = pathToPlace; myQuickFixes = quickFixes; } + private static List convertQuickFixed(List quickFixes, final ArtifactEditor artifactEditor) { + final List result = new SmartList(); + for (final ArtifactProblemQuickFix fix : quickFixes) { + result.add(new ConfigurationErrorQuickFix(fix.getActionName()) { + @Override + public void performFix() { + fix.performFix(artifactEditor); + } + }); + } + return result; + } + @NotNull public List getQuickFixes() { return myQuickFixes; diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemsHolderImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemsHolderImpl.java index 380260c8885f..5436729e6476 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemsHolderImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProblemsHolderImpl.java @@ -48,7 +48,7 @@ public class ArtifactProblemsHolderImpl extends ArtifactProblemsHolderBase { final ProjectStructureProblemDescription.Severity severity, @NotNull ArtifactProblemQuickFix... quickFixes) { final ArtifactEditorContext context = getContext(); final Place place = ProjectStructureConfigurable.getInstance(context.getProject()).createArtifactPlace(context.getArtifact()); - myProblemsHolder.registerProblem(new ArtifactProblemDescription(message, severity, pathToPlace, Arrays.asList(quickFixes), place)); + myProblemsHolder.registerProblem(new ArtifactProblemDescription(message, severity, pathToPlace, Arrays.asList(quickFixes), place, context.getThisArtifactEditor())); } public void registerWarning(@NotNull String message,