mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
added utility for common ModuleRootModel modifications
This commit is contained in:
+4
-12
@@ -1,16 +1,15 @@
|
||||
package org.jetbrains.android.importDependencies;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
||||
import org.jetbrains.android.util.AndroidBundle;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
class AddModuleDependencyTask extends ImportDependenciesTask {
|
||||
private final ModuleProvider myModuleProvider;
|
||||
private final ModuleProvider myDepModuleProvider;
|
||||
@@ -31,14 +30,7 @@ class AddModuleDependencyTask extends ImportDependenciesTask {
|
||||
final ModuleRootManager rootManager = ModuleRootManager.getInstance(module);
|
||||
|
||||
if (!rootManager.isDependsOn(depModule)) {
|
||||
final ModifiableRootModel model = rootManager.getModifiableModel();
|
||||
model.addModuleOrderEntry(depModule);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
model.commit();
|
||||
}
|
||||
});
|
||||
ModuleRootModificationUtil.addDependency(module, depModule);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -35,10 +35,7 @@ import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.*;
|
||||
import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil;
|
||||
import com.intellij.openapi.roots.JavadocOrderRootType;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.libraries.ui.OrderRoot;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
@@ -133,7 +130,8 @@ public class AndroidSdkUtils {
|
||||
if (sdkPath != null) {
|
||||
// todo: check if we should do it for new android platforms (api_level >= 15)
|
||||
final VirtualFile annotationsJar = JarFileSystem.getInstance()
|
||||
.findFileByPath(FileUtil.toSystemIndependentName(sdkPath) + AndroidCommonUtils.ANNOTATIONS_JAR_RELATIVE_PATH + JarFileSystem.JAR_SEPARATOR);
|
||||
.findFileByPath(
|
||||
FileUtil.toSystemIndependentName(sdkPath) + AndroidCommonUtils.ANNOTATIONS_JAR_RELATIVE_PATH + JarFileSystem.JAR_SEPARATOR);
|
||||
if (annotationsJar != null) {
|
||||
result.add(new OrderRoot(annotationsJar, OrderRootType.CLASSES));
|
||||
}
|
||||
@@ -289,23 +287,12 @@ public class AndroidSdkUtils {
|
||||
private static boolean tryToSetAndroidPlatform(Module module, Sdk sdk) {
|
||||
AndroidPlatform platform = AndroidPlatform.parse(sdk);
|
||||
if (platform != null) {
|
||||
setSdk(module, sdk);
|
||||
ModuleRootModificationUtil.setModuleSdk(module, sdk);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void setSdk(Module module, Sdk sdk) {
|
||||
final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel();
|
||||
model.setSdk(sdk);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
model.commit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void setupPlatform(@NotNull Module module) {
|
||||
if (tryToImportSdkFromPropertyFiles(module)) {
|
||||
return;
|
||||
@@ -359,7 +346,7 @@ public class AndroidSdkUtils {
|
||||
|
||||
final Sdk sdk = findSuitableAndroidSdk(targetHashString, sdkDir);
|
||||
if (sdk != null) {
|
||||
setSdk(module, sdk);
|
||||
ModuleRootModificationUtil.setModuleSdk(module, sdk);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -388,7 +375,7 @@ public class AndroidSdkUtils {
|
||||
if (target != null) {
|
||||
final Sdk androidSdk = createNewAndroidPlatform(target, sdkData.getLocation(), true);
|
||||
if (androidSdk != null) {
|
||||
setSdk(module, androidSdk);
|
||||
ModuleRootModificationUtil.setModuleSdk(module, androidSdk);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.ProjectJdkTable;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.SdkModificator;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.vfs.JarFileSystem;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
@@ -80,7 +79,8 @@ public abstract class AndroidTestCase extends UsefulTestCase {
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
final TestFixtureBuilder<IdeaProjectTestFixture> projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName());
|
||||
final TestFixtureBuilder<IdeaProjectTestFixture> projectBuilder =
|
||||
IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName());
|
||||
myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.getFixture());
|
||||
final JavaModuleFixtureBuilder moduleFixtureBuilder = projectBuilder.addModule(JavaModuleFixtureBuilder.class);
|
||||
tuneModule(moduleFixtureBuilder, myFixture.getTempDirPath());
|
||||
@@ -144,14 +144,7 @@ public abstract class AndroidTestCase extends UsefulTestCase {
|
||||
|
||||
private static void addAndroidSdk(Module module, String sdkPath) {
|
||||
Sdk androidSdk = createAndroidSdk(sdkPath);
|
||||
final ModifiableRootModel moduleModel = ModuleRootManager.getInstance(module).getModifiableModel();
|
||||
moduleModel.setSdk(androidSdk);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
moduleModel.commit();
|
||||
}
|
||||
});
|
||||
ModuleRootModificationUtil.setModuleSdk(module, androidSdk);
|
||||
}
|
||||
|
||||
private static Sdk createAndroidSdk(String sdkPath) {
|
||||
|
||||
@@ -5,11 +5,11 @@ import com.intellij.codeInsight.completion.CompletionType;
|
||||
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.IdeaTestCase;
|
||||
import com.intellij.testFramework.PsiTestUtil;
|
||||
import com.intellij.testFramework.UsefulTestCase;
|
||||
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
|
||||
import com.intellij.testFramework.fixtures.*;
|
||||
@@ -48,7 +48,8 @@ public class AndroidLibraryProjectTest extends UsefulTestCase {
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
final TestFixtureBuilder<IdeaProjectTestFixture> projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName());
|
||||
final TestFixtureBuilder<IdeaProjectTestFixture> projectBuilder =
|
||||
IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName());
|
||||
myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.getFixture());
|
||||
myFixture.enableInspections(AndroidDomInspection.class);
|
||||
|
||||
@@ -81,8 +82,8 @@ public class AndroidLibraryProjectTest extends UsefulTestCase {
|
||||
myLibFacet = AndroidTestCase.addAndroidFacet(myLibModule, getTestSdkPath());
|
||||
myLibFacet.getConfiguration().LIBRARY_PROJECT = true;
|
||||
|
||||
PsiTestUtil.addDependency(myAppModule, myLibModule);
|
||||
PsiTestUtil.addDependency(myLibModule, myLibGenModule);
|
||||
ModuleRootModificationUtil.addDependency(myAppModule, myLibModule);
|
||||
ModuleRootModificationUtil.addDependency(myLibModule, myLibGenModule);
|
||||
}
|
||||
|
||||
private void createInitialStructure() {
|
||||
|
||||
Reference in New Issue
Block a user