CustomCellRendererImpl
사용자 정의 Renderer의 상위 class이다.
Signature:
export declare abstract class CustomCellRendererImpl extends DataCellRenderer Extends: DataCellRenderer
Remarks
get styleName, _doInitContent, _doClearContent, render는 반드시 구현해야 한다.
Properties
| Property | Type | Description |
|---|---|---|
| clickOnlyFocusedCell | boolean | true이면 focus될 셀 또는 focus가 이동가능한 경우만 click이벤트가 발생한다. CellRenderer.clickOnlyFocusedCell |
| dom | HTMLElement | |
| grid | GridBase | Renderer가 참조하는 그리드 객체 |
| index | CellIndex | Renderer가 참조하는 셀의 index |
| inputFocusable | boolean | |
| itemClickable | boolean | |
| refreshFocusChanged | boolean | true이면 셀에 focus가 이동되면 다시그린다. |
| showTooltip | boolean | 툴팁 표시 여부 |
| styleName | string | Renderer의 class |
| type | string | renderer의 type |
Methods
| Method | Type | Description |
|---|---|---|
| _doClearContent(dom) | protected abstract _doClearContent(dom: HTMLElement): void; | Renderer가 제거될때 발생하는 콜백 |
| _doEditClick(index, event, result) | protected _doEditClick(index: CellIndex, event: MouseEvent, result: RendererEditResult): boolean; | |
| _doInitContent(dom) | protected abstract _doInitContent(dom: HTMLElement): void; | Renderer가 처음 그려질때 발생하는 콜백 |
| canClick(event) | canClick(event: MouseEvent): boolean; | 그리드의 클릭이벤트 사용여부 |
| canClickSpaceKey(event) | canClickSpaceKey(event: Event): boolean; | 특정키가 down되었을때 true를 return하면 itemClick을 호출한다. |
| canEdit() | canEdit(): boolean; | 편집 가능한 렌더러인지의 여부 |
| canEditClickAt(event) | canEditClickAt(event: MouseEvent): boolean; | 편집가능한 셀에서 클릭이 발생했을때 편집상태로 변경할지 여부 |
| click(index, event, target) | click(index: CellIndex, event: Event, target?: HTMLElement): any; | element를 클릭했을때 클릭가능한 element이면 ClickData를 반환한다. |
| itemClick(event) | itemClick(event: Event): void; | CustomCellRendererImpl.canClickSpaceKey()에서 true가 return되었을때 호출되는 method |
| preventDefaultClick(event) | preventDefaultClick(event: Event): void; | 클릭된 element가 기본동작이 있는 tag(anchor등)일때 기본동작을 중지시킨다. |
| preventDefaultEditClick(event) | preventDefaultEditClick(event: MouseEvent): void; | 클릭된 element가 편집가능한 tag일때 기본동작을 중지하기 위해 사용한다. |
| render(grid, model, w, h, info) | protected abstract render(grid: GridBase, model: GridCell, w: number, h: number, info: any): void; | 렌더링시 실행될 콜백 |
| tooltip(model, index) | tooltip(model: GridCell, index: CellIndex): string; |
Properties Desc
clickOnlyFocusedCell
true이면 focus될 셀 또는 focus가 이동가능한 경우만 click이벤트가 발생한다. CellRenderer.clickOnlyFocusedCell
Type - boolean
dom
Type - HTMLElement
grid
Renderer가 참조하는 그리드 객체
Type - GridBase
Remarks:
Override해서는 안된다.
index
Renderer가 참조하는 셀의 index
Type - CellIndex
Remarks:
Override해서는 안된다.
외부로 노출된 interface와는 조금 다르다.
inputFocusable
Type - boolean
itemClickable
Type - boolean
refreshFocusChanged
true이면 셀에 focus가 이동되면 다시그린다.
Type - boolean
Remarks:
focus를 가졌을때 셀을 갱신해야 하는경우 사용한다.
showTooltip
툴팁 표시 여부
Type - boolean
styleName
Renderer의 class
Type - string
Remarks:
rg-renderer + 사용자지정 class명으로 return해야 한다.
type
renderer의 type
Type - string
Remarks:
registerCustomerRenderer로 등록할때 사용한 이름이 type이 된다.
Override해서는 안된다.
Methods Desc
_doClearContent
Renderer가 제거될때 발생하는 콜백
Remarks:
_doInitContent에서 생성한 element들을 제거한다.
_doEditClick
_doInitContent
Renderer가 처음 그려질때 발생하는 콜백
[매개변수 목록]
dom - HTMLElement
parentElement
[반환값] - void
Remarks:
실제 화면에 보여줄 element들을 생성해서 전달된 dom에 추가한다.
그외 Renderer에서 사용할 내부 속성들을 초기화 해준다.
addEventListener를 사용하는 경우 반드시 _doClearContent에서 removeEventListener로 제거해 주어야 한다.
canClick
그리드의 클릭이벤트 사용여부
[매개변수 목록]
event - MouseEvent
마우스 클릭 이벤트
[반환값] - boolean
Remarks:
false를 return하면 그리드는 click이벤트를 처리하지 않고 element의 기본동작이 실행되도록 한다.
canClickSpaceKey
특정키가 down되었을때 true를 return하면 itemClick을 호출한다.
[매개변수 목록]
event - Event
키보드 이벤트
[반환값] - boolean
Remarks:
마우스로 클릭한것과 동일한 흐름을 만들기 위해서 사용한다.
canEdit
편집 가능한 렌더러인지의 여부
Remarks:
CheckCellRenderer와 같이 클릭에 의해서 값이 변경되는 renderer이면 true를 return한다.
canEditClickAt
편집가능한 셀에서 클릭이 발생했을때 편집상태로 변경할지 여부
[매개변수 목록]
event - MouseEvent
마우스 클릭이벤트
[반환값] - boolean
Remarks:
true를 return하면 해당행의 상태를 편집중으로 변경한다.
click
element를 클릭했을때 클릭가능한 element이면 ClickData를 반환한다.
[매개변수 목록]
index - CellIndex
셀의 위치정보 모델
event - Event
마우스 이벤트
target - HTMLElement
클릭된 element
[반환값] - any
Remarks:
반환된 데이터는 GridBase.onCellItemClicked이벤트로 전달된다.
false를 반환시 해당 이벤트를 중지시키고 CustomCellRendererImpl.preventDefaultClick()을 호출한다.
itemClick
CustomCellRendererImpl.canClickSpaceKey()에서 true가 return되었을때 호출되는 method
[매개변수 목록]
event - Event
키보드 이벤트
[반환값] - void
Remarks:
그리드 내부에서는 element click을 키보드로 대신할때 사용한다.
preventDefaultClick
클릭된 element가 기본동작이 있는 tag(anchor등)일때 기본동작을 중지시킨다.
[매개변수 목록]
event - Event
마우스 이벤트
[반환값] - void
Remarks:
GridBase.onCellItemClicked에서 false를 return하면 호출된다.
preventDefaultEditClick
클릭된 element가 편집가능한 tag일때 기본동작을 중지하기 위해 사용한다.
[매개변수 목록]
event - MouseEvent
마우스 이벤트
[반환값] - void
Remarks:
그리드는 마우스, 키보드 이벤트가 발생했을때 내부에서 처리하고 이벤트 전파를 중단시킨다.
<input type='checkbox' id='test'/><label for='test'>test</label>처럼 label을 클릭했을때
label과 input의 클릭이 순차적으로 발생하는 경우에는 중단시켜서는 안되기 때문에 preventDefaultEditClick을 재정의 해서 중단시키지 않도록 해야한다.
render
렌더링시 실행될 콜백
[매개변수 목록]
grid - GridBase
GridBase컨트롤
model - GridCell
GridCell 객체
w - number
너비
h - number
높이
info - any
[반환값] - void
Remarks:
화면이 스크롤되거나 data가 변경되는 경우 호출된다.
Renderer는 실제 위치는 변경되지 않고 재사용되기때문에 여기서 element를 생성하거나 제거해서는 안된다.
가능하면 _doInitContent에서 필요한 모든 element를 생성하고 render내부에서는 style또는 text등의 속성만 변경해야 한다.
tooltip
[매개변수 목록]
model - GridCell
GridCell 객체
index - CellIndex
셀의 위치정보 모델
[반환값] - string