RestaurantMenuMealsEditorFields.java
package sk.iway.iwcm.components.restaurant_menu.jpa;
import java.util.Arrays;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumn;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditor;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditorAttr;
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class RestaurantMenuMealsEditorFields {
public RestaurantMenuMealsEditorFields(){
//konstruktor
}
@DataTableColumn(
inputType = DataTableColumnType.MULTISELECT,
title = "components.restaurant_menu.alergens",
renderFormat = "dt-format-select",
orderable = false,
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "unselectedValue", value = "")
})
}
)
private Integer[] alergensArr;
public void fromRestaurantMenuMealsEntity(RestaurantMenuMealsEntity originalEntity) {
alergensArr = Arrays.stream( Tools.getTokensInt(originalEntity.getAlergens(), ",") ).boxed().toArray( Integer[]::new );
originalEntity.setEditorFields(this);
}
public void toRestaurantMenuMealsEntity(RestaurantMenuMealsEntity originalEntity) {
if(originalEntity.getEditorFields() == null) return;
String alergensStr = "";
if(!(alergensArr.length == 1 && alergensArr[0] == null)) { //Hadnle situation when arr has only 1 elemnt NULL (nothing is selected)
for(int alergenNumber : alergensArr) {
if(Tools.isAnyEmpty(alergensStr)) alergensStr = alergenNumber + "";
else {
alergensStr += "," + alergenNumber;
}
}
}
originalEntity.setAlergens(alergensStr);
}
}