|
21 | 21 | import consulo.application.Application; |
22 | 22 | import consulo.application.dumb.DumbAware; |
23 | 23 | import consulo.application.progress.ProgressManager; |
| 24 | +import consulo.csharp.projectView.CSharpProjectTreeNodeExpander; |
24 | 25 | import consulo.dotnet.psi.DotNetMemberOwner; |
25 | 26 | import consulo.language.psi.PsiElement; |
26 | 27 | import consulo.language.psi.PsiFile; |
|
31 | 32 | import consulo.ui.annotation.RequiredUIAccess; |
32 | 33 | import consulo.ui.ex.tree.TreeHelper; |
33 | 34 | import jakarta.inject.Inject; |
34 | | - |
35 | 35 | import org.jspecify.annotations.Nullable; |
| 36 | + |
36 | 37 | import java.util.ArrayList; |
37 | 38 | import java.util.Collection; |
38 | 39 | import java.util.List; |
|
42 | 43 | * @since 09.12.13. |
43 | 44 | */ |
44 | 45 | @ExtensionImpl |
45 | | -public class CSharpProjectViewProvider implements SelectableTreeStructureProvider, DumbAware |
46 | | -{ |
47 | | - private final Project myProject; |
| 46 | +public class CSharpProjectViewProvider implements SelectableTreeStructureProvider, DumbAware { |
| 47 | + private final Project myProject; |
48 | 48 |
|
49 | | - @Inject |
50 | | - public CSharpProjectViewProvider(Project project) |
51 | | - { |
52 | | - myProject = project; |
53 | | - } |
| 49 | + @Inject |
| 50 | + public CSharpProjectViewProvider(Project project) { |
| 51 | + myProject = project; |
| 52 | + } |
54 | 53 |
|
55 | | - @Nullable |
56 | | - @Override |
57 | | - public PsiElement getTopLevelElement(PsiElement element) |
58 | | - { |
59 | | - return element.getContainingFile(); |
60 | | - } |
| 54 | + @Nullable |
| 55 | + @Override |
| 56 | + public PsiElement getTopLevelElement(PsiElement element) { |
| 57 | + return element.getContainingFile(); |
| 58 | + } |
61 | 59 |
|
62 | | - @Override |
63 | | - @RequiredUIAccess |
64 | | - public Collection<AbstractTreeNode> modify(AbstractTreeNode parent, Collection<AbstractTreeNode> oldNodes, ViewSettings settings) |
65 | | - { |
66 | | - return TreeHelper.calculateYieldingToWriteAction(() -> doModify(oldNodes, settings)); |
67 | | - } |
| 60 | + @Override |
| 61 | + @RequiredUIAccess |
| 62 | + public Collection<AbstractTreeNode> modify(AbstractTreeNode parent, Collection<AbstractTreeNode> oldNodes, ViewSettings settings) { |
| 63 | + return TreeHelper.calculateYieldingToWriteAction(() -> doModify(oldNodes, settings)); |
| 64 | + } |
68 | 65 |
|
69 | | - @RequiredReadAction |
70 | | - private List<AbstractTreeNode> doModify(Collection<AbstractTreeNode> oldNodes, ViewSettings settings) |
71 | | - { |
72 | | - List<AbstractTreeNode> nodes = new ArrayList<>(oldNodes.size()); |
73 | | - for(AbstractTreeNode treeNode : oldNodes) |
74 | | - { |
75 | | - ProgressManager.checkCanceled(); |
| 66 | + @RequiredReadAction |
| 67 | + private List<AbstractTreeNode> doModify(Collection<AbstractTreeNode> oldNodes, ViewSettings settings) { |
| 68 | + List<AbstractTreeNode> nodes = new ArrayList<>(oldNodes.size()); |
| 69 | + for (AbstractTreeNode treeNode : oldNodes) { |
| 70 | + ProgressManager.checkCanceled(); |
76 | 71 |
|
77 | | - Object value = treeNode.getValue(); |
| 72 | + Object value = treeNode.getValue(); |
78 | 73 |
|
79 | | - if(value instanceof PsiFile) |
80 | | - { |
81 | | - for(CSharpProjectTreeNodeExpander expander : Application.get().getExtensionPoint(CSharpProjectTreeNodeExpander.class)) |
82 | | - { |
83 | | - AbstractTreeNode<?> node = expander.expandFile(myProject, settings, treeNode); |
84 | | - if(node != null) |
85 | | - { |
86 | | - nodes.add(node); |
87 | | - break; |
88 | | - } |
89 | | - } |
90 | | - } |
91 | | - else |
92 | | - { |
93 | | - if(value instanceof DotNetMemberOwner) |
94 | | - { |
95 | | - nodes.add(new CSharpElementTreeNode((DotNetMemberOwner) value, settings, 0)); |
96 | | - } |
97 | | - else |
98 | | - { |
99 | | - nodes.add(treeNode); |
100 | | - } |
101 | | - } |
102 | | - } |
103 | | - return nodes; |
104 | | - } |
| 74 | + if (value instanceof PsiFile) { |
| 75 | + for (CSharpProjectTreeNodeExpander expander : Application.get().getExtensionPoint(CSharpProjectTreeNodeExpander.class)) { |
| 76 | + AbstractTreeNode<?> node = expander.expandFile(myProject, settings, treeNode); |
| 77 | + if (node != null) { |
| 78 | + nodes.add(node); |
| 79 | + break; |
| 80 | + } |
| 81 | + } |
| 82 | + } |
| 83 | + else { |
| 84 | + if (value instanceof DotNetMemberOwner) { |
| 85 | + nodes.add(new CSharpElementTreeNode((DotNetMemberOwner) value, settings, 0)); |
| 86 | + } |
| 87 | + else { |
| 88 | + nodes.add(treeNode); |
| 89 | + } |
| 90 | + } |
| 91 | + } |
| 92 | + return nodes; |
| 93 | + } |
105 | 94 | } |
0 commit comments