[英]how to add tooltip to the label which is then added to the celltable column?
我有一張桌子。 我想添加多個標簽,並在單元格的一列中為每個標簽分配一些工具提示。 到目前為止我嘗試過的-
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
,而不是移到Column
的getCell()
方法中,該方法僅用於檢索單元將要呈現的基礎數據。
如果您想要一個簡單的基於標題的單元格,則應該可以進行以下操作。 它創建一個文本單元格,數據值包裝在帶有標題的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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.