Obtener casilla de verificación marcada por defecto en CQ5
(3)
Para configurar la casilla de verificación con un valor predeterminado de marcada y guardar la propiedad como un tipo de propiedad booleana en el JCR (en lugar de una cadena), use la siguiente configuración de IU clásica:
<myCheckbox
jcr:primaryType="cq:Widget"
fieldLabel="My Checkbox"
name="./myCheckbox"
value="true"
defaultValue="true"
checkboxBoolTypeHint="{Boolean}true"
type="checkbox"
xtype="selection"/>
O use la siguiente configuración en la interfaz de usuario de Granite Touch:
<myCheckbox
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/checkbox"
text="My Checkbox"
name="./myCheckbox"
value="true"
checked="true"/>
<myCheckboxType
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/hidden"
name="./myCheckbox@TypeHint"
value="Boolean"/>
Hay un resumen detallado y una demostración en http://www.nateyolles.com/blog/2015/11/aem-checkboxes-using-sling-post-servlet .
Estoy intentando tener una casilla de verificación marcada predeterminada en un cuadro de diálogo de componentes al editar. Aquí están las propiedades en el campo:
jcr:primaryType: widget
checked: true (boolean) *Documentation says this determines default checked status
type: checkbox (string) *read this as a fix to making checkbox selections stick
xtype: selection (string)
name: ./foo (string)
fieldValue: true (string)
Para tener esto guardado como un booleano ...
<nodeName
jcr:primaryType="cq:Widget"
fieldLabel="check this nodename"
name="./nodeName"
defaultValue="{Boolean}false"
type="checkbox"
xtype="selection" />
<nodeNameHint
jcr:primaryType="cq:Widget"
ignoreData="{Boolean}true"
name="./nodeName@TypeHint"
value="Boolean"
xtype="hidden"/>
Sí, parece que la documentación es un poco torpe. Hice algunos experimentos y esta combinación de propiedades funciona para mí:
defaultValue (String) true
fieldLabel (String) Foo Mode
inputValue (String) false
jcr:primaryType (Name) cq:Widget
name (String) ./foomode
type (String) checkbox
xtype (String) selection
La propiedad defaultValue parece ser la clave.
Tiene cq: Widget para su tipo principal, no para el widget, ¿no es así?