mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-27 16:57:49 +08:00
Fix nullability issues in SimpleStructureViewElement (IJSDK-333)
This commit is contained in:
parent
8837d36e1a
commit
d086363559
@ -1,18 +1,24 @@
|
||||
package com.simpleplugin;
|
||||
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.ide.structureView.StructureViewTreeElement;
|
||||
import com.intellij.ide.util.treeView.smartTree.*;
|
||||
import com.intellij.navigation.*;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.ide.util.treeView.smartTree.SortableTreeElement;
|
||||
import com.intellij.ide.util.treeView.smartTree.TreeElement;
|
||||
import com.intellij.navigation.ItemPresentation;
|
||||
import com.intellij.psi.NavigatablePsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.simpleplugin.psi.*;
|
||||
import com.simpleplugin.psi.SimpleFile;
|
||||
import com.simpleplugin.psi.SimpleProperty;
|
||||
import com.simpleplugin.psi.impl.SimplePropertyImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SimpleStructureViewElement implements StructureViewTreeElement, SortableTreeElement {
|
||||
private PsiElement element;
|
||||
private NavigatablePsiElement element;
|
||||
|
||||
public SimpleStructureViewElement(PsiElement element) {
|
||||
public SimpleStructureViewElement(NavigatablePsiElement element) {
|
||||
this.element = element;
|
||||
}
|
||||
|
||||
@ -23,32 +29,31 @@ public class SimpleStructureViewElement implements StructureViewTreeElement, Sor
|
||||
|
||||
@Override
|
||||
public void navigate(boolean requestFocus) {
|
||||
if (element instanceof NavigationItem) {
|
||||
((NavigationItem) element).navigate(requestFocus);
|
||||
}
|
||||
element.navigate(requestFocus);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canNavigate() {
|
||||
return element instanceof NavigationItem &&
|
||||
((NavigationItem) element).canNavigate();
|
||||
return element.canNavigate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canNavigateToSource() {
|
||||
return element instanceof NavigationItem &&
|
||||
((NavigationItem) element).canNavigateToSource();
|
||||
return element.canNavigateToSource();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getAlphaSortKey() {
|
||||
return element instanceof PsiNamedElement ? ((PsiNamedElement) element).getName() : null;
|
||||
String name = element.getName();
|
||||
return name != null ? name : "";
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ItemPresentation getPresentation() {
|
||||
return element instanceof NavigationItem ?
|
||||
((NavigationItem) element).getPresentation() : null;
|
||||
ItemPresentation presentation = element.getPresentation();
|
||||
return presentation != null ? presentation : new PresentationData();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -57,7 +62,7 @@ public class SimpleStructureViewElement implements StructureViewTreeElement, Sor
|
||||
SimpleProperty[] properties = PsiTreeUtil.getChildrenOfType(element, SimpleProperty.class);
|
||||
List<TreeElement> treeElements = new ArrayList<TreeElement>(properties.length);
|
||||
for (SimpleProperty property : properties) {
|
||||
treeElements.add(new SimpleStructureViewElement(property));
|
||||
treeElements.add(new SimpleStructureViewElement((SimplePropertyImpl) property));
|
||||
}
|
||||
return treeElements.toArray(new TreeElement[treeElements.size()]);
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user