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