void (boolean implicitWritesOnly) { List<String> list = new ArrayList<>(ADDITIONAL_ANNOTATIONS); List<String> writeList = new ArrayList<>(myWriteAnnotations); JPanel listPanel; if (implicitWritesOnly) { listPanel = null; } else { listPanel = SpecialAnnotationsUtil.createSpecialAnnotationsListControl( list, JavaBundle.message("separator.mark.as.entry.point.if.annotated.by"), true); } Predicate<PsiClass> applicableToField = psiClass -> { Set<PsiAnnotation.TargetType> annotationTargets = AnnotationTargetUtil.getAnnotationTargets(psiClass); return annotationTargets != null && annotationTargets.contains(PsiAnnotation.TargetType.FIELD); }; JPanel writtenAnnotationsPanel = SpecialAnnotationsUtil.createSpecialAnnotationsListControl( writeList, JavaBundle.message("separator.mark.field.as.implicitly.written.if.annotated.by"), false, applicableToField); new DialogWrapper(myProject) { { init(); setTitle(JavaBundle.message("dialog.title.configure.annotations")); } @Override protected JComponent createCenterPanel() { JPanel panel = new JPanel(new GridBagLayout()); var constraints = new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 1, 1, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, JBInsets.emptyInsets(), 0, 0); if (listPanel != null) { panel.add(listPanel, constraints); constraints.insets.top = 13; } panel.add(writtenAnnotationsPanel, constraints); return panel; } @Override protected void doOKAction() { ADDITIONAL_ANNOTATIONS.clear(); ADDITIONAL_ANNOTATIONS.addAll(list); myWriteAnnotations.clear(); myWriteAnnotations.addAll(writeList); DaemonCodeAnalyzer.getInstance(myProject).restart(); super.doOKAction(); } }.show(); }