使用包装器获取gwt TreeItem上的隐藏信息

时间:2016-11-01 01:33:10

标签: java gwt tree

我需要知道如何将自己的对象设置为gwt TreeItem。

我需要看一个字符串,但同时我必须有一些关于该特定TreeItem的其他信息。

感谢大家。

1 个答案:

答案 0 :(得分: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;
    }
}

然后你可以获得TreeItem,例如tree.getSelectedItem()。要获取其他属性,您需要将其强制转换为MyTreeItemWidget。例如:

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

这是一个简单的示例代码:

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);

SelectionHandler中,您可以从活动或树中获取所选的TreeItem