java - 如何将工具提示添加到标签,然后添加到单元格表列?

标签 java gwt

我有一个单元格表。我想添加多个标签,并为单元格表的一列中的每个标签分配一些工具提示。到目前为止我已经尝试过 -

TextColumn<C> detailsColumn = new TextColumn<C>() {
  @Override
  public String getValue(C c) {
    List<String[]> cList = c.getChngd();
    if (cList == null || cList.size() == 0) {
      return null;
    }
    Label lbl;
    HorizontalPanel hpanel=new HorizontalPanel();
    for (Iterator<String[]> itr =List.iterator(); itr.hasNext();) {
      String[] detail = itr.next();
      lbl=new Label();
      lbl.setText(detail[0]);
      lbl.addMouseOverHandler(new MouseOverHandler() {
        @Override 
        public void onMouseOver(MouseOverEvent event) {
          Widget source = (Widget)event.getSource();
          source.setTitle("tooltip");
        }
      });
      hpanel.add(lbl);
    }
    return hpanel.getElement().getInnerText();
  }
}; 

它不工作。有同样的解决方案吗?

最佳答案

我会将工具提示逻辑移至 Cell 中,而不是移至 ColumngetCell() 方法中,该方法使用仅用于检索单元格将要呈现的基础数据。

如果您想要一个简单的基于标题的单元格,则以下内容应该有效。它创建一个文本单元格,其中的数据值包含在带有标题的 div 中。

public class TooltipTextCell extends TextCell {
  public interface Template extends SafeHtmlTemplates {
    @Template("<div title=\"{1}\" />{0}</div>")
    SafeHtml label(SafeHtml text, String title);
  }
  private static Template template;

  public TooltipTextCell() {
    super();
    if (template == null) {
      template = GWT.create(Template.class);
    }
  }

  @Override
  public void render(Context context, SafeHtml value, SafeHtmlBuilder sb) {
    if (value != null) {
      sb.append(template.label(value, value.asString()));
    }
  }
}

如果您想创建一个列,其中每个单元格可以包含多个此类 TooltipTextCell,则必须使用 CompositeCell .

关于java - 如何将工具提示添加到标签,然后添加到单元格表列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15783219/

相关文章:

java - 关于 Android 中 Java 类对象和从一个 Activity 到另一个 Activity 的数据传输的查询

css - 当客户端是 IE8 时,GWT 不应用 Css 样式

java - Tomcat 的 CPU 使用率极高

JavaFX TableView 列宽更改事件监听器

gwt - Groovy 和 GWT : Combining both paradigms

java - GWT 中的 getAuthDomain() 总是返回 gmail.com

javascript - html5 canvas 和纯 Javascript/GWT 的游戏性能

java - gwt 列表框执行我的处理程序

JavaFX 正在运行,但 try-catch-finally 代码不起作用

java - java中的奇怪声明