use of com.intellij.openapi.roots.ModuleRootManager in project android by JetBrains.
the class PostProjectBuildTasksExecutor method excludeOutputFolders.
private static void excludeOutputFolders(@NotNull AndroidFacet facet) {
AndroidModuleModel androidModel = AndroidModuleModel.get(facet);
if (androidModel == null) {
return;
}
File buildFolderPath = androidModel.getAndroidProject().getBuildFolder();
if (!buildFolderPath.isDirectory()) {
return;
}
Module module = facet.getModule();
if (module.getProject().isDisposed()) {
return;
}
ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module);
ModifiableRootModel rootModel = moduleRootManager.getModifiableModel();
try {
ContentEntry[] contentEntries = rootModel.getContentEntries();
ContentEntry parent = findParentContentEntry(buildFolderPath, contentEntries);
if (parent == null) {
rootModel.dispose();
return;
}
List<File> excludedFolderPaths = androidModel.getExcludedFolderPaths();
for (File folderPath : excludedFolderPaths) {
parent.addExcludeFolder(pathToIdeaUrl(folderPath));
}
} finally {
if (!rootModel.isDisposed()) {
rootModel.commit();
}
}
}
use of com.intellij.openapi.roots.ModuleRootManager in project android by JetBrains.
the class NonAndroidSourceTypeNode method getSourceFolders.
private List<VirtualFile> getSourceFolders() {
ModuleRootManager rootManager = ModuleRootManager.getInstance(getValue());
List<VirtualFile> folders = Lists.newArrayList();
ContentEntry[] contentEntries = rootManager.getContentEntries();
for (ContentEntry entry : contentEntries) {
List<SourceFolder> sources = entry.getSourceFolders(mySourceType.rootType);
for (SourceFolder folder : sources) {
VirtualFile file = folder.getFile();
if (file != null) {
folders.add(file);
}
}
}
return folders;
}
use of com.intellij.openapi.roots.ModuleRootManager in project android by JetBrains.
the class AddModuleDependencyTask method perform.
@Nullable
@Override
public Exception perform() {
final Module module = myModuleProvider.getModule();
final Module depModule = myDepModuleProvider.getModule();
if (module == null || depModule == null) {
return null;
}
final ModuleRootManager rootManager = ModuleRootManager.getInstance(module);
if (!rootManager.isDependsOn(depModule)) {
ModuleRootModificationUtil.addDependency(module, depModule);
}
return null;
}
use of com.intellij.openapi.roots.ModuleRootManager in project android by JetBrains.
the class ContentRootsModuleSetupStepTest method addContentRoots.
private void addContentRoots(@NotNull String... names) throws IOException {
assertThat(names).isNotEmpty();
VirtualFile projectFolder = getProject().getBaseDir();
Module module = getModule();
ModuleRootManager manager = ModuleRootManager.getInstance(module);
ModifiableRootModel modifiableModel = manager.getModifiableModel();
for (String name : names) {
VirtualFile folder = findOrCreateChildFolder(projectFolder, name);
modifiableModel.addContentEntry(folder);
}
ApplicationManager.getApplication().runWriteAction(modifiableModel::commit);
ContentEntry[] entries = manager.getContentEntries();
assertThat(entries).hasLength(names.length);
}
use of com.intellij.openapi.roots.ModuleRootManager in project intellij-plugins by JetBrains.
the class FlashUmlTest method doTestImpl.
private DiagramBuilder doTestImpl(@Nullable File projectRoot, String[] files, String[] additionalClasses, Computable<GlobalSearchScope> scopeProvider, @Nullable EnumSet<FlashUmlDependenciesSettingsOption> dependencies, @Nullable String expectedFileNamePrefix) throws Exception {
List<VirtualFile> vFiles = new ArrayList<>(files.length);
for (String file : files) {
vFiles.add(getVirtualFile(BASE_PATH + file));
}
ApplicationManager.getApplication().runWriteAction(() -> {
final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule);
final ModifiableRootModel rootModel = rootManager.getModifiableModel();
ContentEntry[] contentEntries = rootModel.getContentEntries();
for (ContentEntry contentEntry : contentEntries) {
rootModel.removeContentEntry(contentEntry);
}
rootModel.commit();
});
configureByFiles(projectRoot, VfsUtilCore.toVirtualFileArray(vFiles));
final LinkedHashMap<Integer, String> markers = JSTestUtils.extractPositionMarkers(getProject(), getEditor().getDocument());
assertFalse(markers.isEmpty());
DiagramBuilder builder = null;
int i = 1;
for (Map.Entry<Integer, String> marker : markers.entrySet()) {
getEditor().getCaretModel().moveToOffset(marker.getKey());
i++;
String expectedPrefix = StringUtil.isNotEmpty(marker.getValue()) ? marker.getValue() : expectedFileNamePrefix;
final DataContext dataContext = DataManager.getInstance().getDataContext();
final DiagramProvider[] providers = DiagramProvider.findProviders(dataContext, "unknown");
final FlashUmlProvider provider = ContainerUtil.findInstance(providers, FlashUmlProvider.class);
assertNotNull("Flash UML provider not found", provider);
final String actualOriginFqn = provider.getVfsResolver().getQualifiedName(provider.getElementManager().findInDataContext(dataContext));
final Object actualOrigin = provider.getVfsResolver().resolveElementByFQN(actualOriginFqn, getProject());
builder = UmlGraphBuilderFactory.create(myProject, provider, actualOrigin, null);
Disposer.register(getTestRootDisposable(), builder);
final DiagramDataModel<Object> model = builder.getDataModel();
DiagramConfiguration configuration = DiagramConfiguration.getConfiguration();
String originalCategories = configuration.categories.get(provider.getID());
if (dependencies != null) {
model.setShowDependencies(true);
EnumSet<FlashUmlDependenciesSettingsOption> disabledOptions = EnumSet.complementOf(dependencies);
configuration.categories.put(provider.getID(), StringUtil.join(disabledOptions, option -> option.getDisplayName(), ";"));
} else {
model.setShowDependencies(false);
}
try {
model.refreshDataModel();
// first limit elements by scope
Collection<DiagramNode<Object>> nodesToRemove = new ArrayList<>();
for (DiagramNode<Object> node : model.getNodes()) {
if (node.getIdentifyingElement() instanceof JSClass && !scopeProvider.compute().contains(((JSClass) node.getIdentifyingElement()).getContainingFile().getVirtualFile())) {
nodesToRemove.add(node);
}
}
for (DiagramNode<Object> node : nodesToRemove) {
model.removeNode(node);
}
builder.updateGraph();
// then add explicitly required classes
for (String aClass : additionalClasses) {
JSClass c = JSTestUtils.findClassByQName(aClass, GlobalSearchScope.allScope(myProject));
final DiagramNode node = model.addElement(c);
if (node != null) {
builder.createDraggedNode(node, node.getTooltip(), DiagramUtils.getBestPositionForNode(builder));
builder.updateGraph();
}
}
assertModel(expectedPrefix, provider, actualOriginFqn, model);
} finally {
configuration.categories.put(provider.getID(), originalCategories);
}
}
assert builder != null;
return builder;
}
Aggregations