From fbfc70a5251c4efc65cdfaeeec1f6d5a1898caa8 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 26 Apr 2017 05:40:42 +0000 Subject: [PATCH] SSDM-4187: Improve behavior in case of filtering trees SVN: 38087 --- .../api/gui/AbstractTreeEntityPickerDialog.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractTreeEntityPickerDialog.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractTreeEntityPickerDialog.java index 7e1e9d1d6b5..0daf35b55b7 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractTreeEntityPickerDialog.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractTreeEntityPickerDialog.java @@ -22,7 +22,9 @@ import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.swing.JDialog; import javax.swing.JFrame; @@ -34,6 +36,9 @@ import javax.swing.JTree; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.event.TreeExpansionEvent; +import javax.swing.event.TreeExpansionListener; +import javax.swing.event.TreeModelEvent; +import javax.swing.event.TreeModelListener; import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; @@ -273,7 +278,17 @@ public abstract class AbstractTreeEntityPickerDialog extends AbstractEntityPicke { rootNode.filter(filterField.getText()); } + int rowCount = tree.getRowCount(); + Set<TreePath> paths = new HashSet<>(); + for (int i = 0; i < rowCount; i++) + { + paths.add(tree.getPathForRow(i).getParentPath()); + } treeModel.reload(); + for (TreePath path : paths) + { + tree.expandPath(path); + } } public String pickEntity() -- GitLab