====== 리스트뷰 on_dropfiles 이벤트 가이드 ======
이 화면은 리스트뷰 컴포넌트의 on_dropfiles 이벤트에 대한 샘플 화면입니다.
리스트뷰는 on_dropfiles 이벤트는 윈도우 탐색기에서 파일을 선택하여 드래그하여 드랍한 경우에 발생하는 이벤트이다.
리스트뷰는 on_dropfiles 이벤트는 accept_dropfiles 속성이 true인 경우에만 발생한다.
관련 속성으로 accept_dropfiles이 있다.
관련 API로 additem, inseritem, deleteitem, deleteallitem가 있다.
관련 이벤트로 on_dropfiles가 있다.
===== 예시 =====
템플릿 위치: /HTML5/COMPONENT/LISTVIEW/listview_event_dropfiles
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/COMPONENT/LISTVIEW/listview_event_dropfiles.xml|listview_event_dropfiles.xml]]
* [[xf5projecthome>template/screen/HTML5/COMPONENT/LISTVIEW/listview_event_dropfiles.js|listview_event_dropfiles.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/LISTVIEW/listview_event_dropfiles|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
// 화면 로드 이벤트
function screen_on_load()
{
if (factory.ismobile() == true) {
factory.consoleprint("★★★ This is Mobile ★★★");
}
}
/**
* 리스트뷰 아이템 클릭 이벤트
*
* @param {Object} objInst 리스트뷰 컴포넌트 인스턴스
* @param {number} nItemIndex 리스트뷰 아이템 인덱스
* @param {Object} objChildInst 이벤트가 발생한 리스트뷰 아이템내 컴포넌트 인스턴스 또는 null
*/
function lv_basic_on_itemclick(objInst, nItemIndex, objChildInst)
{
factory.consoleprint("on_itemclick> Start");
factory.consoleprint("on_itemclick> Component Name: " + objInst.getname());
factory.consoleprint("on_itemclick> nItemIndex: " + nItemIndex);
if (objChildInst) {
// 리스트뷰 아이템내 컴포넌트에 이벤트 발생
factory.consoleprint("on_itemclick> Item Component Name: " + objChildInst.getname());
}
else {
// 리스트뷰 아이템내 빈 영역에 이벤트 발생
factory.consoleprint("on_itemclick> Item Component is null");
}
}
/**
* 리스트뷰 아이템 선택 변경 이벤트
*
* @param {Object} objInst 리스트뷰 컴포넌트 인스턴스
* @param {number} nPrevIndex 변경전 아이템 인덱스 또는 -1
* @param {number} nCurrIndex 변경후 아이템 인덱스
*/
function lv_basic_on_itemchange(objInst, nPrevIndex, nCurrIndex)
{
factory.consoleprint("on_itemchange> Start");
factory.consoleprint("on_itemchange> Component Name: " + objInst.getname());
factory.consoleprint("on_itemchange> nPrevIndex: " + nPrevIndex);
factory.consoleprint("on_itemchange> nCurrIndex: " + nCurrIndex);
}
/**
* 리스트뷰 스크롤 이동 이벤트
*
* @param {Object} objInst 리스트뷰 컴포넌트 인스턴스
* @param {number} nScrollPos 그리드 스크롤 위치 (Zero-Based)
* @param {number} nPrevScrollPos 그리드 이전 스크롤 위치 (Zero-Based)
* @param {number} nSBCode 스크롤 이동 유형 코드
* @param {string} bSBMax 맨 끝으로 이동 여부
*/
function lv_basic_on_scroll(objInst, nScrollPos, nPrevScrollPos, nSBCode, bSBMax)
{
factory.consoleprint("on_scroll> Start");
factory.consoleprint("on_scroll> Component Name = " + objInst.getname());
factory.consoleprint("on_scroll> nScrollPos = " + nScrollPos);
factory.consoleprint("on_scroll> nPrevScrollPos = " + nPrevScrollPos);
factory.consoleprint("on_scroll> nSBCode = " + nSBCode);
factory.consoleprint("on_scroll> bSBMax = " + bSBMax);
}
/**
* 리스트뷰 파일 드롭 이벤트
* 리스트뷰 accept_dropfiles 속성이 true인 경우에,
* 윈도우 탐색기에서 파일을 드래그하여 드랍시 이벤트가 발생한다.
*
* @param {Object} objInst 그리드 컴포넌트 인스턴스
* @param {Array} arrayDropFiles 드랍한 HTML File 오브젝트 배열
* @param {number} nDropFileCount 드랍한 파일 갯수
*/
function lv_basic_on_dropfiles(objInst, arrayDropFiles, nDropFileCount)
{
var i;
factory.consoleprint("on_dropfiles> Start");
factory.consoleprint("on_dropfiles> Component Name = " + objInst.getname());
factory.consoleprint("on_dropfiles> nDropFileCount = " + nDropFileCount);
// 드랍한 파일 이름 로깅
for (i = 0; i < nDropFileCount; i++) {
factory.consoleprint("on_dropfiles> " + i + " : " + arrayDropFiles[i].name);
}
}
// "getitemcount" 버튼 이벤트
function btn_getitemcount_on_mouseup(objInst)
{
// 아이템 갯수 표시
factory.consoleprint("item count = " + this.lv_basic.getitemcount());
}
// "getselecteditem" 버튼 이벤트
function btn_getselecteditem_on_mouseup(objInst)
{
// 선택된 아이템 인덱스 표시
factory.consoleprint("selected item index = " + this.lv_basic.getselecteditem());
}
// "refresh" 버튼 이벤트
function btn_refresh_on_mouseup(objInst)
{
this.lv_basic.refresh();
}
// "additem" 버튼 이벤트
function btn_additem_on_mouseup(objInst)
{
var item_index;
// 아이템을 맨 뒤에 추가
item_index = this.lv_basic.additem();
factory.consoleprint("additem return value = " + item_index);
// 추가된 아이템의 필드 값 설정
this.fld_listview[item_index].settext("additem");
}
// "insertitem" 버튼 이벤트
function btn_insertitem_on_mouseup(objInst)
{
var item_index;
// 아이템을 삽입 위치를 구하기 위해, 선택된 아이템 인덱스를 구함
item_index = this.lv_basic.getselecteditem();
if (item_index == -1) { item_index = 0; }
// 특정 아이템 인덱스 위치에 아이템 삽입
this.lv_basic.insertitem(item_index);
// 삽입된 아이템의 필드 값 설정
this.fld_listview[item_index].settext("insertitem");
}
// "deleteitem" 버튼 이벤트
function btn_deleteitem_on_mouseup(objInst)
{
var item_index;
// 선택된 아이템 인덱스를 구함
item_index = this.lv_basic.getselecteditem();
// 특정 아이템 삭제
this.lv_basic.deleteitem(item_index);
}
// "deleteallitem" 버튼 이벤트
function btn_deleteallitem_on_mouseup(objInst)
{
// 모든 아이템 삭제
this.lv_basic.deleteallitem();
}