Subpropiedades y claves de contenedor
Subpropiedades
Muchas propiedades de configuración en la configuración de componentes incluyen subpropiedades. Una subpropiedad es una propiedad contenida dentro de otra propiedad y, a menudo, solo es pertinente para determinadas configuraciones de la propiedad padre. A veces una subpropiedad es opcional y, a veces, una subpropiedad es obligatoria.
Este es un ejemplo: el componente Lista de elementos puede contener un cuadro de búsqueda; para activar el cuadro de búsqueda, la propiedad de configuración enableSearch se define en true. Cuando se activa el cuadro de búsqueda, se puede incluir un texto de sugerencia dentro de dicho cuadro. Para definir el texto de sugerencia, hay una subpropiedad searchHintText disponible para enableSearch que utiliza una entrada de cadena. En este caso, la subpropiedad searchHintText solo es pertinente cuando enableSearch se define en true. Esta subpropiedad es opcional; si no se ha definido, no se mostrará ningún texto de sugerencia en el cuadro de búsqueda.
Como referencia, se muestra un código de ejemplo para la propiedad enableSearch:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
Por otra parte, algunas subpropiedades son pertinentes independientemente de la configuración de la propiedad padre. Por ejemplo, para definir el campo por defecto para filtrar una lista de elementos, se puede utilizar la propiedad de configuración defaultSortFields. Independientemente de cómo se configure esa propiedad, puede contener la subpropiedad defaultSortDirection, que permite definir la dirección de clasificación por defecto en orden ascendente o descendente.
Subpropiedades complejas
A veces, las subpropiedades son más complejas. Pueden tener más de dos capas de profundidad o pueden cambiar para distintas configuraciones de la propiedad.
Este es un ejemplo más complejo: el componente Atributos se puede configurar para mostrar atributos vertical u horizontalmente definiendo la propiedad layout en horizontal o vertical.
Cuando layout se define en horizontal, incluye dos subpropiedades obligatorias, maxHeight y maxWidth. Cada una de estas subpropiedades utiliza una entrada de entero, y determinan la altura y el ancho del componente en píxeles.
Cuando layout se define en vertical, incluye la subpropiedad obligatoria isMultiLine, que determina si se ajustan los atributos de la interfaz de usuario. (Tenga en cuenta que cuando layout se define en horizontal, los atributos se ajustan automáticamente). Cuando isMultiLine se define en true, tiene la subpropiedad obligatoria maxHeight y, cuando isMultiLine se define en false, tiene la subpropiedad obligatoria maxWidth. En este caso, las subpropiedades cambian en función de las configuraciones definidas. Las subpropiedades también tienen dos capas de profundidad.
Como referencia, se muestran códigos de ejemplo para la propiedad layout:
Para layout, se define en horizontal:
{
"layout":{
"selectedKey":"horizontal",
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
},
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0"
}
}
Para layout, se define en vertical y isMultiLine se define en true:
{
"layout":{
"selectedKey":"vertical",
"additionalData":{
"isMultilineDefinition":{
"isMultiLine":{
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
}
}
},
"version":"1.0.0",
"value":true
}
}
},
"version":"1.0.0"
}
}
Para layout, se define en vertical y isMultiLine se define en false:
{
"layout":{
"selectedKey":"vertical",
"additionalData":{
"isMultilineDefinition":{
"isMultiLine":{
"additionalData":{
"dimensionDefinition":{
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0",
"value":false
}
}
},
"version":"1.0.0"
}
}
Claves de contenedor
En el fichero de configuración JSON, cualquier propiedad con al menos una subpropiedad contiene la clave additionalData. Dentro de la clave additionalData hay otra clave conocida como una clave de contenedor, que contiene la subpropiedad.
Por ejemplo, observemos de nuevo la propiedad enableSearch:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
La propiedad de nivel superior es enableSearch y contiene additionalData. Dentro de additionalData está la clave del contenedor itemListSearchDefinition, que contiene la subpropiedad searchHintText.
Una propiedad generalmente solo tiene una clave de contenedor y todas las subpropiedades están contenidas en ella. Sin embargo, hay excepciones cuando una sola propiedad contiene varias claves de contenedor, cada una de las cuales tiene una o más subpropiedades.
¿Fue esto útil?