package org.oep.usermgt.util; import java.util.ArrayList; import java.util.List; import org.oep.usermgt.dto.SelectionDataDTO; import org.oep.usermgt.model.WorkingUnit; import org.oep.usermgt.service.WorkingUnitLocalServiceUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.model.Group; import com.liferay.portal.service.GroupLocalServiceUtil; import com.liferay.portal.service.ServiceContext; public class CustomAUIUtil { public static ArrayList<SelectionDataDTO> getListGroup(long id, long companyId){ ArrayList<SelectionDataDTO> myList = new ArrayList<SelectionDataDTO>(); ArrayList<SelectionDataDTO> groupsLuu = new ArrayList<SelectionDataDTO>(); try { int count = GroupLocalServiceUtil.getGroupsCount(); List<Group> groupList = GroupLocalServiceUtil.getGroups(0, count); for (int index = 0; index < groupList.size();index++){ if (groupList.get(index).isSite()){ SelectionDataDTO tg = new SelectionDataDTO(); tg.setId(groupList.get(index).getGroupId()); tg.setName(groupList.get(index).getDescriptiveName()); tg.setParent(groupList.get(index).getParentGroupId()); if (groupList.get(index).getParentGroupId() != 0){ boolean f = true; for (int k = 0; k < myList.size(); k++){ if (tg.getParent() == myList.get(k).getId()){ tg.setLevel(myList.get(k).getLevel()+1); myList.add(k+1,tg); f = false; break; } } if (f){ tg.setLevel(0); groupsLuu.add(tg); } }else { tg.setLevel(0); myList.add(tg); } } } for (int index = 0; index < groupsLuu.size();index++){ boolean f = true; for (int k = 0; k < myList.size(); k++){ if (groupsLuu.get(index).getParent() == myList.get(k).getId()){ groupsLuu.get(index).setLevel(myList.get(k).getLevel()+1); myList.add(k+1,groupsLuu.get(index)); f = false; break; } } if (f){ myList.add(groupsLuu.get(index)); } } } catch (SystemException | PortalException e) { // TODO Auto-generated catch block e.printStackTrace(); } return myList; } public static ArrayList<SelectionDataDTO> getListWorkingUnit(ServiceContext serviceContext){ ArrayList<SelectionDataDTO> myList = new ArrayList<SelectionDataDTO>(); ArrayList<SelectionDataDTO> groupsLuu = new ArrayList<SelectionDataDTO>(); try { List<WorkingUnit> dsWorkingUnit = WorkingUnitLocalServiceUtil.getByCompany(serviceContext); for (int index = 0; index < dsWorkingUnit.size();index++){ SelectionDataDTO tg = new SelectionDataDTO(); tg.setId(dsWorkingUnit.get(index).getWorkingUnitId()); tg.setName(dsWorkingUnit.get(index).getName()); tg.setParent(dsWorkingUnit.get(index).getParentWorkingUnitId()); if (dsWorkingUnit.get(index).getParentWorkingUnitId() != 0){ boolean f = true; for (int k = 0; k < myList.size(); k++){ if (tg.getParent() == myList.get(k).getId()){ tg.setLevel(myList.get(k).getLevel()+1); myList.add(k+1,tg); f = false; break; } } if (f){ tg.setLevel(0); groupsLuu.add(tg); } }else { tg.setLevel(0); myList.add(tg); } } for (int index = 0; index < groupsLuu.size();index++){ boolean f = true; for (int k = 0; k < myList.size(); k++){ if (groupsLuu.get(index).getParent() == myList.get(k).getId()){ groupsLuu.get(index).setLevel(myList.get(k).getLevel()+1); myList.add(k+1,groupsLuu.get(index)); f = false; break; } } if (f){ myList.add(groupsLuu.get(index)); } } } catch (SystemException | PortalException e) { // TODO Auto-generated catch block e.printStackTrace(); } return myList; } }