2016-02-26 107 views
1

我想使用GWT-Bootstrap Tooltip获取CellTable中列的单元格。每个工具提示都会显示单元格的描述,该单元格是用于生成表格的“MyCustomObject”类中的字段。GWT:将GWTP工具提示添加到CellTable单元格

我在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 tt = new Tooltip("Here goes the description"); 
tt.setAnimation(true); 
tt.setWidget(tableColumn); 
tt.reconfigure(); 

的问题是,一个CellTable小区不是插件,因此它不能以这种方式被附接。

那么有没有解决这个问题的方法?

回答

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(“提示文本”)之前返回单元格文本。

希望这会有所帮助