mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup
This commit is contained in:
@@ -41,8 +41,8 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
private final Object lock = new Object();
|
||||
private final UsageGroup myGroup;
|
||||
private final int myRuleIndex;
|
||||
private final Map<UsageGroup, GroupNode> mySubgroupNodes = new THashMap<UsageGroup, GroupNode>();
|
||||
private final List<UsageNode> myUsageNodes = new SmartList<UsageNode>();
|
||||
private final Map<UsageGroup, GroupNode> mySubgroupNodes = new THashMap<>();
|
||||
private final List<UsageNode> myUsageNodes = new SmartList<>();
|
||||
@NotNull private final UsageViewTreeModelBuilder myUsageTreeModel;
|
||||
private volatile int myRecursiveUsageCount;
|
||||
|
||||
@@ -67,7 +67,7 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
if (children == null) {
|
||||
return result;
|
||||
}
|
||||
return result + children.subList(0, Math.min(10, children.size())).toString();
|
||||
return result + children.subList(0, Math.min(10, children.size()));
|
||||
}
|
||||
|
||||
public GroupNode addGroup(@NotNull UsageGroup group, int ruleIndex, @NotNull Consumer<Runnable> edtQueue) {
|
||||
@@ -85,7 +85,7 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
|
||||
void addNode(@NotNull final DefaultMutableTreeNode node, @NotNull Consumer<Runnable> edtQueue) {
|
||||
if (!getBuilder().isDetachedMode()) {
|
||||
edtQueue.consume(() -> myTreeModel.insertNodeInto(node, GroupNode.this, getNodeInsertionIndex(node)));
|
||||
edtQueue.consume(() -> myTreeModel.insertNodeInto(node, this, getNodeInsertionIndex(node)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,8 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
myTreeModel.reload(this);
|
||||
}
|
||||
|
||||
@Nullable UsageNode tryMerge(@NotNull Usage usage) {
|
||||
@Nullable
|
||||
private UsageNode tryMerge(@NotNull Usage usage) {
|
||||
if (!(usage instanceof MergeableUsage)) return null;
|
||||
MergeableUsage mergeableUsage = (MergeableUsage)usage;
|
||||
for (UsageNode node : myUsageNodes) {
|
||||
@@ -122,7 +123,7 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean removeUsage(@NotNull UsageNode usage) {
|
||||
boolean removeUsage(@NotNull UsageNode usage) {
|
||||
ApplicationManager.getApplication().assertIsDispatchThread();
|
||||
final Collection<GroupNode> groupNodes = mySubgroupNodes.values();
|
||||
for(Iterator<GroupNode> iterator = groupNodes.iterator();iterator.hasNext();) {
|
||||
@@ -151,7 +152,7 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean removeUsagesBulk(@NotNull Set<UsageNode> usages) {
|
||||
boolean removeUsagesBulk(@NotNull Set<UsageNode> usages) {
|
||||
boolean removed;
|
||||
synchronized (lock) {
|
||||
removed = myUsageNodes.removeAll(usages);
|
||||
@@ -201,7 +202,7 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
|
||||
if (!getBuilder().isDetachedMode()) {
|
||||
edtQueue.consume(() -> {
|
||||
myTreeModel.insertNodeInto(node, GroupNode.this, getNodeIndex(node));
|
||||
myTreeModel.insertNodeInto(node, this, getNodeIndex(node));
|
||||
incrementUsageCount();
|
||||
});
|
||||
}
|
||||
@@ -247,7 +248,7 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
StringBuffer result = new StringBuffer();
|
||||
StringUtil.repeatSymbol(result, ' ', indent);
|
||||
|
||||
if (myGroup != null) result.append(myGroup.toString());
|
||||
if (myGroup != null) result.append(myGroup);
|
||||
result.append("[");
|
||||
result.append(lineSeparator);
|
||||
|
||||
@@ -323,7 +324,7 @@ public class GroupNode extends Node implements Navigatable, Comparable<GroupNode
|
||||
return myGroup;
|
||||
}
|
||||
|
||||
public int getRecursiveUsageCount() {
|
||||
int getRecursiveUsageCount() {
|
||||
return myRecursiveUsageCount;
|
||||
}
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ public abstract class Node extends DefaultMutableTreeNode {
|
||||
|
||||
myCachedText = text;
|
||||
updateNotify();
|
||||
edtQueue.consume(() -> myTreeModel.nodeChanged(Node.this));
|
||||
edtQueue.consume(() -> myTreeModel.nodeChanged(this));
|
||||
}
|
||||
setFlag(UPDATED_MASK, true);
|
||||
}
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
*/
|
||||
public class SyntaxHighlighterOverEditorHighlighter implements SyntaxHighlighter {
|
||||
private final Lexer lexer;
|
||||
private LayeredHighlighterIterator layeredHighlighterIterator = null;
|
||||
private LayeredHighlighterIterator layeredHighlighterIterator;
|
||||
private final SyntaxHighlighter highlighter;
|
||||
|
||||
public SyntaxHighlighterOverEditorHighlighter(SyntaxHighlighter _highlighter, VirtualFile file, Project project) {
|
||||
|
||||
@@ -45,7 +45,7 @@ public class UsageFilteringRuleProviderImpl implements UsageFilteringRuleProvide
|
||||
@Override
|
||||
@NotNull
|
||||
public UsageFilteringRule[] getActiveRules(@NotNull Project project) {
|
||||
final List<UsageFilteringRule> rules = new ArrayList<UsageFilteringRule>();
|
||||
final List<UsageFilteringRule> rules = new ArrayList<>();
|
||||
|
||||
if (!myReadWriteState.isShowReadAccess()) {
|
||||
rules.add(new ReadAccessFilteringRule());
|
||||
@@ -77,22 +77,22 @@ public class UsageFilteringRuleProviderImpl implements UsageFilteringRuleProvide
|
||||
private boolean myShowReadAccess = true;
|
||||
private boolean myShowWriteAccess = true;
|
||||
|
||||
public boolean isShowReadAccess() {
|
||||
boolean isShowReadAccess() {
|
||||
return myShowReadAccess;
|
||||
}
|
||||
|
||||
public void setShowReadAccess(final boolean showReadAccess) {
|
||||
void setShowReadAccess(final boolean showReadAccess) {
|
||||
myShowReadAccess = showReadAccess;
|
||||
if (!showReadAccess) {
|
||||
myShowWriteAccess = true;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isShowWriteAccess() {
|
||||
boolean isShowWriteAccess() {
|
||||
return myShowWriteAccess;
|
||||
}
|
||||
|
||||
public void setShowWriteAccess(final boolean showWriteAccess) {
|
||||
void setShowWriteAccess(final boolean showWriteAccess) {
|
||||
myShowWriteAccess = showWriteAccess;
|
||||
if (!showWriteAccess) {
|
||||
myShowReadAccess = true;
|
||||
|
||||
@@ -55,7 +55,7 @@ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider
|
||||
@Override
|
||||
@NotNull
|
||||
public UsageGroupingRule[] getActiveRules(Project project) {
|
||||
List<UsageGroupingRule> rules = new ArrayList<UsageGroupingRule>();
|
||||
List<UsageGroupingRule> rules = new ArrayList<>();
|
||||
if (supportsNonCodeRule()) {
|
||||
rules.add(new NonCodeUsageGroupingRule(project));
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class UsageNode extends Node implements Comparable<UsageNode>, Navigatabl
|
||||
}
|
||||
}
|
||||
|
||||
public void setUsageExcluded(boolean usageExcluded) {
|
||||
void setUsageExcluded(boolean usageExcluded) {
|
||||
myUsageExcluded = usageExcluded;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ class UsageNodeTreeBuilder {
|
||||
myGroupingRules = rules;
|
||||
}
|
||||
|
||||
public void setFilteringRules(@NotNull UsageFilteringRule[] rules) {
|
||||
void setFilteringRules(@NotNull UsageFilteringRule[] rules) {
|
||||
myFilteringRules = rules;
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,6 @@ import com.intellij.usages.*;
|
||||
import com.intellij.usages.rules.*;
|
||||
import com.intellij.util.*;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.Convertor;
|
||||
import com.intellij.util.containers.TransferToEDTQueue;
|
||||
import com.intellij.util.enumeration.EmptyEnumeration;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
@@ -74,7 +73,10 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.*;
|
||||
import javax.swing.event.TreeExpansionEvent;
|
||||
import javax.swing.event.TreeExpansionListener;
|
||||
import javax.swing.event.TreeSelectionEvent;
|
||||
import javax.swing.event.TreeSelectionListener;
|
||||
import javax.swing.plaf.TreeUI;
|
||||
import javax.swing.plaf.basic.BasicTreeUI;
|
||||
import javax.swing.tree.*;
|
||||
@@ -108,7 +110,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
private final ExclusionHandler<DefaultMutableTreeNode> myExclusionHandler;
|
||||
private final UsageModelTracker myModelTracker;
|
||||
private final Map<Usage, UsageNode> myUsageNodes = new ConcurrentHashMap<Usage, UsageNode>();
|
||||
private final Map<Usage, UsageNode> myUsageNodes = new ConcurrentHashMap<>();
|
||||
public static final UsageNode NULL_NODE = new UsageNode(NullUsage.INSTANCE, new UsageViewTreeModelBuilder(new UsageViewPresentation(), UsageTarget.EMPTY_ARRAY));
|
||||
private final ButtonPanel myButtonPanel = new ButtonPanel();
|
||||
private final JComponent myAdditionalComponent = new JPanel(new BorderLayout());
|
||||
@@ -189,7 +191,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
// hack to avoid quadratic expandAll()
|
||||
@Override
|
||||
public Enumeration<TreePath> getExpandedDescendants(TreePath parent) {
|
||||
return expandingAll ? EmptyEnumeration.<TreePath>getInstance() : super.getExpandedDescendants(parent);
|
||||
return expandingAll ? EmptyEnumeration.getInstance() : super.getExpandedDescendants(parent);
|
||||
}
|
||||
};
|
||||
myRootPanel = new MyPanel(myTree);
|
||||
@@ -202,7 +204,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
myBuilder = new UsageNodeTreeBuilder(myTargets, getActiveGroupingRules(project), getActiveFilteringRules(project), myRoot, myProject);
|
||||
|
||||
final MessageBusConnection messageBusConnection = myProject.getMessageBus().connect(this);
|
||||
messageBusConnection.subscribe(UsageFilteringRuleProvider.RULES_CHANGED, () -> rulesChanged());
|
||||
messageBusConnection.subscribe(UsageFilteringRuleProvider.RULES_CHANGED, this::rulesChanged);
|
||||
|
||||
myUsageViewTreeCellRenderer = new UsageViewTreeCellRenderer(this);
|
||||
if (!myPresentation.isDetachedMode()) {
|
||||
@@ -231,10 +233,10 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
myTree.setCellRenderer(myUsageViewTreeCellRenderer);
|
||||
collapseAll();
|
||||
|
||||
myModelTracker.addListener(UsageViewImpl.this);
|
||||
myModelTracker.addListener(this);
|
||||
|
||||
if (myPresentation.isShowCancelButton()) {
|
||||
addButtonToLowerPane(() -> close(), UsageViewBundle.message("usage.view.cancel.button"));
|
||||
addButtonToLowerPane(this::close, UsageViewBundle.message("usage.view.cancel.button"));
|
||||
}
|
||||
|
||||
myTree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
|
||||
@@ -249,7 +251,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
}
|
||||
});
|
||||
}
|
||||
myTransferToEDTQueue = new TransferToEDTQueue<Runnable>("Insert usages", runnable -> {
|
||||
myTransferToEDTQueue = new TransferToEDTQueue<>("Insert usages", runnable -> {
|
||||
runnable.run();
|
||||
return true;
|
||||
}, o -> isDisposed || project.isDisposed(), 200);
|
||||
@@ -336,12 +338,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
// add reaction to scrolling:
|
||||
// since the UsageViewTreeCellRenderer ignores invisible nodes (outside the viewport), their preferred size is incorrect
|
||||
// and we need to recalculate them when the node scrolled into the visible rectangle
|
||||
treePane.getViewport().addChangeListener(new ChangeListener() {
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
clearRendererCache();
|
||||
}
|
||||
});
|
||||
treePane.getViewport().addChangeListener(e -> clearRendererCache());
|
||||
myTree.addTreeExpansionListener(new TreeExpansionListener() {
|
||||
@Override
|
||||
public void treeExpanded(TreeExpansionEvent event) {
|
||||
@@ -370,7 +367,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
};
|
||||
|
||||
UsageContextPanel.Provider[] extensions = Extensions.getExtensions(UsageContextPanel.Provider.EP_NAME, myProject);
|
||||
myUsageContextPanelProviders = ContainerUtil.filter(extensions, provider -> provider.isAvailableFor(UsageViewImpl.this));
|
||||
myUsageContextPanelProviders = ContainerUtil.filter(extensions, provider -> provider.isAvailableFor(this));
|
||||
for (UsageContextPanel.Provider provider : myUsageContextPanelProviders) {
|
||||
JComponent component;
|
||||
if (myCurrentUsageContextProvider == null || myCurrentUsageContextProvider == provider) {
|
||||
@@ -386,14 +383,11 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
}
|
||||
int index = myUsageContextPanelProviders.indexOf(myCurrentUsageContextProvider);
|
||||
tabbedPane.setSelectedIndex(index);
|
||||
tabbedPane.addChangeListener(new ChangeListener() {
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
int currentIndex = tabbedPane.getSelectedIndex();
|
||||
UsageContextPanel.Provider selectedProvider = myUsageContextPanelProviders.get(currentIndex);
|
||||
if (selectedProvider != myCurrentUsageContextProvider) {
|
||||
tabSelected(selectedProvider);
|
||||
}
|
||||
tabbedPane.addChangeListener(e -> {
|
||||
int currentIndex = tabbedPane.getSelectedIndex();
|
||||
UsageContextPanel.Provider selectedProvider = myUsageContextPanelProviders.get(currentIndex);
|
||||
if (selectedProvider != myCurrentUsageContextProvider) {
|
||||
tabSelected(selectedProvider);
|
||||
}
|
||||
});
|
||||
tabbedPane.setBorder(IdeBorderFactory.createBorder(SideBorder.LEFT));
|
||||
@@ -426,7 +420,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
private static UsageFilteringRule[] getActiveFilteringRules(final Project project) {
|
||||
final UsageFilteringRuleProvider[] providers = Extensions.getExtensions(UsageFilteringRuleProvider.EP_NAME);
|
||||
List<UsageFilteringRule> list = new ArrayList<UsageFilteringRule>(providers.length);
|
||||
List<UsageFilteringRule> list = new ArrayList<>(providers.length);
|
||||
for (UsageFilteringRuleProvider provider : providers) {
|
||||
ContainerUtil.addAll(list, provider.getActiveRules(project));
|
||||
}
|
||||
@@ -435,7 +429,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
private static UsageGroupingRule[] getActiveGroupingRules(@NotNull final Project project) {
|
||||
final UsageGroupingRuleProvider[] providers = Extensions.getExtensions(UsageGroupingRuleProvider.EP_NAME);
|
||||
List<UsageGroupingRule> list = new ArrayList<UsageGroupingRule>(providers.length);
|
||||
List<UsageGroupingRule> list = new ArrayList<>(providers.length);
|
||||
for (UsageGroupingRuleProvider provider : providers) {
|
||||
ContainerUtil.addAll(list, provider.getActiveRules(project));
|
||||
}
|
||||
@@ -515,17 +509,14 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
}
|
||||
});
|
||||
|
||||
TreeUIHelper.getInstance().installTreeSpeedSearch(myTree, new Convertor<TreePath, String>() {
|
||||
@Override
|
||||
public String convert(TreePath o) {
|
||||
Object value = o.getLastPathComponent();
|
||||
TreeCellRenderer renderer = myTree.getCellRenderer();
|
||||
if (renderer instanceof UsageViewTreeCellRenderer) {
|
||||
UsageViewTreeCellRenderer coloredRenderer = (UsageViewTreeCellRenderer)renderer;
|
||||
return coloredRenderer.getPlainTextForNode(value);
|
||||
}
|
||||
return value == null ? null : value.toString();
|
||||
TreeUIHelper.getInstance().installTreeSpeedSearch(myTree, o -> {
|
||||
Object value = o.getLastPathComponent();
|
||||
TreeCellRenderer renderer = myTree.getCellRenderer();
|
||||
if (renderer instanceof UsageViewTreeCellRenderer) {
|
||||
UsageViewTreeCellRenderer coloredRenderer = (UsageViewTreeCellRenderer)renderer;
|
||||
return coloredRenderer.getPlainTextForNode(value);
|
||||
}
|
||||
return value == null ? null : value.toString();
|
||||
}, true);
|
||||
}
|
||||
|
||||
@@ -594,7 +585,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
}
|
||||
}
|
||||
|
||||
public void scheduleDisposeOnClose(@NotNull Disposable disposable) {
|
||||
private void scheduleDisposeOnClose(@NotNull Disposable disposable) {
|
||||
Disposer.register(this, disposable);
|
||||
}
|
||||
|
||||
@@ -631,12 +622,9 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
final AnAction expandAllAction = actionsManager.createExpandAllAction(treeExpander, component);
|
||||
final AnAction collapseAllAction = actionsManager.createCollapseAllAction(treeExpander, component);
|
||||
|
||||
scheduleDisposeOnClose(new Disposable() {
|
||||
@Override
|
||||
public void dispose() {
|
||||
expandAllAction.unregisterCustomShortcutSet(component);
|
||||
collapseAllAction.unregisterCustomShortcutSet(component);
|
||||
}
|
||||
scheduleDisposeOnClose(() -> {
|
||||
expandAllAction.unregisterCustomShortcutSet(component);
|
||||
collapseAllAction.unregisterCustomShortcutSet(component);
|
||||
});
|
||||
|
||||
|
||||
@@ -709,7 +697,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
@NotNull
|
||||
private AnAction[] createGroupingActions() {
|
||||
final UsageGroupingRuleProvider[] providers = Extensions.getExtensions(UsageGroupingRuleProvider.EP_NAME);
|
||||
List<AnAction> list = new ArrayList<AnAction>(providers.length);
|
||||
List<AnAction> list = new ArrayList<>(providers.length);
|
||||
for (UsageGroupingRuleProvider provider : providers) {
|
||||
ContainerUtil.addAll(list, provider.createGroupingActions(this));
|
||||
}
|
||||
@@ -718,9 +706,9 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
private void rulesChanged() {
|
||||
ApplicationManager.getApplication().assertIsDispatchThread();
|
||||
final List<UsageState> states = new ArrayList<UsageState>();
|
||||
final List<UsageState> states = new ArrayList<>();
|
||||
captureUsagesExpandState(new TreePath(myTree.getModel().getRoot()), states);
|
||||
final List<Usage> allUsages = new ArrayList<Usage>(myUsageNodes.keySet());
|
||||
final List<Usage> allUsages = new ArrayList<>(myUsageNodes.keySet());
|
||||
Collections.sort(allUsages, USAGE_COMPARATOR);
|
||||
final Set<Usage> excludedUsages = getExcludedUsages();
|
||||
reset();
|
||||
@@ -974,7 +962,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
@Override
|
||||
public void removeUsagesBulk(@NotNull Collection<Usage> usages) {
|
||||
final Set<UsageNode> nodes = new THashSet<UsageNode>(usages.size());
|
||||
final Set<UsageNode> nodes = new THashSet<>(usages.size());
|
||||
for (Usage usage : usages) {
|
||||
UsageNode node = myUsageNodes.remove(usage);
|
||||
if (node != null && node != NULL_NODE) {
|
||||
@@ -1001,7 +989,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
@Override
|
||||
public void includeUsages(@NotNull Usage[] usages) {
|
||||
List<TreeNode> nodes = new ArrayList<TreeNode>(usages.length);
|
||||
List<TreeNode> nodes = new ArrayList<>(usages.length);
|
||||
for (Usage usage : usages) {
|
||||
final UsageNode node = myUsageNodes.get(usage);
|
||||
if (node != NULL_NODE && node != null) {
|
||||
@@ -1014,7 +1002,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
@Override
|
||||
public void excludeUsages(@NotNull Usage[] usages) {
|
||||
List<TreeNode> nodes = new ArrayList<TreeNode>(usages.length);
|
||||
List<TreeNode> nodes = new ArrayList<>(usages.length);
|
||||
for (Usage usage : usages) {
|
||||
final UsageNode node = myUsageNodes.get(usage);
|
||||
if (node != NULL_NODE && node != null) {
|
||||
@@ -1027,7 +1015,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
@Override
|
||||
public void selectUsages(@NotNull Usage[] usages) {
|
||||
List<TreePath> paths = new LinkedList<TreePath>();
|
||||
List<TreePath> paths = new LinkedList<>();
|
||||
|
||||
for (Usage usage : usages) {
|
||||
final UsageNode node = myUsageNodes.get(usage);
|
||||
@@ -1128,7 +1116,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
myUpdateAlarm.addRequest(() -> {
|
||||
if (myProject.isDisposed()) return;
|
||||
PsiDocumentManagerBase documentManager = (PsiDocumentManagerBase)PsiDocumentManager.getInstance(myProject);
|
||||
documentManager.cancelAndRunWhenAllCommitted("UpdateUsageView", () -> updateImmediately());
|
||||
documentManager.cancelAndRunWhenAllCommitted("UpdateUsageView", this::updateImmediately);
|
||||
}, 300);
|
||||
}
|
||||
|
||||
@@ -1280,7 +1268,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
@NotNull
|
||||
private Set<Usage> getReadOnlyUsages() {
|
||||
final Set<Usage> result = new THashSet<Usage>();
|
||||
final Set<Usage> result = new THashSet<>();
|
||||
final Set<Map.Entry<Usage,UsageNode>> usages = myUsageNodes.entrySet();
|
||||
for (Map.Entry<Usage, UsageNode> entry : usages) {
|
||||
Usage usage = entry.getKey();
|
||||
@@ -1295,7 +1283,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
@NotNull
|
||||
private Set<VirtualFile> getReadOnlyUsagesFiles() {
|
||||
Set<Usage> usages = getReadOnlyUsages();
|
||||
Set<VirtualFile> result = new THashSet<VirtualFile>();
|
||||
Set<VirtualFile> result = new THashSet<>();
|
||||
for (Usage usage : usages) {
|
||||
if (usage instanceof UsageInFile) {
|
||||
UsageInFile usageInFile = (UsageInFile)usage;
|
||||
@@ -1319,7 +1307,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
@Override
|
||||
@NotNull
|
||||
public Set<Usage> getExcludedUsages() {
|
||||
Set<Usage> result = new THashSet<Usage>();
|
||||
Set<Usage> result = new THashSet<>();
|
||||
for (Map.Entry<Usage, UsageNode> entry : myUsageNodes.entrySet()) {
|
||||
UsageNode node = entry.getValue();
|
||||
Usage usage = entry.getKey();
|
||||
@@ -1349,7 +1337,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
TreePath[] leadSelectionPath = myTree.getSelectionPaths();
|
||||
if (leadSelectionPath == null || leadSelectionPath.length == 0) return null;
|
||||
|
||||
final List<Node> result = new ArrayList<Node>();
|
||||
final List<Node> result = new ArrayList<>();
|
||||
for (TreePath comp : leadSelectionPath) {
|
||||
final Object lastPathComponent = comp.getLastPathComponent();
|
||||
if (lastPathComponent instanceof Node) {
|
||||
@@ -1368,7 +1356,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
return null;
|
||||
}
|
||||
|
||||
Set<Usage> usages = new THashSet<Usage>();
|
||||
Set<Usage> usages = new THashSet<>();
|
||||
for (TreePath selectionPath : selectionPaths) {
|
||||
DefaultMutableTreeNode node = (DefaultMutableTreeNode)selectionPath.getLastPathComponent();
|
||||
collectUsages(node, usages);
|
||||
@@ -1386,7 +1374,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
@Override
|
||||
@NotNull
|
||||
public List<Usage> getSortedUsages() {
|
||||
List<Usage> usages = new ArrayList<Usage>(getUsages());
|
||||
List<Usage> usages = new ArrayList<>(getUsages());
|
||||
Collections.sort(usages, USAGE_COMPARATOR);
|
||||
return usages;
|
||||
}
|
||||
@@ -1410,7 +1398,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
TreePath[] selectionPaths = myTree.getSelectionPaths();
|
||||
if (selectionPaths == null) return null;
|
||||
|
||||
Set<UsageTarget> targets = new THashSet<UsageTarget>();
|
||||
Set<UsageTarget> targets = new THashSet<>();
|
||||
for (TreePath selectionPath : selectionPaths) {
|
||||
Object lastPathComponent = selectionPath.getLastPathComponent();
|
||||
if (lastPathComponent instanceof UsageTargetNode) {
|
||||
@@ -1440,7 +1428,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
if (nodes == null) {
|
||||
return null;
|
||||
}
|
||||
final List<Navigatable> result = new ArrayList<Navigatable>();
|
||||
final List<Navigatable> result = new ArrayList<>();
|
||||
for (final Node node : nodes) {
|
||||
/*
|
||||
if (!node.isDataValid()) {
|
||||
@@ -1461,7 +1449,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
|
||||
private class MyPanel extends JPanel implements TypeSafeDataProvider, OccurenceNavigator,Disposable{
|
||||
@Nullable private OccurenceNavigatorSupport mySupport;
|
||||
private CopyProvider myCopyProvider;
|
||||
private final CopyProvider myCopyProvider;
|
||||
|
||||
private MyPanel(@NotNull JTree tree) {
|
||||
mySupport = new OccurenceNavigatorSupport(tree) {
|
||||
@@ -1618,12 +1606,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
|
||||
DumbService.getInstance(myProject).makeDumbAware(button, UsageViewImpl.this);
|
||||
|
||||
button.setFocusable(false);
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
runnable.run();
|
||||
}
|
||||
});
|
||||
button.addActionListener(e -> runnable.run());
|
||||
|
||||
add(button, index);
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ public class UsageViewManagerImpl extends UsageViewManager {
|
||||
@NotNull final FindUsagesProcessPresentation processPresentation,
|
||||
@Nullable final UsageViewStateListener listener) {
|
||||
final SearchScope searchScopeToWarnOfFallingOutOf = getMaxSearchScopeToWarnOfFallingOutOf(searchFor);
|
||||
final AtomicReference<UsageViewImpl> usageViewRef = new AtomicReference<UsageViewImpl>();
|
||||
final AtomicReference<UsageViewImpl> usageViewRef = new AtomicReference<>();
|
||||
|
||||
Task.Backgroundable task = new Task.Backgroundable(myProject, getProgressTitle(presentation), true, new SearchInBackgroundOption()) {
|
||||
@Override
|
||||
@@ -243,7 +243,7 @@ public class UsageViewManagerImpl extends UsageViewManager {
|
||||
if (file != null) {
|
||||
return isFileInScope(file, searchScope);
|
||||
}
|
||||
else if(element != null) {
|
||||
if (element != null) {
|
||||
return searchScope instanceof EverythingGlobalScope ||
|
||||
searchScope instanceof ProjectScopeImpl ||
|
||||
searchScope instanceof ProjectAndLibrariesScope;
|
||||
@@ -258,9 +258,7 @@ public class UsageViewManagerImpl extends UsageViewManager {
|
||||
if (searchScope instanceof LocalSearchScope) {
|
||||
return ((LocalSearchScope)searchScope).isInScope(file);
|
||||
}
|
||||
else {
|
||||
return ((GlobalSearchScope)searchScope).contains(file);
|
||||
}
|
||||
return ((GlobalSearchScope)searchScope).contains(file);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -49,7 +49,7 @@ class UsageViewTreeCellRenderer extends ColoredTreeCellRenderer {
|
||||
private static final SimpleTextAttributes ourNumberOfUsagesAttribute = SimpleTextAttributes.fromTextAttributes(ourColorsScheme.getAttributes(UsageTreeColors.NUMBER_OF_USAGES));
|
||||
private static final SimpleTextAttributes ourInvalidAttributesDarcula = new SimpleTextAttributes(null, DarculaColors.RED, null, ourInvalidAttributes.getStyle());
|
||||
private static final Insets STANDARD_IPAD_NOWIFI = new Insets(1, 2, 1, 2);
|
||||
private boolean myRowBoundsCalled = false;
|
||||
private boolean myRowBoundsCalled;
|
||||
|
||||
private final UsageViewPresentation myPresentation;
|
||||
private final UsageView myView;
|
||||
|
||||
@@ -18,7 +18,6 @@ package com.intellij.usages.impl;
|
||||
import com.intellij.usages.UsageTarget;
|
||||
import com.intellij.usages.UsageViewPresentation;
|
||||
import com.intellij.usages.UsageViewSettings;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
@@ -55,8 +54,8 @@ public class UsageViewTreeModelBuilder extends DefaultTreeModel {
|
||||
myDetachedMode = presentation.isDetachedMode();
|
||||
}
|
||||
|
||||
public static class TargetsRootNode extends DefaultMutableTreeNode {
|
||||
public TargetsRootNode(String name) {
|
||||
static class TargetsRootNode extends DefaultMutableTreeNode {
|
||||
TargetsRootNode(String name) {
|
||||
super(name);
|
||||
}
|
||||
}
|
||||
@@ -71,10 +70,10 @@ public class UsageViewTreeModelBuilder extends DefaultTreeModel {
|
||||
myTargetsNode.add(targetNode);
|
||||
myTargetNodes[i] = targetNode;
|
||||
}
|
||||
myRootNode.addNode(myTargetsNode, runnable -> UIUtil.invokeLaterIfNeeded(runnable));
|
||||
myRootNode.addNode(myTargetsNode, UIUtil::invokeLaterIfNeeded);
|
||||
}
|
||||
|
||||
public UsageNode getFirstUsageNode() {
|
||||
UsageNode getFirstUsageNode() {
|
||||
return (UsageNode)getFirstChildOfType(myRootNode, UsageNode.class);
|
||||
}
|
||||
|
||||
@@ -93,7 +92,7 @@ public class UsageViewTreeModelBuilder extends DefaultTreeModel {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean areTargetsValid() {
|
||||
boolean areTargetsValid() {
|
||||
if (myTargetNodes == null) return true;
|
||||
for (UsageTargetNode targetNode : myTargetNodes) {
|
||||
if (!targetNode.isValid()) return false;
|
||||
@@ -119,11 +118,11 @@ public class UsageViewTreeModelBuilder extends DefaultTreeModel {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isDetachedMode() {
|
||||
boolean isDetachedMode() {
|
||||
return myDetachedMode;
|
||||
}
|
||||
|
||||
public boolean isFilterDuplicatedLine() {
|
||||
boolean isFilterDuplicatedLine() {
|
||||
return myPresentation.isMergeDupLinesAvailable() && UsageViewSettings.getInstance().isFilterDuplicatedLine();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user