boolean (@Nullable @NlsContexts.StatusBarText String nonLogText) { ThreadingAssertions.assertEventDispatchThread(); Project project = getActiveProject(); StatusMessage statusMessage = NotificationsToolWindowFactory.Companion.getStatusMessage(project); Alarm alarm = getAlarm(); myCurrentNotification = StringUtil.isEmpty(nonLogText) && statusMessage != null && alarm != null ? statusMessage.notification() : null; if (alarm != null) { alarm.cancelAllRequests(); } if (myCurrentNotification != null) { UIUtil.setCursor(myTextPanel, Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); new Runnable() { @Override public void run() { assert statusMessage != null; String text = statusMessage.text(); if (myDirty || System.currentTimeMillis() - statusMessage.stamp() >= DateFormatUtil.MINUTE) { myTimeText = " (" + StringUtil.decapitalize(DateFormatUtil.formatPrettyDateTime(statusMessage.stamp())) + ")"; text += myTimeText; } else { myTimeText = null; } setStatusText(text); alarm.addRequest(this, 30000); } }.run(); } else { myTimeText = null; UIUtil.setCursor(myTextPanel, Cursor.getDefaultCursor()); myDirty = true; setStatusText(nonLogText); } return myCurrentNotification != null; }