1
使用vaadin的TreeTable进行即时通讯,并试图为我的行添加工具提示。这是他们如何说它应该做的,但propertyId始终为空,所以我不能得到正确的列?是的心中已经在Eclipse调试器藏汉运行此=)ItemDescriptionGenerator for vaadin TreeTable只对列返回null
与此相关的部分代码:
private void init() {
setDataSource();
addGeneratedColumn("title", new TitleColumnGenerator());
addGeneratedColumn("description", new DescriptionGenerator());
setColumnExpandRatios();
setItemDescriptionGenerator(new TooltipGenerator());
}
protected class TooltipGenerator implements ItemDescriptionGenerator{
private static final long serialVersionUID = 1L;
@Override
public String generateDescription(Component source, Object itemId, Object propertyId) {
TaskRow taskRow = (TaskRow)itemId;
if("description".equals(propertyId)){
return taskRow.getDescription();
}else if("title".equals(propertyId)){
return taskRow.getTitle();
}else if("category".equals(propertyId)){
return taskRow.getCategory().toString();
}else if("operation".equals(propertyId)){
return taskRow.getOperation().toString();
}else if("resourcePointer".equals(propertyId)){
return taskRow.getResourcePointer();
}else if("taskState".equals(propertyId)){
return taskRow.getTaskState().toString();
}
return null;
}
}
闻起来像一个艰难的..这可能是无关的,但你使用什么样的数据容器? TaskRow对象是否为非空?表格渲染否则很好?你调试了调用generateDescription()的方法吗? – miq 2011-12-22 13:43:05
所有其他对象指向正确,即时使用我自己的数据容器,实现分层容器接口。这个容器在其他所有方面都有很好的效果,但不是这样。 – Marthin 2011-12-22 15:50:20
“generateDescription”方法的propertyId的JavaDoc说:单元的propertyId,获取行描述时为null。这可能是相关的吗?但是还有另一种解决方案:为什么不创建例如每个列生成器中都有一个标签,并且不要将描述设置为它? – janhink 2012-02-03 09:58:55