From 63a1228b71c8d7f4363065b71f78bfe97367c6c7 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 8 Feb 2005 22:39:24 +0300 Subject: [PATCH] add read action --- plugins/devkit/src/build/PluginBuildUtil.java | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/plugins/devkit/src/build/PluginBuildUtil.java b/plugins/devkit/src/build/PluginBuildUtil.java index 4d381cc133b8..047a77337cfd 100644 --- a/plugins/devkit/src/build/PluginBuildUtil.java +++ b/plugins/devkit/src/build/PluginBuildUtil.java @@ -9,6 +9,8 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleType; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.util.Computable; import com.intellij.util.ArrayUtil; import org.jetbrains.idea.devkit.projectRoots.IdeaJdk; import org.jetbrains.idea.devkit.projectRoots.Sandbox; @@ -22,47 +24,52 @@ import java.util.ArrayList; */ public class PluginBuildUtil { - public static String getPluginExPath(Module module){ + public static String getPluginExPath(Module module) { final ProjectJdk jdk = ModuleRootManager.getInstance(module).getJdk(); - if (jdk == null || ! (jdk.getSdkType() instanceof IdeaJdk)){ + if (jdk == null || !(jdk.getSdkType() instanceof IdeaJdk)) { return null; } return ((Sandbox)jdk.getSdkAdditionalData()).getSandboxHome() + "/plugins/" + module.getName(); } public static void getDependencies(Module module, Set modules) { - if (modules.contains(module)) return; - Module[] dependencies = ModuleRootManager.getInstance(module).getDependencies(); - for (int i = 0; i < dependencies.length; i++) { - Module dependency = dependencies[i]; - if (dependency.getModuleType() == ModuleType.JAVA) { - modules.add(dependency); - getDependencies(dependency, modules); - } + if (modules.contains(module)) return; + Module[] dependencies = ModuleRootManager.getInstance(module).getDependencies(); + for (int i = 0; i < dependencies.length; i++) { + Module dependency = dependencies[i]; + if (dependency.getModuleType() == ModuleType.JAVA) { + modules.add(dependency); + getDependencies(dependency, modules); } } - - public static Module [] getWrongSetDependencies(Module module){ - ArrayList result = new ArrayList(); - final Module[] projectModules = ModuleManager.getInstance(module.getProject()).getModules(); - for(int i = 0; i < projectModules.length; i++){ - if (ArrayUtil.find(ModuleRootManager.getInstance(projectModules[i]).getDependencies(), module) > -1){ - result.add(projectModules[i]); - } - } - return result.toArray(new Module[result.size()]); } - public static void getLibraries(Module module, Set libs) { - OrderEntry[] orderEntries = ModuleRootManager.getInstance(module).getOrderEntries(); - for (int i = 0; i < orderEntries.length; i++) { - OrderEntry orderEntry = orderEntries[i]; - if (orderEntry instanceof LibraryOrderEntry) { - LibraryOrderEntry libEntry = (LibraryOrderEntry)orderEntry; - Library lib = libEntry.getLibrary(); - if (lib == null) continue; - libs.add(lib); + public static Module[] getWrongSetDependencies(final Module module) { + return ApplicationManager.getApplication().runReadAction(new Computable() { + public Module[] compute() { + ArrayList result = new ArrayList(); + final Module[] projectModules = ModuleManager.getInstance(module.getProject()).getModules(); + for (int i = 0; i < projectModules.length; i++) { + if (ArrayUtil.find(ModuleRootManager.getInstance(projectModules[i]).getDependencies(), module) > -1) { + result.add(projectModules[i]); + } } + return result.toArray(new Module[result.size()]); + } + }); + + } + + public static void getLibraries(Module module, Set libs) { + OrderEntry[] orderEntries = ModuleRootManager.getInstance(module).getOrderEntries(); + for (int i = 0; i < orderEntries.length; i++) { + OrderEntry orderEntry = orderEntries[i]; + if (orderEntry instanceof LibraryOrderEntry) { + LibraryOrderEntry libEntry = (LibraryOrderEntry)orderEntry; + Library lib = libEntry.getLibrary(); + if (lib == null) continue; + libs.add(lib); } } + } }