且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

GWT树的工具提示:将节点添加到节点

更新时间:2023-11-23 22:30:10

一个TreeItem可以包含一个Widget对象。因此,在一个小部件(即标签)上添加一个MouseOverHandler和一个MouseOutHandler,并将该小部件放入TreeItem中添加:

 标签myItemContent =新标签(我的内容); 
myItemContent.addMouseOverHandler(new MouseOverHandler(){
$ b $ public void onMouseOver(MouseOverEvent event){
//构造和/或打开您的工具提示
}
});

myItemContent.addMouseOutHandler(new MouseOutHandler(){

public void onMouseOut(MouseOutEvent event){
//关闭您的工具提示

}
});
//将您的Label放入TreeItem中
TreeItem myItem = new TreeItem(myItemContent);
//假设parentNode是一个ItemTree
parentNode.addItem(myItem);

另一个解决方案是使用GwtQuery。 GwtQuery允许将事件处理程序绑定到任何DOM元素:

  import static com.google.gwt.query.client.GQuery。$ ; 

...

TreeItem myItem = new TreeItem(My content);
$(myItem.getElement())。hover(new Function(){

//在鼠标上调用的方法超过
public void f(Element e){
//构造和/或打开你的工具提示
}

},new Function(){

//在鼠标上调用的方法
public void f(Element e){
//关闭您的工具提示
}
});

parentNode.addItem(myItem);

Julien


I'm trying to add tooltips for the nodes of a Tree in GWT. As such, I'd like to add a mouseover listener for the nodes of a tree rather than on the tree itself.

The Treelistener interface seems to be what I want but this is now deprecated in lieu of the handler system. I don't quite understand how to get mouseover behaviour on the cell as I only seem to be able to add a MouseOverHandler to the tree itself.

Any help would be appreciated, thank you.

A TreeItem can contains a Widget object. So add a MouseOverHandler and a MouseOutHandler on a widget (i.e. a Label) and put the widget inside the TreeItem to add :

Label myItemContent = new Label("My content");
myItemContent.addMouseOverHandler(new MouseOverHandler() {

  public void onMouseOver(MouseOverEvent event) {
    // construct and/or open your tooltip
  }
});

myItemContent.addMouseOutHandler(new MouseOutHandler() {

  public void onMouseOut(MouseOutEvent event) {
    // close your tooltip

  }
});
//put your Label inside a TreeItem
TreeItem myItem = new TreeItem(myItemContent);
// let's assume that parentNode is an ItemTree
parentNode.addItem(myItem);

An other solution can be to use GwtQuery. GwtQuery allows to bind event handler to any DOM element :

import static com.google.gwt.query.client.GQuery.$;

...

TreeItem myItem = new TreeItem("My content");
$(myItem.getElement()).hover(new Function() {

  //method called on mouse over
  public void f(Element e) {
      // construct and/or open your tooltip
  }

}, new Function() {

  //method called on mouse out
  public void f(Element e) {
      //close your tooltip
  }
});

parentNode.addItem(myItem);

Julien