mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +07:00
filter dumb-aware node providers
This commit is contained in:
@@ -24,6 +24,7 @@ import com.intellij.navigation.AnonymousElementProvider;
|
||||
import com.intellij.openapi.actionSystem.KeyboardShortcut;
|
||||
import com.intellij.openapi.actionSystem.Shortcut;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.PropertyOwner;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.psi.PsiAnonymousClass;
|
||||
@@ -39,7 +40,8 @@ import java.util.List;
|
||||
/**
|
||||
* @author Konstantin Bulenkov
|
||||
*/
|
||||
public class JavaAnonymousClassesNodeProvider implements FileStructureNodeProvider<JavaAnonymousClassTreeElement>, PropertyOwner {
|
||||
public class JavaAnonymousClassesNodeProvider
|
||||
implements FileStructureNodeProvider<JavaAnonymousClassTreeElement>, PropertyOwner, DumbAware {
|
||||
public static final String ID = "SHOW_ANONYMOUS";
|
||||
public static final String JAVA_ANONYMOUS_PROPERTY_NAME = "java.anonymous.provider";
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.intellij.ide.util.treeView.smartTree.ActionPresentationData;
|
||||
import com.intellij.ide.util.treeView.smartTree.TreeElement;
|
||||
import com.intellij.openapi.actionSystem.KeyboardShortcut;
|
||||
import com.intellij.openapi.actionSystem.Shortcut;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.PropertyOwner;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.psi.PsiElement;
|
||||
@@ -34,7 +35,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class JavaLambdaNodeProvider implements FileStructureNodeProvider<JavaLambdaTreeElement>, PropertyOwner {
|
||||
public class JavaLambdaNodeProvider
|
||||
implements FileStructureNodeProvider<JavaLambdaTreeElement>, PropertyOwner, DumbAware {
|
||||
public static final String ID = "SHOW_LAMBDA";
|
||||
public static final String JAVA_LAMBDA_PROPERTY_NAME = "java.lambda.provider";
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.intellij.ide.util.treeView.smartTree;
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.ide.structureView.StructureViewTreeElement;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -54,10 +55,11 @@ public class TreeElementWrapper extends CachingChildrenTreeNode<TreeElement> {
|
||||
addSubElement(createChildNode(child));
|
||||
}
|
||||
if (myTreeModel instanceof ProvidingTreeModel) {
|
||||
final Collection<NodeProvider> providers = ((ProvidingTreeModel)myTreeModel).getNodeProviders();
|
||||
Collection<NodeProvider> originalProviders = ((ProvidingTreeModel)myTreeModel).getNodeProviders();
|
||||
Collection<NodeProvider> providers = DumbService.getInstance(myProject).filterByDumbAwareness(originalProviders);
|
||||
for (NodeProvider provider : providers) {
|
||||
if (((ProvidingTreeModel)myTreeModel).isEnabled(provider)) {
|
||||
final Collection<TreeElement> nodes = provider.provideNodes(value);
|
||||
Collection<TreeElement> nodes = provider.provideNodes(value);
|
||||
for (TreeElement node : nodes) {
|
||||
if (node == null) {
|
||||
LOG.error(provider + " returned null node: " + nodes);
|
||||
|
||||
Reference in New Issue
Block a user