context オブジェクト
context オブジェクトは、名前付き境界イベントを起動するコールバックなどの、ヘルパー関数へのアクセスを提供します。
プロパティー
context オブジェクトを介して、そのオブジェクトのプロパティーにアクセスできます。| プロパティー | 説明 |
|---|---|
| context.binding | 現在のビューにバインドされているデータ・オブジェクトへのアクセスを提供します。
データにアクセスするには、次の呼び出しを使用します。
ここで、value は、バインドされているデータ・オブジェクトを返す特殊プロパティー名です。例えば、ビューが local.phoneBook.title にバインドされている場合、このビューでは、次のコードを使用してタイトルを取得できます。
|
| context.contextRootMap | IBM® BPM サーバーのさまざまなコンテキスト・ルートの値が含まれます。この API を使用して、Coach ビューがこれらのサーバーに接続するために使用する URL を作成します。オブジェクトには、以下のプロパティーがあります。
|
| context.element | Coach ビューのルート DOM エレメントが含まれます。ビューでこの DOM エレメントを削除しないでください。レイアウトで定義されるビューは、このルート・エレメントの子です。通常、ビューはこのルート DOM エレメントを使用して、ビュー自身のコンテンツを探します。 注: 同じビューの複数のインスタンスを同じ HTML ページに設定することができます。その場合は、このルート DOM エレメントを使用して検索のスコープを指定してください。
|
| context.options | ビューの構成オプションへのアクセスを提供します。これらの構成オプションには、ユーザーがビューに対して設定できるボタン・コントロールのラベルなどのプロパティーとメタデータ・プロパティーが含まれます。 |
| context.subview[viewid] | サブビューの div ID が指定されたオブジェクトをプロパティー名として返します。繰り返しのないシナリオでは、プロパティーは通常 1 つのみです。一般に、context.getSubview() のほうが使いやすい関数です。
詳しくは、例: domNode ノードの取得と使用および例: div ID の取得を参照してください。
|
| context.bpm.system | 以下のシステム値へのアクセスを提供します。
|
| context.bpm.system.settings | Coach ビューのタイマー・ベースの最新表示に関連する以下のプロパティーへのアクセスを提供します。
|
| context.bpm.team.manager | 現行ユーザーがマネージャーとなっているチームをリストします。このリスト ("[]") はデフォルトでは空です。context.bpm.team.manager のリストの各項目は、以下のプロパティーを含んだオブジェクトです。
|
| context.bpm.team.member | 現行ユーザーがメンバーとなっているチームをリストします。このリスト ("[]") はデフォルトでは空です。context.bpm.team.member のリストの各項目は、以下のプロパティーを含んだオブジェクトです。
|
| context.viewid | このビュー定義の固有 ID が含まれます。複数のビュー・インスタンスで同じ viewId を使用できます。詳しくは、context.getSubview(viewId, requiredOrder) を参照してください。 |
context.controlidpath |
Coach 内でこの Coach ビューを一意的に識別します。このストリングは、ほとんどのレイアウト変更を通じて不変であり、Coach ビューの実装で DOM エレメントの固有 ID を作成するためのベースとして使用できます。 context.controlidpath プロパティーは、IBM Robotic Process Automation with Automation Anywhere でボットが使用できるユーザー・インターフェースの信頼性を確保します。詳しくは、IBM Robotic Process Automation with Automation Anywhere を参照してください。 |
関数
context オブジェクトを介して、そのオブジェクトの関数にアクセスできます。| 関数 | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| context.bindingType() | データ・バインディングのタイプを返します。 | ||||||||||
| context.broadcastMessage(message) | 提供されたメッセージをブロードキャストします。 重要: この API を使用して機密情報を送信しないでください。
|
||||||||||
| context.cancelBoundaryEvents() | サーバーに送信されていない境界イベントを取り消します。境界イベントがトリガーされたときにコールバック関数が指定された場合は、Coach フレームワークがそのコールバック関数を呼び出して境界イベントの状況を更新します。詳しくは、context.trigger(callback) 関数を参照してください。 | ||||||||||
| context.containDiffLoopingContext() | 以下の条件が当てはまる場合は、true の値が返されます。
例えば、API は以下の構造について true の値を返します。
リストの長さが一致しない場合、フレームワークは実行時にメッセージを表示します。 例えば、ListA に 4 つの項目があり、ListB に 3 つの項目がある場合、上記の例ではメッセージが表示されます。詳しくは、Coach ビューのデータ・バインディングを参照してください。 containDiffLoopingContext() は、例えば、 ユーザーが追加/削除機能の有効化を指定した場合でも、ランタイムにテーブルの追加/削除機能を無効にするかどうかを 決定する際などに使用します。 重要: ビュー管理のコンテンツ・ボックスを含んだ Coach ビューが、空ではないリストにバインドされている場合は、コンテンツ・ボックスの domNode ノードを削除してから最初の反復エレメントをレンダリングするまでの間にこの API を呼び出さないでください。戻り値が正確でない場合があります。
|
||||||||||
| context.createView(domNode, index, parentView) | 指定された DOM エレメント (通常、これはコンテンツ・ボックス div です) の下にある Coach ビュー・インスタンスおよび任意のサブビュー・インスタンスを作成します。
domNode がコンテンツ・ボックス以外の任意のビューのノードである場合、フレームワークはビューの単一インスタンスを作成して返します。domNode がコンテンツ・ボックスのノードの場合、フレームワークはコンテンツ・ボックスが所有するすべてのビューに対してビュー・インスタンスを作成します。フレームワークは、domNode パラメーターで指定されたコンテンツ・ボックスが所有するすべてのフレームワーク管理のコンテンツ・ボックスに対して、ビューを再帰的に作成します。 その後、フレームワークはこれらのビュー・インスタンスの配列を返します。 以下のコード・スニペットは、コンテンツ・ボックス・ビューの作成方法を示しています。
詳しくは、例: domNode ノードの取得と使用を参照してください。
|
||||||||||
| context.deleteView(domNode) | Coach ビュー・インスタンスと、指定した DOM エレメントから開始するサブビュー・インスタンスを削除します。
以下のコード・スニペットは、ビュー・インスタンスの削除方法を示しています。
詳しくは、例: domNode ノードの取得と使用を参照してください。
|
||||||||||
| context.getDomNode(uniqueViewId, optParam) | data-ibmbpm_uniqueViewId プロパティーの値が指定の ID になっている DOM ノードの最初の一致を返すか、一致がない場合は NULL を返します。optParam.startNode を使用して別の開始ノードを渡さない限り、この検索では this.context.element の親 DOM ノードから開始されます。また、optParam.deepSearch=true を渡さない限り、この検索でチェックされるのは開始ノードの直属の子のみです。
|
||||||||||
| context.getInheritedVisibility() | この関数を呼び出している Coach ビューの上位の可視性の設定値を含むストリングを返します。すべての上位の可視性の値が DEFAULT に設定されている場合、この関数は EDITABLE を返します。 | ||||||||||
| context.getOptions(viewDomNode) | viewDomNode が指定されると、Coach ビューの options オブジェクトを返します。viewDomNode によって表されるビューがまだ作成されていない場合でもオプションは返されます。通常、ビューでこの API を使用して、その子ビューの 1 つについて構成オプション (ラベルや可視性など) を調べてから、そのビューを作成します。
以下のコード・スニペットは、この API の使用方法の例です。
|
||||||||||
| context.getStyle() | Coach デザイナーの位置付けプロパティーで指定されている、現在適用されている位置決め情報を返します。現在適用されている位置決めは、小さい画面サイズに何も指定されていない場合は大きい画面の幅の設定が小さい画面サイズに適用される、継承モデルに基づいています。どの画面サイズにも所定のプロパティーが指定されていない場合は、ヌルが返されます。以下のプロパティーが定義されています。
|
||||||||||
| context.getWL() | Coach ビューが MobileFirst Foundation 環境で実行されている場合は WL 名前空間が返されます。そうでない場合はヌルが返されます。WL 名前空間は、MobileFirst Foundation API オブジェクト、メソッド、および定数へのアクセスを提供します。モバイル環境での IBM MobileFirst Platform Foundation を使用した IBM BPM プロセス・アプリケーションの有効化を参照してください。 | ||||||||||
| context.bind(type, callbackFunc, scopeObject) | 指定したタイプに関連付けられている変更通知を受信するためのコールバック関数を登録します。現在は、style タイプのみがサポートされています。それ以外の値を設定すると、例外がスローされます。
この設定の変更は、位置決め設定の設計時変更の場合も、ランタイム画面サイズの変更の場合もあります。 通常、コールバック関数は context.getStyle() メソッドを呼び出して、現在適用されている位置決めを取得します。 複数の位置付けプロパティーが変更されても、トリガーされる通知またはコールバックは 1 つのみです。この関数は、コールバックを登録抹消するために使用できるオブジェクトを返します。返されたオブジェクトには、パラメーターを取らない unbind() メソッドが含まれています。
|
||||||||||
| context.setGroupNotification() | 使用可能にすると、Coach ビューは、現在のスレッド内のすべての変更についての単一の通知で、データ・バインディング・オプションと構成オプションの変更の通知を受信できます。 コールバックに渡されるイベント・オブジェクトには、値 groupNotification の 1 つのプロパティー type が含まれています。個々の変更に関する情報は含まれていません。Coach ビューは、グループ通知を受信した後、最新のバインディング・オプションと構成オプションの値を取得します。 以下のパラメーターが定義されています。
|
||||||||||
| context.getSubview(viewId, requiredOrder) | 指定された サブビュー ID のサブビュー・インスタンスを返します。このメソッドは context.subview[viewid] に似ていますが、戻り値がサブビュー・インスタンスの配列である点が異なります。
呼び出し this.context.getSubview("viewid") は、サブビュー・オブジェクトのソートされていない配列を返します。 呼び出し this.context.getSubview("viewid", false) は、同じ配列を返します。 これら 2 つの呼び出しと関数呼び出し this.context.getSubview("viewid", true) との唯一の違いは、this.context.getSubview("viewid", true) では、DOM ツリーにおける DOM ノードの順序と一致する順序でサブビュー・オブジェクトが格納された配列が返されることです。 詳しくは、コントロール ID を使用した子 Coach ビューへのアクセスを参照してください。 |
||||||||||
| context.htmlEscape(text) | 指定されたテキストをエスケープします。この関数は、潜在的なクロスサイト・スクリプティング (XSS) 攻撃を回避するために使用されます。
|
||||||||||
| context.isTrustedSite(origin) | origin が Coach のプロトコル、ホスト、およびポート、またはホワイト・リストに記載されているサイトと一致する場合、true を返します。例えば、Coach ビューが postMessage イベントを受け取ったとします。Coach ビューは、パラメーターとして event.origin を使用してこの API を呼び出すことより、イベントの発生元を検査できます。
|
||||||||||
| context.parentView() | 親ビュー・インスタンスを返します。親ビューがない場合は NULL を返します。load() の呼び出し時に、parentview オブジェクトが作成されますが、完全には初期化されません。初期化されない理由の 1 つは、親ビューの load() が現在の load() 関数の後で呼び出されるためです。parentview オブジェクトが完全に初期化されないため、この関数を load() 関数内で呼び出さないでください。 | ||||||||||
| context.refreshView() | Coach ビューと、そのすべてのサブビューの再バインドを強制的に実行します。 その結果、change() コールバックが呼び出されて、ビュー (およびそのすべてのサブビュー) がリフレッシュされます。 | ||||||||||
| context.setDisplay(isDisplay, domNode) | display:none を設定する CSS クラスを削除または追加することによって、指定した DOM エレメントを表示または非表示にします。
domNode が非表示の場合、親の Coach または Coach ビューは domNode が占有するスペースを確保しません。
|
||||||||||
| context.setUniqueViewId(uniqueViewId, targetNode) | targetNode の data-ibmbpm_uniqueViewIdプロパティーで uniqueViewId を設定します。呼び出しに targetNode が含まれていない場合は、この関数によって this.context.element の DOM ノードのプロパティーが設定されます。
|
||||||||||
| context.setVisibility(isVisible, domNode) | display:hidden を設定する CSS クラスを削除または追加することによって、指定した DOM エレメントを表示または非表示にします。
domNode が非表示の場合、親の Coach または Coach ビューは domNode が占有するスペースを確保します。
|
||||||||||
| context.subscribeValidation() | 現在のビューとは異なるビジネス・オブジェクトにバインドされている下位ビューの検証エラーを受信する Coach ビューを登録します。これらのエラーは、エラー・イベント・オブジェクトの errors_subscription リストに含まれています。タブ・ストック・コントロールなどの、データ・バインディングを持たないビューでは、この API を使用して検証エラーを受信できます。 | ||||||||||
| context.trigger(callback, options) | 名前付き境界イベントを起動します。
|
||||||||||
| context.triggerCollaboration(payload) | (非推奨)。カスタム・コラボレーション・イベントを起動します。 コラボレーションしているユーザーのブラウザーにカスタム・メッセージが送信されます。 コラボレーションしているユーザーのブラウザー上の対応するビューは、event.type
= "custom" の collaboration() コールバックを受け取ります。
|
||||||||||
| context.unsubscribeValidation() | Coach ビューの登録を抹消して、errors_subscription リストのエラーを受信しないようにします。 ビューは、errors リストが存在する場合はそのリストを引き続き受信します。 |
例: domNode ノードの取得と使用
コンテキスト・オブジェクトの多くの関数は、引数としてドキュメント・ノード (domNode) を取得します。 以下のコード例では、domNode を取得して関数内で使用する方法を示します。
1 var subview = this.context.getSubview("subviewID", "true")[5];
2 var subviewDomNode = subview.context.element;
3 this.context.deleteView(subviewDomNode);
- 1 パラメーター subviewID はサブビューのコントロール ID であり、サブビュー・インスタンスの <div></<div> タグにおけるプロパティー data-viewid の値に対応します。関数 getSubview(subViewID) は、サブビューの配列を返します。この例の目的は、配列の添字で 6 番目のエレメントを取得することです。パラメーター true を指定すると、配列のオブジェクトが DOM と同じ順序で返されます。
- 2 ステップ 1 で返されたサブビュー・エレメントの domNode を取得します。
- 3 ステップ 2 で返された domNode を使用して、サブビューを削除します。
例: div ID の取得
エレメントの div ID を取得するには、構文 this.context.element.id を使用します。
サブビューの ID を取得するには、最初にサブビューの domNode を取得してから、.id を使用します。
1 var subview = this.context.getSubview("subviewID", "true")[5];
2 var subviewDomNode = subview.context.element;
3 var subViewDomId = subviewDomNode.id; // This gives you the ID of the subview
- 1 パラメーター subviewID はサブビューのコントロール ID であり、サブビュー・インスタンスの <div></<div> タグにおけるプロパティー data-viewid の値に対応します。関数 getSubview(subViewID) は、サブビューの配列を返します。この例では、配列の指標で 6 番目のエレメントを指定しています。パラメーター true を指定すると、配列のオブジェクトが DOM と同じ順序で返されます。
- 2 ステップ 1 で返されたサブビュー・エレメントの domNode を取得します。
- 3 サブビューの ID を取得します。
context.controlidpath