Вот минимальный пример:
Код: Выделить всё
package myapp;
import java.util.ArrayList;
import java.util.List;
import com.vaadin.flow.component.html.Div;
import com.vaadin.flow.component.treegrid.TreeGrid;
import com.vaadin.flow.router.Route;
@Route("/tree")
public final class TestTreeGrid extends Div {
public class Node {
Node (String n) { name=n; }
String name;
public String getName() { return name; }
List children = new ArrayList();
public List getChildren() { return children; }
}
Node getRoot () {
Node root = new Node("root");
Node c1 = new Node("1");
Node c2 = new Node("2");
root.children.add(c1);
root.children.add(c2);
c1.children.add(new Node("1.1"));
c1.children.add(new Node("1.2"));
c2.children.add(new Node("2.1"));
return root;
}
TestTreeGrid() {
TreeGrid treeGrid = new TreeGrid();
treeGrid.setItems(getRoot().children, Node::getChildren);
treeGrid.addHierarchyColumn(Node::getName);
add(treeGrid);
}
}

Если я нажму на 1, я получу это (т. е. развернуть без выделения)

и если я нажму на 1.1, я получу это

Однако я хотел бы иметь возможность выбрать промежуточный узел без расширения его дочерних узлов. Возможно ли это с помощью потока (v25)?