ig.scheduler.ScheduleListDataSource
備考
ScheduleListDataSource クラスは、Appointment および ScheduleResource データを提供する「標準 CLR オブジェクト」(POCO) のリストにバインドする機能を提供します。既存のクラスが必須な型のプロパティを公開する場合、そのクラスが予定またはリソースを表すために使用できます。これらのプロパティ名が対応する予定/リソース プロパティと同じ場合、このプロパティが対応する予定/リソース プロパティに自動的にバインドされます。名前が異なる場合、プロパティ マッピング サポートは ScheduleListDataSource.appointmentPropertyMappings および ScheduleListDataSource.resourcePropertyMappings コレクションで提供されます。
ScheduleListDataSource.appointmentItemsSource プロパティは IEnumerable インターフェイスを実装する値を受けます。ただし、簡易な IEnumerable 実装で特定の機能はサポートされません。特に新しい予定の作成と既存の予定の削除がサポートされません。 IEnumerable インターフェイスが変更通知方法を提供しないため、項目ソースへの外部変更が ScheduleListDataSource クラスで実行されません。
IList インターフェイスを実装する項目ソースの場合、予定の作成と削除が ScheduleListDataSource API でサポートされますが、IEnumerable 実装と同じように変更通知方法を提供しないため項目ソースへの外部変更が ScheduleListDataSource で実行されません。
注: List
コンテンツ変更メソッドおよび通知メソッドが存在するため、IList および INotifyCollectionChanged インターフェイスを実装する項目ソースは多数の機能を提供します。この場合、作成および削除が ScheduleListDataSource API およびコレクションへの外部変更によってサポートされます。可能な場合、コンテンツ変更および通知方法をサポートする ObservableCollection
また、新しい予定を作成するには、基本データ オブジェクト クラスから公開される公開用パラメーターなしコンストラクターが要件です。クラスが公開用パラメーターなしコンストラクターを公開しない場合、ScheduleListDataSource.createAppointmentDataObjectCallback プロパティを使用して新しい Appointment オブジェクトが作成されたときに呼び出されるファクトリ メソッドを設定できます。パラメーターなしコンストラクターまたはファクトリ メソッドがない場合、項目ソースのコンテンツ変更のサポートに関係なく、新しい予定の追加はサポートされません。
ScheduleListDataSource.resourceItemsSource プロパティは AppointmentItemsSource と同じように操作しますが、リソースの追加/削除がユーザー インターフェイスでサポートされていないため、作成および削除をサポートするリスト型の使用が重要になりません。
そのオブジェクトに実行される外部の変更をサポートするには、予定またはリソースのバッキング ストアを提供する POCO オブジェクトが INotifyPropertyChanged インターフェイスを実装する必要があります。このようなプロパティ変更通知メカニズムなしで ScheduleListDataSource はプロパティ値に加えた変更に反応できません。そのため、同期された予定またはリソース オブジェクトの対応プロパティを保持できません。予定のプロパティ値および API を介した ScheduleResource クラスの変更は、ScheduleListDataSource によって直ちに反映され、更に基になるデータ オブジェクトへ伝達が直ちに返されます。
The following table summarizes the functionality which is available under each usage scenario:
インターフェイス | 機能 |
---|---|
IEnumerable |
基本的な機能のみ提供します。予定/リソースがリストの各項目に作成されますが、新しい項目の追加および既存項目の削除はサポートされません。 |
IList | 予定の削除やリソースを追加および削除するための機能提供しますが、API を介してのみです。 |
INotifyCollectionChanged | 項目ソースに対する外部変更を介して予定やリソースの追加および削除する機能を提供します。 |
IList + INotifyCollectionChanged |
予定やリソースの追加および削除は API および項目ソースに対する外部変更を介してサポートされます。
このクラスは両方のインターフェイスを実装するため、最良の結果を得るには、 ObservableCollection |
INotifyPropertyChanged | 基になるデータ オブジェクト クラス (POCO) で実装した場合、オブジェクトのプロパティに加えられた外部変更は対応する予定およびリソース オブジェクトで直ちに同期されます。 予定やリソースのプロパティを介した変更は常に基になるデータ オブジェクトへ伝達が返されるため、INotifyPropertyChanged 実装はこのシナリオでは必要ありません。 |
依存関係
-
ig.scheduler.ScheduleListDataSource
コンストラクター- new $.ig.scheduler.ScheduleListDataSource( );
新しいインスタンスを作成します。
-
appointmentItemsSource
- .appointmentItemsSource( );
予定が作成されるデータ オブジェクトのリストを返します。
-
appointmentItemsSource
- .appointmentItemsSource( value:object );
予定が作成されるデータ オブジェクトのリストを返します。
- value
- タイプ:object
-
appointmentPropertyMappings
- .appointmentPropertyMappings( );
- 返却型:
- ig.scheduler.AppointmentPropertyMappingsCollection
- 返却型の説明:
- AppointmentPropertyMappingsCollection を返します。
異なる名前を持つ基となるデータ オブジェクトのプロパティに Appointment プロパティをマップできるコレクションを返します。
備考
基となるデータ オブジェクトのプロパティの名前が、それがバインドされているスケジュール オブジェクトのプロパティの名前とすべて同じである場合、マッピングは自動的に存在すると見なします。この場合、明示的なマッピングは必要ありません。
基となるデータ オブジェクトのプロパティがスケジュール オブジェクト プロパティと同じ名前を持つが、開発者がマッピングを設定しない場合は、SchedulePropertyMapping.dataObjectPropertyName プロパティとして null 値を持つ AppointmentPropertyMapping を追加します。
バインドされたプロパティのデータ型が対応するスケジュール オブジェクト プロパティのデータ型と一致しない場合、変換が試みられますが、Convert クラスの機能の制限を受けることがあります。たとえば、予定の Start プロパティを文字列型のフィールドにマップできます (含まれるデータが日付/時刻の有効な文字列形式であると仮定します)。同様に、数値を文字列に変換できるため、Id プロパティは整数型のフィールドにマップできます。
バインド プロパティの値がスケジュール オブジェクト プロパティの値に変換できない場合、SchedulePropertyMapping.convertCallback および SchedulePropertyMapping.convertBackCallback メソッドを使用してデータを双方向に変換することができます。
以下の Appointment プロパティにマッピングが必要です。
-
appointmentPropertyMappings
- .appointmentPropertyMappings( index:number );
- 返却型:
- ig.scheduler.SchedulePropertyMapping
- 返却型の説明:
- AppointmentPropertyMappingsCollection を返します。
異なる名前を持つ基となるデータ オブジェクトのプロパティに Appointment プロパティをマップできるコレクションを返します。
- index
- タイプ:number
-
appointmentPropertyMappings
- .appointmentPropertyMappings( index:number, value:ig.scheduler.SchedulePropertyMapping );
- 返却型:
- ig.scheduler.SchedulePropertyMapping
- 返却型の説明:
- AppointmentPropertyMappingsCollection を返します。
異なる名前を持つ基となるデータ オブジェクトのプロパティに Appointment プロパティをマップできるコレクションを返します。
- index
- タイプ:number
- value
- タイプ:ig.scheduler.SchedulePropertyMapping
-
beginEdit
- .beginEdit( appointment:ig.scheduler.Appointment, errorCallback:function );
- 返却型:
- boolean
- 返却型の説明:
- 操作が成功した場合は True。
指定した予定で編集モードセッションを開始します。
- appointment
- タイプ:ig.scheduler.Appointment
- 編集される Appointment 派生オブジェクト。
- errorCallback
- タイプ:function
-
bumpResourcesVersion
継承- .bumpResourcesVersion( );
-
cancelEdit
- .cancelEdit( appointment:ig.scheduler.Appointment );
- 返却型:
- ig.scheduler.AppointmentOperationResult
- 返却型の説明:
- 操作の結果を含む AppointmentOperationResult インスタンス。
ScheduleListDataSource.beginEdit メソッドから開始された編集モード セッションで実行された Appointment への変更を元に戻します。
- appointment
- タイプ:ig.scheduler.Appointment
- 編集中の Appointment。
-
createAppointment
- .createAppointment( errorCallback:function );
- 返却型:
- ig.scheduler.Appointment
- 返却型の説明:
- 新しく作成された Appointment への参照を含む AppointmentOperationResult インスタンス。操作に失敗した場合は DataError オブジェクト。
新しい Appointment を作成します。
- errorCallback
- タイプ:function
-
createAppointmentDataObjectCallback
- .createAppointmentDataObjectCallback( );
新しく作成された Appointment のデータ オブジェクトを作成するために呼び出されるデリゲートを返します。
備考
ScheduleListDataSource.appointmentItemsSource 内に含まれる項目のタイプを決定できない場合、そのタイプの新しいインスタンスはリフレクションを使用して自動的に作成できません。パラメータターがないコンストラクターをパブリックに公開しないタイプの場合も同様です。
このプロパティは、Appointment インスタンスの作成時にコールバックを取得できます。その結果、対応するデータ オブジェクトを作成できます。
-
createAppointmentDataObjectCallback
- .createAppointmentDataObjectCallback( value:function );
新しく作成された Appointment のデータ オブジェクトを作成するために呼び出されるデリゲートを返します。
- value
- タイプ:function
備考
ScheduleListDataSource.appointmentItemsSource 内に含まれる項目のタイプを決定できない場合、そのタイプの新しいインスタンスはリフレクションを使用して自動的に作成できません。パラメータターがないコンストラクターをパブリックに公開しないタイプの場合も同様です。
このプロパティは、Appointment インスタンスの作成時にコールバックを取得できます。その結果、対応するデータ オブジェクトを作成できます。
-
createVariance
- .createVariance( appointment:ig.scheduler.Appointment );
繰り返しの変更済みのインスタンス (バリアンス) を作成します。
- appointment
- タイプ:ig.scheduler.Appointment
-
dataErrorCallback
継承- .dataErrorCallback( );
-
dataErrorCallback
継承- .dataErrorCallback( value:function );
- value
- タイプ:function
-
deleteAppointment
- .deleteAppointment( appointment:ig.scheduler.Appointment );
- 返却型:
- ig.scheduler.AppointmentOperationResult
- 返却型の説明:
- 操作の結果を含む AppointmentOperationResult インスタンス。
指定した Appointment を削除します。
- appointment
- タイプ:ig.scheduler.Appointment
- 削除する予定。
備考
ScheduleListDataSource クラスの DeleteAppointment メソッドの実装が同期に実行されます。そのため、OperationResultBase.completed イベントを処理する必要がありません。
-
destroy
- .destroy( );
このクラスで以前使用されたメモリをリリースします。
-
endEdit
- .endEdit( appointment:ig.scheduler.Appointment, force:boolean );
編集モード セッションで実行されたアクティビティへの変更をコミットまたは破棄します。
- appointment
- タイプ:ig.scheduler.Appointment
- 編集されるアクティビティ。
- force
- タイプ:boolean
- True の場合、編集モードを終了します。
-
getAppointmentBackgroundColor
継承- .getAppointmentBackgroundColor( resource:ig.scheduler.ScheduleResource );
- 返却型:
- string
- 返却型の説明:
- resource
- タイプ:ig.scheduler.ScheduleResource
-
getAppointmentsInRange
継承- .getAppointmentsInRange( range:ig.scheduler.DateTimeRange );
- 返却型:
- ig.scheduler.AppointmentQueryResult
- 返却型の説明:
- クエリの結果を含む AppointmentQueryResult オブジェクト。 ScheduleListDataSource クラスは、クエリの結果がメソッドから返されるとすぐに利用できます。つまり、OperationResultBase.completed イベントを処理する必要がありません。 イベント
指定した範囲での予定をすべて表現するオブジェクトの列挙可能なリストを返します。1 つ以上のリソースによりフィルターがオプションです。
- range
- タイプ:ig.scheduler.DateTimeRange
- テストする日付範囲。
備考
ScheduleListDataSource クラスの GetAppointmentsInRange メソッドの実装はクエリを同期的に実行します。 そのため、実行がメソッドから返される前に AppointmentQueryResult.appointments のリストが完全に生成されます。
このメソッドを使用し、指定した範囲と交わる各 Appointment のリストを取得します。オプションで 1 つ以上のリソースをフィルターできます。
-
getAppointmentsInRange
- .getAppointmentsInRange( range:ig.scheduler.DateTimeRange, resources:ig.IEnumerable`1 );
- 返却型:
- ig.scheduler.AppointmentQueryResult
- 返却型の説明:
- クエリの結果を含む AppointmentQueryResult オブジェクト。 ScheduleListDataSource クラスは、クエリの結果がメソッドから返されるとすぐに利用できます。つまり、OperationResultBase.completed イベントを処理する必要がありません。 イベント
指定した範囲での予定をすべて表現するオブジェクトの列挙可能なリストを返します。1 つ以上のリソースによりフィルターがオプションです。
- range
- タイプ:ig.scheduler.DateTimeRange
- テストする日付範囲。
- resources
- タイプ:ig.IEnumerable`1
- フィルターするオーナーのオプションのリスト。 null 以外の値が指定される場合、指定したオーナーのみの予定が返されます。
備考
ScheduleListDataSource クラスの GetAppointmentsInRange メソッドの実装はクエリを同期的に実行します。 そのため、実行がメソッドから返される前に AppointmentQueryResult.appointments のリストが完全に生成されます。
このメソッドを使用し、指定した範囲と交わる各 Appointment のリストを取得します。オプションで 1 つ以上のリソースをフィルターできます。
-
getAppointmentTextColor
継承- .getAppointmentTextColor( resource:ig.scheduler.ScheduleResource );
- 返却型:
- string
- 返却型の説明:
- resource
- タイプ:ig.scheduler.ScheduleResource
-
getResources
- .getResources( );
このデータ ソースと関連付けられたすべてのリソースの列挙可能なリストを返します。
-
handleAppointmentItemsPropertyChanged
- .handleAppointmentItemsPropertyChanged( );
INotifyPropertyChanged.PropertyChanged イベントが Appointment データ オブジェクト を処理するかどうかを決定します。
備考
Appointment の元になるデータ オブジェクトのプロパティが値を変更するときに通知を取得するためには、データソースはデータ オブジェクトの INotifyPropertyChanged.PropertyChanged イベントのリスナーとして登録します。これによって対応する Appointment オブジェクトを有効にし、外部の変更に応答して自身のプロパティ値を状況に応じて同期します。
ScheduleListDataSource.appointmentItemsSource が比較的多くの項目を含む場合、パフォーマンスおよびメモリ使用量、あるいはそのいずれかに影響することがあります。
このプロパティは、この動作をオフに切り替えることができるため、PropertyChanged イベントを処理しないことをデータソースへ通知します。
このプロパティは、基になるデータ オブジェクトが INotifycPropertyChanged インターフェイスを実行する場合のみ使用できます。
データソースがデータ オブジェクトの PropertyChanged イベントのハンドラーとして同じロジックで ScheduleListDataSource.raisePropertyChanged メソッドを公開することに注意してください。このメソッドを直接呼び出して指定した予定データ オブジェクトの PropertyChanged イベントをシュミレーションするため、PropertyChanged イベントを処理する場合と同じ結果となります。
-
handleAppointmentItemsPropertyChanged
- .handleAppointmentItemsPropertyChanged( value:boolean );
INotifyPropertyChanged.PropertyChanged イベントが Appointment データ オブジェクト を処理するかどうかを決定します。
- value
- タイプ:boolean
備考
Appointment の元になるデータ オブジェクトのプロパティが値を変更するときに通知を取得するためには、データソースはデータ オブジェクトの INotifyPropertyChanged.PropertyChanged イベントのリスナーとして登録します。これによって対応する Appointment オブジェクトを有効にし、外部の変更に応答して自身のプロパティ値を状況に応じて同期します。
ScheduleListDataSource.appointmentItemsSource が比較的多くの項目を含む場合、パフォーマンスおよびメモリ使用量、あるいはそのいずれかに影響することがあります。
このプロパティは、この動作をオフに切り替えることができるため、PropertyChanged イベントを処理しないことをデータソースへ通知します。
このプロパティは、基になるデータ オブジェクトが INotifycPropertyChanged インターフェイスを実行する場合のみ使用できます。
データソースがデータ オブジェクトの PropertyChanged イベントのハンドラーとして同じロジックで ScheduleListDataSource.raisePropertyChanged メソッドを公開することに注意してください。このメソッドを直接呼び出して指定した予定データ オブジェクトの PropertyChanged イベントをシュミレーションするため、PropertyChanged イベントを処理する場合と同じ結果となります。
-
hasAppointmentsInRange
- .hasAppointmentsInRange( range:ig.scheduler.DateTimeRange, resources:ig.IEnumerable`1, findFirst:boolean );
指定した resourceId でフィルターして、指定した範囲で予定アクティビティがあるかどうかを示す値を返します。アクティビティを持つ日を含む日付の配列も返します。
- range
- タイプ:ig.scheduler.DateTimeRange
- テストする範囲。
- resources
- タイプ:ig.IEnumerable`1
- フィルターするリソース、またはすべてのリソースを含む場合は null/空。
- findFirst
- タイプ:boolean
- True の場合、指定したリソースの指定した範囲でアクティビティが見つかった際に返します。この場合、DateQueryResultBase.dates リストは生成しません。アクティビティを持つ実際の日付が必要ない場合に最適化するには True を渡します。
-
internalNotifyPropertyChanging
- .internalNotifyPropertyChanging( activity:ig.scheduler.ActivityBase, propertyName:string, oldValue:object, newValue:object );
- 返却型:
- boolean
- 返却型の説明:
- 通知を許可するには True、制御するには False。
内部プロパティ変更通知が処理される前に呼び出されます。これは通知を制御するチャンスをデータ ソースに提供します。
- activity
- タイプ:ig.scheduler.ActivityBase
- ActivityBase インスタンス
- propertyName
- タイプ:string
- 値が変更されているプロパティの名前。
- oldValue
- タイプ:object
- 変更前のプロパティ値。
- newValue
- タイプ:object
- 変更後のプロパティ値。
-
isAppointmentDataReady
- .isAppointmentDataReady( );
予定項目ソースが割り当てられて、初期化が実行中の場合に False を返します。
-
onAppointmentPropertyChanged
- .onAppointmentPropertyChanged( appointment:ig.scheduler.Appointment, property:ig.scheduler.AppointmentProperty, oldValue:object, newValue:object, [raiseEvent:boolean] );
AppointmentPropertyChanged イベントを発生させます。PropertyChanged の疑似ハンドラーです。実際には予定の PropertyChanged イベントをリッスンせず、手動でこのメソッドへ通知をプッシュします。
- appointment
- タイプ:ig.scheduler.Appointment
- property
- タイプ:ig.scheduler.AppointmentProperty
- oldValue
- タイプ:object
- newValue
- タイプ:object
- raiseEvent
- タイプ:boolean
- オプション
-
onPropertyChanged
継承- .onPropertyChanged( propertyName:string );
- propertyName
- タイプ:string
-
onResourcePropertyChanged
継承- .onResourcePropertyChanged( resource:ig.scheduler.ScheduleResource, property:ig.scheduler.ScheduleResourceProperty, dayOfWeek:ig.DayOfWeek );
- resource
- タイプ:ig.scheduler.ScheduleResource
- property
- タイプ:ig.scheduler.ScheduleResourceProperty
- dayOfWeek
- タイプ:ig.DayOfWeek
-
raisePropertyChanged
- .raisePropertyChanged( dataObject:object, property:ig.scheduler.AppointmentProperty );
指定した dataObject プロパティ値の変更をデータソースへ通知します。
- dataObject
- タイプ:object
- プロパティが変更したデータ オブジェクト。
- property
- タイプ:ig.scheduler.AppointmentProperty
- 値が変更されたプロパティを識別する定数。
備考
比較的多くのデータオブジェクトが ScheduleListDataSource.appointmentItemsSource にある場合、データ オブジェクトの INotifyPropertyChanged インターフェイスで PropertyChanged イベントを処理することによりパフォーマンスに影響する場合があります。この問題を回避するには、ScheduleListDataSource.handleAppointmentItemsPropertyChanged プロパティを false に設定します。
データソースがこの方法で作成された場合、対応する Appointment オブジェクトの状態を基になるデータ オブジェクトの状態と自動的に同期できません。
このメソッドを使用して影響されるデータ オブジェクトとプロパティ値に手動でプロパティの変更通知を送信するため、予定オブジェクトの状態を基になるデータ オブジェクトの状態と確実に同期できます。
-
resourceItemsSource
- .resourceItemsSource( );
予定が作成されるデータ オブジェクトのリストを返します。
-
resourceItemsSource
- .resourceItemsSource( value:ig.IEnumerable );
予定が作成されるデータ オブジェクトのリストを返します。
- value
- タイプ:ig.IEnumerable
-
resourcePropertyMappings
- .resourcePropertyMappings( );
- 返却型:
- ig.scheduler.ResourcePropertyMappingsCollection
- 返却型の説明:
- ResourcePropertyMappingsCollection を返します。
異なる名前を持つ基となるデータ オブジェクトのプロパティにScheduleResource プロパティをマップできるコレクションを返します。
備考
基となるデータ オブジェクトのプロパティの名前が、それがバインドされているスケジュール オブジェクトのプロパティの名前とすべて同じである場合、マッピングは自動的に存在すると見なします。この場合、明示的なマッピングは必要ありません。
基となるデータ オブジェクトのプロパティがスケジュール オブジェクト プロパティと同じ名前を持つが、開発者がマッピングを設定しない場合は、SchedulePropertyMapping.dataObjectPropertyName プロパティとして null 値を持つ ResourcePropertyMapping を追加します。
バインド プロパティの値がスケジュール オブジェクト プロパティの値に一致しない場合、SchedulePropertyMapping.convertCallback および SchedulePropertyMapping.convertBackCallback メソッドを使用してデータを双方向に変換することができます。
以下の ScheduleResource プロパティにマッピングが必要です。
-
resourcePropertyMappings
- .resourcePropertyMappings( index:number );
- 返却型:
- ig.scheduler.SchedulePropertyMapping
- 返却型の説明:
- ResourcePropertyMappingsCollection を返します。
異なる名前を持つ基となるデータ オブジェクトのプロパティにScheduleResource プロパティをマップできるコレクションを返します。
- index
- タイプ:number
-
resourcePropertyMappings
- .resourcePropertyMappings( index:number, value:ig.scheduler.SchedulePropertyMapping );
- 返却型:
- ig.scheduler.SchedulePropertyMapping
- 返却型の説明:
- ResourcePropertyMappingsCollection を返します。
異なる名前を持つ基となるデータ オブジェクトのプロパティにScheduleResource プロパティをマップできるコレクションを返します。
- index
- タイプ:number
- value
- タイプ:ig.scheduler.SchedulePropertyMapping