Untereigenschaften und Container-Schlüssel
Untereigenschaften
Viele Konfigurationseigenschaften in der Komponentenkonfiguration umfassen Untereigenschaften. Eine Untereigenschaft ist in einer anderen Eigenschaft enthalten und oftmals nur für bestimmte Konfigurationen der Eltern-Eigenschaft relevant. Eine Untereigenschaft ist entweder optional oder erforderlich.
Beispielsweise kann die Komponente "Elementliste" ein Suchfeld enthalten. Um das Suchfeld zu aktivieren, wird die Konfigurationseigenschaft enableSearch auf true festgelegt. Wenn das Suchfeld aktiviert ist, können Sie einen Hinweistext in das Suchfeld einfügen. Um den Hinweistext festzulegen, steht für searchHintText die Untereigenschaft enableSearch zur Verfügung, die die Eingabe einer Zeichenfolge ermöglicht. In diesem Fall ist die Untereigenschaft searchHintText nur dann relevant, wenn enableSearch auf true festgelegt ist. Diese Untereigenschaft ist optional; ist sie nicht festgelegt, wird im Suchfeld kein Hinweistext angezeigt.
Der folgende Beispielcode für die Eigenschaft enableSearch dient als Referenz:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
Andererseits sind einige Untereigenschaften unabhängig von der Konfiguration der Eltern-Eigenschaft relevant. Sie können beispielsweise die Konfigurationseigenschaft defaultSortFields verwenden, um das Standardfeld festzulegen, nach dem eine Elementliste gefiltert werden soll. Unabhängig davon, wie diese Eigenschaft konfiguriert ist, kann sie die Untereigenschaft defaultSortDirection enthalten. Damit können Sie die Reihenfolge der Standardsortierrichtung als aufsteigend oder absteigend festlegen.
Komplexe Untereigenschaften
Mitunter sind Untereigenschaften jedoch komplexer. Sie können mehr als zwei Ebenen umfassen oder sich für unterschiedliche Konfigurationen der Eigenschaft ändern.
Hier ein komplexeres Beispiel: Die Komponente "Attribute" lässt sich so konfigurieren, dass Attribute vertikal oder horizontal angezeigt werden. Dazu muss die Eigenschaft layout auf horizontal bzw. vertical festgelegt werden.
Wenn layout auf horizontal festgelegt ist, enthält sie zwei erforderliche Untereigenschaften: maxHeight und maxWidth. Jede dieser Untereigenschaften ermöglicht die Eingabe einer Ganzzahl. Dadurch werden die Höhe und Breite der Komponente in Pixeln festgelegt.
Wenn layout auf vertical festgelegt ist, enthält sie die erforderliche Untereigenschaft isMultiLine. Mit ihr wird festgelegt, ob die Attribute in der Benutzeroberfläche mit Zeilenumbruch dargestellt werden. (Beachten Sie, dass wenn layout auf horizontal festgelegt ist, ein Zeilenumbruch für die Attribute automatisch erfolgt.) Wenn isMultiLine auf true festgelegt ist, verfügt sie über die erforderliche Untereigenschaft maxHeight, und wenn isMultiLine auf false festgelegt ist, verfügt sie über die erforderliche Untereigenschaft maxWidth. In diesem Fall ändern sich die Untereigenschaften, je nachdem, welche Konfigurationen festgelegt sind. Die Untereigenschaften umfassen zudem zwei Ebenen.
Als Referenz folgen Beispielcodes für die Eigenschaft layout:
Wenn layout auf horizontal festgelegt ist:
{
"layout":{
"selectedKey":"horizontal",
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
},
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0"
}
}
Wenn layout auf vertical und isMultiLine auf true festgelegt sind:
{
"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"
}
}
Wenn layout auf vertical und isMultiLine auf false festgelegt sind:
{
"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"
}
}
Container-Schlüssel
In der JSON-Konfigurationsdatei enthält jede Eigenschaft mit mindestens einer Untereigenschaft den additionalData-Schlüssel. Innerhalb des additionalData-Schlüssels existiert ein weiterer Schlüssel, der als Container-Schlüssel bezeichnet wird. Dieser enthält die Untereigenschaft.
Betrachten wir als Beispiel erneut die Eigenschaft enableSearch:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
Die Eigenschaft der obersten Ebene ist enableSearch und enthält additionalData. Innerhalb von additionalData befindet sich der Container-Schlüssel itemListSearchDefinition mit der Untereigenschaft searchHintText.
Eine Eigenschaft besitzt im Allgemeinen nur einen Container-Schlüssel, und alle Untereigenschaften sind darin enthalten. Es gibt jedoch Ausnahmen, wenn eine einzelne Eigenschaft mehrere Container-Schlüssel enthält, die jeweils eine oder mehrere Untereigenschaften enthalten.
War dies hilfreich?