在我的项目中,我需要在CellTree中单击节点后触发事件。我用以下代码解决了这个问题。
model.setSelectionHandler(new SelectionChangeEvent.Handler()
{
@Override
public void onSelectionChange(SelectionChangeEvent event)
{
//My logic is here
}
});
问题是这仅在未选择节点时才有效。再次单击该节点不会触发该事件。是否有单击处理程序或在单击节点后触发的另一个事件?
答案 0 :(得分:0)
请尝试使用SelectionHandler api。
答案 1 :(得分:0)
这可以通过创建实现ClickHandler
的自己的TreeItem来实现public class CustomTreeItem extends TreeItem implements ClickHandler
{
//classes logic here
@Override
public void onClick(ClickEvent event)
{
// TODO Auto-generated method stub
}
}
答案 2 :(得分:0)
有时我使用这样的东西:
number
但是这个解决方案显然会删除所选择的视觉反馈。
答案 3 :(得分:0)
您可以使用[CellTree
](http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/Widget.html#addDomHandler(H,com.google.gwt.event.dom.client.DomEvent.Type)向您的Widget.addDomHandler
添加DOM处理程序:)< / p>
cellTree.addDomHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
// TODO: check if a node is selected and it was clicked here
}
}, ClickEvent.getType());
此外,如果您同时使用选择处理程序并单击某个节点,则可能需要阻止调用处理程序两次。
只是旁注:不幸的是,我没有看到一种简单的方法来确定用户是否实际点击了树状项目,如边界检查点击坐标。所以这可能会有点难以实现。