@NotNull private Set<String> getRootsToWatch() { final Set<String> rootsToWatch = new HashSet<String>(); ModuleManager moduleManager = ModuleManager.getInstance(myProject); for (Module module : moduleManager.getModules()) { ModuleCompilerPathsManager moduleCompilerPathsManager = ModuleCompilerPathsManager.getInstance(module); for (ContentFolderTypeProvider folderType : ContentFolderTypeProvider.filter(ContentFolderScopes.all(false))) { String compilerOutputUrl = moduleCompilerPathsManager.getCompilerOutputUrl(folderType); assert compilerOutputUrl != null : module.getName() + ":" + folderType + " url is null"; rootsToWatch.add(ProjectRootManagerImpl.extractLocalPath(compilerOutputUrl)); } } rootsToWatch.add(ProjectRootManagerImpl.extractLocalPath(getCompilerOutputUrl())); return rootsToWatch; }
public boolean canUnmark(AnActionEvent e) { Module module = e.getData(LangDataKeys.MODULE); VirtualFile[] vFiles = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY); if (module == null || vFiles == null) { return false; } ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module); final ContentEntry[] contentEntries = moduleRootManager.getContentEntries(); for (VirtualFile vFile : vFiles) { if (!vFile.isDirectory()) { continue; } for (ContentEntry contentEntry : contentEntries) { for (ContentFolder contentFolder : contentEntry.getFolders(ContentFolderScopes.all())) { if (Comparing.equal(contentFolder.getFile(), vFile)) { return true; } } } } return false; }