eclipse: chooser for .userlibraries file added

This commit is contained in:
anna
2009-12-22 19:02:22 +03:00
parent a4574e288f
commit 5e69a2ea34
@@ -38,8 +38,8 @@ import com.intellij.openapi.roots.libraries.LibraryTable;
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.InputValidator;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.Ref;
@@ -319,31 +319,29 @@ public class EclipseImportBuilder extends ProjectImportBuilder<String> implement
}
}
if (!unknownLibraries.isEmpty()) {
if (message.length() > 0) message.append("\n");
message.append(EclipseBundle.message("eclipse.import.warning.undefinded.libraries"));
final StringBuffer buf = new StringBuffer();
buf.append("<html><body>");
buf.append(EclipseBundle.message("eclipse.import.warning.undefinded.libraries"));
for (String name : unknownLibraries) {
message.append("\n").append(name);
buf.append("<br>").append(name);
}
if (model == null) {
message.append("\nPlease export Eclipse user libraries and import them now from");
final String pathToUserLibraries = Messages.showInputDialog(project, message.toString(), getTitle(), Messages.getErrorIcon(),
project.getBaseDir().getPath() +
"/" +
project.getName() +
".userlibraries", new InputValidator() {
public boolean checkInput(String inputString) {
return new File(inputString).exists();
}
public boolean canClose(String inputString) {
return checkInput(inputString);
}
});
if (pathToUserLibraries != null) {
buf.append("<br><b>Please export Eclipse user libraries and import them now from resulted .userlibraries file</b>");
buf.append("</body></html>");
final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false, false) {
@Override
public boolean isFileSelectable(VirtualFile file) {
return super.isFileSelectable(file) && Comparing.strEqual(file.getExtension(), "userlibraries");
}
};
descriptor.setDescription(buf.toString());
descriptor.setTitle(getTitle());
final VirtualFile[] selectedFiles = FileChooser.chooseFiles(project, descriptor, project.getBaseDir());
if (selectedFiles.length == 1) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
try {
EclipseUserLibrariesHelper.readProjectLibrariesContent(new File(pathToUserLibraries), project, unknownLibraries);
EclipseUserLibrariesHelper.readProjectLibrariesContent(new File(selectedFiles[0].getPath()), project, unknownLibraries);
}
catch (Exception e) {
LOG.error(e);
@@ -351,7 +349,6 @@ public class EclipseImportBuilder extends ProjectImportBuilder<String> implement
}
});
}
return result;
}
}