diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateGetterAndSetterHandler.java b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateGetterAndSetterHandler.java index 6f81c653328c..a268e9062976 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateGetterAndSetterHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateGetterAndSetterHandler.java @@ -16,6 +16,8 @@ package com.intellij.codeInsight.generation; import com.intellij.codeInsight.CodeInsightBundle; +import com.intellij.codeInsight.hint.HintManager; +import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; import com.intellij.util.IncorrectOperationException; @@ -24,7 +26,9 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; +import java.util.List; public class GenerateGetterAndSetterHandler extends GenerateGetterSetterHandlerBase{ private final GenerateGetterHandler myGenerateGetterHandler = new GenerateGetterHandler(); @@ -57,6 +61,17 @@ public class GenerateGetterAndSetterHandler extends GenerateGetterSetterHandlerB return array.toArray(GenerationInfo.EMPTY_ARRAY); } + @Override + protected void notifyOnSuccess(Editor editor, + ClassMember[] members, + List generatedMembers) { + super.notifyOnSuccess(editor, members, generatedMembers); + if (Arrays.stream(members).anyMatch(fm -> fm instanceof PsiFieldMember && + GetterSetterPrototypeProvider.isReadOnlyProperty(((PsiFieldMember)fm).getElement()))) { + HintManager.getInstance().showErrorHint(editor, "Setters for read-only fields were not generated", HintManager.ABOVE); + } + } + @Override protected String getNothingFoundMessage() { return "No fields have been found to generate getters/setters for"; diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java index a807e810ec51..116aedcaf44a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java @@ -160,10 +160,16 @@ public abstract class GenerateMembersHandlerBase implements CodeInsightActionHan runTemplates(project, editor, templates, 0); } else if (!newMembers.isEmpty()){ - newMembers.get(0).positionCaret(editor, false); + notifyOnSuccess(editor, members, newMembers); } } + protected void notifyOnSuccess(Editor editor, + ClassMember[] members, + List generatedMembers) { + generatedMembers.get(0).positionCaret(editor, false); + } + protected String getNothingFoundMessage() { return "Nothing found to insert"; }