use concrete classes to simplify finding the root cause of tree issues

This commit is contained in:
Sergey Malenkov
2018-10-09 20:13:35 +03:00
parent 5743be2081
commit 2ae3a61cdb
12 changed files with 34 additions and 10 deletions
@@ -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);
@@ -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);
@@ -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;
}
@@ -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);
@@ -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();
@@ -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) ||
@@ -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,
@@ -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() {
@@ -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
@@ -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
@@ -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();
@@ -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);