mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
project structure dialog: allow to apply quickfixes for artifacts from project-wide error messages
This commit is contained in:
+21
-5
@@ -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<ArtifactProblemQuickFix> myQuickFixes;
|
||||
private List<PackagingElement<?>> myPathToPlace;
|
||||
private final List<ArtifactProblemQuickFix> myQuickFixes;
|
||||
private final List<PackagingElement<?>> myPathToPlace;
|
||||
|
||||
public ArtifactProblemDescription(@NotNull String message,
|
||||
@NotNull Severity severity,
|
||||
@Nullable List<PackagingElement<?>> pathToPlace,
|
||||
@NotNull List<ArtifactProblemQuickFix> quickFixes, @NotNull Place place) {
|
||||
super(message, null, severity, place, Collections.<ConfigurationErrorQuickFix>emptyList());
|
||||
@NotNull List<ArtifactProblemQuickFix> quickFixes,
|
||||
@NotNull Place place,
|
||||
@NotNull ArtifactEditor artifactEditor) {
|
||||
super(message, null, severity, place, convertQuickFixed(quickFixes, artifactEditor));
|
||||
myPathToPlace = pathToPlace;
|
||||
myQuickFixes = quickFixes;
|
||||
}
|
||||
|
||||
private static List<ConfigurationErrorQuickFix> convertQuickFixed(List<ArtifactProblemQuickFix> quickFixes, final ArtifactEditor artifactEditor) {
|
||||
final List<ConfigurationErrorQuickFix> result = new SmartList<ConfigurationErrorQuickFix>();
|
||||
for (final ArtifactProblemQuickFix fix : quickFixes) {
|
||||
result.add(new ConfigurationErrorQuickFix(fix.getActionName()) {
|
||||
@Override
|
||||
public void performFix() {
|
||||
fix.performFix(artifactEditor);
|
||||
}
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<ArtifactProblemQuickFix> getQuickFixes() {
|
||||
return myQuickFixes;
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user