From 2ae3a61cdba6912cc6d976b2acba1d28206c4862 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Tue, 9 Oct 2018 16:38:42 +0300 Subject: [PATCH] use concrete classes to simplify finding the root cause of tree issues --- .../configuration/artifacts/sourceItems/SourceItemsTree.java | 4 +++- .../util/ui/classpath/ChooseLibrariesDialogBase.java | 4 +++- .../service/task/ui/ConfigureTasksActivationDialog.java | 4 +++- .../externalSystem/view/ExternalProjectsStructure.java | 4 +++- .../src/com/intellij/build/BuildTreeConsoleView.java | 4 +++- .../intellij/execution/dashboard/RunDashboardContent.java | 1 + .../src/com/intellij/ide/util/treeView/AbstractTreeUi.java | 5 +++++ .../com/intellij/ide/util/treeView/AbstractTreeUpdater.java | 2 +- .../src/com/intellij/projectView/TestProjectViewPSIPane.java | 4 +++- .../plugins/groovy/mvc/projectView/MvcProjectViewPane.java | 4 +++- .../idea/maven/navigator/MavenProjectsStructure.java | 4 +++- .../src/com/intellij/util/xml/tree/DomModelTreeView.java | 4 +++- 12 files changed, 34 insertions(+), 10 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java index ab196a875918..a2d7ec79aae3 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java @@ -55,7 +55,9 @@ public class SourceItemsTree extends SimpleDnDAwareTree implements AdvancedDnDSo public SourceItemsTree(ArtifactEditorContext editorContext, ArtifactEditorImpl artifactsEditor) { myArtifactsEditor = artifactsEditor; - myBuilder = new SimpleTreeBuilder(this, this.getBuilderModel(), new SourceItemsTreeStructure(editorContext, artifactsEditor), new WeightBasedComparator(true)); + myBuilder = new SimpleTreeBuilder(this, this.getBuilderModel(), new SourceItemsTreeStructure(editorContext, artifactsEditor), new WeightBasedComparator(true)) { + // unique class to simplify search through the logs + }; setRootVisible(false); setShowsRootHandles(true); Disposer.register(this, myBuilder); diff --git a/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java b/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java index 520e881874c2..89dd30dd1491 100644 --- a/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java +++ b/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java @@ -169,7 +169,9 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper { protected JComponent createCenterPanel() { myBuilder = new SimpleTreeBuilder(myTree, new DefaultTreeModel(new DefaultMutableTreeNode()), new MyStructure(getProject()), - WeightBasedComparator.FULL_INSTANCE); + WeightBasedComparator.FULL_INSTANCE) { + // unique class to simplify search through the logs + }; myBuilder.initRootNode(); myTree.setDragEnabled(false); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/task/ui/ConfigureTasksActivationDialog.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/task/ui/ConfigureTasksActivationDialog.java index 34433cfdf928..51eca4a751e9 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/task/ui/ConfigureTasksActivationDialog.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/task/ui/ConfigureTasksActivationDialog.java @@ -142,7 +142,9 @@ public class ConfigureTasksActivationDialog extends DialogWrapper { tree.setModel(treeModel); tree.setRootVisible(false); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); - final AbstractTreeBuilder treeBuilder = new AbstractTreeBuilder(tree, treeModel, new SimpleTreeStructure.Impl(root), null); + final AbstractTreeBuilder treeBuilder = new AbstractTreeBuilder(tree, treeModel, new SimpleTreeStructure.Impl(root), null) { + // unique class to simplify search through the logs + }; Disposer.register(project, treeBuilder); return treeBuilder; } diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsStructure.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsStructure.java index e44d1a7577d2..fc28f5e31be1 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsStructure.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsStructure.java @@ -57,7 +57,9 @@ public class ExternalProjectsStructure extends SimpleTreeStructure implements Di myExternalProjectsView = externalProjectsView; myRoot = new RootNode(); - myTreeBuilder = new SimpleTreeBuilder(myTree, (DefaultTreeModel)myTree.getModel(), this, null); + myTreeBuilder = new SimpleTreeBuilder(myTree, (DefaultTreeModel)myTree.getModel(), this, null) { + // unique class to simplify search through the logs + }; Disposer.register(myProject, myTreeBuilder); myTreeBuilder.initRoot(); myTreeBuilder.expand(myRoot, null); diff --git a/platform/lang-impl/src/com/intellij/build/BuildTreeConsoleView.java b/platform/lang-impl/src/com/intellij/build/BuildTreeConsoleView.java index a166eae3e376..afd463adf088 100644 --- a/platform/lang-impl/src/com/intellij/build/BuildTreeConsoleView.java +++ b/platform/lang-impl/src/com/intellij/build/BuildTreeConsoleView.java @@ -190,7 +190,9 @@ public class BuildTreeConsoleView implements ConsoleView, DataProvider, BuildCon TreeUtil.installActions(tree); myTreeStructure = new SimpleTreeStructure.Impl(rootNode); - myBuilder = new SimpleTreeBuilder(tree, model, myTreeStructure, null); + myBuilder = new SimpleTreeBuilder(tree, model, myTreeStructure, null) { + // unique class to simplify search through the logs + }; Disposer.register(this, myBuilder); myBuilder.initRootNode(); myBuilder.updateFromRoot(); diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java b/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java index ebc19834650f..a52361c74e49 100644 --- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java +++ b/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java @@ -384,6 +384,7 @@ public class RunDashboardContent extends JPanel implements TreeContent, Disposab private void setupBuilder() { RunDashboardTreeStructure structure = new RunDashboardTreeStructure(myProject, myGroupers, ContainerUtil.newSmartList(myStatusFilter)); myBuilder = new AbstractTreeBuilder(myTree, myTreeModel, structure, IndexComparator.INSTANCE) { + // unique class to simplify search through the logs @Override protected boolean isAutoExpandNode(NodeDescriptor nodeDescriptor) { return super.isAutoExpandNode(nodeDescriptor) || diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java index 6d2d5fd8bbf2..75af75483829 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java @@ -196,6 +196,11 @@ public class AbstractTreeUi { private UiActivityMonitor myActivityMonitor; @NonNls private UiActivity myActivityId; + @Override + public String toString() { + return "AbstractTreeUi: builder = " + myBuilder; + } + protected void init(@NotNull AbstractTreeBuilder builder, @NotNull JTree tree, @NotNull DefaultTreeModel treeModel, diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUpdater.java b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUpdater.java index f2dbb515641a..14d008798cd6 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUpdater.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUpdater.java @@ -334,7 +334,7 @@ public class AbstractTreeUpdater implements Disposable, Activatable { @NonNls @Override public synchronized String toString() { - return "AbstractTreeUpdater updateCount=" + myUpdateCount + " queue=[" + myUpdateQueue + "] " + " nodeQueue=" + myNodeQueue; + return "AbstractTreeUpdater updateCount=" + myUpdateCount + " queue=[" + myUpdateQueue + "] " + " nodeQueue=" + myNodeQueue + " builder=" + myTreeBuilder; } public void flush() { diff --git a/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java b/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java index 904ac0412f54..aba062a39613 100644 --- a/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java +++ b/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java @@ -48,7 +48,9 @@ class TestProjectViewPSIPane extends AbstractProjectViewPSIPane { @NotNull @Override protected AbstractTreeUpdater createTreeUpdater(@NotNull AbstractTreeBuilder treeBuilder) { - return new AbstractTreeUpdater(treeBuilder); + return new AbstractTreeUpdater(treeBuilder) { + // unique class to simplify search through the logs + }; } @Override diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/MvcProjectViewPane.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/MvcProjectViewPane.java index 5a8d7e5e0fe5..3c2c3be91543 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/MvcProjectViewPane.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/MvcProjectViewPane.java @@ -238,7 +238,9 @@ public class MvcProjectViewPane extends AbstractProjectViewPSIPane implements Id @NotNull @Override protected AbstractTreeUpdater createTreeUpdater(@NotNull final AbstractTreeBuilder treeBuilder) { - return new AbstractTreeUpdater(treeBuilder); + return new AbstractTreeUpdater(treeBuilder) { + // unique class to simplify search through the logs + }; } @Override diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsStructure.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsStructure.java index ee8800c3d5aa..b2e073480fa8 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsStructure.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsStructure.java @@ -91,7 +91,9 @@ public class MavenProjectsStructure extends SimpleTreeStructure { configureTree(tree); - myTreeBuilder = new SimpleTreeBuilder(tree, (DefaultTreeModel)tree.getModel(), this, null); + myTreeBuilder = new SimpleTreeBuilder(tree, (DefaultTreeModel)tree.getModel(), this, null) { + // unique class to simplify search through the logs + }; Disposer.register(myProject, myTreeBuilder); myTreeBuilder.initRoot(); diff --git a/xml/dom-openapi/src/com/intellij/util/xml/tree/DomModelTreeView.java b/xml/dom-openapi/src/com/intellij/util/xml/tree/DomModelTreeView.java index 663caed28c61..e92badf2c8d4 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/tree/DomModelTreeView.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/tree/DomModelTreeView.java @@ -72,7 +72,9 @@ public class DomModelTreeView extends Wrapper implements DataProvider, Disposabl ToolTipManager.sharedInstance().registerComponent(myTree); TreeUtil.installActions(myTree); - myBuilder = new AbstractTreeBuilder(myTree, (DefaultTreeModel)myTree.getModel(), treeStructure, WeightBasedComparator.INSTANCE, false); + myBuilder = new AbstractTreeBuilder(myTree, (DefaultTreeModel)myTree.getModel(), treeStructure, WeightBasedComparator.INSTANCE, false) { + // unique class to simplify search through the logs + }; Disposer.register(this, myBuilder); myBuilder.setNodeDescriptorComparator(null);