From cb5d7002a6e4ea2633546cd97ae2356b0f502211 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 3 Dec 2009 15:42:44 +0300 Subject: [PATCH] structure view is dumb-aware (IDEADEV-41813) --- .../impl/StructureViewToolWindowFactory.java | 9 ++++--- .../newStructureView/TreeActionWrapper.java | 3 ++- .../ui/AutoScrollFromSourceHandler.java | 25 ++++++++++++------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewToolWindowFactory.java b/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewToolWindowFactory.java index b3df9aae5674..79bc9b871934 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewToolWindowFactory.java +++ b/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewToolWindowFactory.java @@ -16,15 +16,16 @@ package com.intellij.ide.structureView.impl; -import com.intellij.openapi.wm.ToolWindowFactory; -import com.intellij.openapi.wm.ToolWindow; -import com.intellij.openapi.project.Project; import com.intellij.ide.structureView.StructureViewFactory; +import com.intellij.openapi.project.DumbAware; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.wm.ToolWindow; +import com.intellij.openapi.wm.ToolWindowFactory; /** * @author yole */ -public class StructureViewToolWindowFactory implements ToolWindowFactory { +public class StructureViewToolWindowFactory implements ToolWindowFactory, DumbAware { public void createToolWindowContent(Project project, ToolWindow toolWindow) { StructureViewFactoryImpl factory = (StructureViewFactoryImpl)StructureViewFactory.getInstance(project); factory.initToolWindow(toolWindow); diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/TreeActionWrapper.java b/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/TreeActionWrapper.java index cca504bd7eb1..fd0d55138f6a 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/TreeActionWrapper.java +++ b/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/TreeActionWrapper.java @@ -21,8 +21,9 @@ import com.intellij.ide.util.treeView.smartTree.TreeAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.actionSystem.ToggleAction; +import com.intellij.openapi.project.DumbAware; -public class TreeActionWrapper extends ToggleAction{ +public class TreeActionWrapper extends ToggleAction implements DumbAware { private final TreeAction myAction; private final TreeActionsOwner myStructureView; diff --git a/platform/platform-api/src/com/intellij/ui/AutoScrollFromSourceHandler.java b/platform/platform-api/src/com/intellij/ui/AutoScrollFromSourceHandler.java index 2df46b8e3328..e479c489ad3f 100644 --- a/platform/platform-api/src/com/intellij/ui/AutoScrollFromSourceHandler.java +++ b/platform/platform-api/src/com/intellij/ui/AutoScrollFromSourceHandler.java @@ -19,6 +19,7 @@ package com.intellij.ui; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.ToggleAction; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.IconLoader; @@ -42,16 +43,22 @@ public abstract class AutoScrollFromSourceHandler implements Disposable { public abstract void install(); public ToggleAction createToggleAction() { - return new ToggleAction(UIBundle.message("autoscroll.from.source.action.name"), - UIBundle.message("autoscroll.from.source.action.description"), IconLoader.getIcon("/general/autoscrollFromSource.png")) { - public boolean isSelected(AnActionEvent event) { - return isAutoScrollMode(); - } + return new AutoScrollFromSourceAction(); + } - public void setSelected(AnActionEvent event, boolean flag) { - setAutoScrollMode(flag); - } - }; + private class AutoScrollFromSourceAction extends ToggleAction implements DumbAware { + public AutoScrollFromSourceAction() { + super(UIBundle.message("autoscroll.from.source.action.name"), UIBundle.message("autoscroll.from.source.action.description"), + IconLoader.getIcon("/general/autoscrollFromSource.png")); + } + + public boolean isSelected(AnActionEvent event) { + return isAutoScrollMode(); + } + + public void setSelected(AnActionEvent event, boolean flag) { + setAutoScrollMode(flag); + } } }