0
중첩 된 속성으로 눈금을 만들려고합니다. 그러나 격자 열에 중첩 된 속성 필드를 표시하는 방법을 찾을 수 없습니다.Vaadin8 격자 중첩 된 속성 오류
private Component buildGrid() {
branchGrid = new Grid<>(Branch.class);
branchGrid.setItems(DummyData.allBranches);
branchGrid.setSelectionMode(Grid.SelectionMode.SINGLE);
branchGrid.setSizeFull();
branchGrid.getEditor().setEnabled(false);
branchGrid.addComponentColumn((ValueProvider<Branch, Component>) branch -> {
Button btnEdit = new Button(VaadinIcons.EDIT);
btnEdit.addStyleName(MaterialTheme.BUTTON_CUSTOM + " " + MaterialTheme.BUTTON_BORDER);
btnEdit.setDescription("Click for edit!");
return btnEdit;
}).setId("edit");
branchGrid.setColumnOrder("edit", "branchId", "branchName", "email", "phone", "location", "owner", "active");
return branchGrid;
}
public class Branch {
private String branchId; //yymmddHHmmSSS
private String branchName;
private String email;
private String phone;
private String location;
private User owner;
private boolean active;
}
public class User {
private long userId;
private String username;
private String password;
private String email;
}
그리드에 user.username을 표시하려고합니다. 그러나이 코드에서는 모든 사용자 객체 스택 참조 또는 다른 것을 표시합니다. 이 같은
브랜치 문자열에서 정의하려고했으나 getOwner() {return owner.username; }? 또는 사용자 클래스에서 toString을 다시 정의 하시겠습니까? Vaadin은 User 클래스의 toString 메서드를 사용하여 해당 표현을 String으로 표시하고 정의되지 않았으므로 기본값을 사용합니다. 참고 : 모든 속성은 비공개이며 액세스 할 수 없습니다. – DvTr