CustomCellRendererImpl
사용자 정의 Renderer의 상위 class이다.
Signature:
export declare abstract class CustomCellRendererImpl extends DataCellRenderer
Extends: DataCellRenderer
Remarks
get styleName, _doInitContent, _doClearContent, render는 반드시 구현해야 한다.
Constructors
Constructor | Modifiers | Description |
---|---|---|
(constructor)(type) | Constructs a new instance of the CustomCellRendererImpl class |
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; |
Construct Desc
(constructor)
Constructs a new instance of the CustomCellRendererImpl
class
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