diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormEditorErrorCollector.java b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormEditorErrorCollector.java index b558c58f681e..1fc2014c6342 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormEditorErrorCollector.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormEditorErrorCollector.java @@ -57,18 +57,20 @@ public class FormEditorErrorCollector extends FormErrorCollector { public void addError(@NotNull final String inspectionId, final IComponent component, @Nullable IProperty prop, @NotNull String errorMessage, - @Nullable EditorQuickFixProvider editorQuickFixProvider) { + EditorQuickFixProvider... editorQuickFixProviders) { if (myResults == null) { myResults = new ArrayList(); } - QuickFix[] quickFixes = QuickFix.EMPTY_ARRAY; - if (editorQuickFixProvider != null) { - quickFixes = new QuickFix[1]; - quickFixes [0] = editorQuickFixProvider.createQuickFix(myEditor, myComponent); + List quickFixes = new ArrayList(); + for (EditorQuickFixProvider provider : editorQuickFixProviders) { + if (provider != null) { + quickFixes.add(provider.createQuickFix(myEditor, myComponent)); + } } final ErrorInfo errorInfo = new ErrorInfo(myComponent, prop == null ? null : prop.getName(), errorMessage, - myProfile.getErrorLevel(HighlightDisplayKey.find(inspectionId), myFormPsiFile), quickFixes); + myProfile.getErrorLevel(HighlightDisplayKey.find(inspectionId), myFormPsiFile), + quickFixes.toArray(new QuickFix[quickFixes.size()])); errorInfo.setInspectionId(inspectionId); myResults.add(errorInfo); } diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormErrorCollector.java b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormErrorCollector.java index df8dd43c4c37..c5ba62764685 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormErrorCollector.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormErrorCollector.java @@ -26,5 +26,5 @@ import com.intellij.uiDesigner.lw.IComponent; public abstract class FormErrorCollector { public abstract void addError(final String inspectionId, final IComponent component, @Nullable IProperty prop, @NotNull String errorMessage, - @Nullable EditorQuickFixProvider editorQuickFixProvider); + EditorQuickFixProvider... editorQuickFixProvider); } diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormFileErrorCollector.java b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormFileErrorCollector.java index a0315deee776..7edb83f9242f 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormFileErrorCollector.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormFileErrorCollector.java @@ -48,7 +48,7 @@ public class FormFileErrorCollector extends FormErrorCollector { public void addError(final String inspectionId, final IComponent component, @Nullable IProperty prop, @NotNull String errorMessage, - @Nullable EditorQuickFixProvider editorQuickFixProvider) { + EditorQuickFixProvider... editorQuickFixProviders) { final ProblemDescriptor problemDescriptor = myManager.createProblemDescriptor(myFile, JDOMUtil.escapeText(errorMessage), (LocalQuickFix)null, ProblemHighlightType.GENERIC_ERROR_OR_WARNING, myOnTheFly); diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormSpellCheckingInspection.java b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormSpellCheckingInspection.java index 571d0ea91cb8..f5a5884b1957 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormSpellCheckingInspection.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/inspections/FormSpellCheckingInspection.java @@ -60,12 +60,11 @@ public class FormSpellCheckingInspection extends StringDescriptorInspection { PlainTextSplitter.getInstance().split(value, TextRange.allOf(value), new Consumer() { @Override public void consume(TextRange textRange) { - String word = textRange.substring(value); + final String word = textRange.substring(value); if (manager.hasProblem(word)) { final List suggestions = manager.getSuggestions(value); - EditorQuickFixProvider quickFixProvider = null; if (suggestions.size() > 0 && prop instanceof IntroStringProperty) { - quickFixProvider = new EditorQuickFixProvider() { + EditorQuickFixProvider changeToProvider = new EditorQuickFixProvider() { @Override public QuickFix createQuickFix(final GuiEditor editor, final RadComponent component) { return new PopupQuickFix(editor, "Change to...", component) { @@ -88,8 +87,22 @@ public class FormSpellCheckingInspection extends StringDescriptorInspection { }; } }; + EditorQuickFixProvider acceptProvider = new EditorQuickFixProvider() { + @Override + public QuickFix createQuickFix(final GuiEditor editor, RadComponent component) { + return new QuickFix(editor, "Save '" + word + "' to dictionary", component) { + @Override + public void run() { + manager.acceptWordAsCorrect(word, editor.getProject()); + } + }; + } + }; + collector.addError(getID(), component, prop, "Typo in word '" + word + "'", changeToProvider, acceptProvider); + } + else { + collector.addError(getID(), component, prop, "Typo in word '" + word + "'"); } - collector.addError(getID(), component, prop, "Typo in word '" + word + "'", quickFixProvider); } } });