<af:calendar>

af:calendar calendar calendar

UIComponent クラス: oracle.adf.view.rich.component.rich.data.RichCalendar
コンポーネント・タイプ: oracle.adf.RichCalendar

ネーミング・コンテナ: 該当。このコンポーネントの子(partialTriggers、findComponent()など)を参照するときは、その子のIDに接頭辞としてこのコンポーネントのIDおよびコロン(:)を設定する必要があります。サポートされていないエージェント: pda

カレンダ・コンポーネントでは、ユーザーのアクティビティを日、週、月またはリスト別に表示する機能が提供されます。ビュー属性によって、日、週、月またはリストのどれが表示されるのかが制御されます。

activeDay属性によって、示される表示範囲が制御されます。たとえば、「月」のビューに2008年6月の月を表示するには、activeDayは2008年6月内の日である必要があります。また、activeDayは、「日」のビューに表示される特定の日付でもあります。

カレンダ・コンポーネントのvalue属性は、oracle.adf.view.rich.model.CalendarActivityモデル・オブジェクトが含まれているoracle.adf.view.rich.model.CalendarModelにバインドされ、カレンダではcalendarActivityをレンダリングする方法が認識されています。利便性を目的として、パブリックな静的メソッドであるCalendarModel.isActivityInRangeが提供されます。(たとえば、CalendarModelのメソッドgetTimeActivitiesの実装から)CalendarActivityが特定のデータ範囲内なのかどうかを判断することが必要な場合には、これを使用する必要があります。

カレンダではアクティビティの作成、編集または削除の方法は制御されませんが、作成、編集および削除のアクティビティを関連付けることを可能にするイベントが起動されます。利便性を目的として、カレンダでは複数のファセットがサポートされ、これらすべてにはポップアップが含まれる必要があります。ファセットに関する詳細なドキュメントは、サポートされるファセットの項にあります。

<section name="Activity_Style_Customization">

アクティビティ・インスタンスの外観をカスタマイズするには、activityStyles属性を使用できます。activityStyles属性の型はMap<Set<String>, InstanceStyles>です。マップ内のInstanceStylesオブジェクトは、アクティビティ・スタイル別に返すことが可能です。これらのクラスの詳細は、InstanceStylesおよびCalendarActivityRampに関するjavadocを参照してください。

特定のアクティビティに対して適切なInstanceStylesオブジェクトが返されるためには、どのようにactivityStyles属性を設定するのでしょうか。"Me"、"Larry"および"Ted"の3つのプロバイダが用意されていると仮定して、これらのアクティビティをそれぞれ赤、オレンジ、青で表示するとします。次のキー/値のペアを使用してマップを作成し、それをactivityStyles属性にバインドしてみます。

キー(文字列セット) 値(InstanceStylesオブジェクト)
{"Me"} CalendarActivityRamp.getActivityRamp(CalendarActivityRamp.RampKey.RED)
{"Larry"} CalendarActivityRamp.getActivityRamp(CalendarActivityRamp.RampKey.ORANGE)
{"Ted"} CalendarActivityRamp.getActivityRamp(CalendarActivityRamp.RampKey.BLUE)

さらに、getTagsメソッドから返された文字列セットがactivityStylesマップ内の文字列セット・キーに一致するようにアクティビティを設定してみます。次に例を示します。

各アクティビティに対するカレンダのレンダリングの間、文字列セットを取得するために、レンダラによってCalendarActivity.getTagsが呼び出されます。次に、文字列セットはactivityStylesマップに渡され、InstanceStylesオブジェクトが返されます(CalendarActivityRampはInstanceStylesのサブクラスであることに注意してください)。ここでの例では、次のようになります。

</section> <section name="Drag_and_Drop">

カレンダでは2種類のドラッグがサポートされます。

  1. カレンダ・アクティビティの移動: この場合、アクティビティが新しい開始日時へ移動します。この種類のドラッグ・アンド・ドロップでは、calendarDropTargetがカレンダに添付されている必要があります。calendarDropTargetが存在しない場合は、この種類のドラッグ・アンド・ドロップは無効になります。詳細は、calendarDropTarget docを参照してください。
  2. 継続時間ドラッグ: この場合、アクティビティのサイズを変更するために、終了時間がドラッグされます。クライアント上でユーザーがアクティビティのサイズを変更すると、calendarActivityDurationChangeイベントが配信されます。アクティビティはクライアント上で即時に移動またはサイズ変更され、イベントがサーバー上でキューに入ります。新規のend Datesに基づいてアクティビティを更新する必要があります。CalendarActivityDurationChangeEventsのリスナーが存在しない場合、この種類のドラッグは無効になります。

</section> <section name="Geometry_Management">

</section> <section name="Low_Level_Events">

カレンダでは高レベルのイベントは起動されません(たとえば、編集、削除、作成、ポップアップ・メニューなどに対して、特定のイベントは起動されません)。かわりに、カレンダによって低レベルのCalendarイベントおよびCalendarActivityイベントが起動されます。

calendarActivityを取り上げてみましょう。calendarActivityEventは、ユーザーがcalendarActivityで次のいずれかを実行する場合にキューに入ります。

calendarActivityEventがこれらすべてに対してキューに入ったとしても、キーボード、マウスおよびtriggerType情報もイベント内で入手可能であるため、これらを区別できます。

独自のUIレスポンス(たとえば、ポップアップの表示など)をイベントに関連付けることは自由に実行できますが、利便性を目的として、コンポーネントには一般的なUIジェスチャを表示するために関連付けられた複数のファセットが用意されています。詳細は、サポートされるファセットの項を参照してください。

</section>

イベント

フェーズ 説明
oracle.adf.view.rich.event.CalendarActivityEvent アプリケーションの起動 たとえば、アクティビティをクリックするなど、ユーザーがカレンダ・アクティビティに対して操作を行うと、calendarActivityイベントが配信されます。

PPR動作: 一般的に、このイベントが処理されると、カレンダでは表示される要素が変更されるかどうかが認識されません。たとえば、開始時間が変更される場合はカレンダがppr処理される必要がありますが、説明が変更される場合はppr処理は必要ありません。したがって、通常、カレンダではカレンダ自体がpprターゲットとして追加されないため、必要に応じてアプリケーション開発者がカレンダをPPR処理する必要があります。

カレンダによってカレンダ自体がpprターゲットとして追加される唯一の例外は、モデル内でCalendarActivityが検出できない場合です。たとえば、2人のユーザーが同じデータを表示しているとします。ユーザーAがアクティビティ1を削除し、次にユーザーBがアクティビティ1をクリックしても、アクティビティは削除されているのでCalendarModel.getActivityによってNULLが返されます。この場合は、使用可能ではなくなったアクティビティに対してエンド・ユーザーが対話しようとしているため、カレンダによってカレンダ自体がpprターゲットとして追加されます。

oracle.adf.view.rich.event.CalendarDisplayChangeEvent アプリケーションの起動 カレンダ・コンポーネントによってカレンダ上の属性の値が変更されると、calendarDisplayChangeイベントが配信されます。たとえば、ユーザーがツールバーの「日」ボタンを押すと、ビュー属性が月から日に変更されることがあります。もう1つの例は、ツールバーの「次へ」ボタンが押された場合ですが、これはカレンダによるactiveDayの更新の原因となります。

これらの属性がカレンダによって設定される場合、これらはコンポーネント上でローカルに設定されるだけであり、コンポーネントではEL式から値が取得されなくなることに注意してください。たとえば、showDetailで+または-をクリックすると、フレームワークによってdisclosedがコンポーネント上でローカルにtrueまたはfalseに設定されるなど、これは一般的な動作です。これらのローカルの値を保存するには、変更管理フレームワークを使用する必要があります。

PPR動作: 一般的に、calendarDisplayChangeイベントが起動されると、カレンダによってカレンダ自体がpprターゲットとして追加されます。カレンダによってactiveDateまたはviewの値が変更されると、再レンダリングが必ず必要になることがこの理由です。

oracle.adf.view.rich.event.CalendarEvent アプリケーションの起動 ユーザーが非アクティビティやカレンダ内の非ツールバー領域で動作を行うと、Calendarイベントが発生します。

PPR動作: このイベントがトリガーされても、カレンダではこのイベントの処理時に表示可能な要素が変更されるかどうかが認識されないため、カレンダは自動的にPPR処理されません。新しいアクティビティが作成された場合など、表示可能な変更を示すためにカレンダが再レンダリングが必要な場合は、イベント・リスナーでカレンダをPPR処理する必要があります。

oracle.adf.view.rich.event.CalendarActivityDurationChangeEvent アプリケーションの起動 サイズ変更によってユーザーがカレンダ・アクティビティの継続期間を変更すると、calendarActivityDurationChangeイベントが配信されます。
org.apache.myfaces.trinidad.event.AttributeChangeEvent アプリケーションの起動、
リクエスト値の適用
属性変更を記述するために配信されるイベント。属性変更イベントは、プロパティに対するプログラム的な変更については配信されません。アプリケーションの特定のリクエストなしにレンダラによってプロパティが変更される場合にのみ配信されます。属性変更イベントの例には、クライアント側のサイズ変更をサポートしていた列の幅などがあります。

サポートされるファセット

名前 説明
activityContextMenu アクティビティ上で右クリックすると、activityContextMenuファセットが開きます。

このファセットにはポップアップが含まれる必要があり、ポップアップの子はメニューである必要があります。メニューのコンテンツが部分的にアクティビティに依存する場合、キャッシュされた値が表示されないように、ポップアップではcontentDelivery属性をlazyUncachedに設定する必要があります。

このファセットが指定されている場合、右クリックによってcalendarActivityEventがサーバーに送信されます。このファセットが指定されていない場合、右クリックによってどのイベントもサーバーに送信されません。

組込みのポップアップ・メニューは用意されていないため、すべてのメニュー項目を開発者が追加する必要があります。

activityDelete アクティビティがフォーカスを得て[Del]が押されると、activityDeleteファセットが開きます。

このファセットにはポップアップが含まれる必要があり、ポップアップの子はダイアログである必要があります。ポップアップのコンテンツが部分的にアクティビティに依存する場合、キャッシュされた値が表示されないように、ポップアップではcontentDelivery属性をlazyUncachedに設定する必要があります。ユーザーが[Del]を押す際にポップアップが起動しないようにする場合は、このファセットを使用しないでください。ファセットが存在しない場合は、calendarActivityEventがサーバーに引き続き送信されるため、ユーザーはこれをリスニングし、適切に応答できます。

activityDetail アクティビティをクリックするかダブルクリックすると、activityDetailファセットが開きます。アクティビティがフォーカスを得て[Enter]が押された場合でも、これが開きます。

このファセットにはポップアップが含まれる必要があり、ポップアップの子はダイアログである必要があります。キャッシュされた値が表示されないように、ポップアップではcontentDelivery属性をlazyUncachedに設定する必要があります。クリック、ダブルクリックまたは[Enter]によってポップアップが起動しないようにする場合は、このファセットを使用しないでください。ファセットが存在しない場合は、calendarActivityEventがサーバーに引き続き送信されるため、ユーザーはこれをリスニングし、適切に応答できます。

activityHover activityHoverファセットは、アクティビティ上でホバーすると開きます。このファセットにはポップアップが含まれる必要があり、ポップアップの子はnoteWindowである必要があります。キャッシュされた値が表示されないようにするには、ポップアップでcontentDelivery属性をlazyUncachedに設定する必要があります。

このファセットが存在しない場合、ユーザーがアクティビティ上でホバーしても、calendarActivityEventは送信されません。

このポップアップが開くまでに遅れが生じるため、ユーザーがアクティビティにすばやくカーソルをあててから離すと、これは表示されません。

contextMenu contextMenuファセットは、ユーザーがツールバーまたはアクティビティ上でないかぎり、カレンダ上で右クリックすると開きます。

このファセットにはポップアップが含まれる必要があり、ポップアップの子はメニューである必要があります。このファセットが指定されている場合、右クリックによってcalendarEventがサーバーに送信されます。このファセットが指定されていない場合、右クリックによってどのイベントもサーバーに送信されません。

組込みのポップアップ・メニューは用意されていないため、すべてのメニュー項目を開発者が追加する必要があります。

このファセットをトリガーできるのはマウスのクリックのみのため、キーボードからカレンダへのアクセスを可能にする場合は、同じ機能をトリガーするカスタム・ツールバー・ボタンを追加する必要があります。

このファセットが存在しない場合、空き領域エリアで右クリックしても、calendarEventは送信されません。

create カレンダの空き領域(アクティビティ以外)をクリックまたはダブルクリックすると、createファセットが表示されます。

このファセットにはポップアップが含まれる必要があり、ポップアップの子はダイアログである必要があります。キャッシュされた値が表示されないようにするには、ポップアップでcontentDelivery属性がlazyUncachedに設定されている必要があります。空き領域でのクリックまたはダブルクリックによってポップアップが起動しないようにする場合は、このファセットを使用しないでください。ファセットが存在しない場合は、calendarEventがサーバーに引き続き送信されるため、ユーザーはこれをリスニングし、適切に応答できます。

このファセットをトリガーできるのはマウスのクリックのみのため、キーボードからカレンダへのアクセスを可能にする場合は、同じ機能をトリガーするカスタム・ツールバー・ボタンを追加する必要があります。

属性

名前 ELのサポート 説明
activeDay java.util.Date あり activeDayによって、示される表示範囲が制御されるため、新しい表示を示すにはこれが変更される必要があります。たとえば、「月」のビューに2008年6月の月を表示するには、activeDayは2008年6月内の日である必要があります。また、activeDayは、「日」のビューに表示される特定の日付でもあります。

ツールバー内の矢印を使用すると、activeDayが変更されます。たとえば、activeDayが2009年6月8日でビューが「月」の場合に矢印を押すと、activeDayは2009年7月8日に変更されます。

activityStyles java.util.Map あり アクティビティ・インスタンス別のスタイル・カスタマイズが可能になります。タイプはMap<Set<String>, InstanceStyles>です。マップ・キーに使用されているSet<String>は、CalendarActivityのgetTags()から送信されます。値はinstanceStylesオブジェクトです。カレンダのスキニング・キーはinstanceStyleオブジェクトに渡され、アクティビティ別のスタイルが返されます。

組込みのカラー・ランプの詳細は、InstanceStylesのサブクラスであるCalendarActivityRampオブジェクトが返される、CalendarActivityRamp.getActivityRampを参照してください。

attributeChangeListener javax.el.MethodExpression ELのみ 属性変更リスナーへのメソッド・リファレンス。属性変更イベントは、プロパティに対するプログラム的な変更については配信されません。アプリケーションの特定のリクエストなしにレンダラによってプロパティが変更される場合にのみ配信されます。属性変更イベントの例には、クライアント側のサイズ変更をサポートしていた列の幅などがあります。
binding oracle.adf.view.rich.component.<wbr/>rich.data.RichCalendar ELのみ コンポーネント・インスタンスをBean上に格納するELリファレンス。これは、バッキングBeanからコンポーネントへのプログラム的なアクセスを提供するため、またはコンポーネントの作成をバッキングBeanに移動するために使用できます。
calendarActivityDurationChangeListener javax.el.MethodExpression ELのみ calendarActivityDurationChangeリスナーへのメソッド・リファレンス。
calendarActivityListener javax.el.MethodExpression ELのみ calendarActivityリスナーへのメソッド・リファレンス。
calendarDisplayChangeListener javax.el.MethodExpression ELのみ calendarDisplayChangeリスナーへのメソッド・リファレンス。
calendarListener javax.el.MethodExpression ELのみ calendar eventリスナーへのメソッド・リファレンス。
clientComponent boolean あり クライアント側のコンポーネントが生成されるかどうか。このフラグを設定してもしなくてもコンポーネントは生成されますが、クライアントJavascriptがコンポーネント・オブジェクトを必要とする場合、コンポーネントの存在を保証するにはtrueに設定する必要があります。現在デフォルトで生成されるクライアント・コンポーネント・オブジェクトは、将来は存在しない可能性があります。このフラグを設定することがコンポーネントの存在を保証する唯一の方法であり、クライアントは暗黙的な動作に依存できません。ただし、このフラグの設定にはパフォーマンス・コストが伴うため、絶対に必要でないかぎり、クライアントではクライアント・コンポーネントを有効にすることを避ける必要があります。
customizationId String あり この属性は推奨されていません。永続的なカスタマイズを適用するには、id属性を使用する必要があります。この属性は、次のリリースでは削除されます。
dateCustomizer oracle.adf.view.rich.util.DateCustomizer あり DateCustomizerによって、文字列の書式化など、日付別のカスタマイズが可能になります。

DateCustomizer.formatメソッドに渡されるキーは、次のとおりです。

  • af|calendar::month-grid-cell-header-day-link: 「月」ビューで、5を-34で置き換えるなど、セル・ヘッダーで日付のリンクのラベルをカスタマイズします。
  • af|calendar::month-grid-cell-header-misc: 「月」ビューで、セル・ヘッダーの空き領域に様々なテキストを追加します。たとえば、1月1日に対して元日というテキストを追加します。
dontPersist String[] あり adf-config.xmlに登録済のPersistent Change Managerを介してFilteredPersistenceChangeManagerにより変更が持続されない属性のリスト。このリストにある自動コンポーネント・パーソナライズはセッション・ストアに対しては依然として持続します。
id String なし コンポーネントの識別子。識別子は、HTMLで許可される構文のサブセットに準拠している必要があります。
  • 長さゼロの文字列は指定しないでください。
  • 最初の文字は、ASCII文字(A-Za-z)またはアンダースコア(_)にする必要があります。
  • 後続の文字は、ASCII文字または数字(A-Za-z0-9)、アンダースコア(_)またはダッシュ(-)にする必要があります。
inlineStyle String あり このコンポーネントに対して使用するCSSスタイル。これは、基本スタイルの変更用です。inlineStyleは、コンポーネントのルートDOM要素に適用されるCSSスタイルのセットです。inlineStyleのCSSプロパティが対象となるDOM要素に影響を与えない場合は、スキンを作成し、特定のDOM要素をターゲットにしたスキニング・キーを使用する必要があります(::label、::icon-styleなど)。
listCount int あり これは、listTypeがdayCountの場合にリスト・ビューに表示される日数です。デフォルトは14です。
listType String あり 有効な値: day、week、month、dayCount

リスト・ビューにどのアクティビティが表示されるのかが制御されます。
  • day - activeDayのアクティビティ
  • week - activeDayが含まれる週のアクティビティ
  • month - activeDayが含まれる月のアクティビティ
  • dayCount - activeDayから開始し、特定の日数の間のアクティビティが表示されます。実際に表示される実際の日数は、listCount属性で設定されます。dayCountはデフォルトです。
partialTriggers String[] あり 部分更新をトリガーするコンポーネントのID。このコンポーネントは、トリガー・コンポーネント上でリスニングします。トリガー・コンポーネントの1つがなんらかの更新を発生させるイベントを受信した場合、このコンポーネントも更新されることをリクエストします。識別子はソース・コンポーネント(このコンポーネント)に対して相対的であり、NamingContainerで構成されている必要があります。コンポーネントがすでにネーミング・コンテナ内にある場合、単一のコロンを使用するとページのルートから検索を開始でき、複数のコロンを使用するとNamingContainerを上方向に移動できます。たとえば、::を前に置くと、コンポーネントのネーミング・コンテナ(または、コンポーネントがネーミング・コンテナである場合にはそのコンポーネント自体)から出てそこから検索を開始します。:::を前に置くと、2つのネーミング・コンテナ(コンポーネントがネーミング・コンテナである場合にはそのコンポーネント自体も含まれます)から出てそこから検索を開始します。
persist String[] あり adf-config.xmlに登録済のPersistent Change Managerを介してFilteredPersistenceChangeManagerにより変更が持続される属性のリスト。このリストにない自動コンポーネント・パーソナライズはセッション・ストアに対しては依然として持続します。
rendered boolean あり コンポーネントがレンダリングされるかどうか。falseに設定した場合、このコンポーネントについて出力は配信されません(コンポーネントはどのような方法でもレンダリングされず、クライアントで表示できません)。
shortDesc String あり コンポーネントの短い説明。このテキストは、通常、ツールチップ・ヘルプ・テキストを表示するためにユーザー・エージェントによって使用されます。この場合、ツールチップの動作はユーザー・エージェントによって制御されます。たとえば、Firefox 2では長いツールチップは切り捨てられます。フォーム・コンポーネントの場合、shortDescはノート・ウィンドウに表示されます。
startDayOfWeek String あり 有効な値: sun、mon、tue、wed、thu、fri、sat

「週」または「月」のビューで、週の開始曜日が返されます。設定しない場合は、たとえば、米国では日曜日であってもフランスでは月曜日であるように、ロケールに基づいたデフォルトの設定になります。
startHour int あり ビューにスクロールされる開始時間です。有効な値は0から23です。デフォルトのstartHourは8です。
styleClass String あり このコンポーネントに対して使用するCSSスタイル・クラス。スタイル・クラスは、jspxページまたはスキニングCSSファイルなどで定義できます。または、AFInstructionTextのようなパブリック・スタイル・クラスの1つを使用できます。
timeZone java.util.TimeZone あり このインスタンスに使用するタイムゾーンです。設定しない場合、タイムゾーンはAdfFacesContextから取得されます。
toolboxLayout String[] あり ツールバーのレイアウトに対する制御が可能になります。

コンポーネントで認識される組込みの文字列は、次のとおりです。

  • all - デフォルトでカレンダによって提供されるすべてのボタン - allがリスト内にある場合、range、datesおよびviewsの組込みの文字列は無視されます。
  • range - 表示された日付範囲を示す文字列。
  • dates - 日付を変更するボタン: 今日、前日および翌日。
  • views - ビュー・ボタン: 日、週、月のリスト。
  • newline - 次にくる要素を新規の行に配置することを意味します。
  • stretch - ストレッチされたコンポーネントが追加されます。

カスタムのツールボックスのコンテンツ: customToolbarXyzのように、カレンダによって認識されないtoolboxLayoutで文字列が検出されると、その名前のファセットが検索され、見つかった場合にはコンテンツがレンダリングされます。将来的には新しいファセットがカレンダに追加される可能性があります。将来的な名前のクラッシュを回避するには、単語customで開始される文字列をカスタム・ファセットに使用する必要があります。他の名前については保証しません。

toolboxLayout属性を使用すると、ユーザーは次を実行できます。
  • カスタムのツールバーを必要な数だけ追加。次に例を示します。
    • toolboxLayout="customToolbar1 all customToolbar2"
  • ツールバーを必要な数だけスタック。次に例を示します。
    • toolboxLayout="all newline customToolbar newline customGroup"
  • ツールバーの複数行の表示。次に例を示します。
    • toolboxLayout="customToolbar1 newline all"
  • ボタン・グループの並べ替え。次に例を示します。
    • toolboxLayout="views stretch range dates"
  • 必要のないツールバー・コンテンツの削除。たとえば、次によって、日付のボタンが表示されなくなります。
    • toolboxLayout="views"
value oracle.adf.view.rich.model.CalendarModel あり アクティビティ・データを提供するモデル。型は、oracle.adf.view.rich.model.CalendarModelである必要があります。
view String あり 有効な値: day、week、month、list

カレンダのビュー: 「日」、「週」、「月」または「リスト」。デフォルトはmonthです。
visible boolean あり コンポーネントの可視性。falseの場合、コンポーネントはクライアント上で非表示となります。renderedとは異なり、これはサーバーでのライフサイクルには影響を与えません(コンポーネントに実行済バインディングがある、など)。コンポーネントの可視性は、クライアント上で切り替えるか、PPRを使用して切り替えることができます。renderedがfalseの場合、コンポーネントはどのような方法でもレンダリングされず、クライアントで表示できません。ほとんどの場合、visibleプロパティのかわりにrenderedプロパティを使用します。
次のレンダーキットではサポートされていません。 org.apache.myfaces.trinidad.core