protected void updateFolders(List<AppFolder> reloadedFolders) { List<AppFolder> folders = appFoldersTree.getItems() .collect(Collectors.toList()); for (AppFolder folder : reloadedFolders) { int index = reloadedFolders.indexOf(folder); AppFolder f = folders.get(index); if (f != null) { f.setItemStyle(folder.getItemStyle()); f.setQuantity(folder.getQuantity()); } } }
protected void reloadSingleParentFolder(AppFolder parentFolder, @Nullable List<AppFolder> reloadedFolders) { Collection<AppFolder> childFolders = getChildFolders(parentFolder); int sumOfChildQuantity = 0; Set<String> childFoldersStyleSet = new HashSet<>(); for (AppFolder childFolder : childFolders) { if (reloadedFolders != null) { childFolder = reloadedFolders.get(reloadedFolders.indexOf(childFolder)); } sumOfChildQuantity += !StringUtils.isBlank(childFolder.getQuantityScript()) && childFolder.getQuantity() != null ? childFolder.getQuantity() : 0; if (childFolder.getItemStyle() != null) childFoldersStyleSet.add(childFolder.getItemStyle()); } parentFolder.setQuantity(sumOfChildQuantity); if (!childFoldersStyleSet.isEmpty()) { parentFolder.setItemStyle(StringUtils.join(childFoldersStyleSet, " ")); } else parentFolder.setItemStyle(""); }
protected void reloadParentFolders(List<AppFolder> reloadedFolders) { for (AppFolder folder : reloadedFolders) { if (StringUtils.isBlank(folder.getQuantityScript())) { if (appFoldersTree.isExpanded(folder)) { folder.setQuantity(null); folder.setItemStyle(""); } else { reloadSingleParentFolder(folder, reloadedFolders); } } } }
protected boolean loadFolderQuantity(Binding binding, AppFolder folder) { if (!StringUtils.isBlank(folder.getQuantityScript())) { binding.setVariable("folder", folder); String styleVariable = "style"; binding.setVariable(styleVariable, null); try { Number qty = runScript(folder.getQuantityScript(), binding); folder.setItemStyle((String) binding.getVariable(styleVariable)); folder.setQuantity(qty == null ? null : qty.intValue()); } catch (Exception e) { log.warn("Unable to evaluate AppFolder quantity script for folder: id: {} , name: {}", folder.getId(), folder.getName(), e); return false; } } return true; }
if (StringUtils.isBlank(folder.getQuantityScript())) { folder.setQuantity(null); folder.setItemStyle(null);