mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
add read action
This commit is contained in:
@@ -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<Module> 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<Module> result = new ArrayList<Module>();
|
||||
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<Library> 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<Module[]>() {
|
||||
public Module[] compute() {
|
||||
ArrayList<Module> result = new ArrayList<Module>();
|
||||
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<Library> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user