1
에 대해서만 null을 반환합니다. vaadin의 TreeTable을 사용하고 내 행에 대한 툴팁을 추가하려고합니다. 이것은 그들이해야한다고 말하지만 propertyId는 항상 null이므로 정확한 열을 얻을 수 없습니까? 트리에 항목을 추가 할 때 내가 항목 ID로 소스 오브젝트를 통과 한ItemDescription vaadin TreeTable 생성자는 열
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 객체가 null이 아닌가? 그렇지 않으면 테이블이 잘 렌더링됩니까? generateDescription()을 호출하는 메소드를 디버깅 했습니까? – miq
다른 모든 개체가 올바르게 가리키고 있습니다. 즉, 계층 적 컨테이너 인터페이스를 구현하는 자체 데이터 컨테이너를 사용하고 있습니다. 컨테이너는 다른 모든 방법으로 훌륭하게 작동합니다. – Marthin
메소드'generateDescription'의 propertyId에 대한 JavaDoc은 '셀의 propertyId, 행 설명을 가져올 때 null'이라고 표시합니다. 이것이 관련 될 수 있습니까? 하지만 대체 솔루션이 있습니다. 각 열 생성기의 레이블에 설명을 설정하지 않습니까? – janhink