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:
Dmitry Avdeev
2010-09-15 17:35:34 +04:00
parent bcf1e4a9ee
commit 7ead20cca2
2 changed files with 18 additions and 13 deletions
@@ -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);