Page tree
Skip to end of metadata
Go to start of metadata

Your Rating: Results: 1 Star2 Star3 Star4 Star5 Star 86 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: 

  1. 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.

  2. 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.
  • No labels