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