don't add null modules to compile scope (part of IDEA-60815)

This commit is contained in:
Dmitry Jemerov
2010-11-10 15:13:53 +03:00
parent f2da479271
commit 92251729b9
@@ -29,7 +29,6 @@ import com.intellij.lang.properties.PropertiesReferenceManager;
import com.intellij.lang.properties.psi.PropertiesFile;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.compiler.CompileContext;
import com.intellij.openapi.compiler.CompileStatusNotification;
@@ -87,7 +86,7 @@ public final class PreviewFormAction extends AnAction{
public void actionPerformed(final AnActionEvent e) {
final GuiEditor editor = FormEditingUtil.getActiveEditor(e.getDataContext());
if (editor != null) {
showPreviewFrame(editor.getModule(), editor.getFile(), e.getDataContext(), editor.getStringDescriptorLocale());
showPreviewFrame(editor.getModule(), editor.getFile(), editor.getStringDescriptorLocale());
}
}
@@ -107,7 +106,7 @@ public final class PreviewFormAction extends AnAction{
}
private static void showPreviewFrame(@NotNull final Module module, @NotNull final VirtualFile formFile,
final DataContext dataContext, @Nullable final Locale stringDescriptorLocale) {
@Nullable final Locale stringDescriptorLocale) {
final String tempPath;
try {
final File tempDirectory = FileUtil.createTempDirectory("FormPreview", "");
@@ -222,21 +221,24 @@ public final class PreviewFormAction extends AnAction{
for(String bundleName: bundleSet) {
for(PropertiesFile propFile: manager.findPropertiesFiles(module, bundleName)) {
virtualFiles.add(propFile.getVirtualFile());
modules.add(ModuleUtil.findModuleForFile(propFile.getVirtualFile(), module.getProject()));
final Module moduleForFile = ModuleUtil.findModuleForFile(propFile.getVirtualFile(), module.getProject());
if (moduleForFile != null) {
modules.add(moduleForFile);
}
}
}
FileSetCompileScope scope = new FileSetCompileScope(virtualFiles, modules.toArray(new Module[]{}));
FileSetCompileScope scope = new FileSetCompileScope(virtualFiles, modules.toArray(new Module[modules.size()]));
CompilerManager.getInstance(module.getProject()).make(scope, new CompileStatusNotification() {
public void finished(boolean aborted, int errors, int warnings, final CompileContext compileContext) {
if (!aborted && errors == 0) {
runPreviewProcess(tempPath, sources, module, formFile, dataContext, stringDescriptorLocale);
runPreviewProcess(tempPath, sources, module, formFile, stringDescriptorLocale);
}
}
});
}
else {
runPreviewProcess(tempPath, sources, module, formFile, dataContext, stringDescriptorLocale);
runPreviewProcess(tempPath, sources, module, formFile, stringDescriptorLocale);
}
}
@@ -259,7 +261,7 @@ public final class PreviewFormAction extends AnAction{
}
private static void runPreviewProcess(final String tempPath, final PathsList sources, final Module module, final VirtualFile formFile,
final DataContext dataContext, @Nullable final Locale stringDescriptorLocale) {
@Nullable final Locale stringDescriptorLocale) {
// 3. Now we are ready to launch Java process
final JavaParameters parameters = new JavaParameters();
parameters.getClassPath().add(tempPath);