ListModel has that: #selectedItemsSorted, but looking at the tree model structure I guess the simplest way is to just traverse the whole structure until the selected nodes are found. Something like this should do the trick: -------------------------------------------------- TreeModel >> selectionSorted | ordered lookingFor search | ordered := OrderedCollection new. lookingFor := self selectedItems asIdentitySet. LookingFor ifEmpty: [ ^ #() ] search := [ :nodes | nodes do: [ :node | (lookingFor includes: node) ifTrue: [ ordered add: node. lookingFor remove: node. lookingFor isEmpty ifTrue: [ ^ ordered asArray ] ]. search value: node children value ] ]. search value: self roots. self error: 'should not happen' -------------------------------------- Best regards, Henrik From: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org] On Behalf Of Nicolai Hess Sent: Sunday, August 7, 2016 4:55 PM To: Pharo Development List <pharo-dev@lists.pharo.org> Subject: [Pharo-dev] Spec TreeModel get selected items in order Hi, Is there a way to retrive the selected nodes of a TreeModel in the same order they are shown in the widget ? For example, open this tree model, and select item 5/4/3/1 |t| Transcript clear. t := TreeModel new. t beCheckList ; autoMultiSelection: true. t roots:((1 to:10) collect:[:c | TreeNodeModel new content:c;hasContentToShow:true]). t openWithSpec. t inspect . Now, if I try to collect the selected items with t selectedItems collect:#contents they appear in the order I selected them, but I would like to get the order 1/2/3/4/5 thanks Nicolai