アイテムリストの selectedItems 入力バインドプロパティの有効化
このトピックでは、アイテムリストの selectedItems 入力バインドプロパティを有効にする方法について説明します。このプロパティは、アイテムリストでアイテムを事前選択する場合や、アイテムリストと別のウィジェットの間でユーザーが相互選択できるようにする場合に便利です。
selectedItems 入力バインドプロパティを有効にするには、アイテムリストのカスタム実装で GetImplementationSettings サービスを実装します。
GetImplementationSettings サービスには次の 3 つのプロパティを含めることができます。各プロパティにはアイテムごとに 1 つ以上の属性を指定できます。ただし、オブジェクトタイプごとに属性は 1 つだけです。
itemIdentifierKeys
この必須キーには、各入力アイテムの、アイテム選択に使用可能な属性を指定します。selectedItems の入力でその他の属性を指定してもすべて無視されます。1 つ目に指定した属性のみが考慮され、その他の属性はすべて無視されます。
属性の値がアイテムごとに一意である場合、selectedItems を使用すると、1 つのアイテムのみが選択されます。一意でない場合、指定した属性の値を持つすべてのアイテムが選択されます。
itemExpansionKeys
このオプションのキーは、アイテムリストに階層データが表示されている場合にのみ関連します。(デフォルトの展開レベルなどによって) 構造ツリーで最初に折りたたまれているアイテムを selectedItems を使用して選択した場合のアイテムの展開がサポートされています。itemExpansionKeys の属性は、その構造に存在しないアイテムを識別するために使用されます。これらの属性値は、アイテムの識別に使用されるので、アイテムごとに一意でなければなりません。
次のサービスのデフォルトの実装では itemExpansionKeys: GetChildrenMapItemToInputObjectGetItemsByExpansionPathGetStructureSkeleton が使用されます。詳細については、アイテムリストのトピックのカスタマイズサービスセクションを参照してください。
hasChildrenKeys
このオプションのキーは、アイテムリストに階層データが表示されている場合にのみ関連します。hasChildrenKeys には各アイテムの属性の名前が含まれており、この名前はそのアイテムにサブアイテムがあるかどうかを特定するために使用されます。アイテムにこの属性が存在しないか、この属性の値が false の場合、そのアイテムにはサブアイテムがないものと見なされます。hasChildrenKeys が含まれていない場合、ツリー構造を表示するために、アイテムデータ CCO の各アイテムの PTC.Nav.Descendants キーの下にアイテムセクションが存在することがサブアイテムのインジケータとして使用されます。詳細については、Common Communication Object の構造を参照してください。
GetImplementationSettings のサンプルコード 
1 つのオブジェクトタイプのアイテムのサンプルコード:
"implementationSettings":{
...
"itemIdentifierKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PartUseId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"itemExpansionKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PathId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"hasChildrenKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"HasChildren",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
]
}
複数のオブジェクトタイプのアイテムのサンプルコード:
"implementationSettings":{
...
"itemIdentifierKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PartUseId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
},
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PVTreeId",
"ordinal":0
}
],
"objectType":"PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"itemExpansionKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PathId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
},
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PVTreeId",
"ordinal":0
}
],
"objectType":"PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"hasChildrenKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"HasChildren",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
},
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"HasChildren",
"ordinal":0
}
],
"objectType":"PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
]
}
これは役に立ちましたか?