|
15 | 15 | import gov.anl.aps.cdb.portal.model.ItemDomainCableDesignLazyDataModel; |
16 | 16 | import gov.anl.aps.cdb.portal.model.ItemDomainMachineDesignTreeNode; |
17 | 17 | import gov.anl.aps.cdb.portal.model.db.beans.ItemDomainCableDesignFacade; |
| 18 | +import gov.anl.aps.cdb.portal.model.db.beans.ItemProjectFacade; |
18 | 19 | import gov.anl.aps.cdb.portal.model.db.entities.CdbEntity; |
19 | 20 | import gov.anl.aps.cdb.portal.model.db.entities.Item; |
20 | 21 | import gov.anl.aps.cdb.portal.model.db.entities.ItemCategory; |
|
32 | 33 | import gov.anl.aps.cdb.portal.view.objects.DomainImportExportInfo; |
33 | 34 | import gov.anl.aps.cdb.portal.view.objects.ImportExportFormatInfo; |
34 | 35 | import java.util.ArrayList; |
| 36 | +import java.util.Arrays; |
35 | 37 | import java.util.Comparator; |
36 | 38 | import java.util.HashMap; |
| 39 | +import java.util.Iterator; |
37 | 40 | import java.util.List; |
38 | 41 | import java.util.Map; |
39 | 42 | import java.util.stream.Collectors; |
|
57 | 60 | @SessionScoped |
58 | 61 | public class ItemDomainCableDesignController extends ItemController<ItemDomainCableDesignControllerUtility, ItemDomainCableDesign, ItemDomainCableDesignFacade, ItemDomainCableDesignSettings, ItemDomainCableDesignLazyDataModel> { |
59 | 62 |
|
| 63 | + @EJB |
| 64 | + ItemProjectFacade itemProjectFacade; |
| 65 | + |
60 | 66 | @Override |
61 | 67 | protected ItemDomainCableDesignControllerUtility createControllerUtilityInstance() { |
62 | 68 | return new ItemDomainCableDesignControllerUtility(); |
@@ -968,10 +974,31 @@ public String prepareCreate() { |
968 | 974 | * Prepares cable wizard. |
969 | 975 | */ |
970 | 976 | public String prepareWizardCable() { |
971 | | - CableWizard.getInstance().reset(); |
| 977 | + CableWizard wizard = CableWizard.getInstance(); |
| 978 | + wizard.reset(); |
| 979 | + ensureSettingDefaultsLoaded(); |
| 980 | + |
| 981 | + populateEmptyDefaultWizardValues(wizard); |
| 982 | + |
972 | 983 | return "/views/itemDomainCableDesign/create?faces-redirect=true"; |
973 | 984 | } |
974 | 985 |
|
| 986 | + public void populateEmptyDefaultWizardValues(CableWizard wizard) { |
| 987 | + if (wizard.getInputValueName() == null || wizard.getInputValueName().isEmpty()) { |
| 988 | + wizard.setInputValueName(settingObject.getDefaultCablePrefix()); |
| 989 | + } |
| 990 | + |
| 991 | + if (wizard.getSelectionProjectList() == null || wizard.getSelectionProjectList().isEmpty()) { |
| 992 | + List<ItemProject> defaultProjectList = settingObject.getDefaultProjectList(); |
| 993 | + wizard.setSelectionProjectList(new ArrayList<>(defaultProjectList)); |
| 994 | + } |
| 995 | + |
| 996 | + if (wizard.getSelectionTechnicalSystemList() == null || wizard.getSelectionTechnicalSystemList().isEmpty()) { |
| 997 | + List<ItemCategory> defaultCategoryList = settingObject.getDefaultCategoryList(); |
| 998 | + wizard.setSelectionTechnicalSystemList(new ArrayList<>(defaultCategoryList)); |
| 999 | + } |
| 1000 | + } |
| 1001 | + |
975 | 1002 | @Override |
976 | 1003 | public ItemDomainCableDesignLazyDataModel createItemLazyDataModel() { |
977 | 1004 | return new ItemDomainCableDesignLazyDataModel(itemDomainCableDesignFacade, getDefaultDomain(), settingObject); |
@@ -1168,6 +1195,75 @@ public void deleteConnection(CableDesignConnectionListObject connection) { |
1168 | 1195 | connectionToDelete = null; |
1169 | 1196 | } |
1170 | 1197 |
|
| 1198 | + public void ensureSettingDefaultsLoaded() { |
| 1199 | + ItemDomainCableDesignSettings settingObject = getSettingObject(); |
| 1200 | + |
| 1201 | + String namePrefix = settingObject.getDefaultCablePrefix(); |
| 1202 | + if (namePrefix == null) { |
| 1203 | + settingObject.setDefaultCablePrefix(""); |
| 1204 | + } |
| 1205 | + |
| 1206 | + // Load default project |
| 1207 | + String defaultProject = settingObject.getDefaultProject(); |
| 1208 | + List<Integer> projectIds = new ArrayList<>(); |
| 1209 | + if (defaultProject != null && !defaultProject.trim().isEmpty()) { |
| 1210 | + projectIds = Arrays.stream(defaultProject.split(",")) |
| 1211 | + .map(Integer::parseInt) |
| 1212 | + .collect(Collectors.toList()); |
| 1213 | + } |
| 1214 | + List<ItemProject> defaultProjectList = settingObject.getDefaultProjectList(); |
| 1215 | + if (defaultProjectList == null) { |
| 1216 | + defaultProjectList = new ArrayList<>(); |
| 1217 | + } |
| 1218 | + |
| 1219 | + Iterator<ItemProject> projectIterator = defaultProjectList.iterator(); |
| 1220 | + while (projectIterator.hasNext()) { |
| 1221 | + ItemProject itemProject = projectIterator.next(); |
| 1222 | + Integer id = itemProject.getId(); |
| 1223 | + if (projectIds.contains(id)) { |
| 1224 | + projectIds.remove(id); |
| 1225 | + } else { |
| 1226 | + projectIterator.remove(); |
| 1227 | + } |
| 1228 | + } |
| 1229 | + |
| 1230 | + for (Integer projectId : projectIds) { |
| 1231 | + ItemProject project = itemProjectFacade.find(projectId); |
| 1232 | + defaultProjectList.add(project); |
| 1233 | + } |
| 1234 | + settingObject.setDefaultProjectList(defaultProjectList); |
| 1235 | + |
| 1236 | + // Load default category list |
| 1237 | + String defaultTechnicalSystem = settingObject.getDefaultTechnicalSystem(); |
| 1238 | + List<Integer> categoryIds = new ArrayList<>(); |
| 1239 | + if (defaultTechnicalSystem != null && !defaultTechnicalSystem.trim().isEmpty()) { |
| 1240 | + categoryIds = Arrays.stream(defaultTechnicalSystem.split(",")) |
| 1241 | + .map(Integer::parseInt) |
| 1242 | + .collect(Collectors.toList()); |
| 1243 | + } |
| 1244 | + List<ItemCategory> defaultTechnicalSystemList = settingObject.getDefaultCategoryList(); |
| 1245 | + if (defaultTechnicalSystemList == null) { |
| 1246 | + defaultTechnicalSystemList = new ArrayList<>(); |
| 1247 | + } |
| 1248 | + |
| 1249 | + Iterator<ItemCategory> categoryIterator = defaultTechnicalSystemList.iterator(); |
| 1250 | + while (categoryIterator.hasNext()) { |
| 1251 | + ItemCategory itemCategory = categoryIterator.next(); |
| 1252 | + Integer id = itemCategory.getId(); |
| 1253 | + if (categoryIds.contains(id)) { |
| 1254 | + categoryIds.remove(id); |
| 1255 | + } else { |
| 1256 | + categoryIterator.remove(); |
| 1257 | + } |
| 1258 | + } |
| 1259 | + |
| 1260 | + for (Integer categoryId : categoryIds) { |
| 1261 | + ItemCategory category = itemCategoryFacade.find(categoryId); |
| 1262 | + defaultTechnicalSystemList.add(category); |
| 1263 | + } |
| 1264 | + settingObject.setDefaultCategoryList(defaultTechnicalSystemList); |
| 1265 | + } |
| 1266 | + |
1171 | 1267 | // <editor-fold defaultstate="collapsed" desc="import/export support"> |
1172 | 1268 | @Override |
1173 | 1269 | public boolean getEntityDisplayImportButton() { |
|
0 commit comments