diff options
Diffstat (limited to 'platform/projectModel-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java')
-rw-r--r-- | platform/projectModel-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java index 3bf16fcca67c..0b4f135837c9 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java @@ -22,10 +22,12 @@ import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.roots.impl.libraries.LibraryEx; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.util.Computable; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Consumer; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Collection; import java.util.Collections; import java.util.List; @@ -167,6 +169,28 @@ public class ModuleRootModificationUtil { } } + public static void updateExcludedFolders(final Module module, + @NotNull final VirtualFile contentRoot, + final Collection<String> urlsToUnExclude, + final Collection<String> urlsToExclude) { + updateModel(module, new Consumer<ModifiableRootModel>() { + @Override + public void consume(ModifiableRootModel modifiableModel) { + for (final ContentEntry contentEntry : modifiableModel.getContentEntries()) { + if (contentRoot.equals(contentEntry.getFile())) { + for (String url : urlsToUnExclude) { + contentEntry.removeExcludeFolder(url); + } + for (String url : urlsToExclude) { + contentEntry.addExcludeFolder(url); + } + break; + } + } + } + }); + } + private static void doWriteAction(final Runnable action) { final Application application = ApplicationManager.getApplication(); application.invokeAndWait(new Runnable() { |