パッケージmx.collections
クラスpublic class Sort
継承Sort Inheritance EventDispatcher Inheritance Object

既存のビューに対してソートを設定するために必要なソート情報を提供します(ICollectionView インターフェイスまたはこのインターフェイスを実装するクラス)。 ビューの sort プロパティにソートインスタンスを割り当てた後で、ビューの refresh() メソッドを呼び出してソート条件を適用します。ソートの定義は通常、複雑なアイテムのコレクション、つまりコレクション内のオブジェクトのプロパティに対してソートが実行されるようなコレクションに対して行います。 次に、この用例を示します。

     var col:ICollectionView = new ArrayCollection();
     // In the real world, the collection would have more than one item.
     col.addItem({first:"Anders", last:"Dickerson"});
     // Create the Sort instance.
     var sort:Sort = new Sort();
     // Set the sort field; sort on the last name first, first name second.
     // Both fields are case-insensitive.
     sort.fields = [new SortField("last",true), new SortField("first",true)];
       // Assign the Sort object to the view.
     col.sort = sort;
     // Apply the sort to the collection.
       col.refresh();
  

コレクションに StringDateBoolean などの単純なアイテムが含まれている場合があります。この場合は、これらの単純型に直接ソートを適用します。単純なアイテムにソートを設定するときは、単一のソートフィールドを使用し、SortField オブジェクトコンストラクタに null name (第 1)パラメータを指定します。 次に実際の使用例を示します。


     var col:ICollectionView = new ArrayCollection();
     col.addItem("California");
     col.addItem("Arizona");
     var sort:Sort = new Sort();
     // There is only one sort field, so use a null first parameter.
     sort.fields = [new SortField(null, true)];
     col.sort = sort;
       col.refresh();
  

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

MXML のシンタックスexpandedMXML シンタックスを隠す

The <mx:Sort> tag has the following attributes:

  <mx:Sort
  Properties
  compareFunction="Internal compare function"
  fields="null"
  unique="false | true"
  />
  

デフォルトの MXML プロパティfields

関連項目

mx.collections.ICollectionView
Using Data Providers and Collections


パブリックプロパティ
 プロパティ定義元
  compareFunction : Function
ソート時にアイテムを比較するために使用するメソッドです。
Sort
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  fields : Array
比較するフィールドを指定する SortField オブジェクトの配列です。
Sort
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  unique : Boolean
ソートが一意であるかどうかを示します。
Sort
パブリックメソッド
 メソッド定義元
  
コンストラクタです。
Sort
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
指定された配列内(要求された場合は挿入ポイント)で指定されたオブジェクトを検索し、見つかった場合はインデックス、見つからなかった場合は -1 を返します。
Sort
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
指定されたプロパティを使用してソートを制御するかどうかを返します。
Sort
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  
すべての SortFields を調べて、これらのフィールドに対して reverse() を呼び出します。
Sort
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
sort(items:Array):void
指定された配列(配列のコピーではない)に現在のソートを適用します。
Sort
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
パブリック定数
 定数定義元
  ANY_INDEX_MODE : String = "any"
[静的] 検索を実行すると、一致するアイテムのインデックスを返します。
Sort
  FIRST_INDEX_MODE : String = "first"
[静的] 検索を実行すると、最初に一致したアイテムのインデックスを返します。
Sort
  LAST_INDEX_MODE : String = "last"
[静的] 検索を実行すると、最後に一致したアイテムのインデックスを返します。
Sort
プロパティの詳細
compareFunctionプロパティ
compareFunction:Function

ソート時にアイテムを比較するために使用するメソッドです。 このプロパティを指定すると、このクラスで使用する SortField オブジェクトに指定した compareFunction プロパティはすべて無視されます。

比較関数には次のシグネチャが必要です。


              function [name](a:Object, b:Object, fields:Array = null):int
           

この関数は、以下を返す必要があります。

内部比較関数に戻すには、この値を null に設定します。

指定された fields 配列は、比較するオブジェクトフィールドを指定します。 通常は、フィールドリストを使い果たすか、ゼロではない値が返されるまで、このアルゴリズムはプロパティを比較します。 次に実際の使用例を示します。


        function myCompare(a:Object, b:Object, fields:Array = null):int
        {
            var result:int = 0;
            var i:int = 0;
            var propList:Array = fields ? fields : internalPropList;
            var len:int = propList.length;
            var propName:String;
            while (result == 0 && (i < len))
            {
                propName = propList[i];
                result = compareValues(a[propName], b[propName]);
                i++;
            }
            return result;
        }
             function compareValues(a:Object, b:Object):int
        {
            if (a == null && b == null)
                return 0;
                 if (a == null)
              return 1;
                 if (b == null)
               return -1;
                 if (a < b)
                return -1;
                 if (a > b)
                return 1;
                 return 0;
        }
      

デフォルト値は、ストリング、数値、日付を比較できる内部比較関数です。この比較関数では、昇順または降順での比較が可能で、ストリングの比較に関しては大文字と小文字の区別の有無を指定できます。 カスタム比較アルゴリズムが必要な場合にのみ、独自の関数を指定します。 このことは、通常、計算フィールドが表示で使用される場合にのみ該当します。

また、SortField クラスの compare プロパティを使用することで、各ソートフィールドに対して個別の比較関数を指定することもできます。こうすれば、一部のフィールドにデフォルトの比較関数を適用し、別のフィールドには独自の比較関数を適用することが可能となります。



実装
    public function get compareFunction():Function
    public function set compareFunction(value:Function):void
fieldsプロパティ 
fields:Array

比較するフィールドを指定する SortField オブジェクトの配列です。 配列内の SortField オブジェクトの順序によって、ソート時のフィールドの優先順位が決まります。 デフォルトのソートコンパレータは、比較する 2 つのフィールドのソート順が決定するまで、配列順にソートフィールドをチェックします。

デフォルト値 : null.

このプロパティはデータバインディングのソースとして使用できます。 このプロパティを変更すると、 fieldsChanged イベントが送出されます。



実装
    public function get fields():Array
    public function set fields(value:Array):void

関連項目

uniqueプロパティ 
unique:Boolean

ソートが一意であるかどうかを示します。 フィールドプロパティのフィールドにより指定された値また組み合わせ値が不確定なソート順または一意ではないソート順になる場合、つまり複数のアイテムが同じソートフィールド値を持つ場合は、一意のソートは失敗します。

デフォルト値 : false.



実装
    public function get unique():Boolean
    public function set unique(value:Boolean):void
コンストラクタの詳細
Sort()コンストラクタ
public function Sort()

コンストラクタです。

フィールドを設定しない、カスタムコンパレータのない新しいソートを作成します。

メソッドの詳細
findItem()メソッド
public function findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int

指定された配列内(要求された場合は挿入ポイント)で指定されたオブジェクトを検索し、見つかった場合はインデックス、見つからなかった場合は -1 を返します。 ListCollectionView クラスの findxxx() メソッドはこのメソッドを使用して、要求されたアイテムを検索します。基本的に、ListCollectionView ベースのオブジェクトからデータを検索する場合は、findItem() ではなくこれらの関数を使用するほうが簡単です。findItem() メソッドは、新しい ICollectionView 実装など、ソートをサポートするクラスを記述する場合に直接呼び出します。

パラメータ

items:Array — 検索する配列です。
 
values:Object — 検索するプロパティを含むオブジェクトです(または検索対象のオブジェクト自身)。 オブジェクトは、フィールド名と値のペアで作成します。フィールド名は SortFields プロパティで指定したフィールドの名前であり、このプロパティに指定したとおりの順序になります。 SortFields プロパティのすべてのフィールドを指定する必要はありませんが、順序を飛ばすことはできません。 したがって、SortFields プロパティに 3 つのフィールドが指定されている場合は、その 1 番目と 2 番目のフィールドをこのパラメータに使用することはできますが、1 番目と 3 番目だけを指定することはできません。
 
mode:String — 実行する検索の種類を含むストリングです。 有効な値は次のとおりです。
  • ANY_INDEX_MODE
  • 値が見つかったいずれかの位置を返します。
  • FIRST_INDEX_MODE
  • 値が最初に見つかった位置を返します。
  • LAST_INDEX_MODE
  • 指定された値が最後に見つかった位置を返します。
 
returnInsertionIndex:Boolean (default = false)values パラメータに指定されたアイテムが見つからない場合、このパラメータが true に設定されていると、findItem() メソッドは値の挿入ポイントを返します。これは、アイテムを挿入するためのソート済みポイントです。
 
compareFunction:Function (default = null) — アイテムの検索に使用するコンパレータ関数です。 このパラメータを指定しないと、Sort インスタンスの compareFunction プロパティによって決定された関数が使用されます。この場合、値オブジェクトと現在の SortFields によって決定されたフィールド配列が渡されます。

戻り値
int — int は、見つかったアイテムの配列内のインデックスです。 returnInsertionIndex パラメータが false で、アイテムが見つからない場合は、-1 を返します。 returnInsertionIndex パラメータが true で、アイテムが見つからない場合は、ソートされた配列内の値が挿入される位置のインデックスを返します。
propertyAffectsSort()メソッド 
public function propertyAffectsSort(property:String):Boolean

指定されたプロパティを使用してソートを制御するかどうかを返します。 ソートにカスタムコンパレータが使用されると、この関数は決定的な結果を判断できません。この場合は、常に true を返します。

パラメータ

property:String — テストするフィールドの名前です。

戻り値
Boolean — プロパティ値がソート結果に影響を与えるかどうかを指定します。 ソートでデフォルトの compareFunction が使用される場合、true が返されるのは、property パラメータがソートフィールドを指定する場合です。 ソートまたは SortField でカスタムコンパレータが使用されると、確認する方法はないので、true を返します。
reverse()メソッド 
public function reverse():void

すべての SortFields を調べて、これらのフィールドに対して reverse() を呼び出します。 フィールドが降順の場合は昇順になり、昇順の場合は降順になります。

メモ : ICollectionView は、SortFields が変更されても自動的に更新されません。ビューを更新するには、refresh() メソッドを呼び出します。

sort()メソッド 
public function sort(items:Array):void

指定された配列(配列のコピーではない)に現在のソートを適用します。 配列が変更されないようにするには、コピーを作成し、そのコピーを items パラメータで使用します。

ICollectionView 実装は、sort メソッドを自動的に呼び出し、基になるデータのコピーに対してソートが行われるようにします。

パラメータ

items:Array — ソートするアイテムの配列です。

定数の詳細
ANY_INDEX_MODE定数
public static const ANY_INDEX_MODE:String = "any"

検索を実行すると、一致するアイテムのインデックスを返します。

FIRST_INDEX_MODE定数 
public static const FIRST_INDEX_MODE:String = "first"

検索を実行すると、最初に一致したアイテムのインデックスを返します。

LAST_INDEX_MODE定数 
public static const LAST_INDEX_MODE:String = "last"

検索を実行すると、最後に一致したアイテムのインデックスを返します。





 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/mx/collections/Sort.html