diff --git a/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureTreeElement.java b/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureTreeElement.java index e699696d8ae4..4794cf59fb2a 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureTreeElement.java +++ b/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureTreeElement.java @@ -65,7 +65,7 @@ public class DomStructureTreeElement implements StructureViewTreeElement, ItemPr final DomService.StructureViewMode viewMode = myDescriptor.fun(element); switch (viewMode) { case SHOW: - result.add(new DomStructureTreeElement(element, myDescriptor, myNavigationProvider)); + result.add(createChildElement(element)); break; case SHOW_CHILDREN: DomUtil.acceptAvailableChildren(element, this); @@ -79,6 +79,10 @@ public class DomStructureTreeElement implements StructureViewTreeElement, ItemPr return result.toArray(new TreeElement[result.size()]); } + protected StructureViewTreeElement createChildElement(final DomElement element) { + return new DomStructureTreeElement(element, myDescriptor, myNavigationProvider); + } + public void navigate(boolean requestFocus) { if (myNavigationProvider != null) myNavigationProvider.navigate(myElement, true); } diff --git a/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewBuilderProvider.java b/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewBuilderProvider.java index bc5d6c65c39e..be6d36c02907 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewBuilderProvider.java +++ b/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewBuilderProvider.java @@ -38,7 +38,7 @@ public class DomStructureViewBuilderProvider implements XmlStructureViewBuilderP return null; } - private static final Function DESCRIPTOR = + protected static final Function DESCRIPTOR = new Function() { @Override public DomService.StructureViewMode fun(DomElement element) { diff --git a/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewTreeModel.java b/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewTreeModel.java index b6bdc8944c6a..41139a282d0d 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewTreeModel.java +++ b/xml/dom-impl/src/com/intellij/util/xml/structure/DomStructureViewTreeModel.java @@ -54,6 +54,10 @@ public class DomStructureViewTreeModel extends XmlStructureViewTreeModel impleme new DomStructureTreeElement(fileElement.getRootElement().createStableCopy(), myDescriptor, myNavigationProvider); } + protected DomElementNavigationProvider getNavigationProvider() { + return myNavigationProvider; + } + @NotNull public Sorter[] getSorters() { return new Sorter[]{Sorter.ALPHA_SORTER};