Class AdvancedPageCustomPersistenceHandler
java.lang.Object
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
org.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler
com.broadleafcommerce.advancedcms.admin.server.handler.AdvancedPageCustomPersistenceHandler
- All Implemented Interfaces:
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler,org.broadleafcommerce.openadmin.server.service.handler.DynamicEntityRetriever,org.springframework.core.Ordered
public class AdvancedPageCustomPersistenceHandler
extends org.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler
This customization of the
PageTemplateCustomPersistenceHandler will drive the dynamic form fields for a
Page based on the ThemeFile associated with the Page instead of the PageTemplate.- Author:
- Andre Azzolini (apazzolini)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.broadleafcommerce.common.sandbox.SandBoxHelperprotected com.broadleafcommerce.theme.service.PageTypeServiceprotected com.broadleafcommerce.enterprise.workflow.admin.service.behavior.RevertWorkflowManagerFields inherited from class org.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler
dynamicFieldUtil, em, pageService, sandBoxServiceFields inherited from interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
DEFAULT_ORDERFields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.broadleafcommerce.openadmin.dto.EntityaddOrUpdate(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) protected voidaddProperty(String name, String value, List<org.broadleafcommerce.openadmin.dto.Property> properties) buildTemplateFieldNames(org.broadleafcommerce.cms.page.domain.Page page) protected org.broadleafcommerce.openadmin.dto.Property[]collapseContentZoneAndContentItemFields(org.broadleafcommerce.openadmin.dto.Property[] entityProperties) protected org.broadleafcommerce.cms.field.domain.FieldGroupcreateFieldGroup(com.broadleafcommerce.theme.domain.page.PageType pageType) Creates a FieldGroup based on the given ThemeFileprotected org.broadleafcommerce.openadmin.dto.PersistencePackagecreatePersistencePackage(org.broadleafcommerce.cms.page.domain.Page page, String name, String value, Long pageFieldId) protected StringextractPageTypeFromCto(org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto) org.broadleafcommerce.openadmin.dto.DynamicResultSetfetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) org.broadleafcommerce.openadmin.dto.EntityfetchDynamicEntityWithPageType(Serializable root, List<String> dirtyFields, boolean includeId, String pageTypeId) org.broadleafcommerce.openadmin.dto.EntityfetchEntityWithPageType(String pageId, List<String> dirtyFields, String pageTypeId) protected List<org.broadleafcommerce.cms.field.domain.FieldGroup>getFieldGroups(org.broadleafcommerce.cms.page.domain.Page page, org.broadleafcommerce.cms.page.domain.PageTemplate template) When we're dealing with AdvancedCMS Pages, we care about the associatedThemeFileon the Page to drive the dynamic form instead of the pageTemplate field.protected List<org.broadleafcommerce.cms.field.domain.FieldGroup>getFieldGroups(org.broadleafcommerce.openadmin.dto.PersistencePackage pp, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao) When the customCriteria on the persistence package specifies the "constructForm-pageType" crieteria, we want to use the String at position 3 in the array to drive aPageTypelookup instead of aPageTemplatelookup, which is how it behaves when AdvancedCMS is not loaded.protected List<org.broadleafcommerce.cms.field.domain.FieldGroup>getFieldGroupsWithPageType(org.broadleafcommerce.cms.page.domain.Page page, org.broadleafcommerce.cms.page.domain.PageTemplate template, String pageTypeId) protected voidhandleAbandonedDynamicFields(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.cms.page.domain.Page page, Map<String, org.broadleafcommerce.cms.page.domain.PageField> pageFieldMap) protected voidhandleCurrentDynamicFields(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.cms.page.domain.Page page, List<String> templateFieldNames, Map<String, String> dirtyFieldsOrigVals, List<String> dirtyFields, Map<String, org.broadleafcommerce.cms.page.domain.PageField> pageFieldMap, org.broadleafcommerce.openadmin.dto.Property[] entityProperties) protected Long[]parseFKLookupIds(org.broadleafcommerce.openadmin.dto.Property prop) The lookup could contain a "|"; we need to parse itprotected voidpopulateFKLookupValues(org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.dto.Entity entity) protected org.broadleafcommerce.openadmin.dto.Property[]removePropertyFromArray(org.broadleafcommerce.openadmin.dto.Property contentItemProperty, org.broadleafcommerce.openadmin.dto.Property[] entityProperties) protected voidrevertExistingUserEdits(org.broadleafcommerce.cms.page.domain.Page page) protected voidvalidate(org.broadleafcommerce.cms.page.domain.Page page, org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) Methods inherited from class org.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler
add, canHandleAdd, canHandleFetch, canHandleInspect, canHandleRemove, canHandleUpdate, fetchDynamicEntity, fetchEntityBasedOnId, getFieldContainerClassName, getSandBox, inspect, processFieldGroups, processIncludeId, updateMethods inherited from class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
getClassForName, getMetadata, getOrder, getPolymorphicClasses, getResultSet, isAdornedListOperation, isAssignableFrom, isBasicOperation, isMapOperation, meetsCustomCriteria, remove, willHandleSecurity
-
Field Details
-
pageTypeService
protected com.broadleafcommerce.theme.service.PageTypeService pageTypeService -
helper
protected org.broadleafcommerce.common.sandbox.SandBoxHelper helper -
revertWorkflowManager
protected com.broadleafcommerce.enterprise.workflow.admin.service.behavior.RevertWorkflowManager revertWorkflowManager
-
-
Constructor Details
-
AdvancedPageCustomPersistenceHandler
public AdvancedPageCustomPersistenceHandler()
-
-
Method Details
-
getFieldGroups
protected List<org.broadleafcommerce.cms.field.domain.FieldGroup> getFieldGroups(org.broadleafcommerce.openadmin.dto.PersistencePackage pp, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao) When the customCriteria on the persistence package specifies the "constructForm-pageType" crieteria, we want to use the String at position 3 in the array to drive aPageTypelookup instead of aPageTemplatelookup, which is how it behaves when AdvancedCMS is not loaded.- Overrides:
getFieldGroupsin classorg.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler
-
getFieldGroups
protected List<org.broadleafcommerce.cms.field.domain.FieldGroup> getFieldGroups(org.broadleafcommerce.cms.page.domain.Page page, org.broadleafcommerce.cms.page.domain.PageTemplate template) When we're dealing with AdvancedCMS Pages, we care about the associatedThemeFileon the Page to drive the dynamic form instead of the pageTemplate field.- Overrides:
getFieldGroupsin classorg.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler
-
createFieldGroup
protected org.broadleafcommerce.cms.field.domain.FieldGroup createFieldGroup(com.broadleafcommerce.theme.domain.page.PageType pageType) Creates a FieldGroup based on the given ThemeFile- Parameters:
pageType-- Returns:
- the Field Group
-
fetch
public org.broadleafcommerce.openadmin.dto.DynamicResultSet fetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException - Specified by:
fetchin interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
fetchin classorg.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler- Throws:
org.broadleafcommerce.common.exception.ServiceException
-
extractPageTypeFromCto
protected String extractPageTypeFromCto(org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto) -
fetchEntityWithPageType
public org.broadleafcommerce.openadmin.dto.Entity fetchEntityWithPageType(String pageId, List<String> dirtyFields, String pageTypeId) throws Exception - Throws:
Exception
-
fetchDynamicEntityWithPageType
public org.broadleafcommerce.openadmin.dto.Entity fetchDynamicEntityWithPageType(Serializable root, List<String> dirtyFields, boolean includeId, String pageTypeId) throws Exception - Throws:
Exception
-
getFieldGroupsWithPageType
-
addOrUpdate
protected org.broadleafcommerce.openadmin.dto.Entity addOrUpdate(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException - Overrides:
addOrUpdatein classorg.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler- Throws:
org.broadleafcommerce.common.exception.ServiceException
-
handleAbandonedDynamicFields
protected void handleAbandonedDynamicFields(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.cms.page.domain.Page page, Map<String, org.broadleafcommerce.cms.page.domain.PageField> pageFieldMap) throws org.broadleafcommerce.common.exception.ServiceException- Throws:
org.broadleafcommerce.common.exception.ServiceException
-
handleCurrentDynamicFields
protected void handleCurrentDynamicFields(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.cms.page.domain.Page page, List<String> templateFieldNames, Map<String, String> dirtyFieldsOrigVals, List<String> dirtyFields, Map<String, throws org.broadleafcommerce.common.exception.ServiceExceptionorg.broadleafcommerce.cms.page.domain.PageField> pageFieldMap, org.broadleafcommerce.openadmin.dto.Property[] entityProperties) - Throws:
org.broadleafcommerce.common.exception.ServiceException
-
revertExistingUserEdits
protected void revertExistingUserEdits(org.broadleafcommerce.cms.page.domain.Page page) -
createPersistencePackage
protected org.broadleafcommerce.openadmin.dto.PersistencePackage createPersistencePackage(org.broadleafcommerce.cms.page.domain.Page page, String name, String value, Long pageFieldId) throws org.broadleafcommerce.common.exception.ServiceException - Throws:
org.broadleafcommerce.common.exception.ServiceException
-
buildTemplateFieldNames
-
validate
protected void validate(org.broadleafcommerce.cms.page.domain.Page page, org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException - Throws:
org.broadleafcommerce.common.exception.ServiceException
-
parseFKLookupIds
The lookup could contain a "|"; we need to parse it- Parameters:
prop-- Returns:
-
populateFKLookupValues
protected void populateFKLookupValues(org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.dto.Entity entity) throws ClassNotFoundException - Overrides:
populateFKLookupValuesin classorg.broadleafcommerce.cms.admin.server.handler.PageTemplateCustomPersistenceHandler- Throws:
ClassNotFoundException
-
collapseContentZoneAndContentItemFields
protected org.broadleafcommerce.openadmin.dto.Property[] collapseContentZoneAndContentItemFields(org.broadleafcommerce.openadmin.dto.Property[] entityProperties) -
removePropertyFromArray
protected org.broadleafcommerce.openadmin.dto.Property[] removePropertyFromArray(org.broadleafcommerce.openadmin.dto.Property contentItemProperty, org.broadleafcommerce.openadmin.dto.Property[] entityProperties) -
addProperty
-