Dear all,
i am facing a challenge in which i hope someone can help me.
I am building a tree interface trough a SQL query, and manipulated by python to create a tree like:
Exhaust
-temp1
-temp2
-temp3
Pressure
-pressure1
-pressure2
Now this builds fine, the problem arises when i have selected multiple values (it’s used as input for a graph) and i rebuild the tree.
Trough the setSelectedItem() i can set one value/row selected but not multiple. I found some documentation in this forum but they are all regarding Tables, not trees…
Does anyone have any idea on how to script a multi selection on a tree??
You’ll want to use the ‘setSelectionRows()’ method of the underlying tree component. Here is a little code snippet that I set on a button to select a couple items on a default Vision Tree View component.
from javax.swing.tree import TreeSelectionModel
# get the underlying tree component
tree_component = event.source.parent.getComponent('Tree View').getComponent(0).getComponent(0)
#set our selection model to allow discontiguous selection (e.g., select rows 1 and 3 but not 2)
tree_component.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION)
# the rows we want to select
selected_rows = [2,4]
# now apply the selection to the component
tree_component.setSelectionRows(selected_rows)
You’ll just need to work your selection logic into populating a list like ‘selection_rows’. Hope this helps!