private static void addNavigationElements(@NotNull TreeElement root, @NotNull TIntArrayList navigationOffsets, boolean start) { if (root instanceof PsiTreeElementBase) { PsiElement element = ((PsiTreeElementBase)root).getValue(); int offset; if (start) { offset = element.getTextRange().getStartOffset(); if (element.getLanguage().getID().equals("JAVA")) { // HACK: for Java classes and methods, we want to jump to the opening brace int textOffset = element.getTextOffset(); int braceIndex = element.getText().indexOf('{', textOffset - offset); if (braceIndex >= 0) { offset += braceIndex; } } } else { offset = element.getTextRange().getEndOffset() - 1; } if (!navigationOffsets.contains(offset)) { navigationOffsets.add(offset); } } for (TreeElement child : root.getChildren()) { addNavigationElements(child, navigationOffsets, start); } }
public void test(StructureViewComponent component) { StructureViewModel tree = component.getTreeModel(); Assert.assertNotNull(tree); StructureViewTreeElement root = tree.getRoot(); Assert.assertNotNull(root); TreeElement[] children = root.getChildren(); Assert.assertEquals(1, children.length); TreeElement firstChild = children[0]; Assert.assertNotNull(firstChild); Assert.assertEquals("a()", firstChild.getPresentation().getPresentableText()); Assert.assertNotNull(firstChild.getChildren()); Assert.assertEquals(0, firstChild.getChildren().length); } };
TreeElement field = header.getChildren()[0]; doCheckTreeElement( field, "(1)" ); field = header.getChildren()[1]; doCheckTreeElement( field, "(2)" ); field = header.getChildren()[2]; doCheckTreeElement( field, "(3)" ); field = header.getChildren()[3]; doCheckTreeElement( field, field = header.getChildren()[0]; doCheckTreeElement( field, "(1)" ); field = header.getChildren()[1];