From 2d4a9e1eae2b3cd57729431468ab8b1f2800c15c Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 8 Apr 2013 16:04:58 +0200 Subject: [PATCH] init IDEA-93952 LiveEdit: JSP support --- .../impl/ui/actions/PackageFileWorker.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/ui/actions/PackageFileWorker.java b/java/compiler/impl/src/com/intellij/packaging/impl/ui/actions/PackageFileWorker.java index 9b4b771e5872..dc8223cd7538 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/ui/actions/PackageFileWorker.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/ui/actions/PackageFileWorker.java @@ -28,11 +28,12 @@ import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.progress.Task; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.ActionCallback; import com.intellij.openapi.util.Trinity; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.packaging.artifacts.Artifact; import com.intellij.packaging.elements.ArtifactRootElement; @@ -65,8 +66,17 @@ public class PackageFileWorker { myRelativeOutputPath = relativeOutputPath; } - public static void startPackagingFiles(final Project project, final List files, - final Artifact[] artifacts, final Runnable onFinished) { + public static void startPackagingFiles(Project project, List files, Artifact[] artifacts, final @NotNull Runnable onFinishedInAwt) { + startPackagingFiles(project, files, artifacts).doWhenProcessed(new Runnable() { + @Override + public void run() { + ApplicationManager.getApplication().invokeLater(onFinishedInAwt); + } + }); + } + + public static ActionCallback startPackagingFiles(final Project project, final List files, final Artifact[] artifacts) { + final ActionCallback callback = new ActionCallback(); ProgressManager.getInstance().run(new Task.Backgroundable(project, "Packaging Files") { @Override public void run(@NotNull ProgressIndicator indicator) { @@ -84,19 +94,23 @@ public class PackageFileWorker { } } }.execute(); + callback.setDone(); } } finally { - ApplicationManager.getApplication().invokeLater(onFinished); + if (!callback.isDone()) { + callback.setRejected(); + } } } }); + return callback; } public static void packageFile(@NotNull VirtualFile file, @NotNull Project project, final Artifact[] artifacts) throws IOException { LOG.debug("Start packaging file: " + file.getPath()); final Collection> items = ArtifactUtil.findContainingArtifactsWithOutputPaths(file, project, artifacts); - File ioFile = VfsUtil.virtualToIoFile(file); + File ioFile = VfsUtilCore.virtualToIoFile(file); for (Trinity item : items) { final Artifact artifact = item.getFirst(); final String outputPath = artifact.getOutputPath();