Например, на базе DataGrid
или Table
и механизма генерируемой колонки.
На самом деле это GroupTable без заголовка, с фиксированной группировкой по полю “Срок”.
У нее есть единственная отображаемая колонка для отображения “Карточки” - это генерируемая колонка.
Основу “карточки” можно задать в виде Hbox
с фиксированной высотой.
Далее в него упакованы прочие элементы: CheckBox
, Image
, TextArea
…
@Install(to = "tableGeneratedColumn.taskCard", subject = "columnGenerator")
private Component tableGeneratedColumnTaskColumnGenerator(Task task) {
HBoxLayout hboxMain = uiComponents.create(HBoxLayout.class);
hboxMain.setHeight("95px");
hboxMain.setWidth("100%");
hboxMain.setSpacing(true);
//кнопка флага
Button isFlag = uiComponents.create(Button.class);
isFlag.setIcon("font-icon:BOOKMARK_O");
isFlag.setStyleName("borderless cscTailTaskButtonFlag");
isFlag.setAlignment(TOP_CENTER);
isFlag.setHeight("18px");
isFlag.setWidth("24px");
//чек бокс Выполнения задачи
CheckBox isReadyCheckBox = uiComponents.create(CheckBox.class);
isReadyCheckBox.setAlignment(MIDDLE_CENTER);
isReadyCheckBox.setEnabled(false);
//аватарка Автора Задачи
Image avatarImage = uiComponents.create(Image.class);
avatarImage.setScaleMode(Image.ScaleMode.CONTAIN);
avatarImage.setWidth("36px");
avatarImage.setHeight("36px");
avatarImage.setAlignment(MIDDLE_CENTER);
....
....
....
return hboxMain;
}
Можно и на ScrollBoxLayout
аналогичное представление собрать.
Но если нужно отрабатывать выделение элементов, группировку, сортировку - проще на базе DataGrid
или Table
.