From f5ee63099bc7483cdda0e8b6b1b6fe2dd10bec92 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 1 Jun 2011 13:57:36 +0200 Subject: [PATCH] a better NPE fix, some space around the log icon --- .../wm/impl/status/InfoAndProgressPanel.java | 5 ++--- .../openapi/wm/impl/status/StatusPanel.java | 17 +++++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java index f44f9ca99c19..6b185d885e99 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java @@ -364,9 +364,8 @@ public class InfoAndProgressPanel extends JPanel implements CustomStatusBarWidge return Pair.create(myInfoPanel.getText(), myCurrentRequestor); } - final boolean logMode = StringUtil.isEmpty(text) && !hasProgressIndicators(); - myInfoPanel.updateText(logMode, text); - myCurrentRequestor = logMode ? requestor : null; + boolean logMode = myInfoPanel.updateText(!hasProgressIndicators(), text); + myCurrentRequestor = logMode ? null : requestor; return Pair.create(text, requestor); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java index 570702fcc902..5f30f587d386 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java @@ -16,6 +16,7 @@ package com.intellij.openapi.wm.impl.status; import com.intellij.notification.impl.NotificationsManagerImpl; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.util.IconLoader; @@ -38,6 +39,7 @@ import java.util.Date; * @author peter */ class StatusPanel extends JPanel { + private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.wm.impl.status.StatusPanel"); private static final Icon ourShowLogIcon = IconLoader.getIcon("/general/hideSideUp.png"); private static final Icon ourHideLogIcon = IconLoader.getIcon("/general/hideSideDown.png"); private boolean myLogMode; @@ -53,6 +55,8 @@ class StatusPanel extends JPanel { setOpaque(isOpaque() && !SystemInfo.isMac); + myShowLog.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5)); + myShowLog.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -89,17 +93,18 @@ class StatusPanel extends JPanel { myDirty = false; } - public void updateText(boolean logMode, @Nullable String nonLogText) { - myLogMode = logMode; + public boolean updateText(boolean logAllowed, @Nullable String nonLogText) { + myLogMode = logAllowed && StringUtil.isEmpty(nonLogText) && myLogMessage != null; - myShowLog.setVisible(logMode); + myShowLog.setVisible(myLogMode); - if (logMode) { + if (myLogMode) { + LOG.assertTrue(myLogTime != null); new Runnable() { @Override public void run() { String text = myLogMessage; - if (myLogTime != null && (myDirty || System.currentTimeMillis() - myLogTime.getTime() >= DateFormatUtil.MINUTE)) { + if (myDirty || System.currentTimeMillis() - myLogTime.getTime() >= DateFormatUtil.MINUTE) { text += " (" + StringUtil.decapitalize(DateFormatUtil.formatPrettyDateTime(myLogTime)) + ")"; } myTextPanel.setText(text); @@ -127,7 +132,7 @@ class StatusPanel extends JPanel { myTextPanel.setText(nonLogText); myLogAlarm.cancelAllRequests(); } - + return myLogMode; } public void hideLog() {