Navigatable () { NullableLazyValue<PsiElement> value = NullableLazyValue.lazyNullable(() -> { for (RunDashboardCustomizer customizer : myNode.getCustomizers()) { PsiElement psiElement = customizer.getPsiElement(myNode); if (psiElement != null) return psiElement; } return null; }); return new Navigatable() { @Override public void navigate(boolean requestFocus) { PsiNavigateUtil.navigate(value.getValue(), requestFocus); } @Override public boolean canNavigate() { return value.getValue() != null; } @Override public boolean canNavigateToSource() { return canNavigate(); } }; }