Sottoproprietà e chiavi contenitore
Sottoproprietà
Molte proprietà di configurazione nella configurazione del componente includono sottoproprietà. Una sottoproprietà è una proprietà contenuta in un'altra proprietà ed è spesso pertinente solo per determinate configurazioni della proprietà padre. Talvolta una sottoproprietà è facoltativa e talvolta è obbligatoria.
Ad esempio: il componente Elenco elementi può contenere una casella di ricerca. Per attivare la casella di ricerca, la proprietà di configurazione enableSearch è impostata su true. Quando la casella di ricerca è attivata, è possibile includere un testo di suggerimento all'interno della casella di ricerca. Per impostare il testo di suggerimento, è disponibile una sottoproprietà searchHintText per enableSearch che richiede un input stringa. In questo caso, la sottoproprietà searchHintText è pertinente solo quando enableSearch è impostata su true. Questa sottoproprietà è facoltativa. Se non è impostata, nella casella di ricerca non viene visualizzato alcun testo di suggerimento.
Per riferimento, di seguito è riportato un codice di esempio per la proprietà enableSearch:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
D'altra parte, alcune sottoproprietà sono pertinenti indipendentemente dalla configurazione della proprietà padre. Ad esempio, per impostare il campo di default in base al quale filtrare un elenco elementi, è possibile utilizzare la proprietà di configurazione defaultSortFields. Indipendentemente da come è configurata, questa proprietà può contenere la sottoproprietà defaultSortDirection, che consente di impostare la direzione di ordinamento di default come ordine crescente o ordine decrescente.
Sottoproprietà complesse
A volte le sottoproprietà sono più complesse. Possono avere più di due livelli di profondità o cambiare per configurazioni diverse della proprietà.
Ad esempio: è possibile configurare il componente Attributi per visualizzare gli attributi verticalmente o orizzontalmente impostando la proprietà layout su horizontal o vertical.
Quando layout è impostata su horizontal, include due sottoproprietà obbligatorie: maxHeight e maxWidth. Ognuna di queste sottoproprietà accetta un numero intero e determina l'altezza e la larghezza del componente in pixel.
Quando layout è impostata su vertical, include la sottoproprietà obbligatoria isMultiLine, che determina se gli attributi nell'interfaccia utente vengono racchiusi. Quando layout è impostata su horizontal, gli attributi vengono automaticamente racchiusi. Quando isMultiLine è impostata su true, dispone della sottoproprietà obbligatoria maxHeight; quando isMultiLine è impostata su false, dispone della sottoproprietà obbligatoria maxWidth. In questo caso, le sottoproprietà cambiano in base alle configurazioni impostate. Anche le sottoproprietà hanno due livelli di profondità.
Per riferimento, di seguito sono riportati i codici di esempio per la proprietà layout:
Per layout impostata su horizontal:
{
"layout":{
"selectedKey":"horizontal",
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
},
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0"
}
}
Per layout impostata su vertical e isMultiLine impostata su 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"
}
}
Per layout impostata su vertical e isMultiLine impostata su 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"
}
}
Chiavi contenitore
Nel file di configurazione JSON, qualsiasi proprietà con almeno una sottoproprietà contiene la chiave additionalData. All'interno della chiave additionalData è presente un'altra chiave, nota come chiave contenitore, che contiene la sottoproprietà.
Ad esempio, esaminiamo di nuovo la proprietà enableSearch:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
La proprietà di livello superiore è enableSearch e contiene additionalData. In additionalData è presente la chiave contenitore itemListSearchDefinition, che contiene la sottoproprietà searchHintText.
Una proprietà in genere dispone solo di una sola chiave contenitore, che contiene tutte le sottoproprietà. Tuttavia, esistono eccezioni in cui una singola proprietà contiene più chiavi contenitore, ciascuna delle quali contiene una o più sottoproprietà.