Commit 23ddee78 authored by Ate Douma's avatar Ate Douma

HIPPLUG-970: cleanup and new maven configuration of standard Hippo Plugin Selections

parent 88f0a354
......@@ -16,19 +16,3 @@ addon-repository/src/main/resources/system-DynamicDropdown.xml svneol=native#tex
addon-repository/src/main/resources/system-StaticDropdown.xml svneol=native#text/plain
hst/pom.xml svneol=native#text/plain
/pom.xml svneol=native#text/plain
src/site/resources/images/cmsdocument.jpg -text svneol=unset#image/jpeg
src/site/resources/images/cmsvaluelist.jpg -text svneol=unset#image/jpeg
src/site/resources/images/site.jpg -text svneol=unset#image/jpeg
src/site/resources/images/thm_cmsdocument.jpg -text svneol=unset#image/jpeg
src/site/resources/images/thm_site.jpg -text svneol=unset#image/jpeg
src/site/site.xml svneol=native#text/plain
src/site/xdoc/build-demo.xml svneol=native#text/plain
src/site/xdoc/configuration.xml svneol=native#text/plain
src/site/xdoc/configuration/dynamicdropdown.xml svneol=native#text/plain
src/site/xdoc/configuration/dynamicmultiselect.xml svneol=native#text/plain
src/site/xdoc/configuration/staticdropdown.xml svneol=native#text/plain
src/site/xdoc/index.xml svneol=native#text/plain
src/site/xdoc/install.xml svneol=native#text/plain
src/site/xdoc/install_7_8.xml svneol=native#text/plain
src/site/xdoc/release-notes.xml svneol=native#text/plain
src/site/xdoc/screenshots.xml svneol=native#text/plain
Hippo Forge Selection Plugins
Hippo Plugin Selections
Copyright 2009-2014 Hippo B.V. (http://www.onehippo.com)
This product includes software developed by:
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010-2013 Hippo B.V. (http://www.onehippo.com)
Copyright 2010-2014 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
......@@ -18,14 +18,14 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onehippo.forge.selectionplugins</groupId>
<artifactId>selectionplugins</artifactId>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-plugin-selections</artifactId>
<version>2.09.00-SNAPSHOT</version>
</parent>
<name>Hippo Forge Selection Plugins Addon CMS</name>
<description>Hippo Forge Selection Plugins Addon CMS</description>
<artifactId>selectionplugins-addon-cms</artifactId>
<name>Hippo Plugin Selections Addon CMS</name>
<description>Hippo Plugin Selections Addon CMS</description>
<artifactId>hippo-plugin-selections-addon-cms</artifactId>
<dependencies>
......@@ -66,21 +66,6 @@
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<filtering>false</filtering>
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010-2013 Hippo B.V. (http://www.onehippo.com)
Copyright 2010-2014 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
......@@ -18,14 +18,14 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onehippo.forge.selectionplugins</groupId>
<artifactId>selectionplugins</artifactId>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-plugin-selections</artifactId>
<version>2.09.00-SNAPSHOT</version>
</parent>
<artifactId>selectionplugins-addon-repository</artifactId>
<name>Hippo Forge Selection Plugins Addon Repository</name>
<description>Hippo Forge Selection Plugins Addon Repository</description>
<artifactId>hippo-plugin-selections-addon-repository</artifactId>
<name>Hippo Plugins Selections Addon Repository</name>
<description>Hippo Plugin Selections Addon Repository</description>
<dependencies>
......@@ -46,8 +46,4 @@
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010-2013 Hippo B.V. (http://www.onehippo.com)
Copyright 2010-2014 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
......@@ -18,14 +18,14 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onehippo.forge.selectionplugins</groupId>
<artifactId>selectionplugins</artifactId>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-plugin-selections</artifactId>
<version>2.09.00-SNAPSHOT</version>
</parent>
<artifactId>selectionplugins-hst-client</artifactId>
<name>Hippo Forge Selection Plugins HST Client</name>
<description>Hippo Forge Selection Plugins HST Client</description>
<artifactId>hippo-plugin-selections-hst-client</artifactId>
<name>Hippo Plugin Selections HST Client</name>
<description>Hippo Plugin Selections HST Client</description>
<dependencies>
......@@ -46,22 +46,4 @@
</dependencies>
<build>
<defaultGoal>package</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
......@@ -20,69 +20,58 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms7-project</artifactId>
<version>25</version>
<version>27-SNAPSHOT</version>
</parent>
<name>Hippo Forge Selection Plugins</name>
<description>Hippo Forge Selection Plugins</description>
<groupId>org.onehippo.forge.selectionplugins</groupId>
<artifactId>selectionplugins</artifactId>
<name>Hippo Plugin Selections</name>
<description>Hippo Plugin Selections</description>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-plugin-selections</artifactId>
<version>2.09.00-SNAPSHOT</version>
<packaging>pom</packaging>
<inceptionYear>2009</inceptionYear>
<url>https://forge.onehippo.org/gf/project/selection</url>
<scm>
<connection>scm:svn:https://svn.onehippo.org/repos/hippo/hippo-cms7/plugins/selections/trunk/</connection>
<developerConnection>scm:svn:https://svn.onehippo.org/repos/hippo/hippo-cms7/plugins/selections/trunk/</developerConnection>
<url>https://svn.onehippo.org/repos/hippo/hippo-cms7/plugins/selections/trunk/</url>
</scm>
<properties>
<!-- use root project name for all project modules NOTICE files, should be the same as in the root NOTICE file -->
<notice.project.name>Hippo Forge Selection Plugins</notice.project.name>
<notice.project.name>Hippo Plugins Selection</notice.project.name>
<hippo.cms.version>2.26.01</hippo.cms.version>
<hippo.repository.version>2.26.01</hippo.repository.version>
<hippo.hst.version>2.28.02</hippo.hst.version>
<hippo.cms.version>2.27.00-SNAPSHOT</hippo.cms.version>
<hippo.repository.version>2.27.00-SNAPSHOT</hippo.repository.version>
<hippo.hst.version>2.29.00-SNAPSHOT</hippo.hst.version>
<junit.version>4.8.2</junit.version>
<wicket.version>6.14.0</wicket.version>
<extension.wagon-svn.version>1.9</extension.wagon-svn.version>
<sonar.l10n.locales>nl,fr,it,de</sonar.l10n.locales>
</properties>
<distributionManagement>
<repositories>
<repository>
<uniqueVersion>false</uniqueVersion>
<id>selection-maven-repo</id>
<url>svn:https://forge.onehippo.org/svn/selection/maven2/</url>
<id>hippo</id>
<name>Hippo Maven 2</name>
<url>https://maven.onehippo.com/maven2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</distributionManagement>
<scm>
<connection>scm:svn:https://forge.onehippo.org/svn/selection/selection/trunk</connection>
<developerConnection>scm:svn:https://forge.onehippo.org/svn/selection/selection/trunk</developerConnection>
<url>http://selection.forge.onehippo.org/</url>
</scm>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</repositories>
<issueManagement>
<system>Hippo Forge</system>
<system>Jira Hippo Plugins</system>
<url>https://issues.onehippo.com/browse/HIPPLUG/component/10996</url>
</issueManagement>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<dependencyManagement>
<dependencies>
......@@ -181,54 +170,12 @@
</dependencyManagement>
<repositories>
<repository>
<id>hippo-maven2</id>
<name>Hippo Maven 2</name>
<url>http://maven.onehippo.com/maven2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<layout>default</layout>
</repository>
<repository>
<id>hippo-maven2-forge</id>
<name>Hippo Maven 2 Forge repository</name>
<url>http://maven.onehippo.com/maven2-forge/</url>
<snapshots />
</repository>
</repositories>
<modules>
<module>addon-repository</module>
<module>addon-cms</module>
<module>hst</module>
</modules>
<build>
<defaultGoal>package</defaultGoal>
<extensions>
<extension>
<groupId>org.jvnet.wagon-svn</groupId>
<artifactId>wagon-svn</artifactId>
<version>${extension.wagon-svn.version}</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<profile>
......@@ -262,20 +209,4 @@
</profiles>
<!-- overwrite mailinglist, removing the repository mailing list from inherited -->
<mailingLists>
<mailingList>
<name>Hippo CMS 7 User Forums</name>
<subscribe>hippo-cms7-user-join@lists.onehippo.org</subscribe>
<unsubscribe>hippo-cms7-user-leave@lists.onehippo.org</unsubscribe>
<archive>http://lists.onehippo.org/pipermail/hippo-cms7-user/</archive>
</mailingList>
</mailingLists>
<!-- clear unused elements inherited from hippo-cms7-project pom -->
<contributors>
<contributor />
</contributors>
<ciManagement />
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2009-2014 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="Hippo CMS Selection Plugins">
<skin>
<groupId>org.onehippo.forge.mavenskin</groupId>
<artifactId>forge-maven-skin</artifactId>
<version>1.02.02</version>
</skin>
<body>
<menu name="Essentials">
<item name="Welcome" href="index.html"/>
<item name="Screenshots" href="screenshots.html"/>
<item name="Release Notes" href="release-notes.html"/>
<item name="Hippo Forge Project Page" href="http://forge.onehippo.org/projects/selection/"/>
</menu>
<menu name="Use the plugin">
<item name="Installation" href="install.html" collapse="true">
<item name="Installation for 7.8" href="install_7_8.html"/>
</item>
<item name="Build Demo" href="build-demo.html"/>
<item name="Configuration" href="configuration.html">
<item name="Static Dropdown" href="configuration/staticdropdown.html"/>
<item name="Dynamic Dropdown" href="configuration/dynamicdropdown.html"/>
<item name="Dynamic Multiselect" href="configuration/dynamicmultiselect.html"/>
</item>
</menu>
<menu ref="reports"/>
</body>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010-2014 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE document PUBLIC
"-//Apache Software Foundation//DTD XDOC 1.0//EN"
"http://maven.apache.org/dtd/xdoc_1_0.dtd">
<document>
<properties>
<title>Forge Selection Plugins - Build Demo</title>
</properties>
<body>
<section name="Building the demo">
<subsection name="Requirements">
<ul>
<li>Java 7 JDK</li>
<li>Maven 3</li>
<li>Subversion client</li>
</ul>
</subsection>
<subsection name="Optionally, checkout the source code and build the plugin">
<p>
The demo project depends on the latest snapshot (trunk) of the plugin. So you can either set the version in
your demo to the latest release or build the plugin locally. For the latter, check out the trunk source code
from the SVN repository:
</p>
<source>$ svn co https://forge.onehippo.org/svn/selection/selection/trunk selection-trunk</source>
<p>Build the project using Maven:</p>
<source>cd selection-trunk
mvn clean install</source>
</subsection>
<subsection name="Check out, build and run the demo project">
<p>Check out the trunk source code from the SVN repository:</p>
<source>$ svn co https://forge.onehippo.org/svn/selection/selection-demo/trunk selection-demo-trunk</source>
<p>If you didn't build the plugin locally, set the correct release version in the root pom.</p>
<p>Build and run the demo project:</p>
<source>$ mvn clean package
$ mvn -P cargo.run</source>
</subsection>
</section>
</body>
</document>
<?xml version="1.0"?>
<!--
Copyright 2010-2013 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<title>Forge Selection Plugins - Configuration</title>
</properties>
<body>
<section name="Configuration">
<p>
After installing the artifacts you can configure various types of selection plugins.
If not documented or unclear, please revert to the demo project (see the <a href="build-from-source.html">build from source page</a>).
</p>
<ul>
<li><a href="configuration/staticdropdown.html">StaticDropdown</a>: a single select or dropdown with static
configuration in the <code>editor:templates</code> part of you document type.</li>
<li><a href="configuration/dynamicdropdown.html">DynamicDropdown</a>: a single select or dropdown configured to
be reading options from a service backed by a value list document in the CMS.
</li>
<li><a href="configuration/dynamicmultiselect.html">DynamicMultiselect</a>: a multi select list editing a
multi-valued property, configured to be reading options from a service backed by a value list document in the CMS. Variants are multi select list,
checkboxes and palette (shootbox).
</li>
<li><strong>RadioGroup</strong>: a single select radio group configured to be reading options from a service
backed by a value list document in the CMS. </li>
<li><strong>BooleanRadiogroup</strong>: a single select radio group editing a boolean property. The value and
labels for 'true' and 'false' are statically configured and localized. </li>
</ul>
</section>
</body>
</document>
<?xml version="1.0"?>
<!--
Copyright 2013 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<title>Forge Selection Plugins - DynamicDropdown</title>
</properties>
<body>
<section name="DynamicDropdown configuration">
<p>
When using the default value list provider, somewhere in the /content/documents section a document of
type <code>selection:valuelist</code> should be set up containing your wanted key/label pairs.
</p>
<p>
In the document namespace, nodetype section, the property <code>hipposysedit:type</code> of your field
should be set to <code>DynamicDropdown</code>.
</p>
<h3>Options</h3>
<p>In the same editor section, there should be a <code>cluster.options</code> child node having the properties below.
The sorting properties have been around since 2.05.00, the observer related properties since 2.06.05.</p>
<table>
<tr>
<td>valuelistProvider</td>
<td>The optional name of a CMS service that is the value list provider where the dropdown gets it's values
from. When not filled in, it defaults to <code>service.valuelist.default</code> which is the
DocumentValueListProvider.
</td>
</tr>
<tr>
<td>source</td>
<td>A String property to be used a input to the configured valuelist provider. For the default
DocumentValueListProvider, it points to the value list applicable as an absolute path starting with '/' or
a UUID of the valuelist's handle.</td>
</tr>
<tr>
<td>sortComparator</td>
<td>An optional full qualified class name of an implementation of <code>org.onehippo.forge.selection.frontend.plugin.sorting.IListItemComparator</code>.<br/>
A standard implementation is <code>org.onehippo.forge.selection.frontend.plugin.sorting.DefaultListItemComparator</code>
that sorts alphanumerically.</td>
</tr>
<tr>
<td>sortOrder</td>
<td>Optional. Either 'ascending' or 'descending', defaults to 'ascending'.</td>
</tr>
<tr>
<td>sortBy</td>
<td>Optional. Either 'key' or 'label', defaults to 'label'.</td>
</tr>
<tr>
<td>showDefault</td>
<td>Used by <code>org.onehippo.forge.selection.frontend.plugin.DynamicDropdownPlugin</code> and defines
whether the default value "Choose One" should be shown.
</td>
</tr>
<tr>
<td>observableId</td>
<td>A optional user defined observable id. If this id is filled in, the dropdown creates a service in the background
containing an observable model of it's value.<br/>
The id should be made unique per document editor instance by prefixing it with <code>${cluster.id}</code>.
</td>
</tr>
<tr>
<td>observerId</td>
<td>A optional user defined observer id that should match another dropdown's <code>observableId</code> (so
including the <code>${cluster.id}</code>). The observer dropdown will start listening for changes on the
observable dropdown's model and will use that value to get a value list to redraw itself.</td>
</tr>
<tr>
<td>nameProvider</td>
<td>
Full qualified class name of an implementation of <code>org.onehippo.forge.selection.frontend.provider.IValueListNameProvider</code>
that will turn a given (observed) value into a value list name (i.e. path or uuid).<br/>
The resulting name will be used to get the value list from the configured value list provider service.
When not filled in, the <code>BasePathNameProvider</code> will be used.<br/>
<br/>
Standard implementations are:<br/>
<code>org.onehippo.forge.selection.frontend.provider.BasePathNameProvider</code> (the default):
<br/>concatenates <code>sourceBasePath</code> plus the observed value. This requires that the value list
item keys of the observable dropdown's value list match the node names of the chained value lists.<br/>
<code>org.onehippo.forge.selection.frontend.provider.ConfiguredNameProvider</code>:
<br/>looks up value list names in the configuration, using as key: 'source.' + (observed value).<br/>
<code>org.onehippo.forge.selection.frontend.provider.NOOPNameProvider</code>:
no look up: just returns the observed value as value list name, useful in combination with a custom value
list provider.
</td>
</tr>
<tr>
<td>sourceBasePath</td>
<td>Used by <code>org.onehippo.forge.selection.frontend.provider.BasePathNameProvider</code> and defines
the base path where dependent value list documents are located.
</td>
</tr>
</table>
<p>Example with sorting:</p>
<source><![CDATA[<sv:property sv:name="valuelist.provider" sv:type="String">
<sv:value>service.valuelist.default</sv:value>
</sv:property>
<sv:node sv:name="cluster.options">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>frontend:pluginconfig</sv:value>
</sv:property>
<sv:property sv:name="source" sv:type="String">
<sv:value>/content/documents/valuelists/valuelist1</sv:value>
</sv:property>
<sv:property sv:name="sortComparator" sv:type="String">
<sv:value>org.onehippo.forge.selection.frontend.plugin.sorting.DefaultListItemComparator</sv:value>
</sv:property>
<sv:property sv:name="sortOrder" sv:type="String">
<sv:value>ascending</sv:value>
</sv:property>
<sv:property sv:name="sortBy" sv:type="String">
<sv:value>label</sv:value>
</sv:property>
</sv:node>]]></source>
<p>Example options with observableId (from demo project):</p>
<source><![CDATA[<sv:node sv:name="cluster.options">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>frontend:pluginconfig</sv:value>
</sv:property>
<sv:property sv:name="observableId" sv:type="String">
<sv:value>${cluster.id}.continent</sv:value>
</sv:property>
<sv:property sv:name="source" sv:type="String">
<sv:value>/content/documents/valuelists/chained/continents</sv:value>
</sv:property>
<sv:property sv:name="sourceBasePath" sv:type="String">
<sv:value>/content/documents/valuelists/chained</sv:value>
</sv:property>
</sv:node>]]></source>
<p>Example options with observerId (from demo project):</p>
<source><![CDATA[<sv:node sv:name="cluster.options">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>frontend:pluginconfig</sv:value>
</sv:property>
<sv:property sv:name="nameProvider" sv:type="String">
<sv:value>org.onehippo.forge.selection.frontend.provider.BasePathNameProvider</sv:value>
</sv:property>
<sv:property sv:name="observerId" sv:type="String">
<sv:value>${cluster.id}.continent</sv:value>
</sv:property>
<sv:property sv:name="sourceBasePath" sv:type="String">
<sv:value>/content/documents/valuelists/chained</sv:value>
</sv:property>
</sv:node>]]></source>
</section>
</body>
</document>
\ No newline at end of file
<?xml version="1.0"?>
<!--
Copyright 2013-2014 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<title>Forge Selection Plugins - DynamicMultiSelect</title>
</properties>
<body>
<section name="DynamicMultiSelect configuration">
<p>
When using the default value list provider, somewhere in the /content/documents section a document of
type <code>selection:valuelist</code> should be set up containing your wanted key/label pairs.
</p>
<p>
In the document namespace, nodetype section, the property <code>hipposysedit:type </code> of your field
should be set to <code>String</code> and the property <code>hipposysedit:multiple</code> should be set to <code>true</code>.
</p>
<p>
In the document namespace, editor section, your field should have:
</p>
<ul>
<li>property
<code>plugin.class</code>
should be <code>org.onehippo.forge.selection.frontend.plugin.DynamicMultiSelectPlugin</code>
</li>
<li>property <code>valuelist.provider</code> should be <code>service.valuelist.default</code> (if you're using the default)</li>
<li>You should have a child node <code>cluster.options</code> (<code>valuelist.options</code> on versions previous to 2.08.02 *)
containing a String property <code>source</code> that points to the value list applicable as an absolute path starting
with '/' or a UUID of the valuelist's handle.
</li>
<li>
<b>sorting in 2.04.01:</b>
the <code>cluster.options</code> child node may contain a property <code>sortComparator</code> that is an
full qualified class name of an implementation of <code>org.onehippo.forge.selection.frontend.plugin.sorting.IListItemComparator</code>.
The default implementation is <code>org.onehippo.forge.selection.frontend.plugin.sorting.DefaultListItemComparator</code> and sorts alphanumerically.
It is parameterized by the optional properties <code>sortOrder</code> (ascending or descending) and <code>sortBy</code> ('key' or 'label')
</li>
</ul>
<p>There are also the following optional properties:</p>
<ul>
<li>property <code>multiselect.type</code> can be <code>selectlist</code> (the default), <code>checkboxes</code> or
<code>palette</code>, rendering either a select list control, a list of checkboxes or a palette, a.k.a. shootbox,
which consists of two lists with selection arrows between them.
</li>
<li>property <code>selectlist.maxrows</code> defines the maximum number of rows in your
select list control, where the default is 8.
</li>
<li>property <code>palette.maxrows</code> defines the number of rows of the palette's lists,
where the default is 10.
</li>
<li>property <code>palette.alloworder</code> defines whether or not ordering buttons are shown.
The default is 'false'.
</li>
</ul>
<p>Example:</p>
<source><![CDATA[<sv:property sv:name="plugin.class" sv:type="String">
<sv:value>org.onehippo.forge.selection.frontend.plugin.DynamicMultiSelectPlugin</sv:value>
</sv:property>
<sv:property sv:name="model.compareTo" sv:type="String">
<sv:value>${model.compareTo}</sv:value>
</sv:property>
<sv:property sv:name="multiselect.type" sv:type="String">
<sv:value>selectlist</sv:value>
</sv:property>
<sv:property sv:name="selectlist.maxrows" sv:type="String">
<sv:value>8</sv:value>
</sv:property>
<sv:property sv:name="valuelist.provider" sv:type="String">
<sv:value>service.valuelist.default</sv:value>
</sv:property>
<sv:node sv:name="cluster.options">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>frontend:pluginconfig</sv:value>
</sv:property>
<sv:property sv:name="source" sv:type="String">
<sv:value>/content/documents/valuelists/valuelist1</sv:value>
</sv:property>
</sv:node>]]></source>
<p>* To rename the deprecated <code>valuelist.options</code> node you can use this groovy script. Set the query
to: //element(valuelist.options, frontend:pluginconfig)</p>