[API/UI]

MetaFilter

개요

MetaFilter 클래스는 조건을 지정하여 MetaData.detail 데이터를 필터링할 수 있습니다.
MetaFilter 클래스의 주요 기능은 다음과 같습니다.
1. 조건을 지정하여 MetaData.detail 데이터를 추출할 수 있습니다.
2. 추출 조건을 메소드로 작성하면 시스템은 이의 실행 결과를 data로 사용합니다.
    - filterData(): 전체 MetaData를 대상으로 하며 전체 데이터를 반환합니다.
    - filterRow(): MetaData를 row 단위로 파라미터로 받아 실행하고 row 단위로 반환합니다.
3. 추출 결과는 this.detailData에 설정됩니다.
4. MetaData.detail 데이터는 변경되지 않습니다.
5. extend() 형태가 아닌 new mc.data.MetaFilter() 형태로 사용합니다.

- 서버에서 수신한 데이터를 기반으로 추출 조건을 변경해가면서 데이터를 처리할 때
매번 서버와 통신을 하지 않아도 되므로 실행 속도를 향상시킬 수 있으며
이로 인한 User Inteface 향상을 기대할 수 있습니다.

- 예를 들어
삭제 flag를 포함한 데이터를 받은 후 삭제 flag 포함 여부 option에 따라 클라이언트에서
데이터를 표현할 수 있습니다.

Options Component
detailData {JSON} data.MetaFilter
MetaData.detail 추출 결과
filterData {Function} data.MetaFilter
MetaData.detail 데이터 추출 메소드
MetaData.detail 데이터를 추출하려는 조건을 함수로 작성합니다.
filterData() 함수 실행 결과를 detailData에 설정하고 이를 MetaData.detail로 사용합니다.
MetaData.detail 데이터가 변경되는 것은 아닙니다.

JSON 형태의 MetaData.Detail 전체 데이터를 파라미터로 넘겨 줍니다.
return도 JSON 형태이어야 합니다.

example
filterData: function(meta){
      var filter = [];
      mc.eachArray(meta, function(data){
          if (data.elglish == 'baseball'){
              filter[filter.length] = data;
          }
      }, this)
      return filter;
}
filterRow {Function} data.MetaFilter
MetaData.detail 데이터 추출 메소드
MetaData.detail 데이터를 추출하려는 조건을 함수로 작성합니다.
filterRow() 함수 실행 결과를 detailData에 설정하고 이를 MetaData.detail로 사용합니다.
MetaData.detail 데이터가 변경되는 것은 아닙니다.

MetaData.Detail을 row 단위로 반복하면서 Hash 형태의 row와 JSON index를 파라미터로 제공합니다.
Hash를 return하면 Metadata.detail의 row로 사용하고, false를 return하면 데이터에서 제외시킵니다.

sample
var sportsData = [
      ['code1', 'baseball'],
      ['code2', 'basketball']
];
var sportsFormat = new mc.data.ArrayFormat([
      {index: 0, field: 'id'},
      {index: 1, field: 'english'}
);
filterRow:  function(meta, index){
      return meta.elglish == 'baseball' ? meta : false;
}
metaData {JSON} data.MetaFilter
Meta Data
MetaData 클래스로 생성한 MetaData 오브젝트(인스턴스) 또는 MetaData.detail을 지정
Method Component
clearData ()
clearData()
datailData를 clear합니다.
Parameters :
• 없음
Returns :
• 없음
data.MetaFilter
datailData를 clear합니다.
filterData (JSON)
filterData(metadata)
MetaData.detail 전체 데이터 추출을 위한 오버라이드용
메소드입니다.
이 메소드 이름으로 오버라이드한 경우에만 실행합니다.
Parameters :
• {JSON} metadata, MetaData.detail 전체
Returns :
• 없음
data.MetaFilter
MetaData.detail 전체 데이터 추출을 위한 오버라이드용 메소드입니다.
filterRow (Hash, Number)
filterRow(row, index)
MetaData.detail 데이터를 row 단위로 추출할 오버라이드용
메소드입니다.
Parameters :
• {Hash} row, MetaData.detail row
• {Number} index, MetaData.detail index
Returns :
• 없음
data.MetaFilter
MetaData.detail 데이터를 row 단위로 추출할 오버라이드용 메소드입니다.
getAllData () : JSON
getAllData()
MetaData.Detail 데이터에서 추출한 datailData를 반환합니다.
Parameters :
• 없음
Returns :
• {JSON} 추출 결과
data.MetaFilter
MetaData.Detail 데이터에서 추출한 datailData를 반환합니다.
getData (Number, Number, String) : JSON
getData(start, end, ad)
지정한 인덱스 범위의 데이터를 승순/역순으로 반환합니다
A을 지정하면 데이터가 만들어진 순서로 반환하고
D를 지정하면 만들어진 데이터의 끝에서부터 반환합니다.
승순/역순이라고 해서 값을 sort해서 반환하는 것은 아닙니다.
Parameters :
• {Number} start, 시작 인덱스. default: 0
• {Number} end, 끝 인덱스. default: length - 1
• {String} ascDesc, 승순/역순, default: 승순
A: 승순, D: 역순
Returns :
• {JSON} 추출 결과
data.MetaFilter
지정한 인덱스 범위의 데이터를 승순 또는 역순으로 반환합니다.
getIndex (Number) : Hash
getIndex(ix)
지정한 인덱스 번째의 데이터를 반환합니다.
인덱스를 지정하지 않으면 첫 번째 데이터가 반환됩니다.
Parameters :
• {Number} index, 인덱스. default: 0
Returns :
• {Hash} 인덱스 번째 Hash 형태의 row
data.MetaFilter
지정한 인덱스 번째의 데이터를 반환합니다.
getLength () : Number
getLength()
MetaData.Detail 데이터에서 추출한 datailData 건수를 반환합니다.
Parameters :
• 없음
Returns :
• {Number} 실행 결과 length
data.MetaFilter
MetaData.Detail 데이터에서 추출한 datailData 건수를 반환합니다.
Custom Event Component
clearData (Object this) data.MetaFilter
datailData를 clear 할 때 fire 됩니다.
filteredData (Hash detaildata, Object this) data.MetaFilter
MetaData.detail에 조건을 지정하여 추출을 완료하였을 때 fire됩니다.
noData (Object this) data.MetaFilter
MetaData.detail 데이터가 없을 때 fire 됩니다.
Examples  
default type  
default 템플릿을 적용하여 엘리먼트를 생성합니다.