RowIcon (@Nullable PsiMethod prototype, @Nullable PsiClass psiClass) { Icon methodIcon = IconUtil.getEmptyIcon(true); Icon overrideIcon = EmptyIcon.ICON_16; if (prototype != null && psiClass != null) { PsiMethod existing = psiClass.findMethodBySignature(prototype, false); if (existing != null) { methodIcon = existing.getIcon(Iconable.ICON_FLAG_VISIBILITY); } PsiMethod[] superMethods = prototype.findSuperMethods(psiClass); if (superMethods.length > 0) { if (!superMethods[0].hasModifierProperty(PsiModifier.ABSTRACT)) { overrideIcon = AllIcons.General.OverridingMethod; } else { overrideIcon = AllIcons.General.ImplementingMethod; } } } return IconManager.getInstance().createRowIcon(methodIcon, overrideIcon); }