mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
unused declaration: filter annotations with field target type (IDEA-160974)
This commit is contained in:
@@ -24,6 +24,8 @@
|
||||
*/
|
||||
package com.intellij.codeInspection.ex;
|
||||
|
||||
import com.intellij.codeInsight.AnnotationTargetUtil;
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
|
||||
import com.intellij.codeInspection.util.SpecialAnnotationsUtil;
|
||||
import com.intellij.openapi.components.PersistentStateComponent;
|
||||
@@ -33,6 +35,9 @@ import com.intellij.openapi.project.ProjectUtil;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.VerticalFlowLayout;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.PsiAnnotation;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -42,6 +47,7 @@ import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@State(name = "EntryPointsManager")
|
||||
public class EntryPointsManagerImpl extends EntryPointsManagerBase implements PersistentStateComponent<Element> {
|
||||
@@ -55,7 +61,11 @@ public class EntryPointsManagerImpl extends EntryPointsManagerBase implements Pe
|
||||
final List<String> writeList = new ArrayList<>(myWriteAnnotations);
|
||||
|
||||
final JPanel listPanel = SpecialAnnotationsUtil.createSpecialAnnotationsListControl(list, "Mark as entry point if annotated by", true);
|
||||
final JPanel writtenAnnotationsPanel = SpecialAnnotationsUtil.createSpecialAnnotationsListControl(writeList, "Mark field as implicitly written if annotated by", false);
|
||||
Condition<PsiClass> applicableToField = psiClass -> {
|
||||
Set<PsiAnnotation.TargetType> annotationTargets = AnnotationTargetUtil.getAnnotationTargets(psiClass);
|
||||
return annotationTargets != null && annotationTargets.contains(PsiAnnotation.TargetType.FIELD);
|
||||
};
|
||||
final JPanel writtenAnnotationsPanel = SpecialAnnotationsUtil.createSpecialAnnotationsListControl(writeList, "Mark field as implicitly written if annotated by", false, applicableToField);
|
||||
new DialogWrapper(myProject) {
|
||||
{
|
||||
init();
|
||||
|
||||
@@ -24,24 +24,24 @@ import com.intellij.ide.util.TreeClassChooser;
|
||||
import com.intellij.ide.util.TreeClassChooserFactory;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.ui.*;
|
||||
import com.intellij.ui.components.JBList;
|
||||
import com.intellij.util.IconUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.Predicate;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.ListDataEvent;
|
||||
import javax.swing.event.ListDataListener;
|
||||
import java.awt.*;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -55,6 +55,13 @@ public class SpecialAnnotationsUtil {
|
||||
public static JPanel createSpecialAnnotationsListControl(final List<String> list,
|
||||
final String borderTitle,
|
||||
final boolean acceptPatterns) {
|
||||
return createSpecialAnnotationsListControl(list, borderTitle, acceptPatterns, aClass -> aClass.isAnnotationType());
|
||||
}
|
||||
|
||||
public static JPanel createSpecialAnnotationsListControl(final List<String> list,
|
||||
final String borderTitle,
|
||||
final boolean acceptPatterns,
|
||||
final Condition<PsiClass> isApplicable) {
|
||||
final SortedListModel<String> listModel = new SortedListModel<>((o1, o2) -> o1.compareTo(o2));
|
||||
final JList injectionList = new JBList(listModel);
|
||||
for (String s : list) {
|
||||
@@ -96,7 +103,7 @@ public class SpecialAnnotationsUtil {
|
||||
GlobalSearchScope.allScope(project), new ClassFilter() {
|
||||
@Override
|
||||
public boolean isAccepted(PsiClass aClass) {
|
||||
return aClass.isAnnotationType();
|
||||
return isApplicable.value(aClass);
|
||||
}
|
||||
}, null);
|
||||
chooser.showDialog();
|
||||
|
||||
Reference in New Issue
Block a user