Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,72 +24,79 @@
import de.symeda.sormas.api.i18n.Captions;
import de.symeda.sormas.api.i18n.I18nProperties;
import de.symeda.sormas.ui.ControllerProvider;
import de.symeda.sormas.ui.utils.BooleanRenderer;
import de.symeda.sormas.ui.utils.FilteredGrid;
import de.symeda.sormas.ui.utils.ShowDetailsListener;

/**
* Grid for displaying and managing customizable field metadata.
*/
@SuppressWarnings({
"java:S110", // suppress sonar too many parents warning
"java:S2160" // suppress missing equals
"java:S110", // suppress sonar too many parents warning
"java:S2160" // suppress missing equals
})
public class CustomizableFieldsGrid extends FilteredGrid<CustomizableFieldMetadataDto, CustomizableFieldMetadataCriteria> {

private static final long serialVersionUID = 1L;

private static final String CLONE_COLUMN_ID = "clone";
private static final String TOGGLE_ACTIVE_COLUMN_ID = "toggleActive";
private static final String DELETE_COLUMN_ID = "delete";

public CustomizableFieldsGrid(CustomizableFieldMetadataCriteria criteria) {

super(CustomizableFieldMetadataDto.class);
setSizeFull();

setLazyDataProvider(
FacadeProvider.getCustomizableFieldMetadataFacade()::getIndexList,
FacadeProvider.getCustomizableFieldMetadataFacade()::count);
setCriteria(criteria);

setColumns(
CustomizableFieldMetadataDto.NAME,
CustomizableFieldMetadataDto.CONTEXT_CLASS,
CustomizableFieldMetadataDto.UI_GROUP,
CustomizableFieldMetadataDto.FIELD_TYPE,
CustomizableFieldMetadataDto.ACTIVE,
CustomizableFieldMetadataDto.READ_ONLY);

addEditColumn(e -> ControllerProvider.getCustomizableFieldsController().editField(e.getUuid()));

addColumn(e -> VaadinIcons.COPY.getHtml(), new HtmlRenderer()).setId(CLONE_COLUMN_ID)
.setCaption(I18nProperties.getCaption(Captions.actionClone))
.setSortable(false)
.setWidth(40);

addColumn(e -> e.isActive() ? VaadinIcons.CLOSE.getHtml() : VaadinIcons.CHECK.getHtml(), new HtmlRenderer()).setId(TOGGLE_ACTIVE_COLUMN_ID)
.setCaption(I18nProperties.getCaption(Captions.actionEnable) + "/" + I18nProperties.getCaption(Captions.actionDisable))
.setSortable(false)
.setWidth(55);

addColumn(e -> VaadinIcons.TRASH.getHtml(), new HtmlRenderer()).setId(DELETE_COLUMN_ID)
.setCaption(I18nProperties.getCaption(Captions.actionDelete))
.setSortable(false)
.setWidth(40);

addItemClickListener(
new ShowDetailsListener<>(CLONE_COLUMN_ID, false, e -> ControllerProvider.getCustomizableFieldsController().cloneField(e)));
addItemClickListener(
new ShowDetailsListener<>(TOGGLE_ACTIVE_COLUMN_ID, false, e -> ControllerProvider.getCustomizableFieldsController().toggleActive(e)));
addItemClickListener(
new ShowDetailsListener<>(DELETE_COLUMN_ID, false, e -> ControllerProvider.getCustomizableFieldsController().deleteField(e.getUuid(), this)));

for (Column<?, ?> column : getColumns()) {
column.setCaption(I18nProperties.getPrefixCaption(CustomizableFieldMetadataDto.I18N_PREFIX, column.getId(), column.getCaption()));
}
}

public void reload() {
getDataProvider().refreshAll();
}
private static final long serialVersionUID = 1L;

private static final String CLONE_COLUMN_ID = "clone";
private static final String TOGGLE_ACTIVE_COLUMN_ID = "toggleActive";
private static final String DELETE_COLUMN_ID = "delete";

public CustomizableFieldsGrid(CustomizableFieldMetadataCriteria criteria) {

super(CustomizableFieldMetadataDto.class);
setSizeFull();

setLazyDataProvider(
FacadeProvider.getCustomizableFieldMetadataFacade()::getIndexList,
FacadeProvider.getCustomizableFieldMetadataFacade()::count);
setCriteria(criteria);

setColumns(
CustomizableFieldMetadataDto.NAME,
CustomizableFieldMetadataDto.CONTEXT_CLASS,
CustomizableFieldMetadataDto.UI_GROUP,
CustomizableFieldMetadataDto.FIELD_TYPE,
CustomizableFieldMetadataDto.ACTIVE,
CustomizableFieldMetadataDto.READ_ONLY);

((Column<CustomizableFieldMetadataDto, Boolean>) getColumn(CustomizableFieldMetadataDto.READ_ONLY)).setRenderer(new BooleanRenderer());
((Column<CustomizableFieldMetadataDto, Boolean>) getColumn(CustomizableFieldMetadataDto.ACTIVE)).setRenderer(new BooleanRenderer());

addEditColumn(e -> ControllerProvider.getCustomizableFieldsController().editField(e.getUuid()));

addColumn(e -> VaadinIcons.COPY.getHtml(), new HtmlRenderer()).setId(CLONE_COLUMN_ID)
.setCaption(I18nProperties.getCaption(Captions.actionClone))
.setSortable(false)
.setWidth(40);

addColumn(e -> e.isActive() ? VaadinIcons.CLOSE.getHtml() : VaadinIcons.CHECK.getHtml(), new HtmlRenderer()).setId(TOGGLE_ACTIVE_COLUMN_ID)
.setCaption(I18nProperties.getCaption(Captions.actionEnable) + "/" + I18nProperties.getCaption(Captions.actionDisable))
.setSortable(false)
.setWidth(55);

addColumn(e -> VaadinIcons.TRASH.getHtml(), new HtmlRenderer()).setId(DELETE_COLUMN_ID)
.setCaption(I18nProperties.getCaption(Captions.actionDelete))
.setSortable(false)
.setWidth(40);

addItemClickListener(
new ShowDetailsListener<>(CLONE_COLUMN_ID, false, e -> ControllerProvider.getCustomizableFieldsController().cloneField(e)));
addItemClickListener(
new ShowDetailsListener<>(TOGGLE_ACTIVE_COLUMN_ID, false, e -> ControllerProvider.getCustomizableFieldsController().toggleActive(e)));
addItemClickListener(
new ShowDetailsListener<>(
DELETE_COLUMN_ID,
false,
e -> ControllerProvider.getCustomizableFieldsController().deleteField(e.getUuid(), this)));

for (Column<?, ?> column : getColumns()) {
column.setCaption(I18nProperties.getPrefixCaption(CustomizableFieldMetadataDto.I18N_PREFIX, column.getId(), column.getCaption()));
}
}

public void reload() {
getDataProvider().refreshAll();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import de.symeda.sormas.ui.ControllerProvider;
import de.symeda.sormas.ui.UiUtil;
import de.symeda.sormas.ui.ViewModelProviders;
import de.symeda.sormas.ui.utils.BooleanRenderer;
import de.symeda.sormas.ui.utils.CssStyles;
import de.symeda.sormas.ui.utils.DateFormatHelper;
import de.symeda.sormas.ui.utils.FieldAccessColumnStyleGenerator;
Expand Down Expand Up @@ -184,6 +185,7 @@ protected void initColumns() {
((Column<ContactIndexDto, String>) getColumn(ContactIndexDto.UUID)).setRenderer(new UuidRenderer());
((Column<ContactIndexDto, String>) getColumn(ContactIndexDto.PERSON_UUID)).setRenderer(new UuidRenderer());
((Column<ContactIndexDto, Date>) getColumn(ContactIndexDto.FOLLOW_UP_UNTIL)).setRenderer(new DateRenderer(DateFormatHelper.getDateFormat()));
((Column<ContactIndexDto, Boolean>) getColumn(ContactIndexDto.PROPHYLAXIS_PRESCRIBED)).setRenderer(new BooleanRenderer());

if (!FacadeProvider.getConfigFacade().isExternalJournalActive()) {
getColumn(ContactIndexDto.SYMPTOM_JOURNAL_STATUS).setHidden(true);
Expand Down
Loading