public class DelegatingMultiValueFieldTransformer extends BasicTransformer<com.vaadin.v7.data.util.PropertysetItem> implements MultiTransformer
Transformer
is dedicated to the MultiField
;
it considers entries as child nodes and delegates property handling to their respective sub-fields.
The storage strategy is that of the MultiValueChildNodeTransformer
:
Modifier and Type | Field and Description |
---|---|
protected String |
childNodeType |
protected String |
subItemBaseName |
basePropertyName, definition, i18NPropertyName, relatedFormItem, type
Constructor and Description |
---|
DelegatingMultiValueFieldTransformer(com.vaadin.v7.data.Item relatedFormItem,
ConfiguredFieldDefinition definition,
Class<com.vaadin.v7.data.util.PropertysetItem> type,
I18NAuthoringSupport i18nAuthoringSupport) |
DelegatingMultiValueFieldTransformer(com.vaadin.v7.data.Item relatedFormItem,
ConfiguredFieldDefinition definition,
Class<com.vaadin.v7.data.util.PropertysetItem> type,
info.magnolia.cms.i18n.I18nContentSupport i18nContentSupport)
Deprecated.
since 5.4.2 - use
DelegatingMultiValueFieldTransformer(Item, ConfiguredFieldDefinition, Class, I18NAuthoringSupport) instead. |
Modifier and Type | Method and Description |
---|---|
protected String |
childItemRegexRepresentation() |
protected String |
createNewItemName()
Creates a unique name for the child item, in the following format:
subItemBaseName + increment + i18nSuffix
subItemBaseName by default we use the
FieldDefinition.getName()
increment is the next available index for the current base name
i18nSuffix is the default i18n suffix (typically something formatted like '_de')
. |
com.vaadin.v7.data.Property<?> |
createProperty()
Creates a new child item, adds it to the root item, and returns it wrapped as an
ObjectProperty . |
String |
getBasePropertyName()
Returns the property base name that the
I18NAuthoringSupport should use. |
protected List<String> |
getChildItemNames() |
protected JcrNodeAdapter |
getRootItem()
Defines the root item used to retrieve and create child items.
|
protected List<javax.jcr.Node> |
getStoredChildNodes(JcrNodeAdapter parent)
Fetches child nodes of the given parent from JCR, filtered using the
NodeUtil.MAGNOLIA_FILTER predicate. |
protected String |
getSubItemBaseName()
Defines the base name to use for retrieving and creating child items.
|
protected String |
incrementRegexRepresentation() |
protected void |
populateStoredChildItems(JcrNodeAdapter rootItem)
Populates the given root item with its child items.
|
com.vaadin.v7.data.util.PropertysetItem |
readFromItem()
Returns a representation of the child items as a
PropertysetItem ;
this is merely a map whose keys are the positions in the MultiField , and whose values are the child items, wrapped as ObjectProperties . |
void |
removeProperty(Object id)
Removes a property from the root item.
|
void |
setI18NPropertyName(String i18NSubNodeName) |
void |
setLocale(Locale locale) |
void |
writeToItem(com.vaadin.v7.data.util.PropertysetItem newValue)
This transformer's write implementation is empty.
|
definePropertyName, deriveLocaleAwareName, getI18NAuthoringSupport, getLocale, getOrCreateProperty, getOrCreateProperty, getRelatedFormItem, getType, hasI18NSupport, isReadOnly, setReadOnly, setType
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getType, hasI18NSupport, isReadOnly, setReadOnly
getLocale
protected String childNodeType
protected String subItemBaseName
@Deprecated public DelegatingMultiValueFieldTransformer(com.vaadin.v7.data.Item relatedFormItem, ConfiguredFieldDefinition definition, Class<com.vaadin.v7.data.util.PropertysetItem> type, info.magnolia.cms.i18n.I18nContentSupport i18nContentSupport)
DelegatingMultiValueFieldTransformer(Item, ConfiguredFieldDefinition, Class, I18NAuthoringSupport)
instead.@Inject public DelegatingMultiValueFieldTransformer(com.vaadin.v7.data.Item relatedFormItem, ConfiguredFieldDefinition definition, Class<com.vaadin.v7.data.util.PropertysetItem> type, I18NAuthoringSupport i18nAuthoringSupport)
public com.vaadin.v7.data.util.PropertysetItem readFromItem()
PropertysetItem
;
this is merely a map whose keys are the positions in the MultiField
, and whose values are the child items, wrapped as ObjectProperties
.
Please note that this list of child items is filtered based on the subItemBaseName and current locale.
readFromItem
in interface Transformer<com.vaadin.v7.data.util.PropertysetItem>
readFromItem
in class BasicTransformer<com.vaadin.v7.data.util.PropertysetItem>
public void writeToItem(com.vaadin.v7.data.util.PropertysetItem newValue)
writeToItem
in interface Transformer<com.vaadin.v7.data.util.PropertysetItem>
writeToItem
in class BasicTransformer<com.vaadin.v7.data.util.PropertysetItem>
public com.vaadin.v7.data.Property<?> createProperty()
ObjectProperty
.
The child item naming strategy is as follows: subItemBaseName + increment + i18nSuffix
createProperty
in interface MultiTransformer
#createNewItemName()}
public void removeProperty(Object id)
MultiTransformer
removeProperty
in interface MultiTransformer
id
- the property identifier as specified by the concrete Transformer
implementationpublic void setLocale(Locale locale)
setLocale
in interface I18NAwareHandler
setLocale
in class BasicTransformer<com.vaadin.v7.data.util.PropertysetItem>
protected JcrNodeAdapter getRootItem()
protected String getSubItemBaseName()
By default, we use the FieldDefinition.getName()
.
protected void populateStoredChildItems(JcrNodeAdapter rootItem)
protected List<javax.jcr.Node> getStoredChildNodes(JcrNodeAdapter parent)
NodeUtil.MAGNOLIA_FILTER
predicate.protected String createNewItemName()
FieldDefinition.getName()
protected String childItemRegexRepresentation()
protected String incrementRegexRepresentation()
public String getBasePropertyName()
I18NAwareHandler
I18NAuthoringSupport
should use.getBasePropertyName
in interface I18NAwareHandler
getBasePropertyName
in class BasicTransformer<com.vaadin.v7.data.util.PropertysetItem>
public void setI18NPropertyName(String i18NSubNodeName)
setI18NPropertyName
in interface I18NAwareHandler
setI18NPropertyName
in class BasicTransformer<com.vaadin.v7.data.util.PropertysetItem>
Copyright © 2019 Magnolia International Ltd.. All rights reserved.