2014-01-06 81 views
1

我正在嘗試一個GWT應用程序。我有一棵樹,裏面有很多樹木物品。我想檢索樹中所選項目的索引。我看到Tree類沒有像getSelectedElementIndex()這樣的方法。有沒有解決方法?在GWT中獲取所選樹項目的索引?

回答

1

您可以註冊並通過addSelectionHandler註冊並SelectionHandler。選擇項目時發生的事件返回所選的TreeItem對象。

另外Tree有一個方法getSelectedItem(),它返回一個TreeItem。類TreeItem有一個方法getChildIndex需要一個TreeItem並返回索引。此外,與item.getParentItem().getChildIndex(item)你應該得到該項目的索引。

+0

item.getParentItem()返回null。 –

-1

渲染每個樹項目時,可以將索引存儲爲setLayoutData。當你需要時你可以從getLayoutData中獲得它。任何對象都可以存儲在這裏。我希望這能解決你的問題。

+0

儘管導入java.lang.Object,但我無法爲TreeItem對象使用setLayoutData方法。 – somesh

+0

是的,我錯了。由於TreeItem不是Widget擴展的UIObject,因此無法在TreeItem上調用setLayoutData方法。 – Thamizharasu

0

您可以編寫自己的函數來做到這一點:

int getTreeItemIndex(Tree tree, TreeItem item) 
{ 
    int count = tree.getItemCount(); 
    for (int i=0;i<count;i++) 
    { 
     TreeItem test = tree.getItem(i); 
     if (test == item) 
     { 
      return i; 
     } 
    } 
    return -1; 
} 

這隻會搜索樹對象的直接孩子,並返回-1,如果沒有找到它。

相關問題