mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
minor changes
This commit is contained in:
@@ -4,15 +4,14 @@ import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.CustomShortcutSet;
|
||||
import com.intellij.openapi.actionSystem.ToggleAction;
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.usages.UsageView;
|
||||
import com.intellij.usages.impl.rules.ImportFilteringRule;
|
||||
import com.intellij.usages.impl.rules.ReadAccessFilteringRule;
|
||||
import com.intellij.usages.impl.rules.WriteAccessFilteringRule;
|
||||
import com.intellij.usages.rules.UsageFilteringRule;
|
||||
import com.intellij.usages.rules.UsageFilteringRuleProvider;
|
||||
import com.intellij.usages.UsageView;
|
||||
import org.jdom.Element;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -27,7 +26,7 @@ import java.util.List;
|
||||
* Time: 8:20:57 PM
|
||||
* To change this template use File | Settings | File Templates.
|
||||
*/
|
||||
public class UsageFilteringRuleProviderImpl extends UsageFilteringRuleProvider implements ApplicationComponent, JDOMExternalizable {
|
||||
public class UsageFilteringRuleProviderImpl implements UsageFilteringRuleProvider, JDOMExternalizable {
|
||||
public boolean SHOW_IMPORTS = true;
|
||||
public boolean SHOW_READ_ACCESS = true;
|
||||
public boolean SHOW_WRITE_ACCESS = true;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.intellij.usages.impl;
|
||||
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.usages.UsageView;
|
||||
import com.intellij.usages.impl.rules.*;
|
||||
import com.intellij.usages.rules.UsageGroupingRule;
|
||||
import com.intellij.usages.rules.UsageGroupingRuleProvider;
|
||||
import com.intellij.usages.UsageView;
|
||||
import org.jdom.Element;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -20,7 +19,7 @@ import java.util.List;
|
||||
* Time: 8:20:57 PM
|
||||
* To change this template use File | Settings | File Templates.
|
||||
*/
|
||||
public class UsageGroupingRuleProviderImpl extends UsageGroupingRuleProvider implements ApplicationComponent, JDOMExternalizable {
|
||||
public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider, JDOMExternalizable {
|
||||
public boolean GROUP_BY_USAGE_TYPE = true;
|
||||
public boolean GROUP_BY_MODULE = true;
|
||||
public boolean GROUP_BY_PACKAGE = true;
|
||||
|
||||
@@ -64,8 +64,6 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
private ButtonPanel myButtonPanel = new ButtonPanel();
|
||||
private boolean myChangesDetected = false;
|
||||
private List<Usage> myUsagesToFlush = new ArrayList<Usage>();
|
||||
private UsageGroupingRuleProvider myUsageGroupingRuleProvider = new CompositeUsageGroupingRuleProvider();
|
||||
private UsageFilteringRuleProvider myUsageFilteringRuleProvider = new CompositeUsageFilteringRuleProvider();
|
||||
|
||||
public UsageViewImpl(UsageViewPresentation presentation,
|
||||
UsageTarget[] targets,
|
||||
@@ -79,7 +77,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
myRootPanel = new MyPanel(myTree);
|
||||
|
||||
UsageViewTreeModelBuilder model = new UsageViewTreeModelBuilder(myPresentation, targets);
|
||||
myBuilder = new UsageNodeTreeBuilder(myUsageGroupingRuleProvider.getActiveRules(project), myUsageFilteringRuleProvider.getActiveRules(project), (GroupNode)model.getRoot());
|
||||
myBuilder = new UsageNodeTreeBuilder(getActiveGroupingRules(project), getActiveFilteringRules(project), (GroupNode)model.getRoot());
|
||||
myTree.setModel(model);
|
||||
|
||||
myRootPanel.setLayout(new BorderLayout());
|
||||
@@ -113,6 +111,24 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
}
|
||||
}
|
||||
|
||||
private UsageFilteringRule[] getActiveFilteringRules(final Project project) {
|
||||
final UsageFilteringRuleProvider[] providers = ApplicationManager.getApplication().getComponents(UsageFilteringRuleProvider.class);
|
||||
List<UsageFilteringRule> list = new ArrayList<UsageFilteringRule>();
|
||||
for (int i = 0; i < providers.length; i++) {
|
||||
list.addAll(Arrays.asList(providers[i].getActiveRules(project)));
|
||||
}
|
||||
return list.toArray(new UsageFilteringRule[list.size()]);
|
||||
}
|
||||
|
||||
private UsageGroupingRule[] getActiveGroupingRules(final Project project) {
|
||||
final UsageGroupingRuleProvider[] providers = ApplicationManager.getApplication().getComponents(UsageGroupingRuleProvider.class);
|
||||
List<UsageGroupingRule> list = new ArrayList<UsageGroupingRule>();
|
||||
for (int i = 0; i < providers.length; i++) {
|
||||
list.addAll(Arrays.asList(providers[i].getActiveRules(project)));
|
||||
}
|
||||
return list.toArray(new UsageGroupingRule[list.size()]);
|
||||
}
|
||||
|
||||
public void modelChanged(boolean isPropertyChange) {
|
||||
if (!isPropertyChange) {
|
||||
myChangesDetected = true;
|
||||
@@ -228,11 +244,21 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
}
|
||||
|
||||
private AnAction[] createGroupingActions() {
|
||||
return myUsageGroupingRuleProvider.createGroupingActions(this);
|
||||
final UsageGroupingRuleProvider[] providers = ApplicationManager.getApplication().getComponents(UsageGroupingRuleProvider.class);
|
||||
List<AnAction> list = new ArrayList<AnAction>();
|
||||
for (int i = 0; i < providers.length; i++) {
|
||||
list.addAll(Arrays.asList(providers[i].createGroupingActions(this)));
|
||||
}
|
||||
return list.toArray(new AnAction[list.size()]);
|
||||
}
|
||||
|
||||
private AnAction[] createFilteringActions() {
|
||||
return myUsageFilteringRuleProvider.createFilteringActions(this);
|
||||
final UsageFilteringRuleProvider[] providers = ApplicationManager.getApplication().getComponents(UsageFilteringRuleProvider.class);
|
||||
List<AnAction> list = new ArrayList<AnAction>();
|
||||
for (int i = 0; i < providers.length; i++) {
|
||||
list.addAll(Arrays.asList(providers[i].createFilteringActions(this)));
|
||||
}
|
||||
return list.toArray(new AnAction[list.size()]);
|
||||
}
|
||||
|
||||
public void rulesChanged() {
|
||||
@@ -240,8 +266,8 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
captureUsagesExpandState(new TreePath(myTree.getModel().getRoot()), states);
|
||||
Collection<Usage> allUsages = myUsageNodes.keySet();
|
||||
reset();
|
||||
myBuilder.setGroupingRules(myUsageGroupingRuleProvider.getActiveRules(myProject));
|
||||
myBuilder.setFilteringRules(myUsageFilteringRuleProvider.getActiveRules(myProject));
|
||||
myBuilder.setGroupingRules(getActiveGroupingRules(myProject));
|
||||
myBuilder.setFilteringRules(getActiveFilteringRules(myProject));
|
||||
for (Iterator<Usage> i = allUsages.iterator(); i.hasNext();) {
|
||||
Usage usage = i.next();
|
||||
if (!usage.isValid()) {
|
||||
|
||||
@@ -2,10 +2,11 @@ package com.intellij.usages.rules;
|
||||
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.usages.UsageView;
|
||||
|
||||
public abstract class UsageFilteringRuleProvider {
|
||||
public abstract UsageFilteringRule[] getActiveRules(Project project);
|
||||
public interface UsageFilteringRuleProvider extends ApplicationComponent{
|
||||
UsageFilteringRule[] getActiveRules(Project project);
|
||||
|
||||
public abstract AnAction[] createFilteringActions(UsageView view);
|
||||
AnAction[] createFilteringActions(UsageView view);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.intellij.usages.rules;
|
||||
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.usages.UsageView;
|
||||
|
||||
/**
|
||||
@@ -11,8 +12,8 @@ import com.intellij.usages.UsageView;
|
||||
* Time: 8:19:16 PM
|
||||
* To change this template use File | Settings | File Templates.
|
||||
*/
|
||||
public abstract class UsageGroupingRuleProvider {
|
||||
public abstract UsageGroupingRule[] getActiveRules(Project project);
|
||||
public interface UsageGroupingRuleProvider extends ApplicationComponent{
|
||||
UsageGroupingRule[] getActiveRules(Project project);
|
||||
|
||||
public abstract AnAction[] createGroupingActions(UsageView view);
|
||||
AnAction[] createGroupingActions(UsageView view);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user