@Override
    public @Nullable Icon getLayerIcon(@NotNull Iconable element, boolean isLocked) {
      if (element instanceof PsiFile) {
        Project project = ((PsiFile)element).getProject();
        VirtualFile virtualFile = ((PsiFile)element).getVirtualFile();
        return CachedValuesManager.getCachedValue((PsiElement)element,
                                                  () -> CachedValueProvider.Result.create(calcFileLayerIcon(virtualFile, project),
                                                                                          ProjectRootManager.getInstance(project)));
      }
      return null;
    }
@Override
    public @Nullable Icon getLayerIcon(@NotNull Iconable element, boolean isLocked)