簡體   English   中英

GWT CellTree滾動到任意節點

[英]GWT CellTree scroll to arbitrary node

我正在編寫某種對象瀏覽器,用文件夾組織。 當用戶選擇列表中的某個文件夾時,我必須在樹中展開適當的節點。 我已經在樹中實現了樹擴展,元素選擇,但是擴展可能發生在超出可見區域的樹的一部分(CellTree在ScrollPane上)。 所以,我確實有一個TreeNode的實例 - 我如何以編程方式滾動以使其可見?

使用當前的API是不可能的,但是您可以嘗試,我沒有測試過這個,但應該很簡單:

  1. 對於樹渲染中的每個對象和不可見標記,標識此對象,如<input type="hidden" id="yourObjectId"/>
  2. 設置NodeInfo等時,請確保您有SelectionModel
  3. 當您知道要滾動到哪個對象時,請調用yourSelectionModel.setSelected(object,true); 這應該展開樹並顯示您選擇的對象。
  4. 在這個階段你想要做的是:
 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(); } } 

很確定這應該可以正常工作。

另一個版本(如果你想將元素移動到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());
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM