tracking EA-38125 - CME: ActionToolbarImpl.updateAllToolbarsImmediately

This commit is contained in:
Gregory.Shrago
2012-08-28 20:02:25 +04:00
parent a2fdb7f7d1
commit a17ac837b2
@@ -55,6 +55,7 @@ import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
import java.util.LinkedList;
import java.util.List;
@@ -62,10 +63,17 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.actionSystem.impl.ActionToolbarImpl");
private static List<ActionToolbarImpl> ourToolbars = new LinkedList<ActionToolbarImpl>();
private static Throwable ourLastModification = null;
public static void updateAllToolbarsImmediately() {
for (ActionToolbarImpl toolbar : ourToolbars) {
toolbar.updateActionsImmediately();
try {
ourLastModification = null;
for (ActionToolbarImpl toolbar : new ArrayList<ActionToolbarImpl>(ourToolbars)) {
toolbar.updateActionsImmediately();
}
}
catch (ConcurrentModificationException e) {
LOG.error(ourLastModification == null? e : ourLastModification);
}
}
@@ -170,6 +178,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
@Override
public void addNotify() {
super.addNotify();
ourLastModification = new ConcurrentModificationException();
ourToolbars.add(this);
myActionManager.addTimerListener(500, myWeakTimerListener);
myActionManager.addTransparentTimerListener(500, myWeakTimerListener);
@@ -190,6 +199,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
@Override
public void removeNotify() {
super.removeNotify();
ourLastModification = new ConcurrentModificationException();
ourToolbars.remove(this);
myActionManager.removeTimerListener(myWeakTimerListener);
myActionManager.removeTransparentTimerListener(myWeakTimerListener);