パッケージ | spark.collections |
クラス | public class SortField |
継承 | SortField AdvancedStyleClient EventDispatcher Object |
実装 | ISortField |
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
var col:ICollectionView = new ArrayCollection();
col.addItem({first:"Anders", last:"Dickerson"});
var sort:Sort = new Sort();
var sortfield:SortField = new SortField("first", true);
sortfield.setStyle("locale", "en-US");
sort.fields = [sortfield];
col.sort = sort;
コレクションに String
、Date
、Boolean
などの単純なアイテムが含まれている場合があります。この場合は、これらの単純型に直接ソートを適用します。 この場合のソートを設定するときは、単一のソートフィールドのみを指定します。name
は指定できません。 次に実際の使用例を示します。
var col:ICollectionView = new ArrayCollection();
col.addItem("California");
col.addItem("Arizona");
var sort:Sort = new Sort();
var sortfield:SortField = new SortField(null, true);
sortfield.setStyle("locale", "en-US");
sort.fields = [sortfield];
col.sort = sort;
SortField
クラスの提供するデフォルトの比較は、言語固有の文字列を正しくソートします。言語は、クラスのインスタンスの locale スタイルを、次のいずれかの方法で設定して選択します。
- MXML 宣言内でクラスを使用し、宣言を格納するドキュメントからロケールを継承する。 例:
<fx:Declarations> <s:SortField id="sf" /> </fx:Declarations>
<fx:Declarations> <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" /> </fx:Declarations>
setStyle
メソッド(sf.setStyle("locale", "zh-Hans-CN")
など)を呼び出す。
addStyleClient()
メソッドを呼び出すことによって UIComponent
からスタイルを継承する。
The <s:SortField>
tag has the following attributes:
<s:SortField Properties compareFunction="Internal compare function" descending="false" name="null" numeric="null" />
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
arraySortOnOptions : int [読み取り専用]
このヘルパープロパティは、findItem() メソッドおよび sort() メソッドによって内部的に使用されます。 | SortField | ||
className : String [読み取り専用]
コンポーネントクラスの名前です。 | AdvancedStyleClient | ||
compareFunction : Function
関連付けられたコレクションのアイテムをソートするときに 2 つのアイテムを比較する関数です。 | SortField | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
descending : Boolean
このフィールドを降順でソートするかどうかを指定します。 | SortField | ||
id : String
コンポーネントの ID です。 | AdvancedStyleClient | ||
inheritingStyles : Object
このビジュアルでないスタイルクライアントのインスタンスの継承可能なスタイルを含むオブジェクトです。 | AdvancedStyleClient | ||
moduleFactory : IFlexModuleFactory
モジュールファクトリは、このビジュアルでないスタイルクライアントのインスタンスのスタイルを制御するスタイルマネージャーを検索するためのコンテキストとして使用されます。 | AdvancedStyleClient | ||
name : String
ソートするフィールドの名前です。 | SortField | ||
nonInheritingStyles : Object
このコンポーネントの非継承スタイルのチェーンの始まりです。 | AdvancedStyleClient | ||
numeric : Object
ソート対象のフィールドに数値(number/int/uint)、または数値のストリング表現が含まれている場合、コンパレータが数値比較を実行するように指定します。 | SortField | ||
styleDeclaration : CSSStyleDeclaration
このオブジェクトで宣言されたインラインスタイルを保持するスタイル宣言です。 | AdvancedStyleClient | ||
styleManager : IStyleManager2 [読み取り専用]
このコンポーネントで使用する StyleManager インスタンスを返します。 | AdvancedStyleClient | ||
styleName : Object
オブジェクトのスタイル値のソースです。 | AdvancedStyleClient | ||
styleParent : IAdvancedStyleClient
コンポーネントの親は、下位要素のセレクターを評価するために使用されます。 | AdvancedStyleClient | ||
usingCustomCompareFunction : Boolean [読み取り専用]
この ISortField がカスタムコンパレータ関数を使用している場合は True です。 | SortField |
メソッド | 定義元 | ||
---|---|---|---|
コンストラクターです。 | SortField | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
このコンポーネントインスタンスからスタイルプロパティを削除します。 | AdvancedStyleClient | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
このコンポーネントに適用されるタイプセレクターの CSSStyleDeclaration オブジェクトの配列を返します。何も存在しない場合は null を返します。 | AdvancedStyleClient | ||
このコンポーネントのスタイル参照チェーンのいずれかの場所に設定されたスタイルプロパティを取得します。 | AdvancedStyleClient | ||
currentCSSState が null でない場合、true を返します。 | AdvancedStyleClient | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
initialized メソッドは、このクラスまたはこのクラスを拡張するクラスが MXML 宣言で使用されると呼び出されます。 | AdvancedStyleClient | ||
カスタム比較関数が設定されているかどうか、指定されたフィールドのデータ型、numeric プロパティの値のいずれかに基づいて、比較を実行するためのデフォルト比較関数を設定するために、Sort クラスによって呼び出されるヘルパー関数です。 | SortField | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
cssState が currentCSSState に一致した場合は、true を返します。 | AdvancedStyleClient | ||
このインスタンスが、指定されたタイプと同じであるのか、それともそのサブクラスであるのかを判別します。 | AdvancedStyleClient | ||
スタイルの変更を、このスタイルクライアントのインスタンスの子に通知します。 | AdvancedStyleClient | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
getStyle() メソッドが機能するように、内部のスタイルキャッシュ値を設定します。 | AdvancedStyleClient | ||
各エフェクトイベントのイベントリスナーの 1 つとして、EffectManager を登録します。 | AdvancedStyleClient | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
このソートフィールドの条件を逆順にします。 | SortField | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
このコンポーネントインスタンスのスタイルプロパティを設定します。 | AdvancedStyleClient | ||
スタイルプロパティの変更を検出します。 | AdvancedStyleClient | ||
コンポーネントのスタイルを初めて初期化するとき、Flex は stylesInitialized() メソッドを呼び出します。 | AdvancedStyleClient | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
スタイルには共通スタイルと特定のテーマに関連するスタイルがあります。共通スタイルは、任意のテーマと共に使用できます。特定のテーマに関連するスタイルは、アプリケーションがそのテーマを使用する場合にのみ使用できます。
スタイル | 説明 | 定義元 | ||
---|---|---|---|---|
locale | 型: String CSS 継承: はい 言語バージョン: ActionScript 3.0 製品バージョン: Flex 4.5 ランタイムバージョン: Flash10.1, AIR 2.5 言語、地域、スクリプトおよびオプションで他の関連するタグおよびキーを指定するロケール識別子です。 この識別子のシンタックスは、Unicode Technical Standard #35(en-US、de-DE、zh-Hans-CN など)で定義されている構文に従う必要があります。 ブラウザーベースのアプリケーションの場合、デフォルトのロケールは、ブラウザーの言語設定に基づいて設定されます(これは、Javascript から使用できるブラウザーの UI の言語ではなく、ブラウザーの環境設定でユーザーが設定した Web ページの優先ロケールのリストでであることに注意してください)。AIR アプリケーションの場合、デフォルトの UI ロケールはユーザーのシステムの環境設定に基づいて設定されます。 詳細 | SortField |
arraySortOnOptions | プロパティ |
arraySortOnOptions:int
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
このヘルパープロパティは、findItem()
メソッドおよび sort()
メソッドによって内部的に使用されます。 これ以外の使用方法はサポートされていません。フィールドのソートに Sort
クラスでこの ISortField を使用しないようにする(compareFunction や name がない)場合は、-1 を返します。 それ以外の場合は、ソートオプションのビットマスクを返します。
実装
public function get arraySortOnOptions():int
compareFunction | プロパティ |
compareFunction:Function
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
関連付けられたコレクションのアイテムをソートするときに 2 つのアイテムを比較する関数です。 ISort オブジェクトの compareFunction
プロパティを指定した場合、ISort の SortField オブジェクトの
compareFunction
プロパティはすべて無視されます。
比較関数には次のシグネチャが必要です。
function myCompare(a:Object, b:Object):int
この関数では、次の値が返される必要があります。
Object a
がObject b
の前に現れるソート順の場合は -1Object a
がObject b
と等しい場合は 0Object a
がObject b
の後に表示されるソート順の場合は 1
デフォルト値は、ストリング、数値、日付を比較できる内部比較関数です。この比較関数では、昇順または降順での比較が可能です。 ストリングの比較は、SortingCollator
クラスのロケール(言語、地域およびスクリプト)固有の comparison メソッドを使用して実行されます。 このクラスは、locale スタイルを使用してロケールを特定します。カスタム比較アルゴリズムが必要な場合にのみ、独自の関数を指定します。 このことは、通常、計算フィールドが表示で使用される場合にのみ該当します。
実装
public function get compareFunction():Function
public function set compareFunction(value:Function):void
descending | プロパティ |
descending:Boolean
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
このフィールドを降順でソートするかどうかを指定します。
デフォルト値は false
(昇順)です。
このプロパティはデータバインディングのソースとして使用できます。 このプロパティを変更すると、 descendingChanged
イベントが送出されます。
実装
public function get descending():Boolean
public function set descending(value:Boolean):void
name | プロパティ |
numeric | プロパティ |
numeric:Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
ソート対象のフィールドに数値(number/int/uint
)、または数値のストリング表現が含まれている場合、コンパレータが数値比較を実行するように指定します。
このプロパティは、カスタム比較関数が指定されていない場合に、SortField
クラスで使用されます。
このプロパティが true
の場合、組み込みの数値比較関数が使用されます。各データアイテムは Number()
関数にキャストされてから比較されます。
このプロパティが false
の場合、組み込みの文字列比較関数が使用されます。各データアイテムは String()
関数にキャストされてから比較されます。
このプロパティが null
の場合は、最初のデータアイテムを内観してそれが数字とストリングのどちらであるかを判定し、その内観に基づいてソートが実行されます。
デフォルト値: null。
このプロパティはデータバインディングのソースとして使用できます。 このプロパティを変更すると、 numericChanged
イベントが送出されます。
実装
public function get numeric():Object
public function set numeric(value:Object):void
usingCustomCompareFunction | プロパティ |
SortField | () | コンストラクター |
public function SortField(name:String = null, descending:Boolean = false, numeric:Object = null)
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
コンストラクターです。
パラメーターname:String (default = null ) — このフィールドが比較に使用するプロパティの名前です。 オブジェクトが単純型の場合、null を渡します。
| |
descending:Boolean (default = false ) — アイテムを降順に配置するかどうかをコンパレータに指示します。
| |
numeric:Object (default = null ) — ソートアイテムをアルファベット順ではなく数として比較するかどうかをコンパレータに指示します。
|
initializeDefaultCompareFunction | () | メソッド |
public function initializeDefaultCompareFunction(obj:Object):void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
カスタム比較関数が設定されているかどうか、指定されたフィールドのデータ型、numeric プロパティの値のいずれかに基づいて、比較を実行するためのデフォルト比較関数を設定するために、Sort
クラスによって呼び出されるヘルパー関数です。numeric
プロパティが true の場合は、ソート時に数値比較が実行されます。
パラメーター
obj:Object — データを含むオブジェクトです。 name プロパティでフィールド名が設定されている場合は、その名前を使用して、このオブジェクトのデータ値にアクセスされます。 設定されていない場合は、オブジェクト自身がデータ値として使用されます。
|
reverse | () | メソッド |
public function reverse():void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4.5 |
ランタイムバージョン: | Flash Player 10.1, AIR 2.5 |
このソートフィールドの条件を逆順にします。 フィールドが降順でソートされた場合は、例えば、昇順でソートします。
メモ:ICollectionView
は、ISortField
が変更されても自動的には更新されません。ビューを更新するには、refresh()
メソッドを呼び出します。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <!-- Sample program for spark.collections.Sort and SortField --> <fx:Declarations> <s:Sort id="sortbyLastName_FirstName"> <s:fields> <s:SortField name="last"/> <s:SortField name="first"/> </s:fields> </s:Sort> <mx:ArrayCollection id="collection" sort="{sortbyLastName_FirstName}"> <mx:source> <fx:Object first="Anders" last="Dickerson"/> <fx:Object first="Eileen" last="Maccormick"/> <fx:Object first="Aiden" last="MacCormick"/> <fx:Object first="Steve" last="MacGregor"/> </mx:source> </mx:ArrayCollection> </fx:Declarations> <s:VGroup> <s:VGroup> <s:HGroup> <s:Label text="Input Locale ID Name: "/> <s:TextInput id="inputLocaleIDName"/> <!-- Sets the locale style on the document UI component. The SortField and Sort objects defined in the fx:Declarations section will inherit this style. --> <s:Button click="{setStyle('locale', inputLocaleIDName.text); collection.refresh()}" label="Apply"/> </s:HGroup> <s:Label text="Example: 'en-US', 'fr-FR', 'zh-CN', 'ar-SA'"/> </s:VGroup> <s:DataGrid dataProvider="{collection}" width="100%" creationComplete="{collection.refresh()}"> <s:columns> <s:ArrayList> <s:GridColumn dataField="last"/> <s:GridColumn dataField="first"/> </s:ArrayList> </s:columns> </s:DataGrid> </s:VGroup> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="initApp()"> <!-- Sample program for spark.collections.Sort and SortField --> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import spark.collections.*; [Bindable] private var collection:ArrayCollection = new ArrayCollection(); private function localeChange():void { // Sets the locale style on this application. // The SortField objects will inherit this style. setStyle('locale', inputLocaleIDName.text); collection.refresh(); } private function initApp() : void { // Add data to the collection. collection.addItem({first:"Anders", last:"Dickerson"}); collection.addItem({first:"Steve", last:"Maccormick"}); collection.addItem({first:"Aiden", last:"MacCormick"}); collection.addItem({first:"Eileen", last:"MacGregor"}); // Create the Sort instance. var sort:Sort = new Sort(); // Set the sort field; sort on the last name first, first name // second. var sortfieldLastName:SortField = new SortField("last",true); var sortfieldFirstName:SortField = new SortField("first",true); sort.fields = [sortfieldLastName, sortfieldFirstName]; // Add the sort field objects to this application's list of // style clients. This will cause the sort field objects to // inherit the locale style from this Application. addStyleClient(sortfieldLastName); addStyleClient(sortfieldFirstName); // Assign the Sort object to the view. collection.sort = sort; // Apply the sort to the collection. collection.refresh(); } ]]> </fx:Script> <s:VGroup> <s:VGroup> <s:HGroup> <s:Label text="Input Locale ID Name: "/> <s:TextInput id="inputLocaleIDName"/> <s:Button click="localeChange()" label="Apply"/> </s:HGroup> <s:Label text="Example: 'en-US', 'fr-FR', 'zh-CN', 'ar-SA'"/> </s:VGroup> <s:DataGrid dataProvider="{collection}" width="100%" creationComplete="{collection.refresh()}"> <s:columns> <s:ArrayList> <s:GridColumn dataField="last"/> <s:GridColumn dataField="first"/> </s:ArrayList> </s:columns> </s:DataGrid> </s:VGroup> </s:Application>
Tue Jun 12 2018, 10:34 AM Z