簡體   English   中英

如何將工具提示添加到celltable中的單元格?

[英]How to add tooltip to the cells in celltable?

我正在使用gwt cellTable。 在這個單元格表中,我有一個包含compositeCell的列。 現在我想為該復合單元格中的所有單元格添加工具提示。 有什么解決方法嗎?

這是一個抽象的工具提示列類,您可以擴展它來代替普通的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());

  }
}

我使用這個解決方案:

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.');
    }
  }
}

你可以使用渲染方法

@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工具提示無法正常工作

如果你想添加工具提示為純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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM