• -------------------------------------------------------------------------------
  • Edit 기능구현.
  • -------------------------------------------------------------------------------

1) Edit / Inplace Editor

  • : Grid내에서 바로 수정할 수 있는 Inplace Editor기능.
  • : 컬럼에는 보이지 않지만, input type=Hidden로 될 수 있는지.
  • : 문제는 Tapestry Data처리하는 Method로 넘겨줘야하는게 이슈인데, 이것도 Paging처리한 것과 동일하게 처리하면 될지 싶다.
  •   => 이벤트 버블링으로 해결.

 

2) 이벤트 매핑 처리.

  • 마찬가지로 컴포넌트 측에서 event를 추가하고, Request를 통해 선처리(parameter 매핑)하고
  • 이벤트 버블러를 통해 구현한 Java 메소드로 넘겨줘야겠다.
  • *JQGrid(JS/View)에서 수정 시 POST Method 방식으로 값이 다 잘 넘어옴.
  • *@RequestParam은 안되서 걱정했으나, 다행히 request.getParameter는 먹는다.

 

  • *이제 이슈는 보이지 않는 컬럼의 hidden값을 넘겨줄 수 있어야함.
  • => 일단 editable=true로 지정하고, 안보이게 할거는 excludes를 받아서, hidden으로 처리해야함.
  • *또다른 이슈사항 – 파라미터 변수가 유지되지 않는 현상. (ex columns)
  • => 기본 컴포넌트의 Parameter의 경우, BeginRender시에는 유지되지만,
  •     Event로 들어올 경우, 기본 클래스 변수가 초기화 되어있다..;; 세션으로 처리해야되는건가..
  • => 그래서 Stitch Tab Group이 Request.get/setAttribute를 사용했구나…
  • => Request.get/setAttribute를 사용하면 안되는 걸 보니, JS Ajax – Event를 사용하면 request가 다르다. 결국 세션으로 처리.
  • => 생각해보니 그냥 reuqest Parameter Iterator로 돌려서 받으면 되겠네.. => 결국 이 방식 채택.

 

3) Hiddens 옵션기능 추가. (안보이게 할 컬럼 추가.)

- hidden’s를 쭈욱 받아서 똑같이 처리하면 됨.

 

4) 데이터 타입에 맞게 types 지정.

- 아무래도 데이터의 인덱스 첫번째걸로 instanceof로 비교해야할듯.

- 이슈가 있음, 데이터를 어떻게 가져올건데..;;

   Map이야 key값으로 가져온다해도, VO일 경우 Reflect해야하는데, 이럴빠엔 파라미터로 받는게 낳지않나?

 

5) Editor에도, Datepicker 연동 및 Validation처리 추가해야함.

 

 

6) 기타 고급기능 : SubGrid, Grouping, Tree Grid(?), Search, Inplace Editor, CellEditing [v3.3]

 

 

-------------------------------------------------------------------------------

Edit 관련 API 및 Validation

-------------------------------------------------------------------------------

1) Editable colModel

  • : editable(true/false)
  • : editoptions:{
  •      readonly(true/false)
  •      size(int)
  •      value:"Yes:No"     //edittype:"checkbox"일 때 checkbox값 초기화
  •      //edittype:"select"일 때 초기값지정. editoptions:{value:"FE:FedEx;TN:TNT"}
  •      rows:"2",cols:"20" //edittype:"textarea"일 때 초기크기 지정.
  •   }
  • : [Validation]
  • editrules:{
  •     required(true/false)
  •     edithidden(true/false)
  •     number(true/false)
  •     minValue(int)
  •     maxValue(int)
  •   }

 

2) Fomatter

  • colModel의 항목에 formatter : currency/checkbox
  • customFormatter
  •   formatter:'date', formatoptions:{srcformat:"Y-m-d",newformat:"d-M-Y"}
  •   formatter:'currency',formatoptions:{thousandsSeparator:","}
  •   formatter:'currency', formatoptions:{prefix:"€"}

 

  • -------------------------------------------------------------------------------
  • Component Events – Tapestry Document 공부
  • -------------------------------------------------------------------------------

Tapestry에서 Event종류가 actionlink, eventlink가 있는데 두 차이점이 맨날 헛갈림.

이벤트 발생하는 것이라 기능적으론 큰 차이는 없는거 같은데, 사용법이 다르다.

1) Action Link

- t:type=”actionlink” [in TML] => @OnEvent(value=”action”, component=”TML_ID”) [in Java]

 

 

*앞으로의 컴포넌트 개발 :

  • - Grid ( Using JQGrid )
  • - Tree ( Using JQTree )
  • - Form, Form Display ( Using Tapestry )
  • - Datepicker(bootstrap) Mixin개발, SelectBox Mixin, …
  • ( 이번달 말까지, 확실히 컴포넌트 개발할 개수 및 대상을 정해야할듯, 꼭 필요한거 위주. )


다른 카테고리의 글 목록

Workspace/Web Dev 카테고리의 포스트를 톺아봅니다