mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
text in statusbar fix
This commit is contained in:
@@ -57,6 +57,13 @@ public class StatusBarUpdater implements Disposable {
|
||||
updateLater();
|
||||
}
|
||||
});
|
||||
|
||||
project.getMessageBus().connect().subscribe(DaemonCodeAnalyzer.DAEMON_EVENT_TOPIC, new DaemonCodeAnalyzer.DaemonListener() {
|
||||
@Override
|
||||
public void daemonFinished() {
|
||||
updateLater();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void updateLater() {
|
||||
|
||||
+10
-10
@@ -34,10 +34,7 @@ import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vcs.FileStatusListener;
|
||||
import com.intellij.openapi.vcs.FileStatusManager;
|
||||
@@ -53,6 +50,7 @@ import gnu.trove.THashMap;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -239,7 +237,7 @@ public class WolfTheProblemSolverImpl extends WolfTheProblemSolver {
|
||||
}
|
||||
pass.setProgressLimit(progressLimit);
|
||||
final StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
|
||||
String oldInfo = saveStatusBarInfo(statusBar);
|
||||
Pair<String, String> oldInfo = saveStatusBarInfo(statusBar);
|
||||
try {
|
||||
for (final VirtualFile virtualFile : files) {
|
||||
progress.checkCanceled();
|
||||
@@ -313,19 +311,21 @@ public class WolfTheProblemSolverImpl extends WolfTheProblemSolver {
|
||||
return true;
|
||||
}
|
||||
|
||||
private static String saveStatusBarInfo(final StatusBar statusBar) {
|
||||
String oldInfo = null;
|
||||
@Nullable
|
||||
private static Pair<String, String> saveStatusBarInfo(final StatusBar statusBar) {
|
||||
Pair<String, String> oldInfo = null;
|
||||
if (statusBar instanceof StatusBarEx) {
|
||||
oldInfo = statusBar.getInfo();
|
||||
oldInfo = Pair.create(statusBar.getInfo(), ((StatusBarEx)statusBar).getInfoRequestor());
|
||||
}
|
||||
|
||||
return oldInfo;
|
||||
}
|
||||
|
||||
private static void restoreStatusBarInfo(final StatusBar statusBar, final String oldInfo) {
|
||||
private static void restoreStatusBarInfo(final StatusBar statusBar, final Pair<String, String> oldInfo) {
|
||||
if (statusBar instanceof StatusBarEx) {
|
||||
LaterInvocator.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
statusBar.setInfo(oldInfo);
|
||||
statusBar.setInfo(oldInfo.first, oldInfo.second);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -50,4 +50,7 @@ public interface StatusBarEx extends StatusBar, Disposable {
|
||||
|
||||
Dimension getSize();
|
||||
boolean isVisible();
|
||||
|
||||
@Nullable
|
||||
String getInfoRequestor();
|
||||
}
|
||||
|
||||
@@ -103,6 +103,11 @@ public final class TestWindowManager extends WindowManagerEx implements Applicat
|
||||
public void setInfo(@Nullable String s, @Nullable String requestor) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInfoRequestor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
+10
-1
@@ -23,6 +23,7 @@ import com.intellij.openapi.ui.popup.BalloonHandler;
|
||||
import com.intellij.openapi.ui.popup.ListPopup;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.wm.CustomStatusBarWidget;
|
||||
@@ -69,6 +70,7 @@ public class IdeStatusBarImpl extends JComponent implements StatusBarEx {
|
||||
private JPanel myCenterPanel;
|
||||
|
||||
private String myInfo;
|
||||
private String myRequestor;
|
||||
|
||||
private List<String> myCustomComponentIds = new ArrayList<String>();
|
||||
|
||||
@@ -377,7 +379,9 @@ public class IdeStatusBarImpl extends JComponent implements StatusBarEx {
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
public void run() {
|
||||
if (myInfoAndProgressPanel != null) {
|
||||
myInfo = myInfoAndProgressPanel.setText(s, requestor);
|
||||
Pair<String,String> pair = myInfoAndProgressPanel.setText(s, requestor);
|
||||
myInfo = pair.first;
|
||||
myRequestor = pair.second;
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -387,6 +391,11 @@ public class IdeStatusBarImpl extends JComponent implements StatusBarEx {
|
||||
return myInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInfoRequestor() {
|
||||
return myRequestor;
|
||||
}
|
||||
|
||||
public void addProgress(ProgressIndicatorEx indicator, TaskInfo info) {
|
||||
myInfoAndProgressPanel.addProgress(indicator, info);
|
||||
}
|
||||
|
||||
+11
-5
@@ -16,7 +16,9 @@
|
||||
package com.intellij.openapi.wm.impl.status;
|
||||
|
||||
import com.intellij.idea.ActionsBundle;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.actionSystem.ActionGroup;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.ActionPlaces;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.progress.TaskInfo;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
@@ -24,6 +26,7 @@ import com.intellij.openapi.ui.popup.Balloon;
|
||||
import com.intellij.openapi.ui.popup.BalloonHandler;
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.util.MultiValuesMap;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.wm.CustomStatusBarWidget;
|
||||
@@ -49,7 +52,10 @@ import javax.swing.event.HyperlinkListener;
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class InfoAndProgressPanel extends JPanel implements CustomStatusBarWidget {
|
||||
private final ProcessPopup myPopup;
|
||||
@@ -330,17 +336,17 @@ public class InfoAndProgressPanel extends JPanel implements CustomStatusBarWidge
|
||||
myRefreshAndInfoPanel.repaint();
|
||||
}
|
||||
|
||||
public String setText(final String text, final String requestor) {
|
||||
public Pair<String, String> setText(final String text, final String requestor) {
|
||||
if (text == null || text.length() == 0) {
|
||||
if ((requestor != null && !requestor.equals(myCurrentRequestor))
|
||||
|| (myCurrentRequestor != null && !myCurrentRequestor.equals(requestor))) {
|
||||
return myInfoPanel.getText();
|
||||
return Pair.create(myInfoPanel.getText(), myCurrentRequestor);
|
||||
}
|
||||
}
|
||||
|
||||
myInfoPanel.setText(text);
|
||||
myCurrentRequestor = requestor;
|
||||
return text;
|
||||
return Pair.create(text, requestor);
|
||||
}
|
||||
|
||||
public void setRefreshVisible(final boolean visible) {
|
||||
|
||||
Reference in New Issue
Block a user