This page was saved using jaction on 2006-09-04 8:34:04.
Address: http://flexdocs.kr/docs/flex2/langref/mx/collections/Sort.html
Title: mx.collections.Sort (Flex™ 2 레퍼런스 가이드)  •  Size: 46981
Packagemx.collections
Classpublic class Sort
InheritanceSort Inheritance EventDispatcher Inheritance Object

기존의 뷰에 대해서 소트를 설정하기 위해서 필요한 소트 정보를 제공합니다 (ICollectionView 인터페이스 또는 이 인터페이스를 Implements하는 클래스). 뷰의 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 문장구조법expandedMXML 문장구조법의 비표시

<mx:Sort> 태그에는, 이하의 속성이 있습니다.

 <mx:Sort property compareFunction="내부 비교 함수" fields="null" unique="flase" /> 

디폴트의 MXML propertyfields

See also

mx.collections.ICollectionView
데이터 프로바이더 및 콜렉션의 사용


Public property
 property정의
  compareFunction : Function
소트시에 아이템을 비교하기 위해서 사용하는 Methods입니다.
Sort
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
  fields : Array
비교하는 필드를 지정하는 SortField object의 배열입니다.
Sort
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
  unique : Boolean
소트가 일의일지 어떨지를 나타냅니다.
Sort
Public Methods
 Methods정의
  Sort ()
constructor   .
Sort
 InheritedaddEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
EventDispatcher
 InheriteddispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
EventDispatcher
  findItem (items:Array , values:Object , mode:String , returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
지정된 배열내 (요구되었을 경우는 삽입 포인트)에서 지정된 object를 검색해, 발견되었을 경우는 인덱스, 발견되지 않았던 경우는 -1 을 돌려줍니다.
Sort
 InheritedhasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
EventDispatcher
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
  propertyAffectsSort (property:String ):Boolean
지정된 property를 사용해 소트를 제어할지 어떨지를 돌려줍니다.
Sort
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedremoveEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
EventDispatcher
  reverse ():void
모든 SortFields 를 조사해, 이러한 필드에 대해서 reverse()를 호출합니다.
Sort
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
  sort (items:Array ):void
지정된 배열 (복사는 아니고)에 현재의 소트를 적용합니다.
Sort
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
 InheritedwillTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
EventDispatcher
Public 정수
 정수정의
  ANY_INDEX_MODE : String = "any"
[static] 검색을 실행하면, 일치하는 아이템의 인덱스를 돌려줍니다.
Sort
  FIRST_INDEX_MODE : String = "first"
[static] 검색을 실행하면, 최초로 일치한 아이템의 인덱스를 돌려줍니다.
Sort
  LAST_INDEX_MODE : String = "last"
[static] 검색을 실행하면, 마지막에 일치한 아이템의 인덱스를 돌려줍니다.
Sort
property의 상세
compareFunctionproperty
compareFunction:Function   [read-write]

소트시에 아이템을 비교하기 위해서 사용하는 Methods입니다. 이 property를 지정하면, 이 클래스에서 사용하는 SortField object로 지정한 compareFunction property는 모두 무시됩니다.

비교 함수에는 다음의 서명이 필요합니다.


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

이 함수는, 이하를 돌려줄 필요가 있습니다.

내부 비교 함수에 되돌리려면 , 이 값을 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에 대해서 개별의 비교 함수를 지정할 수도 있습니다. 이 방법이라고, 일부의 필드에는 디폴트의 비교를 사용해, 다른 필드에는 독자적인 비교를 사용할 수가 있습니다.

Implements
    public function get compareFunction():Function
    public function set compareFunction(value:Function ):void
fieldsproperty 
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

uniqueproperty 
unique:Boolean   [read-write]

소트가 일의일지 어떨지를 나타냅니다. 필드 property의 필드에 의해 지정된 값 또 편성치가 불확정인 소트순서 또는 일의가 아닌 소트순서가 되는 경우, 즉 복수의 아이템이 같은 sort field치를 가지는 경우는, 일의의 소트는 실패합니다.

디폴트치false.

Implements
    public function get unique():Boolean
    public function set unique(value:Boolean ):void
constructor    의 상세
Sort()constructor   
public 함수 Sort()

constructor   .

필드를 설정하지 않는, custom 콤퍼레이터가 없는 새로운 소트를 작성합니다.

Methods의 상세
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)하는 클래스를 기술하는 경우에 직접 호출합니다.

Parameters
items:Array — 검색하는 배열입니다.
 
values:Object — 검색하는 property를 포함한 object입니다 (또는 검색 대상의 object 자신). object는, 필드명과 값의 페어로 구성합니다. 필드명은 SortFields property로 지정한 필드의 이름이며, 이 property로 지정했던 대로의 순서를 사용합니다. SortFields property의 모든 필드를 지정할 필요는 없습니다만, 순서를 날릴 수 없습니다. 따라서,SortFields property에 3 개의 필드가 지정되고 있는 경우는, 그 1 번째와 2 번째의 필드를 이 Parameters에 사용할 수 있습니다만, 1 번째와 3 번째만을 지정할 수 없습니다.
 
mode:String — 실행하는 검색의 종류를 포함한 string입니다. 유효한 값은 다음과 같습니다.
  • ANY_INDEX_MODE
  • 치가 발견된 몇개의 위치를 돌려줍니다.
  • FIRST_INDEX_MODE
  • 치가 최초로 발견된 위치를 돌려줍니다.
  • LAST_INDEX_MODE
  • 지정된 값이 마지막에 발견된 위치를 돌려줍니다.
 
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 를 돌려줍니다.

Parameters
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를 자동적으로 호출해, 기본으로 되는 데이터의 복사에 대해서 소트를 하도록(듯이) 합니다.

Parameters
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