mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
load project library table
This commit is contained in:
@@ -18,11 +18,15 @@ package com.intellij.core;
|
||||
import com.intellij.mock.MockProject;
|
||||
import com.intellij.openapi.components.ComponentManager;
|
||||
import com.intellij.openapi.components.PathMacroManager;
|
||||
import com.intellij.openapi.components.impl.stores.DirectoryStorageData;
|
||||
import com.intellij.openapi.components.impl.stores.StorageData;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryTableBase;
|
||||
import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.io.fs.FileSystem;
|
||||
import org.jdom.Document;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.JDOMException;
|
||||
@@ -56,6 +60,16 @@ public class CoreProjectLoader {
|
||||
}
|
||||
final CoreModuleManager moduleManager = (CoreModuleManager)ModuleManager.getInstance(project);
|
||||
moduleManager.loadState(moduleManagerState);
|
||||
|
||||
VirtualFile libraries = dotIdea.findChild("libraries");
|
||||
if (libraries != null) {
|
||||
DirectoryStorageData data = new DirectoryStorageData();
|
||||
data.loadFrom(FileSystem.FILE_SYSTEM.createFile(libraries.getPath()),
|
||||
PathMacroManager.getInstance(project).createTrackingSubstitutor());
|
||||
final Element libraryTable = data.getMergedState("libraryTable", Element.class, new ProjectLibraryTable.LibraryStateSplitter(), null);
|
||||
((LibraryTableBase) ProjectLibraryTable.getInstance(project)).loadState(libraryTable);
|
||||
}
|
||||
|
||||
moduleManager.loadModules();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ package com.intellij.core;
|
||||
|
||||
import com.intellij.application.options.PathMacrosImpl;
|
||||
import com.intellij.mock.MockProject;
|
||||
import com.intellij.openapi.application.PathMacroFilter;
|
||||
import com.intellij.openapi.application.PathMacros;
|
||||
import com.intellij.openapi.components.ExtensionAreas;
|
||||
import com.intellij.openapi.components.PathMacroManager;
|
||||
@@ -42,6 +43,7 @@ public class ProjectModelEnvironment {
|
||||
env.registerApplicationComponent(PathMacros.class, pathMacros);
|
||||
CoreEnvironment.registerApplicationExtensionPoint(OrderRootType.EP_NAME, OrderRootType.class);
|
||||
CoreEnvironment.registerApplicationExtensionPoint(SdkFinder.EP_NAME, SdkFinder.class);
|
||||
CoreEnvironment.registerApplicationExtensionPoint(PathMacroFilter.EP_NAME, PathMacroFilter.class);
|
||||
env.getApplication().registerService(ProjectJdkTable.class, new CoreProjectJdkTable());
|
||||
env.getApplication().registerService(ApplicationLibraryTable.class, new ApplicationLibraryTable());
|
||||
env.getApplication().registerService(LibraryTablesRegistrar.class, new LibraryTablesRegistrarImpl());
|
||||
|
||||
+1
-1
@@ -157,7 +157,7 @@ public class DirectoryStorageData {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public <T> T getMergedState(String componentName, Class<T> stateClass, StateSplitter splitter, T mergeInto) {
|
||||
public <T> T getMergedState(String componentName, Class<T> stateClass, StateSplitter splitter, @Nullable T mergeInto) {
|
||||
final List<Element> subElements = new ArrayList<Element>();
|
||||
processComponent(componentName, new PairConsumer<IFile, Element>() {
|
||||
public void consume(final IFile iFile, final Element element) {
|
||||
|
||||
Reference in New Issue
Block a user