af:showPopupBehavior
タグは、クライアント側のイベントに応じてaf:popup
を表示する宣言的方法です。クライアント・イベントは、triggerType
属性を使用して指定します。イベントが指定されない場合、actionイベントがデフォルトのtriggerType
になります。showPopupBehavior
タグがコンポーネントに関連付けられている場合、popupId
属性で指定されたポップアップは、関連付けられたクライアント・イベントがアクティブ化すると自動的に表示されます。このタグは、af:clientListener
タグと類似したクライアント・イベントでのみ機能します。
このタグのalignId
およびalign
属性を使用して、ポップアップが開く場所を指定します。ほとんどのタイプのポップアップでは、これらの属性が必要です(ポップアップのタイプについては、af:popup
を参照してください)。ただし、このルールには、いくつかの例外があります。af:dialog
およびaf:panelWindow
のポップアップ・タイプでは、位置合せの属性は必要ありません。これらのタイプのポップアップは、ドラッグ・アンド・ドロップを使用して手動で再配置可能であり、デフォルトでブラウザ・ウィンドウの中央に開きます。位置合せの属性を必要としない3番目の例外は、ポップアップでcontextMenu triggerType
を使用するポップアップに関連するものです。contextMenuイベントは、マウスを右クリックすると起動します。このトリガー・タイプの場合、ポップアップの位置合せはマウスの位置に基づきます。
showPopupBehavior
タグでは、triggerType
で定義されたクライアント・イベントが取り消されます。クライアント・イベントの取消しにより、サーバーへの配信を回避します。サーバー側のアクション・リスナーが無視されるため、これはコマンド・ファミリ・コンポーネントで起動されるactionイベントで重要となります。actionのtriggerType
が使用されると、すべてのactionListener
メソッド・バインディングおよび関連付けられたアクション・リスナーは起動しません。
showPopupBehavior
タグは、コンポーネント・イベントのみのサブスクライバです。つまり、クライアントのコンポーネント・イベントにのみ対応します。様々なクライアント・イベントおよびクライアント・イベントが起動される順序は、コンポーネント固有であり、showPopupBehavior
タグは関与しません。サーバー側の機能もトリガーする必要がある場合、開発者は手動でJavascriptを実行してポップアップを表示するか、AdfCustomEvent
およびaf:serverListener
を使用するaf:clientListener
を追加して、サーバー側のイベントを配信します。
showPopupBehavior
タグにルック・アンド・フィール標準に基づいた特別な動作が追加されています。インライン・セレクタ・タイプのポップアップでは、関連付けられたポップアップの可視性が切り替わります。インライン・セレクタがすでに表示されている場合は、ポップアップが閉じます。この動作は、インライン・セレクタ・タイプのポップアップにのみ適用されます。
showPopupBehavior
を使用して1つのポップアップを複数の起動ソースで開くことができます。ポップアップがすでに表示されているときに、別の起動ソースからshowPopupBehavior
タグを使用して開くリクエストが作成されると、共有ポップアップは閉じてから再び表示されます。ポップアップがすでに表示されているときに、同じ起動ソースからポップアップを表示するリクエストが作成された場合、リクエストは無視されます(インライン・セレクタは除く)。
mouseOverまたはmouseHoverイベント・タイプには、500ミリ秒の起動遅延が組み込まれています。これは、遅延時間内に同じコンポーネントに対してmouseOutイベントがトリガーされると、暗黙的に取り消されます。
すべてのポップアップ・タイプには、自動消去動作が設定されています。ポップアップ・タイプの分類および想定される動作については、af:popup
タグのドキュメントを参照してください。
この例では、ボタンをクリックするとsomePopupのIDを持つポップアップを表示します。
<af:commandButton id="button" text="Click me"> <af:showPopupBehavior popupid="somePopup" alignid="button" align="endBefore" triggerType="action" /> </af:commandButton>
この例では、panelGroupLayoutに含まれるものを右クリックすると、someMenuPopupのIDを持つメニューのポップアップを表示します。
<af:panelGroupLayout> <af:showPopupBehavior popupid="someMenuPopup" triggerType="contextMenu"/> .... any other content ... </af:panelGroupLayout>
次の表に、triggerType属性に割当て可能な、コンポーネント・ファミリ固有のイベント・タイプをリスト表示します。
イベント・タイプ | コンポーネント・ファミリ | 説明 |
---|---|---|
action | Command | ユーザーがコマンド・コンポーネントをトリガーしたときに起動します。このイベントは取り消されるため、所有するコンポーネントのサーバー側のアクション・リスナーは無視されます。 |
dialog | Dialog | ユーザーがダイアログの「OK」ボタンまたは「取消」ボタンをクリックしたときに起動します。 |
disclosure | ShowDetail | 開示状態が切り替えられたときに起動します。 |
load | Document | ドキュメントのロードが終了したときに起動します。 |
fetch | Popup | ポップアップのコンテンツ配信がlazyまたはlazyUncachedの場合、コンテンツを開く前に起動されるコンテンツのフェッチ・イベント。これは、コンテンツ配信に必要な2つのイベントのうち、最初のイベントです。 |
contentLoaded | Popup | コンテンツ配信の一部はブラウザに配信されています。このイベントは、ポップアップ・コンポーネントに自身が表示可能であることを通知するものです。これはコンテンツ配信の2つ目のイベントです。 |
popupOpening | Popup | ポップアップが開く前に起動します。 |
popupOpened | Popup | ポップアップが開いた後で起動します。 |
popupClosed | Popup | ポップアップが閉じた後で起動します。 |
query | Query | 問合せアクションが発生したとき(ユーザーがquickQueryで検索アイコンをクリックするか、問合せコンポーネントで検索ボタンをクリックしたとき)に起動します。 |
rowDisclosure | Tree、TreeTable | 行の開示状態が切り替えられたときに起動します。 |
selection | Table、Tree、TreeTable | 選択状態が変化したときに起動します。 |
sort | Table | ユーザーがデータをソートしたときに起動します。 |
valueChange | Input、Select\* | 入力制御の値が変化したときに起動します。 |
次の表に、入力(マウス/キーボード)のイベント・タイプをリスト表示します。これらのイベントはすべてのコンポーネントに配信されます(ただし場合によっては、ピアの実装で使用されます)。また、triggerType属性に割当て可能です。
イベント・タイプ | 説明 |
---|---|
click | ユーザーがコンポーネントをクリックすると起動します。イベントのソースがコマンド・ファミリ・コンポーネントの場合は、コンポーネントからactionイベントが起動されます。 |
contextMenu | マウスを右クリックすると、ポップアップが表示されます。位置合せはマウスの位置に基づくとみなされます。 |
dblClick | ユーザーがコンポーネントをダブルクリックすると起動します。 |
mouseDown | ユーザーがコンポーネントに対してマウス・ボタンを押した状態にすると起動します。 |
mouseUp | ユーザーがコンポーネント上でマウス・ボタンを離すと起動します。 |
mouseMove | ユーザーがコンポーネント上でマウスを動かすと起動します。 |
mouseOver | マウスがコンポーネント上に移動すると起動します。ポップアップの起動までに500ミリ秒の遅延があるとみなされます。この遅延時間内にmouseOutが起動されると、保留中の起動リクエストは取り消されます。 |
mouseOut | マウスがコンポーネントから外れると起動します。 |
keyDown | コンポーネントをフォーカスした状態でユーザーがキーを押すと起動します。 |
keyUp | コンポーネントをフォーカスした状態でユーザーがキーを離すと起動します。 |
keyPress | コンポーネントをフォーカスした状態でキーが正しく押されると起動します。 |
focus | キーボードを使用してコンポーネントをフォーカスすると起動します。 |
blur | キーボードを使用してコンポーネントからフォーカスを外すと起動します。 |
次の表に、複数のイベント・タイプを組み合せる、混合イベント・タイプをリスト表示します。
ニーモニック | 説明 |
---|---|
mouseHover | mouseOverでポップアップを表示し、mouseOutでポップアップを非表示にする混合イベント・タイプ。このイベントでは、ポップアップの起動までに500ミリ秒の遅延があるとみなされます。500ミリ秒の遅延内にmouseOutイベントが起動されると、保留中の起動リクエストは取り消されます。このイベント・タイプでは、alignId およびalign 属性を使用した要素への位置合せが必要です。 |
名前 | 型 | ELのサポート | 説明 |
---|---|---|---|
popupId | String | あり | 含むコンポーネントに対して相対的な、ポップアップのID。1つのコロンで始まるIDは、(コロンを除いた後)絶対値として扱われます。 |
alignId | String | なし | 位置合せするポップアップに対して相対的なコンポーネントのID。コロン1つで始まるIDは、(コロンを除いた後)絶対値として扱われます。その他のIDは、showPopupBehaviorを含むコンポーネントに対して相対的に解決されます。 |
align | String | なし |
alignIdコンポーネントに対して相対的にポップアップを位置合せする方法を示します。有効な値は次のとおりです。
|
triggerType | String | なし | ポップアップの表示をトリガーするイベント・タイプ。デフォルトはactionです。ポップアップ・メニューを表示するには、contextMenuを使用します。モーダルではないポップアップを表示するには、mouseHoverを使用して、マウスをトリガー・コンポーネントの上に移動させます。またこれを非表示にするには、マウスをトリガー・コンポーネントの外に移動させます。トリガー・タイプのリストについては、前述のクライアント・イベントのトリガー・タイプの項を参照してください。 |