public DynamicAttributesEntity(BaseGenericIdEntity mainItem, Collection<CategoryAttribute> attributes) { this.mainItem = mainItem; this.id = UuidProvider.createUuid(); for (CategoryAttribute attribute : attributes) { attributesMap.put(attribute.getCode(), attribute); } }
public Collection<CategoryAttribute> getAttributesForMetaClass(MetaClass metaClass) { MetaClass targetMetaClass = resolveTargetMetaClass(metaClass); Collection<Category> categories = categoriesCache.get(targetMetaClass.getName()); return categories.stream() .flatMap(ca -> ca.getCategoryAttrs().stream()) .filter(a -> StringUtils.isNotBlank(a.getCode())) .collect(Collectors.toList()); }
protected void fillAttributeCode() { CategoryAttribute attribute = getItem(); if (StringUtils.isBlank(attribute.getCode()) && StringUtils.isNotBlank(attribute.getName())) { String categoryName = StringUtils.EMPTY; if (attribute.getCategory() != null) { categoryName = StringUtils.defaultString(attribute.getCategory().getName()); } attribute.setCode(StringUtils.deleteWhitespace(categoryName + attribute.getName())); } }
CategoryAttribute attribute = categoryAttributeValue.getCategoryAttribute(); if (attribute != null) { map.put(attribute.getCode(), categoryAttributeValue);
@Override public void postValidate(ValidationErrors errors) { @SuppressWarnings("unchecked") CollectionDatasource<CategoryAttribute, UUID> parent = (CollectionDatasource<CategoryAttribute, UUID>) ((DatasourceImplementation) attributeDs).getParent(); if (parent != null) { CategoryAttribute categoryAttribute = getItem(); for (UUID id : parent.getItemIds()) { CategoryAttribute ca = parent.getItemNN(id); if (ca.getName().equals(categoryAttribute.getName()) && (!ca.equals(categoryAttribute))) { errors.add(getMessage("uniqueName")); return; } else if (ca.getCode() != null && ca.getCode().equals(categoryAttribute.getCode()) && (!ca.equals(categoryAttribute))) { errors.add(getMessage("uniqueCode")); return; } } } }
attributes.put(categoryAttribute.getCode(), categoryAttribute);
public DynamicAttributesMetaProperty(MetaClass metaClass, CategoryAttribute attribute) { this.attribute = attribute; this.javaClass = DynamicAttributesUtils.getAttributeClass(attribute); this.metaClass = metaClass; this.name = DynamicAttributesUtils.encodeAttributeCode(attribute.getCode()); this.mandatory = attribute.getRequired(); Metadata metadata = AppBeans.get(Metadata.NAME); Session metadataSession = metadata.getSession(); if (Entity.class.isAssignableFrom(javaClass)) { range = new ClassRange(metadataSession.getClass(javaClass)); this.type = Type.ASSOCIATION; } else { this.range = new DatatypeRange(Datatypes.getNN(javaClass)); this.type = Type.DATATYPE; } }
MetaPropertyPath metaPropertyPath = metadataTools.resolveMetaPropertyPathNN(metaClass, DynamicAttributesUtils.encodeAttributeCode(dynamicAttribute.getCode())); propertyList.add(metaPropertyPath.getMetaProperty());
/** * Creates ListEditor component. * * @param valueSource value source * @param categoryAttribute category attribute * @return list editor component or null */ @Nullable public Component generateComponent(ValueSource valueSource, CategoryAttribute categoryAttribute) { ListEditor listEditor = uiComponents.create(ListEditor.NAME); listEditor.setEntityJoinClause(categoryAttribute.getJoinClause()); listEditor.setEntityWhereClause(categoryAttribute.getWhereClause()); ListEditor.ItemType itemType = getListEditorItemType(categoryAttribute.getDataType()); listEditor.setItemType(itemType); if (!Strings.isNullOrEmpty(categoryAttribute.getEntityClass())) { Class<?> clazz = scripting.loadClass(categoryAttribute.getEntityClass()); if (clazz == null) { log.error("Unable to find class of entity {} for dynamic attribute {}", categoryAttribute.getEntityClass(), categoryAttribute.getCode()); return null; } MetaClass metaClass = metadata.getClassNN(clazz); listEditor.setEntityName(metaClass.getName()); listEditor.setUseLookupField(BooleanUtils.isTrue(categoryAttribute.getLookup())); } //noinspection unchecked listEditor.setValueSource(valueSource); return listEditor; }
DynamicAttributesUtils.encodeAttributeCode(attribute.getCode())); field.setProperty(DynamicAttributesUtils.encodeAttributeCode(attribute.getCode())); field.setCaption(attribute.getLocaleName()); field.setDatasource(ds); CustomFieldGenerator fieldGenerator = new DynamicAttributeCustomFieldGenerator(); Component fieldComponent = fieldGenerator.generateField(ds, DynamicAttributesUtils.encodeAttributeCode(attribute.getCode())); field.setCustom(true); field.setComponent(fieldComponent);
String code = DynamicAttributesUtils.encodeAttributeCode(attribute.getCode());
String code = DynamicAttributesUtils.encodeAttributeCode(categoryAttribute.getCode()); if (entityIsCategorized && !categoryAttribute.getCategory().equals(((Categorized) item).getCategory())) {