Your Rating: |
![]() ![]() ![]() ![]() ![]() |
Results: |
![]() ![]() ![]() ![]() ![]() |
88 | rates |
Implemented in 3.7
Official Documentation Available
This topic is now covered in Multiselect control.
Introduction
This page contains a summary of what would be needed to implement multi-value properties. See MAGNOLIA-2363@jira outstanding for this module is edition in the tree, feature not planned at the moment. Included sample in sample module
Context
Our aim is to implement jcr multi-value properties, this properties will be stored like in the following code:
<sv:property sv:name="tags" sv:type="String"> <sv:value>news</sv:value> <sv:value>videos</sv:value> </sv:property>
that will allow us to make queries of the type: select * from nt:base where contains(tags, "news"); without having to emulate this behavior using a content node. At the moment we have at least two ways of doing this:
- create a new node type in the case of data workspace. (cannot be used in the other workspaces)
- create a content node with several properties (checkboxes)
The new implementation means that for creating/modifying a multi-valued property you will need to use the DialogMultiSelect/MultiValueSaveHandler combination. This new implementation of multi-value property will be available in addition to the current implementations.
Problem: On first approach this property won't be editable from the tree it could just be viewed.
Goals
- support jcr multi-value property type
related issues: http://jira.magnolia.info/browse/MAGNOLIA-1465, http://jira.magnolia.info/browse/MAGNOLIA-2272, http://jira.magnolia.info/browse/MAGNOLIA-2363
BK: based on - can you elaborate what we do with this contribution?
Options
We could implement option 1 or 2:
- for multi-value support:
need to add extra property definition in Magnolia custom datatypes like in nt:unstructured to support multivalue.
problem: we can have two properties same name but one single valued and the other multiple valued- need a set/get values for Value[], means we need to modify NodeData interface, setString/setBoolean... can't be used, how will we create such property on the treeview/jcr browser.
- modify content and subclasses, new create methods.
- need custom save handler, modify import/ export? data.
- modify get/set values in dialogcontrolimpl and controlimpl, small problem: keep behavior for checkboxes
- gui, first approach whitespace separated list of values
it seems this is a more complicated task than we thought and I might be missing things as I'm not aware of how everything works yet, but this won't affect the current behavior.
- use same mechanism as data module (www.mepha.ch) that would mean to create a new data type to support this kind of properties just like in the project mentioned.