mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-58469: On new module creation with facet selecting, project/module/global library is not created from the downloaded jars
This commit is contained in:
+17
-2
@@ -25,7 +25,6 @@ import com.intellij.openapi.roots.impl.libraries.ApplicationLibraryTable;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainerFactory;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -66,6 +65,19 @@ public class LibraryCompositionSettings implements Disposable {
|
||||
myIcon = icon;
|
||||
}
|
||||
|
||||
public void addFilesToLibrary(VirtualFile[] files, OrderRootType orderRootType) {
|
||||
final Library.ModifiableModel modifiableModel = getOrCreateLibrary().getModifiableModel();
|
||||
for (VirtualFile file : files) {
|
||||
modifiableModel.addRoot(file, orderRootType);
|
||||
}
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
modifiableModel.commit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public LibraryInfo[] getLibraryInfos() {
|
||||
return myLibraryInfos;
|
||||
@@ -134,16 +146,19 @@ public class LibraryCompositionSettings implements Disposable {
|
||||
if (files.length != downloadingInfos.length) {
|
||||
return false;
|
||||
}
|
||||
addFilesToLibrary(files, OrderRootType.CLASSES);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
private Library createLibrary(final ModifiableRootModel rootModel, @Nullable LibrariesContainer additionalContainer) {
|
||||
if (myLibrary != null) {
|
||||
VirtualFile[] roots = myLibrary.getFiles(OrderRootType.CLASSES);
|
||||
myLibrary.dispose();
|
||||
return LibrariesContainerFactory.createLibrary(additionalContainer, LibrariesContainerFactory.createContainer(rootModel),
|
||||
myLibraryName, myLibraryLevel, roots, VirtualFile.EMPTY_ARRAY);
|
||||
}
|
||||
@@ -213,7 +228,6 @@ public class LibraryCompositionSettings implements Disposable {
|
||||
@Override
|
||||
public void run() {
|
||||
myLibrary = new ApplicationLibraryTable().createLibrary();
|
||||
Disposer.register(LibraryCompositionSettings.this, myLibrary);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -222,5 +236,6 @@ public class LibraryCompositionSettings implements Disposable {
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
System.out.println("I'm disposed!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ package com.intellij.facet.impl.ui.libraries;
|
||||
import com.intellij.facet.ui.libraries.LibraryInfo;
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.ide.util.ElementsChooser;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.fileChooser.FileChooser;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
@@ -96,16 +95,7 @@ public class LibraryOptionsPanel {
|
||||
case PICK_FILES:
|
||||
if (mySettings.getLibrary() == null) {
|
||||
VirtualFile[] files = showFileChooser();
|
||||
final Library.ModifiableModel modifiableModel = mySettings.getOrCreateLibrary().getModifiableModel();
|
||||
for (VirtualFile file : files) {
|
||||
modifiableModel.addRoot(file, OrderRootType.CLASSES);
|
||||
}
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
modifiableModel.commit();
|
||||
}
|
||||
});
|
||||
mySettings.addFilesToLibrary(files, OrderRootType.CLASSES);
|
||||
}
|
||||
EditLibraryDialog dialog = new EditLibraryDialog(myConfigureButton, mySettings);
|
||||
showDialog(dialog);
|
||||
|
||||
Reference in New Issue
Block a user