private static void setStatusBarText(Project project, String message) {
   if (project != null) {
     final StatusBarEx statusBar = (StatusBarEx) WindowManager.getInstance().getStatusBar(project);
     if (statusBar != null) {
       statusBar.setInfo(message);
     }
   }
 }
 public static boolean hasBackgroundProcesses(@NotNull Project project) {
   final IdeFrame frame = ((WindowManagerEx) WindowManager.getInstance()).findFrameFor(project);
   final StatusBarEx statusBar = frame == null ? null : (StatusBarEx) frame.getStatusBar();
   if (statusBar != null) {
     final List<Pair<TaskInfo, ProgressIndicator>> processes = statusBar.getBackgroundProcesses();
     if (!processes.isEmpty()) return true;
   }
   return false;
 }
  private boolean inSecondStrokeInProgressState() {
    KeyEvent e = myContext.getInputEvent();

    // when any key is released, we stop waiting for the second stroke
    if (KeyEvent.KEY_RELEASED == e.getID()) {
      myFirstKeyStroke = null;
      setState(KeyState.STATE_INIT);
      Project project = PlatformDataKeys.PROJECT.getData(myContext.getDataContext());
      StatusBar.Info.set(null, project);
      return false;
    }

    KeyStroke originalKeyStroke = KeyStroke.getKeyStrokeForEvent(e);
    KeyStroke keyStroke = getKeyStrokeWithoutMouseModifiers(originalKeyStroke);

    updateCurrentContext(
        myContext.getFoundComponent(),
        new KeyboardShortcut(myFirstKeyStroke, keyStroke),
        myContext.isModalContext());

    // consume the wrong second stroke and keep on waiting
    if (myContext.getActions().isEmpty()) {
      return true;
    }

    // finally user had managed to enter the second keystroke, so let it be processed
    Project project = PlatformDataKeys.PROJECT.getData(myContext.getDataContext());
    StatusBarEx statusBar = (StatusBarEx) WindowManager.getInstance().getStatusBar(project);
    if (processAction(e, myActionProcessor)) {
      if (statusBar != null) {
        statusBar.setInfo(null);
      }
      return true;
    } else {
      return false;
    }
  }
 /** Updates frame's status bar: insert/overwrite mode, caret position */
 private void updateStatusBar() {
   final StatusBarEx statusBar = (StatusBarEx) WindowManager.getInstance().getStatusBar(myProject);
   if (statusBar == null) return;
   statusBar.updateWidgets(); // TODO: do we need this?!
 }