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