サブプロパティとコンテナキー
サブプロパティ
コンポーネントのコンフィギュレーションにある多くのコンフィギュレーションプロパティにはサブプロパティがあります。サブプロパティは、別のプロパティ内に含まれているプロパティであり、多くの場合、親プロパティの特定のコンフィギュレーションのみに関連します。サブプロパティがオプションである場合と、サブプロパティが必須の場合があります。
ここに例を示します。アイテムリストコンポーネントにはサーチボックスを含めることができます。サーチボックスを有効にするため、コンフィギュレーションプロパティ enableSearchtrue に設定されています。サーチボックスが有効になっている場合、サーチボックス内にヒントテキストを含めることができます。ヒントテキストを設定するため、enableSearch には文字列入力をとるサブプロパティ searchHintText があります。この場合、サブプロパティ searchHintTextenableSearchtrue に設定されている場合にのみ関連します。このサブプロパティはオプションです。これが設定されていない場合、サーチボックスにヒントテキストは表示されません。
参照用に、プロパティ enableSearch のサンプルコードを以下に示します。
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
これに対し、親プロパティのコンフィギュレーションにかかわらず関連するサブプロパティもあります。たとえば、アイテムリストのフィルタに使用するデフォルトフィールドを設定するには、コンフィギュレーションプロパティ defaultSortFields を使用できます。そのプロパティがどのように設定されているかに関係なく、サブプロパティ defaultSortDirection を含めることで、デフォルトの並べ替え方向を昇順または降順に設定できます。
複雑なサブプロパティ
サブプロパティがさらに複雑な場合もあります。2 つ以上の階層から成るものや、プロパティのコンフィギュレーションによって変わるものがあります。
さらに複雑な例を示します。属性コンポーネントは、layout プロパティを horizontal または vertical に設定することによって、属性を垂直または水平に表示するように設定できます。
layouthorizontal に設定されている場合、2 つの必須のサブプロパティとして maxHeight および maxWidth が含まれます。これらのサブプロパティそれぞれが整数の入力をとり、コンポーネントの高さと幅をピクセル単位で指定します。
layoutvertical に設定されている場合、ユーザーインタフェース内の属性をラップするかどうかを指定する必須のサブプロパティ isMultiLine が含まれます。(layouthorizontal に設定されている場合、属性は自動的にラップされます)。isMultiLinetrue に設定されている場合、必須のサブプロパティ maxHeight があり、isMultiLinefalse に設定されている場合、必須のサブプロパティ maxWidth があります。この場合、設定されているコンフィギュレーションに応じて、サブプロパティが変わります。さらに、これらのサブプロパティは 2 階層の深さになります。
参照用に、プロパティ layout のサンプルコードを以下に示します。
layouthorizontal に設定した場合:
{
"layout":{
"selectedKey":"horizontal",
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
},
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0"
}
}
layoutvertical に設定し、isMultiLinetrue に設定した場合:
{
"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"
}
}
layoutvertical に設定し、isMultiLinefalse に設定した場合:
{
"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"
}
}
コンテナキー
JSON コンフィギュレーションファイルで、1 つ以上のサブプロパティを持つプロパティには additionalData キーが含まれています。additionalData キー内には、コンテナキーと呼ばれる別のキーがあり、これにサブプロパティが格納されています。
例として、もう一度 enableSearch プロパティについて見てみましょう。
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
トップレベルのプロパティは enableSearch であり、これには additionalData が含まれています。additionalData 内にはコンテナキー itemListSearchDefinition があり、これにはサブプロパティ searchHintText が格納されています。
通常、プロパティはコンテナキーを 1 つだけ持ち、その中にすべてのサブプロパティが含まれています。ただし、例外として、1 つのプロパティに複数のコンテナキーがあり、それぞれに 1 つ以上のサブプロパティが格納されている場合があります。
これは役に立ちましたか?