mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Improved pull request #1145: skip/ignore disposed modules in the project view
GitOrigin-RevId: c66abadb518d28687561264d7c5607dc0e036992
This commit is contained in:
committed by
intellij-monorepo-bot
parent
06eaddc154
commit
efa76e7492
+6
-3
@@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PackageViewModuleNode extends AbstractModuleNode{
|
||||
@@ -38,10 +39,12 @@ public class PackageViewModuleNode extends AbstractModuleNode{
|
||||
@NotNull
|
||||
public Collection<AbstractTreeNode> getChildren() {
|
||||
return AbstractTreeUi.calculateYieldingToWriteAction(() -> {
|
||||
List<VirtualFile> roots = Arrays.asList(ModuleRootManager.getInstance(getValue()).getSourceRoots());
|
||||
final Collection<AbstractTreeNode> result = PackageUtil.createPackageViewChildrenOnFiles(roots, myProject, getSettings(), getValue(), false);
|
||||
Module module = getValue();
|
||||
if (module == null || module.isDisposed()) return Collections.emptyList();
|
||||
List<VirtualFile> roots = Arrays.asList(ModuleRootManager.getInstance(module).getSourceRoots());
|
||||
final Collection<AbstractTreeNode> result = PackageUtil.createPackageViewChildrenOnFiles(roots, myProject, getSettings(), module, false);
|
||||
if (getSettings().isShowLibraryContents()) {
|
||||
result.add(new PackageViewLibrariesNode(getProject(), getValue(),getSettings()));
|
||||
result.add(new PackageViewLibrariesNode(getProject(), module, getSettings()));
|
||||
}
|
||||
return result;
|
||||
});
|
||||
|
||||
+1
-1
@@ -601,7 +601,7 @@ public abstract class AbstractProjectViewPane implements DataProvider, Disposabl
|
||||
protected PsiDirectory[] getSelectedDirectoriesInAmbiguousCase(Object userObject) {
|
||||
if (userObject instanceof AbstractModuleNode) {
|
||||
final Module module = ((AbstractModuleNode)userObject).getValue();
|
||||
if (module != null) {
|
||||
if (module != null && !module.isDisposed()) {
|
||||
final ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module);
|
||||
final VirtualFile[] sourceRoots = moduleRootManager.getSourceRoots();
|
||||
List<PsiDirectory> dirs = new ArrayList<>(sourceRoots.length);
|
||||
|
||||
+6
-3
@@ -66,7 +66,9 @@ public abstract class AbstractModuleNode extends ProjectViewNode<Module> impleme
|
||||
@Override
|
||||
public Collection<VirtualFile> getRoots() {
|
||||
Module module = getValue();
|
||||
return module != null ? Arrays.asList(ModuleRootManager.getInstance(module).getContentRoots()) : Collections.emptyList();
|
||||
return module != null && !module.isDisposed()
|
||||
? Arrays.asList(ModuleRootManager.getInstance(module).getContentRoots())
|
||||
: Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -90,7 +92,7 @@ public abstract class AbstractModuleNode extends ProjectViewNode<Module> impleme
|
||||
@Override
|
||||
public void navigate(final boolean requestFocus) {
|
||||
Module module = getValue();
|
||||
if (module != null) {
|
||||
if (module != null && !module.isDisposed()) {
|
||||
ProjectSettingsService.getInstance(myProject).openModuleSettings(module);
|
||||
}
|
||||
}
|
||||
@@ -102,7 +104,8 @@ public abstract class AbstractModuleNode extends ProjectViewNode<Module> impleme
|
||||
|
||||
@Override
|
||||
public boolean canNavigate() {
|
||||
return ProjectSettingsService.getInstance(myProject).canOpenModuleSettings() && getValue() != null;
|
||||
Module module = getValue();
|
||||
return module != null && !module.isDisposed() && ProjectSettingsService.getInstance(myProject).canOpenModuleSettings();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ public class StructureViewModuleNode extends AbstractModuleNode {
|
||||
@NotNull
|
||||
public Collection<AbstractTreeNode> getChildren() {
|
||||
final Module module = getValue();
|
||||
if (module == null) {
|
||||
if (module == null || module.isDisposed()) {
|
||||
// just deleted a module from project view
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ public abstract class MvcFramework {
|
||||
|
||||
@Nullable
|
||||
public VirtualFile findAppRoot(@Nullable Module module) {
|
||||
if (module == null) return null;
|
||||
if (module == null || module.isDisposed()) return null;
|
||||
|
||||
String appDirName = getApplicationDirectoryName();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user