2016-02-26 109 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(「提示文本」)之前返回單元格文本。

希望這會有所幫助