2012-05-17 113 views
3

我使用TreeTable进行工作。点击按钮时,我想展开项目并选择父项目内的其中一个项目。但我也想滚动到选定的项目。 如果项目可见(所有父项目都展开),一切都很完美。但是如果它最初不可见(某些父项目已折叠),则滚动到最近的可见父项。TreeTable滚动到项目

我的代码看起来是这样的:

testButton.addListener(new Button.ClickListener() { 

    public void buttonClick(ClickEvent event) { 
     // expanding items for selected one 
     ItemId parentId = selectedItem.getParent(); 
     while (parentId ! = null) { 
     treeTable.setCollapsed(parentId , false); 
     parentId = parentId.getParent(); 
     } 
     // select the item 
     treeTable.select(selectedItem); 
     // scroll to seledcted item 
     treeTable.setCurrentPageFirstItemId(selectedItem); 
    } 
}); 

有没有什么解决滚动到所选择的项目,而不是所选项目的最近的可见父项?

在此先感谢。

回答

0

我把这个到方法的第一行:

treeTable.focus(); 

它看起来像它的工作原理。 (Vaadin 6.7.9)