public void copyFrom(AbstractSearchFolder srcFolder) { setCreatedBy(srcFolder.getCreatedBy()); setCreateTs(srcFolder.getCreateTs()); setDeletedBy(srcFolder.getDeletedBy()); setDeleteTs(srcFolder.getDeleteTs()); setFilterComponentId(srcFolder.getFilterComponentId()); setFilterXml(srcFolder.getFilterXml()); setName(srcFolder.getCaption()); setTabName(srcFolder.getTabName()); setParent(srcFolder.getParent()); setItemStyle(srcFolder.getItemStyle()); setSortOrder(srcFolder.getSortOrder()); }
@Override public void openFolder(AbstractSearchFolder folder) { if (StringUtils.isBlank(folder.getFilterComponentId())) { log.warn("Unable to open folder: componentId is blank"); return; String[] strings = ValuePathHelper.parse(folder.getFilterComponentId()); String screenId = strings[0]; WindowParams.DISABLE_RESUME_SUSPENDED.set(params, true); if (!StringUtils.isBlank(folder.getTabName())) { WindowParams.DESCRIPTION.set(params, messages.getMainMessage(folder.getTabName())); } else { WindowParams.DESCRIPTION.set(params, messages.getMainMessage(folder.getName())); WindowParams.FOLDER_ID.set(params, folder.getId()); filterEntity.setComponentId(folder.getFilterComponentId()); filterEntity.setName(folder.getLocName()); filterEntity.setXml(folder.getFilterXml()); filterEntity.setApplyDefault(BooleanUtils.isNotFalse(folder.getApplyDefault())); if (folder instanceof SearchFolder) { filterEntity.setIsSet(((SearchFolder) folder).getIsSet());
folder.setName(folderName); folder.setTabName(folderName); } else { String name = messages.getMainMessage(filterEntity.getCode()); folder.setName(name); folder.setTabName(name); folder.setFilterComponentId(filterEntity.getComponentId()); folder.setFilterXml(newXml); if (!isAppFolder) { if (uerCanEditGlobalFilter())
protected String getFilterCaption(FilterEntity filterEntity) { String name; if (filterEntity != null) { if (filterEntity.getCode() == null) name = InstanceUtils.getInstanceName(filterEntity); else { name = messages.getMainMessage(filterEntity.getCode()); } AbstractSearchFolder folder = filterEntity.getFolder(); if (folder != null) { if (!StringUtils.isBlank(folder.getTabName())) name = messages.getMainMessage(folder.getTabName()); else if (!StringUtils.isBlank(folder.getName())) { name = messages.getMainMessage(folder.getName()); } if (BooleanUtils.isTrue(filterEntity.getIsSet())) name = getMainMessage("filter.setPrefix") + " " + name; else name = getMainMessage("filter.folderPrefix") + " " + name; } } else name = ""; return name; }
protected void saveFilterEntity() { Boolean isDefault = filterEntity.getIsDefault(); Boolean applyDefault = filterEntity.getApplyDefault(); if (filterEntity.getFolder() == null) { CommitContext ctx = new CommitContext(Collections.singletonList(filterEntity)); Set<Entity> result = dataService.commit(ctx); FilterEntity savedFilterEntity = (FilterEntity) result.iterator().next(); filterEntities.remove(filterEntity); filterEntity = savedFilterEntity; filterEntities.add(filterEntity); filterEntity.setApplyDefault(applyDefault); filterEntity.setIsDefault(isDefault); } else { filterEntity.getFolder().setName(filterEntity.getName()); filterEntity.getFolder().setFilterXml(filterEntity.getXml()); AbstractSearchFolder folder = saveFolder(filterEntity.getFolder()); filterEntity.setFolder(folder); } saveInitialFilterState(); setFilterActionsEnabled(); updateFilterModifiedIndicator(); }
@Override public void perform(final Folder folder) { AbstractSearchFolder newFolder = (AbstractSearchFolder) metadata.create(folder.getMetaClass()); newFolder.copyFrom((AbstractSearchFolder) folder); new EditAction().perform(newFolder); } }
protected boolean getItemClickable(Folder folder) { return folder instanceof AbstractSearchFolder && !StringUtils.isBlank(((AbstractSearchFolder) folder).getFilterComponentId()); }
@Override public void actionPerform(Component component) { if (filterEntity == null) { // todo add notification 'Filter not selected' return; } Frame frame = filter.getFrame(); String[] strings = ValuePathHelper.parse(ComponentsHelper.getFilterComponentPath(filter)); String windowAlias = strings[0]; StringBuilder lookupAlias = new StringBuilder(windowAlias); if (windowAlias.endsWith(Window.BROWSE_WINDOW_SUFFIX)) { int index = lookupAlias.lastIndexOf(Window.BROWSE_WINDOW_SUFFIX); lookupAlias.delete(index, lookupAlias.length()); lookupAlias.append(Window.LOOKUP_WINDOW_SUFFIX); } WindowManager wm = (WindowManager) ComponentsHelper.getScreenContext(frame).getScreens(); WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo(lookupAlias.toString()); wm.openLookup(windowInfo, items -> { String filterXml = filterEntity.getXml(); filterEntity.setXml(UserSetHelper.addEntities(filterXml, items)); filterEntity.getFolder().setFilterXml(filterEntity.getXml()); filterEntity.setFolder(saveFolder(filterEntity.getFolder())); setFilterEntity(filterEntity); }, OpenType.THIS_TAB); } }
@Override public String apply(T folder) { if (folder != null) { String style; // clickable tree item if (getItemClickable(folder)) { style = "c-clickable-folder"; } else { style = "c-nonclickable-folder"; } // handle custom styles if (StringUtils.isNotBlank(folder.getItemStyle())) { style += " " + folder.getItemStyle(); } return style; } return null; } }
@Override public void copyFrom(AbstractSearchFolder srcFolder) { super.copyFrom(srcFolder); setVisibilityScript(((AppFolder) srcFolder).getVisibilityScript()); setQuantityScript(((AppFolder) srcFolder).getQuantityScript()); }
protected boolean isItemExpandable(Folder folder) { return folder instanceof AbstractSearchFolder && StringUtils.isBlank(((AbstractSearchFolder) folder).getFilterComponentId()); }
String filterXml = filterEntity.getXml(); filterEntity.setXml(UserSetHelper.removeEntities(filterXml, selected)); filterEntity.getFolder().setFilterXml(filterEntity.getXml()); filterEntity.setFolder(saveFolder((filterEntity.getFolder()))); setFilterEntity(filterEntity);
@Override public void copyFrom(AbstractSearchFolder srcFolder) { super.copyFrom(srcFolder); UserSessionSource sessionSource = AppBeans.get(UserSessionSource.NAME); setUser(sessionSource.getUserSession().getUser()); }