From 60e1021925cb6767de5ce8d8b6f1ad0fcd1d4ed9 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Mon, 11 Sep 2017 23:47:00 +0300 Subject: [PATCH] cleanup: TreeModelAdapter.create() --- .../impl/AbstractProjectViewPSIPane.java | 26 ++----------------- .../util/ui/tree/TreeModelAdapter.java | 14 ++++++++++ 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java index faee80d3b98e..8c4351b4712f 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java @@ -47,14 +47,13 @@ import com.intellij.util.EditSourceOnDoubleClickHandler; import com.intellij.util.OpenSourceUtil; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.accessibility.ScreenReader; +import com.intellij.util.ui.tree.TreeModelAdapter; import com.intellij.util.ui.tree.TreeUtil; import com.intellij.util.ui.update.Activatable; import com.intellij.util.ui.update.UiNotifyConnector; import org.jetbrains.annotations.NotNull; import javax.swing.*; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; @@ -150,28 +149,7 @@ public abstract class AbstractProjectViewPSIPane extends AbstractProjectViewPane fireTreeChangeListener(); } }); - myTree.getModel().addTreeModelListener(new TreeModelListener() { - @Override - public void treeNodesChanged(TreeModelEvent e) { - fireTreeChangeListener(); - } - - @Override - public void treeNodesInserted(TreeModelEvent e) { - fireTreeChangeListener(); - } - - @Override - public void treeNodesRemoved(TreeModelEvent e) { - fireTreeChangeListener(); - } - - @Override - public void treeStructureChanged(TreeModelEvent e) { - fireTreeChangeListener(); - } - }); - + myTree.getModel().addTreeModelListener(TreeModelAdapter.create((e, t) -> fireTreeChangeListener())); new MySpeedSearch(myTree); myTree.addKeyListener(new KeyAdapter() { diff --git a/platform/util/src/com/intellij/util/ui/tree/TreeModelAdapter.java b/platform/util/src/com/intellij/util/ui/tree/TreeModelAdapter.java index 3b15615f3d19..130f501c43cf 100644 --- a/platform/util/src/com/intellij/util/ui/tree/TreeModelAdapter.java +++ b/platform/util/src/com/intellij/util/ui/tree/TreeModelAdapter.java @@ -15,6 +15,9 @@ */ package com.intellij.util.ui.tree; +import com.intellij.util.PairConsumer; +import org.jetbrains.annotations.NotNull; + import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; @@ -23,7 +26,18 @@ import javax.swing.event.TreeModelListener; * @author Sergey.Malenkov */ public abstract class TreeModelAdapter implements TreeModelListener { + public enum EventType {StructureChanged, NodesChanged, NodesInserted, NodesRemoved} + + @NotNull + public static TreeModelListener create(@NotNull final PairConsumer consumer) { + return new TreeModelAdapter() { + @Override + protected void process(TreeModelEvent event, EventType type) { + consumer.consume(event, type); + } + }; + } /** * Invoked after a tree has changed.