use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.
the class AdminOfferControllerExtensionHandler method setAdditionalModelAttributes.
@Override
public ExtensionResultStatusType setAdditionalModelAttributes(Model model, String sectionKey) {
if (AdminOfferController.SECTION_KEY.equals(sectionKey)) {
EntityForm form = (EntityForm) model.asMap().get("entityForm");
if (form != null) {
// UX Meta-Data to display the Rule Builders on the Offer Screen
FieldGroup ruleConfigGroup = form.findGroup(OfferAdminPresentation.GroupName.RuleConfiguration);
if (ruleConfigGroup != null) {
ruleConfigGroup.getGroupAttributes().put("additionalGroupClasses", "card");
}
// Qualifier and Target Item Builders
Field qualField = form.findField("qualifyingItemCriteria");
if (qualField != null) {
qualField.setDisplayType(RuleBuilderDisplayType.NORMAL.name());
}
Field fgField = form.findField("offerMatchRules---FULFILLMENT_GROUP");
if (fgField != null) {
fgField.setDisplayType(RuleBuilderDisplayType.NORMAL.name());
}
Field tarField = form.findField("targetItemCriteria");
if (tarField != null) {
tarField.setDisplayType(RuleBuilderDisplayType.NORMAL.name());
}
// Activity Range Builder
Field timeField = form.findField("offerMatchRules---TIME");
if (timeField != null) {
timeField.setDisplayType(RuleBuilderDisplayType.MODAL.name());
}
// Usage Builders
Field custField = form.findField("offerMatchRules---CUSTOMER");
if (custField != null) {
custField.setDisplayType(RuleBuilderDisplayType.MODAL.name());
}
Field orderField = form.findField("offerMatchRules---ORDER");
if (orderField != null) {
orderField.setDisplayType(RuleBuilderDisplayType.MODAL.name());
}
}
}
return ExtensionResultStatusType.HANDLED_CONTINUE;
}
use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.
the class FormBuilderServiceImpl method createHeaderField.
protected Field createHeaderField(Property p, BasicFieldMetadata fmd) {
Field hf;
if (fmd.getFieldType().equals(SupportedFieldType.EXPLICIT_ENUMERATION) || fmd.getFieldType().equals(SupportedFieldType.BROADLEAF_ENUMERATION) || fmd.getFieldType().equals(SupportedFieldType.DATA_DRIVEN_ENUMERATION) || fmd.getFieldType().equals(SupportedFieldType.EMPTY_ENUMERATION)) {
hf = new ComboField();
((ComboField) hf).setOptions(fmd.getEnumerationValues());
} else {
hf = new Field();
}
hf.withName(p.getName()).withFriendlyName(StringUtils.isNotEmpty(fmd.getFriendlyName()) ? fmd.getFriendlyName() : p.getName()).withOrder(fmd.getGridOrder()).withColumnWidth(fmd.getColumnWidth()).withForeignKeyDisplayValueProperty(fmd.getForeignKeyDisplayValueProperty()).withForeignKeyClass(fmd.getForeignKeyClass()).withForeignKeySectionPath(getAdminSectionPath(fmd.getForeignKeyClass())).withOwningEntityClass(fmd.getOwningClass() != null ? fmd.getOwningClass() : fmd.getTargetClass()).withCanLinkToExternalEntity(fmd.getCanLinkToExternalEntity());
String fieldType = fmd.getFieldType() == null ? null : fmd.getFieldType().toString();
hf.setFieldType(fieldType);
return hf;
}
use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.
the class FormBuilderServiceImpl method findAssociatedField.
private Field findAssociatedField(EntityForm ef, Field f) {
// Try on the parent object
Field associatedField = ef.findField(f.getAssociatedFieldName());
if (associatedField == null) {
// Check the field's path
String[] fieldPathParts = f.getName().split("\\.");
String testPath = "";
for (String path : fieldPathParts) {
testPath += path + ".";
associatedField = ef.findField(testPath + f.getAssociatedFieldName());
if (associatedField != null) {
break;
}
}
}
return associatedField;
}
use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.
the class FormBuilderServiceImpl method buildAdornedListForm.
@Override
public EntityForm buildAdornedListForm(AdornedTargetCollectionMetadata adornedMd, AdornedTargetList adornedList, String parentId, boolean isViewCollectionItem, EntityForm ef, List<SectionCrumb> sectionCrumbs, boolean isAdd) throws ServiceException {
ef.setEntityType(adornedList.getAdornedTargetEntityClassname());
// Get the metadata for this adorned field
PersistencePackageRequest request = PersistencePackageRequest.adorned().withCeilingEntityClassname(adornedMd.getCollectionCeilingEntity()).withAdornedList(adornedList).withSectionCrumbs(sectionCrumbs);
request.setAddOperationInspect(isAdd);
ClassMetadata collectionMetadata = adminEntityService.getClassMetadata(request).getDynamicResultSet().getClassMetaData();
List<Property> entityFormProperties = new ArrayList<>();
if (isViewCollectionItem) {
Collections.addAll(entityFormProperties, collectionMetadata.getProperties());
} else {
// We want our entity form to only render the maintained adorned target fields
for (String targetFieldName : adornedMd.getMaintainedAdornedTargetFields()) {
Property p = collectionMetadata.getPMap().get(targetFieldName);
if (p.getMetadata() instanceof BasicFieldMetadata && BooleanUtils.isNotTrue(p.getMetadata().getExcluded())) {
((BasicFieldMetadata) p.getMetadata()).setVisibility(VisibilityEnum.VISIBLE_ALL);
entityFormProperties.add(p);
}
}
}
// Set the maintained fields on the form
setEntityFormFields(collectionMetadata, ef, entityFormProperties);
// Add these two additional hidden fields that are required for persistence
Field f = new Field().withName(adornedList.getLinkedObjectPath() + "." + adornedList.getLinkedIdProperty()).withFieldType(SupportedFieldType.HIDDEN.toString()).withValue(parentId);
ef.addHiddenField(collectionMetadata, f);
f = new Field().withName(adornedList.getTargetObjectPath() + "." + adornedList.getTargetIdProperty()).withFieldType(SupportedFieldType.HIDDEN.toString()).withIdOverride("adornedTargetIdProperty");
ef.addHiddenField(collectionMetadata, f);
if (StringUtils.isNotBlank(adornedList.getSortField())) {
f = new Field().withName(adornedList.getSortField()).withFieldType(SupportedFieldType.HIDDEN.toString());
ef.addHiddenField(collectionMetadata, f);
}
ef.setParentId(parentId);
extensionManager.getProxy().addAdditionalAdornedFormActions(ef);
return ef;
}
use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.
the class FormBuilderServiceImpl method constructSelectizeOptionMap.
@Override
public Map<String, Object> constructSelectizeOptionMap(DynamicResultSet drs, ClassMetadata cmd) {
Map<String, Object> result = new HashMap<>();
List<Map<String, String>> options = new ArrayList<>();
List<Field> headerFields = new ArrayList<>();
for (Property p : cmd.getProperties()) {
if (p.getMetadata() instanceof BasicFieldMetadata) {
BasicFieldMetadata md = (BasicFieldMetadata) p.getMetadata();
if (md.isProminent() != null && md.isProminent() && !ArrayUtils.contains(getGridHiddenVisibilities(), md.getVisibility())) {
Field hf = createHeaderField(p, md);
headerFields.add(hf);
}
}
}
for (Entity e : drs.getRecords()) {
Map<String, String> selectizeOption = new HashMap<>();
for (Field headerField : headerFields) {
Property p = e.findProperty(headerField.getName());
if (p != null) {
selectizeOption.put("name", p.getValue());
break;
}
}
if (e.findProperty("id") != null) {
selectizeOption.put("id", e.findProperty("id").getValue());
}
if (e.findProperty(ALTERNATE_ID_PROPERTY) != null) {
selectizeOption.put("alternateId", e.findProperty(ALTERNATE_ID_PROPERTY).getValue());
}
options.add(selectizeOption);
}
result.put("options", options);
return result;
}
Aggregations