From e23cc9ef2d7532a4c0b0228636d15161cd4a7d92 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Tue, 31 May 2016 12:57:52 +0300 Subject: [PATCH] EmptyProgressIndicator: allow to set ModalityState in constructor --- .../openapi/progress/EmptyProgressIndicator.java | 12 +++++++++++- .../openapi/diff/impl/dir/DirDiffTableModel.java | 8 +------- .../progress/util/BackgroundTaskUtil.java | 16 ++-------------- .../dialogs/browserCache/RepositoryLoader.java | 8 +------- 4 files changed, 15 insertions(+), 29 deletions(-) diff --git a/platform/core-api/src/com/intellij/openapi/progress/EmptyProgressIndicator.java b/platform/core-api/src/com/intellij/openapi/progress/EmptyProgressIndicator.java index a5cd279b2e23..d70a3258a184 100644 --- a/platform/core-api/src/com/intellij/openapi/progress/EmptyProgressIndicator.java +++ b/platform/core-api/src/com/intellij/openapi/progress/EmptyProgressIndicator.java @@ -20,9 +20,19 @@ import com.intellij.openapi.application.ModalityState; import org.jetbrains.annotations.NotNull; public class EmptyProgressIndicator implements StandardProgressIndicator { + @NotNull private final ModalityState myModalityState; + private volatile boolean myIsRunning; private volatile boolean myIsCanceled; + public EmptyProgressIndicator() { + this(ModalityState.NON_MODAL); + } + + public EmptyProgressIndicator(@NotNull ModalityState modalityState) { + myModalityState = modalityState; + } + @Override public void start() { myIsRunning = true; @@ -108,7 +118,7 @@ public class EmptyProgressIndicator implements StandardProgressIndicator { @Override @NotNull public ModalityState getModalityState() { - return ModalityState.NON_MODAL; + return myModalityState; } @Override diff --git a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java index 455120cb2339..84f8e3edb5ac 100644 --- a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java +++ b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java @@ -222,13 +222,7 @@ public class DirDiffTableModel extends AbstractTableModel implements DirDiffMode final ModalityState modalityState = ModalityState.current(); ApplicationManager.getApplication().executeOnPooledThread(() -> { - EmptyProgressIndicator indicator = new EmptyProgressIndicator() { - @NotNull - @Override - public ModalityState getModalityState() { - return modalityState; - } - }; + EmptyProgressIndicator indicator = new EmptyProgressIndicator(modalityState); ProgressManager.getInstance().executeProcessUnderProgress(() -> { try { if (myDisposed) return; diff --git a/platform/platform-impl/src/com/intellij/openapi/progress/util/BackgroundTaskUtil.java b/platform/platform-impl/src/com/intellij/openapi/progress/util/BackgroundTaskUtil.java index 7e256051cd5d..e09cd0b2a3b1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/progress/util/BackgroundTaskUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/progress/util/BackgroundTaskUtil.java @@ -71,13 +71,7 @@ public class BackgroundTaskUtil { final int waitMillis, final boolean forceEDT) { final ModalityState modality = ModalityState.current(); - final ProgressIndicator indicator = new EmptyProgressIndicator() { - @NotNull - @Override - public ModalityState getModalityState() { - return modality; - } - }; + final ProgressIndicator indicator = new EmptyProgressIndicator(modality); final Semaphore semaphore = new Semaphore(0); final AtomicReference resultRef = new AtomicReference(); @@ -164,13 +158,7 @@ public class BackgroundTaskUtil { public static ProgressIndicator executeOnPooledThread(@NotNull final Consumer task, @NotNull Disposable parent, final ModalityState modalityState) { - final ProgressIndicator indicator = new EmptyProgressIndicator() { - @NotNull - @Override - public ModalityState getModalityState() { - return modalityState; - } - }; + final ProgressIndicator indicator = new EmptyProgressIndicator(modalityState); final Disposable disposable = new Disposable() { @Override diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/RepositoryLoader.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/RepositoryLoader.java index 6786d8648300..77b672c74292 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/RepositoryLoader.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/RepositoryLoader.java @@ -94,13 +94,7 @@ class RepositoryLoader extends Loader { ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { @Override public void run() { - ProgressManager.getInstance().runProcess(new LoadTask(data), new EmptyProgressIndicator() { - @NotNull - @Override - public ModalityState getModalityState() { - return state; - } - }); + ProgressManager.getInstance().runProcess(new LoadTask(data), new EmptyProgressIndicator(state)); } }); }