2016-11-01 8 views
2

gwt TreeItemに自分のオブジェクトを設定する方法を知る必要があります。gwt TreeItemの非表示情報を取得するためのラッパーを使用

文字列を参照する必要がありますが、同時にその特定のTreeItemに関する他の情報が必要です。

ありがとうございます。

+1

http://stackoverflow.com/questions/40320966/set-widget-to-treeitem-on-gwt?rq=1 – Strelok

+0

私はそれに関するドキュメントは見つかりませんでした。特定のメソッドを実装する必要がありますか?どうやって?私が "asWidget"メソッドを実装すると、私はウィジェットを返さなければならないが、すべてのウィジェットは私には役に立たない。私は自分自身のオブジェクトを実装する必要がありますが、私はまだそれをtreeitemに正しく設定する方法を理解していません。 – Peduz

答えて

0

あなたはTreeItemを拡張し、例えば、それにいくつかのプロパティを追加することができます。

public class MyTreeItemWidget extends TreeItem { 

    private int hiddenValue; 

    public MyTreeItemWidget(String text, int hiddenValue) { 
     setText(text); 
     this.hiddenValue = hiddenValue; 
    } 

    public int getHiddenValue() { 
     return hiddenValue; 
    } 
} 

次にあなたがツリー項目を取得することができ、例えば、tree.getSelectedItem()ため。追加のプロパティを取得するには、それをMyTreeItemWidgetにキャストする必要があります。例:ここでは

((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue() 

は、簡単なサンプルコードです:SelectionHandler

TreeItem root = new TreeItem(); 
root.setText("root"); 

for(int i = 0; i < 10; i++) { 
    MyTreeItemWidget item = new MyTreeItemWidget("Node " + Integer.toString(i), i); 
    root.addItem(item); 
} 

final Tree tree = new Tree(); 
tree.addSelectionHandler(new SelectionHandler<TreeItem>() { 
    @Override 
    public void onSelection(SelectionEvent<TreeItem> event) { 
     Window.alert("Selected value is " + Integer.toString(((MyTreeItemWidget) event.getSelectedItem()).getHiddenValue())); 
     // -- or -- 
     Window.alert("Selected value is " + Integer.toString(((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue())); 
    } 
}); 

tree.addItem(root); 
root.setState(true); 

あなたがイベントからか、ツリーから選択TreeItemを得ることができます。

+0

なぜ私は以前のことについて考えなかったのか分かりません。ありがとうございました。私はすぐに試してみます – Peduz

+0

申し訳ありませんが動作しません...私はキャストが動作しないと思います。 – Peduz

+0

私はこのコードをテストしました。なにが問題ですか? – Adam

関連する問題