[java] IDEA-378944 Navigation to implicit classes from project view requires extra clicks

(cherry picked from commit 19da49da5217fa5644b437ca295be751531df864)

IJ-CR-175396

GitOrigin-RevId: f38a624274bc54d74fa10e27b6ae5d43f78e22cc
This commit is contained in:
Mikhail Pyltsin
2025-09-11 16:13:46 +02:00
committed by intellij-monorepo-bot
parent c5f55812d1
commit 4966283984

View File

@@ -74,8 +74,10 @@ public final class ClassesTreeStructureProvider implements SelectableTreeStructu
: Collections.emptyList();
if (classes.length == 1 && isClassForTreeNode(file, classes[0])) {
result.add(new ClassTreeNode(myProject, classes[0], settings1, nestedFileNodes));
} else {
result.add(new PsiClassOwnerTreeNode(classOwner, settings1, nestedFileNodes));
}
else {
boolean isImplicitClass = classes.length == 1 && classes[0] instanceof PsiImplicitClass;
result.add(new PsiClassOwnerTreeNode(classOwner, settings1, nestedFileNodes, isImplicitClass));
}
continue;
}
@@ -148,15 +150,23 @@ public final class ClassesTreeStructureProvider implements SelectableTreeStructu
private static class PsiClassOwnerTreeNode extends PsiFileNode implements FileNodeWithNestedFileNodes {
private final @NotNull Collection<? extends AbstractTreeNode<?>> myNestedFileNodes;
private final boolean myIsImplicitClass;
PsiClassOwnerTreeNode(@NotNull PsiClassOwner classOwner,
ViewSettings settings,
@NotNull Collection<? extends AbstractTreeNode<?>> nestedFileNodes) {
@NotNull Collection<? extends AbstractTreeNode<?>> nestedFileNodes,
boolean isImplicitClass) {
super(classOwner.getProject(), classOwner, settings);
myIsImplicitClass = isImplicitClass;
myNestedFileNodes = nestedFileNodes;
}
@Override
public boolean expandOnDoubleClick() {
if (myIsImplicitClass) return false;
return super.expandOnDoubleClick();
}
@Override
public @NotNull Collection<? extends AbstractTreeNode<?>> getNestedFileNodes() {
return myNestedFileNodes;