====== 리스트뷰 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(); }