PerexGroupsEditorFields.java
package sk.iway.iwcm.components.perex_groups;
import java.util.ArrayList;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.doc.GroupDetails;
import sk.iway.iwcm.doc.GroupsDB;
import sk.iway.iwcm.system.datatable.BaseEditorFields;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumn;
@Getter
@Setter
public class PerexGroupsEditorFields extends BaseEditorFields {
public PerexGroupsEditorFields(){}
@DataTableColumn(inputType = DataTableColumnType.JSON, title="admin.temp.edit.showForDir", className = "dt-tree-group-array-alldomains")
private List<GroupDetails> availableGroups;
public void fromPerexGroupsEntity(PerexGroupsEntity perexGroupOriginal) {
availableGroups = new ArrayList<>();
String availableGroupsString = perexGroupOriginal.getAvailableGroups();
if(availableGroupsString != null && !availableGroupsString.isEmpty()) {
GroupsDB groupsDB = GroupsDB.getInstance();
String availableGroupsIdArray[] = availableGroupsString.split(",");
for(int i = 0; i < availableGroupsIdArray.length; i++) {
GroupDetails tmp = groupsDB.getGroup(Integer.parseInt(availableGroupsIdArray[i]));
if (tmp != null) availableGroups.add(tmp);
}
perexGroupOriginal.setEditorFields(this);
} else {
perexGroupOriginal.setEditorFields(this);
}
}
public void toPerexGroupsEntity(PerexGroupsEntity perexGroupOriginal) {
String newGroupIds = "";
//loop MediaGroupEditorFileds.availableGroups, get every group id and join them using "," as separator
for(int i = 0; i < this.availableGroups.size(); i++) {
if (this.availableGroups.get(i)==null) continue;
if (Tools.isNotEmpty(newGroupIds)) newGroupIds += ",";
newGroupIds += this.availableGroups.get(i).getGroupId();
}
perexGroupOriginal.setAvailableGroups(newGroupIds);
}
}