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; return owner.username; }?または、UserクラスのtoStringを再定義しますか? VaadinはUserクラスのtoStringメソッドを使用してその表現をStringとして表示し、定義されていないのでデフォルトのものを使用します。注:あなたのすべてのプロパティは非公開でアクセスすることはできません。 – DvTr