use of com.intellij.openapi.wm.ex.StatusBarEx in project intellij-community by JetBrains.
the class TextEditorComponent method updateStatusBar.
/**
* 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;
// TODO: do we need this?!
statusBar.updateWidgets();
}
use of com.intellij.openapi.wm.ex.StatusBarEx in project intellij-community by JetBrains.
the class RenameProcessor method performRefactoring.
@Override
public void performRefactoring(@NotNull UsageInfo[] usages) {
List<Runnable> postRenameCallbacks = new ArrayList<>();
final MultiMap<PsiElement, UsageInfo> classified = classifyUsages(myAllRenames.keySet(), usages);
for (final PsiElement element : myAllRenames.keySet()) {
String newName = myAllRenames.get(element);
final RefactoringElementListener elementListener = getTransaction().getElementListener(element);
final RenamePsiElementProcessor renamePsiElementProcessor = RenamePsiElementProcessor.forElement(element);
Runnable postRenameCallback = renamePsiElementProcessor.getPostRenameCallback(element, newName, elementListener);
final Collection<UsageInfo> infos = classified.get(element);
try {
RenameUtil.doRename(element, newName, infos.toArray(new UsageInfo[infos.size()]), myProject, elementListener);
} catch (final IncorrectOperationException e) {
RenameUtil.showErrorMessage(e, element, myProject);
return;
}
if (postRenameCallback != null) {
postRenameCallbacks.add(postRenameCallback);
}
}
for (Runnable runnable : postRenameCallbacks) {
runnable.run();
}
List<NonCodeUsageInfo> nonCodeUsages = new ArrayList<>();
for (UsageInfo usage : usages) {
if (usage instanceof NonCodeUsageInfo) {
nonCodeUsages.add((NonCodeUsageInfo) usage);
}
}
myNonCodeUsages = nonCodeUsages.toArray(new NonCodeUsageInfo[nonCodeUsages.size()]);
if (!mySkippedUsages.isEmpty()) {
if (!ApplicationManager.getApplication().isUnitTestMode() && !ApplicationManager.getApplication().isHeadlessEnvironment()) {
ApplicationManager.getApplication().invokeLater(() -> {
final IdeFrame ideFrame = WindowManager.getInstance().getIdeFrame(myProject);
if (ideFrame != null) {
StatusBarEx statusBar = (StatusBarEx) ideFrame.getStatusBar();
HyperlinkListener listener = new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() != HyperlinkEvent.EventType.ACTIVATED)
return;
Messages.showMessageDialog("<html>Following usages were safely skipped:<br>" + StringUtil.join(mySkippedUsages, unresolvableCollisionUsageInfo -> unresolvableCollisionUsageInfo.getDescription(), "<br>") + "</html>", "Not All Usages Were Renamed", null);
}
};
statusBar.notifyProgressByBalloon(MessageType.WARNING, "<html><body>Unable to rename certain usages. <a href=\"\">Browse</a></body></html>", null, listener);
}
}, ModalityState.NON_MODAL);
}
}
}
use of com.intellij.openapi.wm.ex.StatusBarEx in project intellij-community by JetBrains.
the class StudyCheckUtils method hasBackgroundProcesses.
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;
}
Aggregations