package com.chrisfolger.needsmoredojo.intellij.inspections; import com.chrisfolger.needsmoredojo.core.amd.importing.ImportReorderer; import com.chrisfolger.needsmoredojo.core.amd.naming.MismatchedImportsDetector; import com.intellij.codeInspection.LocalQuickFix; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; /** * This quickfix will swap two AMD imports that were assumed to be mismatched accidentally. */ public class SwapImportsQuickFix implements LocalQuickFix { private MismatchedImportsDetector.Mismatch first; private MismatchedImportsDetector.Mismatch second; public SwapImportsQuickFix(MismatchedImportsDetector.Mismatch first, MismatchedImportsDetector.Mismatch second) { this.first = first; this.second = second; } @NotNull @Override public String getName() { return "Swap imports: " + first.getDefine().getText() + " with " + second.getDefine().getText(); } @NotNull @Override public String getFamilyName() { return "Needs More Dojo"; } @Override public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor problemDescriptor) { CommandProcessor.getInstance().executeCommand(project, new Runnable() { @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { ImportReorderer reorderer = new ImportReorderer(); reorderer.reorder(first.getDefine(), second.getDefine()); } }); } }, "Swap AMD Import", "Swap AMD Import"); } }