GWT:将GWTP工具提示添加到CellTable单元格

时间:2016-02-26 16:27:20

标签: java gwt tooltip gwtp celltable

我想将GWT-Bootstrap Tooltip用于CellTable中列的单元格。每个工具提示将显示一个单元格的描述,该单元格是" MyCustomObject"用于生成表的类。

我在this问题的答案中找到的一个快速解决方案如下:

CellTable<MyCustomObject> table = new CellTable<MyCustomObject>();

table.addCellPreviewHandler(new Handler<MyCustomObject>() {
    @Override
    public void onCellPreview(CellPreviewEvent<MyCustomObject> event) {
        if (event.getNativeEvent().getType().equals("mouseover")){
            table.getRowElement(event.getIndex()).getCells()
                .getItem(event.getColumn()).setTitle(event.getValue().getDescription());
            }
        }
    }
);

这有点道理但是当我将光标悬停在表格单元格上并且没有附加到DOM时,我什么都看不到。任何人都可以解释这甚至有用吗?我想将Tooltip附加到表格单元格,类似于以下内容。

Tooltip tt = new Tooltip("Here goes the description");
tt.setAnimation(true);
tt.setWidget(tableColumn);
tt.reconfigure();

问题是CellTable单元格不是小部件,所以它不能以这种方式附加。

那么有没有解决方法?

1 个答案:

答案 0 :(得分:0)

我曾经遇到过这个问题,我创建了自己的单元格,显示了一个工具提示,这里我是如何做到的:注意:我的单元格显示带有工具提示的图像,所以我很快就更改了代码显示字符串文本...所以我没有用文本测试它。

private class TooltipCell extends AbstractCell<String> {
      private String tooltipText = "";

      @Override
      public void render(Context context, String value, SafeHtmlBuilder sb) {
        if (value != null) {
            sb.appendHtmlConstant("<div title=\"" + tooltipText + "\">");
          sb.append(SafeHtmlUtils.fromString(value));
        }
      }

      public void setTooltip(String tootltipTextToSet){
          tooltipText = tootltipTextToSet;
      }
    }

在表格中,在返回单元格文本之前,在方法getValue中使用方法setTooltip(&#34; tooltip text&#34;)。

希望这有帮助