mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
generate getters & setters: add notification if some setters were not generated (IDEA-201670)
This commit is contained in:
+15
@@ -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<? extends GenerationInfo> 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";
|
||||
|
||||
+7
-1
@@ -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<? extends GenerationInfo> generatedMembers) {
|
||||
generatedMembers.get(0).positionCaret(editor, false);
|
||||
}
|
||||
|
||||
protected String getNothingFoundMessage() {
|
||||
return "Nothing found to insert";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user