パッケージmx.collections
インターフェイスpublic interface ICollectionView extends IEventDispatcher
インプリメンタListCollectionView

ICollectionView は、データのコレクションに対するビューです。このビューは、基になるデータを変更せずに、さまざまな条件でソートされたデータまたはフィルタで絞り込まれたデータの表示を行うように変更できます。IViewCursor はコレクション内のアイテムへのアクセスを提供します。IViewCursor インターフェイスの insert() メソッドおよび remove() メソッドを使用してコレクションを変更できます。

ICollectionView は、リモートから取得したデータに対するビューです。リモートの可能性があるデータでこのインターフェイスを実装する場合は、ItemPendingError で示される、データを取得できない場合を処理することが重要です。

IList インターフェイスは ICollectionView インターフェイスの代わりになります。

関連項目

mx.collections.IViewCursor
mx.collections.errors.ItemPendingError
mx.collections.IList
データプロバイダおよびコレクションの使用


パブリックプロパティ
 プロパティ定義
  filterFunction : Function
関数の条件に一致しないアイテムを削除するためにビューが使用する関数です。
ICollectionView
  length : int
[read-only] このビュー内のアイテムの数です。
ICollectionView
  sort : Sort
ICollectionView に適用されるソートです。
ICollectionView
パブリックメソッド
 メソッド定義
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
IEventDispatcher
  contains(item:Object):Boolean
ビューに指定されたオブジェクトを含めるかどうかを返します。
ICollectionView
  createCursor():IViewCursor
このビューに対して使用する新しい IViewCursor を作成します。
ICollectionView
  disableAutoUpdate():void
コレクション自体およびコレクション内のアイテムの変更がビューから送出されないようにします。
ICollectionView
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
IEventDispatcher
  enableAutoUpdate():void
自動更新を有効にします。
ICollectionView
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
IEventDispatcher
  itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void
アイテムが更新されたビューを通知します。
ICollectionView
  refresh():Boolean
ビューにソートとフィルタを適用します。
ICollectionView
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
IEventDispatcher
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
IEventDispatcher
イベント
 イベント一覧定義
  collectionChange ICollectionView が何らかの方法で更新されると送出されます。ICollectionView
プロパティの詳細
filterFunctionプロパティ
filterFunction:Function  [read-write]

関数の条件に一致しないアイテムを削除するためにビューが使用する関数です。filterFunction のシグネチャは次のとおりになると予想されます。

f(item:Object):Boolean
指定されたアイテムがビューに残っている場合は、戻り値は true です。

フィルタがサポートされていない場合は、このプロパティにアクセスするとエラーがスローされます。filterFunction プロパティを設定した後で、refresh() を呼び出してビューを更新します。

メモ : ICollectionView の実装では、フィルタ関数を実行する前にリモートからすべてのアイテムを取得します。 ページングを使用している場合は、データを取得する前にリモートコレクションにフィルタを適用します。

実装
    public function get filterFunction():Function
    public function set filterFunction(value:Function):void

関連項目

lengthプロパティ 
length:int  [read-only]

このビュー内のアイテムの数です。0 はアイテムがないことを意味し、-1 は長さが不明であることを意味します。

実装
    public function get length():int
sortプロパティ 
sort:Sort  [read-write]

ICollectionView に適用されるソートです。ソートを設定してもビューは自動的に更新されないため、このプロパティを設定した後で refresh() メソッドを呼び出す必要があります。ソートがサポートされていない場合は、このプロパティにアクセスするとエラーがスローされます。

メモ : ICollectionView の実装では、ソートを実行する前にリモートからすべてのアイテムを取得します。 ソートされたリストにページングを使用している場合は、データを取得する前にリモートコレクションにソートを適用します。

実装
    public function get sort():Sort
    public function set sort(value:Sort):void

関連項目

メソッドの詳細
contains()メソッド
public function contains(item:Object):Boolean

ビューに指定されたオブジェクトを含めるかどうかを返します。IViewCursor.findxxx メソッドの場合とは異なり、この検索が成功するのは、パラメータに完全に一致するアイテムが見つかったときだけです。ビューにフィルタが適用されている場合、このメソッドは、基になるコレクションにアイテムが含まれている場合でも false を返します。

パラメータ
item:Object — 検索対象のオブジェクトです。

戻り値
Boolean — 任意のフィルタを適用した後、ICollectionView にアイテムが含まれていれば true を返します。それ以外の場合は、false を返します。
createCursor()メソッド 
public function createCursor():IViewCursor

このビューに対して使用する新しい IViewCursor を作成します。

戻り値
IViewCursor — 新しい IViewCursor 実装です。
disableAutoUpdate()メソッド 
public function disableAutoUpdate():void

コレクション自体およびコレクション内のアイテムの変更がビューから送出されないようにします。コレクション内における位置が変更されたときに、ビュー内のアイテムの位置が更新されるのを防止する働きもします。enableAutoUpdate が呼び出された後で、変更は適切にキューに格納され、送出されます。単一のアイテムに対して更新よりも多くのイベントが発生した場合は、ビューがリセットされることがあります。disableAutoUpdate メソッドは累積的に動作します。ビューからイベントが送出されてビューが更新されるには、enableAutoUpdate が同じ回数呼び出される必要があります。disableAutoUpdate は個々のビューでのみ有効であるため、編集は他のビューによって個別に検出されます。

enableAutoUpdate()メソッド 
public function enableAutoUpdate():void

自動更新を有効にします。詳細については、「disableAutoUpdate」を参照してください。

関連項目

itemUpdated()メソッド 
public function itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void

アイテムが更新されたビューを通知します。このメソッドは、ビューの内容が IPropertyChangeNotifier を実装しない場合に便利です。このメソッドの呼び出しに property パラメータが含まれている場合は、ビューが通知メカニズムを最適化できることがあります。プロパティを指定しないと、ビュー全体の単純な更新が選択されます。

パラメータ
item:Object — 更新されたビュー内のアイテムです。
 
property:Object (default = null) — 更新されたプロパティの名前です。
 
oldValue:Object (default = null) — そのプロパティの古い値です。プロパティが null の場合はアイテムの古い値を指定できます。
 
newValue:Object (default = null) — そのプロパティの新しい値です。プロパティが null の場合は、アイテムは新しい値と見なされるため指定する必要はありません。

関連項目

refresh()メソッド 
public function refresh():Boolean

ビューにソートとフィルタを適用します。ICollectionView は、ソートまたはフィルタの変更を自動検出しません。したがって、sort プロパティまたは filterFunction プロパティの設定後にビューを更新するには、refresh() メソッドを呼び出す必要があります。ICollectionView に IMXMLObject インターフェイスも実装されている場合は、initialized() メソッドから refresh() メソッドを呼び出してください。

更新が正常に実行された場合は true を返し、ソートが完了していない場合 (アイテムが保留中など) は false を返します。ビューのクライアントは、refresh() 操作が完了したことを確認するために CollectionEventKind.REFRESH kind プロパティを使用して CollectionEvent イベントを待つ必要があります。

戻り値
Boolean — refresh() が完了した場合は true、refresh() が完了していない場合は false です。
イベントの詳細
collectionChangeevent 
イベントオブジェクトの型: mx.events.CollectionEvent
CollectionEvent.type property = mx.events.CollectionEvent.COLLECTION_CHANGE

ICollectionView が何らかの方法で更新されると送出されます。

CollectionEvent.COLLECTION_CHANGE 定数は、コレクションが変更されるときに送出されるイベントのイベントオブジェクトの type プロパティ値を定義します。

イベントオブジェクトの各プロパティには次の値が設定されています。イベントの種類によっては無効なプロパティもあります。詳細については、各プロパティの説明を参照してください。

プロパティ
bubblesfalse
cancelablefalse
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
itemsイベントの影響を受けるアイテムの情報を持つオブジェクトの配列です。このフィールドの内容はイベントの種類に応じて異なります。詳細については、items プロパティを参照してください。
kindイベントの種類です。有効な値が定数として CollectionEventKind クラスに定義されます。
locationitems プロパティで指定されたアイテムのターゲットコレクション内における位置です。
oldLocationitems プロパティで指定されたアイテムのコレクション内における以前の位置です。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
typeCollectionEvent.COLLECTION_CHANGE