- ----------------------------------------------------------------------------------------------------------
- 1. JQGrid (2013-12-30 ~ 2014-1-4)
- ----------------------------------------------------------------------------------------------------------
- Width를 개발자가 지정하지 않고, 컬럼 사이즈에 맞게 자동조절 해주도록. (관련 기술방법 알아보기).
- 정렬(엑셀기준) String- 좌측정렬, 숫자- 우측정렬.
- ----------------------------------------------------------------------------------------------------------
- 2. ZTree
- ----------------------------------------------------------------------------------------------------------
-다이나믹(동적) 노드 추가/수정(drag)/삭제.
2) Basic CRUD 기능.
2-1) setting.edit.enable = true ( 수정[rename]/삭제 기능 추가. )
- edit=all/rename/delete/update/*add => ReName, Delete, Drag(수정).
- AddNode의 경우만 setting.view.addHoverDom, setting.view.removeHoverDom으로 제어.
- 다행이 새로 생긴 노드도, Edit/remove/drag&drop 적용가능. (물론 필터도 가능)
*Tapestry에서 Enumeration 가능할지?
*(Dynamic Tree) jQuery Ajax 통신 + Tapestry Event 연동 가능한지? – 가능함.
- 각 이벤트 별 function 걸어서 value값만 refresh하면 되지 않을까 싶음.
- callback –> onDrag(?), onDrop, onRemove, onRename –> Refresh Value.
2-2) setting.edit.drag ( 수정[이동/복사] 기능 추가 )
- setting.edit.drag.autoExpandTrigger : (true/false) true일 경우 onExpand Callback을 사용가능.
- setting.edit.drag.isCopy : (true[default]/false) true일 경우(isMove도 true) 이동시 ctrl+node이동시 복사됨.
- setting.edit.drag.isMove : (true[default]/false)
*true/false라도 function을 통해 제어 가능하다. (javascript의 가장 큰 장점)
------------------------------------------------------------------------------------------------------------------
*NBI 포스코/동부CNI작업 하느라 2013-12-23(월) 오전 시간 할당함.
*Ibatis Boolean Type – DB Insert 방법.
-좀 애매하긴 하다, DB에다가 저장할때는 true/false 문자열로 넣어야한단말인가?
-테스트 케이스 만들어서 테스트 해봄.
결론)
boolean을 ibatis로 직접 넣을 경우 (ex (boolean) #useDefaultSet#)
-> true는 1, false는 0으로 인식하여 DB에 저장된다.
이제 가져오는 것도 잘 변환이 되는지 확인해봐야할듯.
–> 가져오는 매핑 처리도 잘된다. 대신 javaType을 boolean으로 해야하며,
-> 0값은 false로, 1값은 true로 매핑해줌. (javaType을 boolean으로 하지 않을 경우, 0,1값이 들어간다.)
즉, DB타입은 char(1)로 해놓고, boolean값을 사용하면 될듯합니다!!
------------------------------------------------------------------------------------------------------------------
3) jQuery Ajax / Tapestry Event 연동 기능 구현. [해결]
- URL을 자바에서 만들어 주면, jQuery에서는 받아서 Ajax요청.
*Form안에 버튼이 있으면, 자동 submit된다..;; 이걸 막으려면 어케해야함? – form바깥으로 button을 뺀다.
*이슈) 파라미터가 안 넘오온다..;; 아마 event의 경우 get/post방식이 아닌가?
jQuery 사용법 이슈였음. context로 처리했는데, data(JSON)로 처리해야 request로 받을 수 가 있음
*data - Data to be sent to the server.
오예 – data:jQuery(“#testForm”).serialize() 도 인식한다.
따라서 Java Event처리해주는 부분에서 @RequestParameter로 받으면 됨. (한글도 잘됨)
4) 아이콘. Asset Link 연동, Icon skin 적용. [일단 해결]
-> AssetSource.getClasspathAsset(“path”) 를 통해 Asset(icon)을 가져 올 수 있음.
-> 데이터를 다시 까서, 경로를 넣어야함..;;
-> 파일 별로 random경로가 달라지기때문에, 모두 까서 다시 경로 지정 해야할듯..
ex) /cygnus-core/asset/meta/88d822f4/img/wing1-256.png
5) zTree 데이터 저장 구조가 두개로 나뉘어야함.
- update(이동/복사/붙여넣기)로 인해 데이터 변경이 발생하므로, 전체 tree data저장 컬럼.
- checked 트리를 저장하는 컬럼.
*의문점. 꼭 type=any로 해야하나?
*onDrop –> value , checked Update / *onRemove –> value, checked Update / *onRename –> value, checked Update
5-1) getNodes의 경우, children이 포함되어 JSONArray를 리턴함.
=> 초기 데이터 구조처럼, 병렬구조로 변경이 필요함.
=> getNodes의 경우, 즉 초기 Nodes를 계속 잡고있음.. (변경된 Nodes는 나오지 않는다..;;;; 헐..)
-> 내가 재귀처리 안해서 그럼. children의 경우 for문으로 처리하면 안됨.
5-2) Data JSON , Checked JSON 둘다 처리 됨.
변경된 “트리 정보(Data)”를 페이지 이동 후에도 유지할 수 있도록 처리 해야함. (callback에서 value와 check를 통해 처리하면 될듯.)
*꼭 필요한 정보(id,Pid,Name정도)와 부가정보(checked…) 둘 중 DB에 무엇을 저장할 것 인가.
*체크항목 같은 세부설정을 유지하기 위해선 부가정보가 필요함. 일단 2개로 가기로함.
*Callback함수에서 받아온 Data JSON을 합쳐서 처리하면 체크값도 유지될듯. //근데 DB연동하면 굳이 할 필요없는 작업이기도함.
6) [Dynamic Tree] Node를 열 때마다 Ajax호출 및 JSON데이터 받아오기.
*이거까지만 되면 그래도 왠만한 기능구현은 가능하니…
*Example대로 구현했지만, 어떻게 돌아가는지 모르겠음.
*Parent인데(isParent=true), 자식노드가 local에 없으면, 다시 url로 요청쿼리를 보냄.
(물론, 설정한 파라미터도 같이넘김)
별도 설정이 필요한게 아니었음. 그냥 parent Node를 만든후 자식노드를 안넣으면 됨.
*zTree
radio, add Custom Dom, DropDown, Multiple Tree, Dynamic Tree loading
7) zTree 남은 부분. (추후 고급기능 개발 시 진행할 부분)
- Dynamic Loading Tree (난이도 – 상)
- Radio , Add Custom Dom
- DropDown (난이도 - 중)
- Multiple Tree(Pallete) (난이도 – 상)
- Right Menu (중간정도)
- Search Nodes (상)
7) UI 개발 방법론에 대해 고민을 해봐야할듯.
Javascript 위주의 개발로 갈지.
- 객체지향으로 가려면 어떻게 개발하는게 더욱 효율적인지.
-어짜피 TML내부에서 자바스크립트를 쓸 수 없기때문에 JS를 빼내야한다.
-이를 모듈로 구현하고, window객체를 사용해 TML에서 접근할 수 있도록 한다. (가능)
-객체지향으로 개발하면, 추후에 반복될 경우, 공통모듈로 분리하여 재사용하도록 하는게 쉬워지니.
자바스크립트 객체지향방법에 대해 좀더 R&D를 해봐야할 듯 하다.
- 진정한 UI 모듈화를 하려면 어떻게 해야하는지. (디자인패턴)
8) jqGrid 남은 목록
- Group Header (colspan, rowspan)
- Master/detail Grid.
- search (외부연동)
- validation
- Grouping
- resizing Grid.
'Workspace > Workbook' 카테고리의 다른 글
[머리식히기] IntelliJ IDEA (0) | 2013.12.04 |
---|