Ну, я надеюсь, это не кажется слишком очевидным или не соответствует тому, что вы ищете. Но один из способов думать об этом - начать с выбранного узла и идти вверх (не начинать с корня и не идти вниз). В GWT TreeItems есть метод getParent (), поэтому продолжайте вызывать его, добавляя то, что вы получаете в список, до тех пор, пока вы не дойдете до корня (или ничего), и это даст вам обратный путь в виде списка восходящих узлов, он уникален, у узла может быть только один родитель, затем просто переверните список, чтобы ваш путь пошёл вниз.
Вот некоторый непроверенный код, предназначенный для использования в качестве метода подкласса TreeItem (в противном случае вы бы поместили узел в качестве параметра метода, скажем, «selectedItem», а затем заменили selectedItem на это в течение
ArrayList getPath(){
ArrayList path= new ArrayList(); // in reverse ie going up
path.add(this);
TreeItem search;
search=this.getParentItem();
while (search!=null){
path.add(search);
search=search.getParentItem();
}
Collections.reverse(path); // now coming down from the root
return
path;
}
Лучший,
Martin