mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
check providers enabled
This commit is contained in:
+5
-3
@@ -18,10 +18,12 @@ package com.intellij.ide.structureView.impl.java;
|
||||
import com.intellij.ide.structureView.StructureViewTreeElement;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Konstantin Bulenkov
|
||||
@@ -40,7 +42,7 @@ public class JavaClassTreeElement extends JavaClassTreeElementBase<PsiClass> {
|
||||
final PsiClass aClass = getElement();
|
||||
if (aClass == null) return Collections.emptyList();
|
||||
|
||||
Collection<PsiElement> members = new THashSet<PsiElement>();
|
||||
Collection<PsiElement> members = new ArrayList<PsiElement>();
|
||||
ContainerUtil.addAll(members, aClass.getFields());
|
||||
ContainerUtil.addAll(members, aClass.getMethods());
|
||||
ContainerUtil.addAll(members, aClass.getInnerClasses());
|
||||
|
||||
+5
@@ -171,4 +171,9 @@ public abstract class TextEditorBasedStructureViewModel implements StructureView
|
||||
public NodeProvider[] getNodeProviders() {
|
||||
return NodeProvider.EMPTY_ARRAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled(NodeProvider provider) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -119,4 +119,9 @@ public class TreeModelWrapper implements StructureViewModel, ProvidingTreeModel
|
||||
public StructureViewModel getModel() {
|
||||
return myModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled(NodeProvider provider) {
|
||||
return myStructureView.isActionActive(provider.getName());
|
||||
}
|
||||
}
|
||||
|
||||
+4
-2
@@ -43,8 +43,10 @@ public class TreeElementWrapper extends CachingChildrenTreeNode<TreeElement> {
|
||||
if (myTreeModel instanceof ProvidingTreeModel) {
|
||||
final NodeProvider[] providers = ((ProvidingTreeModel)myTreeModel).getNodeProviders();
|
||||
for (NodeProvider provider : providers) {
|
||||
for (TreeElement child : provider.provideNodes(getValue())) {
|
||||
addSubElement(createChildNode(child));
|
||||
if (((ProvidingTreeModel)myTreeModel).isEnabled(provider)) {
|
||||
for (TreeElement child : provider.provideNodes(getValue())) {
|
||||
addSubElement(createChildNode(child));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -20,4 +20,5 @@ package com.intellij.ide.util.treeView.smartTree;
|
||||
*/
|
||||
public interface ProvidingTreeModel extends TreeModel {
|
||||
NodeProvider[] getNodeProviders();
|
||||
boolean isEnabled(NodeProvider provider);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user