diff --git a/platform/platform-api/src/com/intellij/ui/treeStructure/treetable/TreeTable.java b/platform/platform-api/src/com/intellij/ui/treeStructure/treetable/TreeTable.java index c675acd44890..c5c4c4cd09c1 100644 --- a/platform/platform-api/src/com/intellij/ui/treeStructure/treetable/TreeTable.java +++ b/platform/platform-api/src/com/intellij/ui/treeStructure/treetable/TreeTable.java @@ -28,8 +28,10 @@ import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.ArrayList; import java.util.EventObject; import java.util.HashSet; +import java.util.List; import java.util.Set; /** @@ -283,15 +285,19 @@ public class TreeTable extends JBTable { clearSelection(); if (min != -1 && max != -1) { + List selectionPaths = new ArrayList(); for (int counter = min; counter <= max; counter++) { if (listSelectionModel.isSelectedIndex(counter)) { TreePath selPath = myTree.getPathForRow(counter); if (selPath != null) { - addSelectionPath(selPath); + selectionPaths.add(selPath); } } } + if (!selectionPaths.isEmpty()) { + addSelectionPaths(selectionPaths.toArray(new TreePath[selectionPaths.size()])); + } } } finally {