| Package | mx.collections |
| Class | public class Sort |
| Inheritance | Sort EventDispatcher Object |
sort property에 소트 인스턴스를 할당한 다음에, 뷰의 refresh() Methods를 호출해 소트 조건을 적용합니다. 소트의 정의는 통상, 복잡한 아이템의 콜렉션, 즉 콜렉션내의 object의 property에 대해서 소트가 실행되는 것 같은 콜렉션에 대해서 실시합니다. 다음에, 이 용례를 나타냅니다.
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();
콜렉션에 String,Date,Boolean 등이 단순한 아이템이 포함되어 있는 경우가 있습니다. 이 경우는, 이러한 단순형에 직접 소트를 적용합니다. 단순한 아이템에 소트를 설정할 때는, 단일의 sort field를 사용해, SortField object constructor 에 null name ( 제 1) Parameters를 지정합니다. 다음에 예를 나타냅니다.
var col:ICollectionView = new ArrayCollection();
col.addItem("California");
col.addItem("Arizona");
var sort:Sort = new Sort();
//sort field가 1 개만 있어,null 를 제 1 의 Parameters에 사용한다
sort.fields = [new SortField(null, true)];
col.sort = sort;
col.refresh();
ICollectionView 인터페이스의 Implements에서는, 소트를 실행하기 전에, 리모트의 장소로부터 모든 아이템을 취득합니다. 소트 된 리스트에 페이징을 사용하고 있는 경우는, 데이터를 취득하기 전에 리모트 콜렉션에 소트를 적용합니다.
MXML 문장구조법
MXML 문장구조법의 비표시
<mx:Sort> 태그에는, 이하의 속성이 있습니다.
<mx:Sort property compareFunction="내부 비교 함수" fields="null" unique="flase" />
디폴트의 MXML propertyfields
See also
| property | 정의 | ||
|---|---|---|---|
| compareFunction : Function
소트시에 아이템을 비교하기 위해서 사용하는 Methods입니다.
| Sort | ||
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
| fields : Array
비교하는 필드를 지정하는 SortField object의 배열입니다.
| Sort | ||
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| unique : Boolean
소트가 일의일지 어떨지를 나타냅니다.
| Sort | ||
| Methods | 정의 | ||
|---|---|---|---|
| Sort ()
constructor .
| Sort | ||
![]() | addEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
| EventDispatcher | |
![]() | dispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
| EventDispatcher | |
| findItem (items:Array , values:Object , mode:String , returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
지정된 배열내 (요구되었을 경우는 삽입 포인트)에서 지정된 object를 검색해, 발견되었을 경우는 인덱스, 발견되지 않았던 경우는 -1 을 돌려줍니다.
| Sort | ||
![]() | hasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
| EventDispatcher | |
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
| propertyAffectsSort (property:String ):Boolean
지정된 property를 사용해 소트를 제어할지 어떨지를 돌려줍니다.
| Sort | ||
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
![]() | removeEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
| EventDispatcher | |
| reverse ():void
모든 SortFields 를 조사해, 이러한 필드에 대해서 reverse()를 호출합니다.
| Sort | ||
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
| sort (items:Array ):void
지정된 배열 (복사는 아니고)에 현재의 소트를 적용합니다.
| Sort | ||
![]() | toString ():String
지정된 object의 string 표현을 돌려줍니다.
| Object | |
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
![]() | willTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
| EventDispatcher | |
| 정수 | 정의 | ||
|---|---|---|---|
| ANY_INDEX_MODE : String = "any" [static]
검색을 실행하면, 일치하는 아이템의 인덱스를 돌려줍니다.
| Sort | ||
| FIRST_INDEX_MODE : String = "first" [static]
검색을 실행하면, 최초로 일치한 아이템의 인덱스를 돌려줍니다.
| Sort | ||
| LAST_INDEX_MODE : String = "last" [static]
검색을 실행하면, 마지막에 일치한 아이템의 인덱스를 돌려줍니다.
| Sort | ||
| compareFunction | property |
compareFunction:Function [read-write]
소트시에 아이템을 비교하기 위해서 사용하는 Methods입니다. 이 property를 지정하면, 이 클래스에서 사용하는 SortField object로 지정한 compareFunction property는 모두 무시됩니다.
비교 함수에는 다음의 서명이 필요합니다.
function [name](a:Object, b:Object, fields:Array=null) :int
이 함수는, 이하를 돌려줄 필요가 있습니다.
a 가 b 의 전에 표시되는 소트순서의 경우는 -1a = b 의 경우는 0a 가 b 의 뒤에 표시되는 소트순서의 경우는 1내부 비교 함수에 되돌리려면 , 이 값을 null 로 설정합니다.
지정된 fields 배열은, 비교하는 object 필드를 지정합니다. 통상은, 필드 리스트를 다 써 버리는지, 제로가 아닌 값이 돌려주어질 때까지, 이 알고리즘은 property를 비교합니다. 다음에 예를 나타냅니다.
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;
}
디폴트치는, string, 수치, 일자를 비교할 수 있는 내부 비교 함수입니다. 이 비교 함수에서는, 승순 또는 내림차순에서의 비교가 가능해, string의 비교에 관해서는 대문자와 소문자의 구별의 유무를 지정할 수 있습니다. custom 비교 알고리즘이 필요한 경우에게만, 독자적인 함수를 지정합니다. 이것은, 통상, 계산 필드가 표시로 사용되고 있는 경우에게만 해당합니다.
또, SortField 클래스의 compare property를 사용하는 것으로, 각 sort field에 대해서 개별의 비교 함수를 지정할 수도 있습니다. 이 방법이라고, 일부의 필드에는 디폴트의 비교를 사용해, 다른 필드에는 독자적인 비교를 사용할 수가 있습니다.
public function get compareFunction():Function
public function set compareFunction(value:Function ):void
| fields | property |
fields:Array [read-write]비교하는 필드를 지정하는 SortField object의 배열입니다. 배열내의 SortField object의 순서에 의해, 소트시의 필드의 우선 순위가 정해집니다. 디폴트의 소트 콤퍼레이터는, 비교하는 2 개의 필드의 소트순서가 결정될 때까지, 배열순서에 sort field를 체크합니다.
디폴트치null.
이 property는 데이터 바인딩의 소스로서 사용할 수 있습니다.
Implements public function get fields():Array
public function set fields(value:Array ):void
See also
| unique | property |
unique:Boolean [read-write]소트가 일의일지 어떨지를 나타냅니다. 필드 property의 필드에 의해 지정된 값 또 편성치가 불확정인 소트순서 또는 일의가 아닌 소트순서가 되는 경우, 즉 복수의 아이템이 같은 sort field치를 가지는 경우는, 일의의 소트는 실패합니다.
디폴트치false.
public function get unique():Boolean
public function set unique(value:Boolean ):void
| Sort | () | constructor |
public 함수 Sort()constructor .
필드를 설정하지 않는, custom 콤퍼레이터가 없는 새로운 소트를 작성합니다.
| findItem | () | Methods |
public function findItem(items:Array , values:Object , mode:String , returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
지정된 배열내 (요구되었을 경우는 삽입 포인트)에서 지정된 object를 검색해, 발견되었을 경우는 인덱스, 발견되지 않았던 경우는 -1 을 돌려줍니다. ListCollectionView 클래스의 findxxx() Methods는 이 Methods를 사용해, 요구된 아이템을 검색합니다. 기본적으로, ListCollectionView 베이스의 object로부터 데이터를 검색하는 경우는,findItem() 는 아니고 이러한 함수를 사용하는 편이 간단합니다. findItem() Methods는, 새로운 ICollectionView Implements 등, 소트를 지원(support)하는 클래스를 기술하는 경우에 직접 호출합니다.
items:Array — 검색하는 배열입니다.
|
|
values:Object — 검색하는 property를 포함한 object입니다 (또는 검색 대상의 object 자신). object는, 필드명과 값의 페어로 구성합니다. 필드명은 SortFields property로 지정한 필드의 이름이며, 이 property로 지정했던 대로의 순서를 사용합니다.
SortFields property의 모든 필드를 지정할 필요는 없습니다만, 순서를 날릴 수 없습니다. 따라서,SortFields property에 3 개의 필드가 지정되고 있는 경우는, 그 1 번째와 2 번째의 필드를 이 Parameters에 사용할 수 있습니다만, 1 번째와 3 번째만을 지정할 수 없습니다.
|
|
mode:String — 실행하는 검색의 종류를 포함한 string입니다. 유효한 값은 다음과 같습니다.
|
|
returnInsertionIndex:Boolean (default = false) — values Parameters로 지정된 아이템이 발견되지 않는 경우, 이 Parameters가 true 로 설정되어 있으면,findItem() Methods는 값의 삽입 포인트를 돌려줍니다. 이것은, 아이템을 삽입하기 위한 소트가 끝난 포인트입니다.
|
|
compareFunction:Function (default = null) — 아이템의 검색에 사용하는 콤퍼레이터 함수입니다. 이 Parameters를 지정하지 않으면 Sort 인스턴스의 compareFunction property에 의해 결정된 함수가 사용됩니다. 이 경우, 값object와 현재의 SortFields 에 의해 결정된 필드 배열이 건네받습니다.
|
int —
int 발견된 아이템의 배열내의 인덱스입니다. returnInsertionIndex Parameters가 false 로, 아이템이 발견되지 않는 경우는,-1 을 돌려줍니다. returnInsertionIndex Parameters가 true 로, 아이템이 발견되지 않는 경우는, 소트 된 배열내에서 값이 삽입되는 포인트의 인덱스를 돌려줍니다.
|
| propertyAffectsSort | () | Methods |
public function propertyAffectsSort(property:String ):Boolean
지정된 property를 사용해 소트를 제어할지 어떨지를 돌려줍니다. 소트에 custom 콤퍼레이터가 사용되면, 이 함수는 결정적인 결과를 판단할 수 없습니다. 이 경우는, 항상 true 를 돌려줍니다.
property:String — 테스트하는 필드의 이름입니다.
|
Boolean —
property치가 소트 결과에 영향을 줄지 어떨지를 지정합니다. 소트로 디폴트의 compareFunction 가 사용되면,property Parameters가 sort field를 결정하는 경우는 true 를 돌려줍니다. 소트 또는 SortField 로 custom 콤퍼레이터가 사용되면, 확인하는 방법은 없기 때문에,true 를 돌려줍니다.
|
| reverse | () | Methods |
public function reverse():void 모든 SortFields 를 조사해, 이러한 필드에 대해서 reverse()를 호출합니다. 필드가 내림차순의 경우는 승순이 되어, 승순의 경우는 내림차순이 됩니다.
메모 : ICollectionView 는, SortFields 가 변경되어도 자동적으로 갱신되지 않습니다. 뷰를 갱신하려면 ,refresh() Methods를 호출합니다.
| sort | () | Methods |
public function sort(items:Array ):void
지정된 배열 (복사는 아니고)에 현재의 소트를 적용합니다. 배열이 변경되지 않게 하려면 , 복사를 작성해, 그 복사를 items Parameters로 사용합니다.
ICollectionView Implements은,sort Methods를 자동적으로 호출해, 기본으로 되는 데이터의 복사에 대해서 소트를 하도록(듯이) 합니다.
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://flexdocs.kr/docs/flex2/langref/mx/collections/Sort.html