22
33import com .intellij .ide .structureView .StructureViewTreeElement ;
44import com .intellij .ide .util .treeView .smartTree .SortableTreeElement ;
5- import com .intellij .navigation .NavigationItem ;
6- import com .intellij .psi .PsiElement ;
5+ import com .intellij .psi .NavigatablePsiElement ;
76import com .intellij .psi .PsiNamedElement ;
87import org .jetbrains .annotations .NotNull ;
98
10- abstract class AbstractTreeElement <ElementT extends PsiElement > implements StructureViewTreeElement , SortableTreeElement {
9+ abstract class AbstractTreeElement <ElementT extends NavigatablePsiElement > implements StructureViewTreeElement , SortableTreeElement {
1110
1211 protected final ElementT element ;
1312
14- AbstractTreeElement (ElementT element ) {
13+ AbstractTreeElement (@ NotNull ElementT element ) {
1514 this .element = element ;
1615 }
1716
@@ -22,27 +21,23 @@ public ElementT getValue() {
2221
2322 @ Override
2423 public void navigate (boolean requestFocus ) {
25- if (element instanceof NavigationItem ) {
26- ((NavigationItem ) element ).navigate (requestFocus );
27- }
24+ element .navigate (requestFocus );
2825 }
2926
3027 @ Override
3128 public boolean canNavigate () {
32- return element instanceof NavigationItem &&
33- ((NavigationItem ) element ).canNavigate ();
29+ return element .canNavigate ();
3430 }
3531
3632 @ Override
3733 public boolean canNavigateToSource () {
38- return element instanceof NavigationItem &&
39- ((NavigationItem ) element ).canNavigateToSource ();
34+ return element .canNavigateToSource ();
4035 }
4136
4237 @ NotNull
4338 @ Override
4439 public String getAlphaSortKey () {
45- String s = element instanceof PsiNamedElement ? (( PsiNamedElement ) element ) .getName () : null ;
40+ String s = element instanceof PsiNamedElement ? element .getName () : null ;
4641 if (s == null ) return "unknown key" ;
4742 return s ;
4843 }
0 commit comments