diff --git a/UsageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java b/UsageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java index 9806f1781abc..18ccc53f6033 100644 --- a/UsageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java +++ b/UsageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java @@ -1,8 +1,6 @@ package com.intellij.usages.impl; import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.ToggleAction; import com.intellij.openapi.components.ApplicationComponent; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.*; @@ -11,7 +9,6 @@ import com.intellij.usages.rules.UsageGroupingRule; import com.intellij.usages.rules.UsageGroupingRuleProvider; import org.jdom.Element; -import javax.swing.*; import java.util.ArrayList; import java.util.List; @@ -51,7 +48,7 @@ public class UsageGroupingRuleProviderImpl extends UsageGroupingRuleProvider imp return rules.toArray(new UsageGroupingRule[rules.size()]); } - public AnAction[] createFilteringActions(UsageViewImpl view) { + public AnAction[] createGroupingActions(UsageViewImpl view) { return new AnAction[] { new GroupByUsageTypeAction(view), new GroupByModuleTypeAction(view), diff --git a/UsageView/src/com/intellij/usages/impl/UsageViewImpl.java b/UsageView/src/com/intellij/usages/impl/UsageViewImpl.java index a2270fff23fc..d3786287f8f1 100644 --- a/UsageView/src/com/intellij/usages/impl/UsageViewImpl.java +++ b/UsageView/src/com/intellij/usages/impl/UsageViewImpl.java @@ -64,6 +64,8 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private ButtonPanel myButtonPanel = new ButtonPanel(); private boolean myChangesDetected = false; private List myUsagesToFlush = new ArrayList(); + private UsageGroupingRuleProvider myUsageGroupingRuleProvider = new CompositeUsageGroupingRuleProvider(); + private UsageFilteringRuleProvider myUsageFilteringRuleProvider = new CompositeUsageFilteringRuleProvider(); public UsageViewImpl(UsageViewPresentation presentation, UsageTarget[] targets, @@ -77,7 +79,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra myRootPanel = new MyPanel(myTree); UsageViewTreeModelBuilder model = new UsageViewTreeModelBuilder(myPresentation, targets); - myBuilder = new UsageNodeTreeBuilder(getGroupingRuleProvider().getActiveRules(project), getFilteringRuleProvider().getActiveRules(project), (GroupNode)model.getRoot()); + myBuilder = new UsageNodeTreeBuilder(myUsageGroupingRuleProvider.getActiveRules(project), myUsageFilteringRuleProvider.getActiveRules(project), (GroupNode)model.getRoot()); myTree.setModel(model); myRootPanel.setLayout(new BorderLayout()); @@ -225,20 +227,12 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra }; } - private UsageGroupingRuleProviderImpl getGroupingRuleProvider() { - return (UsageGroupingRuleProviderImpl)ApplicationManager.getApplication().getComponent(UsageGroupingRuleProvider.class); - } - - private UsageFilteringRuleProviderImpl getFilteringRuleProvider() { - return (UsageFilteringRuleProviderImpl)ApplicationManager.getApplication().getComponent(UsageFilteringRuleProvider.class); - } - private AnAction[] createGroupingActions() { - return getGroupingRuleProvider().createFilteringActions(this); + return myUsageGroupingRuleProvider.createGroupingActions(this); } private AnAction[] createFilteringActions() { - return getFilteringRuleProvider().createFilteringActions(this); + return myUsageFilteringRuleProvider.createFilteringActions(this); } public void rulesChanged() { @@ -246,8 +240,8 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra captureUsagesExpandState(new TreePath(myTree.getModel().getRoot()), states); Collection allUsages = myUsageNodes.keySet(); reset(); - myBuilder.setGroupingRules(getGroupingRuleProvider().getActiveRules(myProject)); - myBuilder.setFilteringRules(getFilteringRuleProvider().getActiveRules(myProject)); + myBuilder.setGroupingRules(myUsageGroupingRuleProvider.getActiveRules(myProject)); + myBuilder.setFilteringRules(myUsageFilteringRuleProvider.getActiveRules(myProject)); for (Iterator i = allUsages.iterator(); i.hasNext();) { Usage usage = i.next(); if (!usage.isValid()) { diff --git a/UsageView/src/com/intellij/usages/rules/UsageFilteringRuleProvider.java b/UsageView/src/com/intellij/usages/rules/UsageFilteringRuleProvider.java index 34b51aac7171..afea3473e8cc 100644 --- a/UsageView/src/com/intellij/usages/rules/UsageFilteringRuleProvider.java +++ b/UsageView/src/com/intellij/usages/rules/UsageFilteringRuleProvider.java @@ -1,9 +1,11 @@ package com.intellij.usages.rules; import com.intellij.openapi.project.Project; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.usages.impl.UsageViewImpl; public abstract class UsageFilteringRuleProvider { public abstract UsageFilteringRule[] getActiveRules(Project project); - + public abstract AnAction[] createFilteringActions(UsageViewImpl view); } diff --git a/UsageView/src/com/intellij/usages/rules/UsageGroupingRuleProvider.java b/UsageView/src/com/intellij/usages/rules/UsageGroupingRuleProvider.java index 88394252a38e..475ffaf39053 100644 --- a/UsageView/src/com/intellij/usages/rules/UsageGroupingRuleProvider.java +++ b/UsageView/src/com/intellij/usages/rules/UsageGroupingRuleProvider.java @@ -1,6 +1,8 @@ package com.intellij.usages.rules; import com.intellij.openapi.project.Project; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.usages.impl.UsageViewImpl; /** * Created by IntelliJ IDEA. @@ -11,4 +13,6 @@ import com.intellij.openapi.project.Project; */ public abstract class UsageGroupingRuleProvider { public abstract UsageGroupingRule[] getActiveRules(Project project); + + public abstract AnAction[] createGroupingActions(UsageViewImpl view); }