Reputation: 651
i'm coding some kind of objects browser, organized with folders. When user seslects some folder in the list i have to expand an appropriate node in a tree.
I've implemented tree expand, element selection in tree, BUT expand might happen at a part of tree that is out of visible area (CellTree is on a ScrollPane).
So, i do have an instace of TreeNode
- how can i programmatically scroll to make it visible?
Upvotes: 0
Views: 1747
Reputation: 45
another version (if you want to move the element to the top of the CellTree):
Element cellTreeElement = yourCellTree.getElement();
NodeList<Element> objectIds = cellTreeElement.getElementsByTagName("input");
for (int j = 0; j < objectIds.getLength(); j++) {
Element e = objectIds.getItem(j);
if (e.getId().equals("r" + iDistrictID)) {
yourCellTree.getElement().getParentElement().getParentElement().setScrollTop(e.getParentElement().getParentElement().getOffsetTop());
}
}
Upvotes: 0
Reputation: 51421
It's not possible with the current API, but what you can try, and I haven't tested this, but should be easy:
<input type="hidden" id="yourObjectId"/>
SelectionModel
when setting up your NodeInfo etc.yourSelectionModel.setSelected(object,true);
. That should expand the tree and display your selected object.Element cellTreeElement = yourCellTree.getElement(); NodeList<Element> objectIds = cellTreeElement.getElementsByTagName("input"); for ( int i=0;i<elementsByTagName.getLength();i++ ) { Element e = objectIds .getItem( i ); if (e.getId().equals( yourObjectId ) { e.scrollIntoView(); } }
Pretty sure this should work just fine.
Upvotes: 2