我正在使用 gwt cellTable。在这个单元格表中,我有一列包含compositeCell。现在我想为该复合单元格中的所有单元格添加一个工具提示。有什么解决方法吗?
			
			6242 次
		
4 回答
            5        
        
		
这是一个抽象工具提示列类,您可以扩展它来代替普通的 Column 类:
public abstract class MyToolTipColumn<T, C> extends Column<T, C> {
  interface Templates extends SafeHtmlTemplates {
    @Template("<div title=\"{0}\">")
    SafeHtml startToolTip(String toolTipText);
    @Template("</div>")
    SafeHtml endToolTip();
  }
  private static final Templates TEMPLATES = GWT.create(Templates.class);
  private final String toolTipText;
  public MyToolTipColumn(final Cell<C> cell, final String toolTipText) {
    super(cell);
    this.toolTipText = toolTipText;
  }
  @Override
  public void render(final Context context, final T object, final SafeHtmlBuilder sb) {
    sb.append(TEMPLATES.startToolTip(toolTipText));
    super.render(context, object, sb);
    sb.append(TEMPLATES.endToolTip());
  }
}
于 2013-03-29T11:37:18.343   回答
    
    
            4        
        
		
我使用这个解决方案:
cellTable.addCellPreviewHandler(new Handler<Object>() {
  @Override
  public void onCellPreview(CellPreviewEvent<Object> event) {
    if ("mouseover".equals(event.getNativeEvent().getType())) {
      cellTable.getRowElement(event.getIndex()).getCells().getItem(event.getColumn()).setTitle('cell contents go here.');
    }
  }
}
于 2013-03-29T18:55:54.983   回答
    
    
            0        
        
		
您可以覆盖渲染方法
@Override
public void render(
    com.google.gwt.cell.client.Cell.Context context,
    String data, SafeHtmlBuilder sb) {
    super.render(context, data, sb);
    sb.appendHtmlConstant(SafeHtmlUtils.
        fromString("<div title=\"" +titleValue + "\"></div>"););
}
还要检查这个GWT CellTable 工具提示不能正常工作
于 2013-03-29T11:00:19.943   回答
    
    
            0        
        
		
如果您想为纯 GWT 表 (com.google.gwt.user.cellview.client. CellTable ) 添加工具提示,我们可以建议以下行。
Column<String[], SafeHtml> objectNameColumn = new Column<String[], SafeHtml>(new SafeHtmlCell()) {
    @Override
    public SafeHtml getValue(String[] object) {
        String val = (object[index]==null?"":object[index]); 
        return new SafeHtmlBuilder().appendHtmlConstant("<span title='" + 
            new SafeHtmlBuilder().appendEscaped(val).toSafeHtml().asString() + "'>" + val + "</span>").toSafeHtml();
    }
}; 
cellTable.addColumn(objectNameColumn, colLabel);
于 2013-03-29T11:03:26.360   回答