1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.ide;
4 import com.intellij.openapi.application.ModalityState;
5 import com.intellij.openapi.components.ServiceManager;
6 import com.intellij.openapi.project.Project;
7 import com.intellij.openapi.util.BusyObject;
8 import org.jetbrains.annotations.NotNull;
10 public abstract class UiActivityMonitor {
12 public abstract BusyObject getBusy(@NotNull Project project, @NotNull UiActivity ... toWatch);
15 public abstract BusyObject getBusy(@NotNull UiActivity ... toWatch);
17 public abstract void addActivity(@NotNull Project project, @NotNull UiActivity activity);
19 public abstract void addActivity(@NotNull Project project, @NotNull UiActivity activity, @NotNull ModalityState effectiveModalityState);
21 public abstract void addActivity(@NotNull UiActivity activity);
23 public abstract void addActivity(@NotNull UiActivity activity, @NotNull ModalityState effectiveModalityState);
25 public abstract void removeActivity(@NotNull Project project, @NotNull UiActivity activity);
27 public abstract void removeActivity(@NotNull UiActivity activity);
29 public abstract void clear();
31 public abstract void setActive(boolean active);
33 public static UiActivityMonitor getInstance() {
34 return ServiceManager.getService(UiActivityMonitor.class);