Selection extends RObject
차트 전역 데이터포인트 선택 상태 모델.
선택 목록은 선택한 순서로 유지되며, 마지막 항목이 곧 focus 포인트다.
따라서 focus는 항상 selected이고 동시에 둘 이상이 될 수 없다.
[주의] DataPoint의 selected/focused는 뷰 조회용 캐시일 뿐이고,
정본은 이 객체의 목록이다. 캐시를 직접 수정하면 마우스 클릭과 상태가 어긋난다.
Properties
focusedPoint: DataPoint readonly
가장 마지막에 선택된 포인트. 선택이 없으면 null.
default :undefined
selectedPoints: Array (opens in a new tab)<DataPoint> readonly
선택된 포인트들을 선택 순서대로 리턴한다.
[주의] 범례 등으로 감춰진 데이터포인트도 포함된다.
선택은 가시성과 독립적인 상태이고, 다시 표시하면 선택 표시가 그대로 복원된다.
화면에 보이는 것만 필요하면 selectedPoints.filter(p => p.visible)로 거른다.
default :undefined
Methods
add(p): boolean (opens in a new tab)
기존 선택을 유지하면서 p를 추가 선택하고 focus를 옮긴다.
이미 선택된 포인트면 선택은 그대로 두고 focus만 옮긴다.
[주의] 클릭은 toggle을 쓴다. 이 메서드는 프로그램에서
해제 없이 확실히 추가하고 싶을 때 사용한다.
| Parameter | Type |
|---|---|
| p | DataPoint |
return 상태가 바뀌었으면 true.
clear(): boolean (opens in a new tab)
전체 선택과 focus를 해제한다.
return 상태가 바뀌었으면 true.
dispose(): null
객체를 해제하고 null을 반환한다.
사용 예: this._obj = this._obj.dispose();
return null
select(p): boolean (opens in a new tab)
기존 선택을 모두 해제하고 p 하나만 선택한다.
modifier 없는 클릭에 해당한다.
| Parameter | Type |
|---|---|
| p | DataPoint |
return 상태가 바뀌었으면 true.
toggle(p): boolean (opens in a new tab)
기존 선택을 유지하면서 p의 선택을 toggle한다.
Shift·Ctrl(Cmd) + 클릭과 터치 long press에 해당한다.
| Parameter | Type |
|---|---|
| p | DataPoint |
return 상태가 바뀌었으면 true.
unselect(p): boolean (opens in a new tab)
p의 선택을 해제한다.
focus 포인트가 해제되면 남은 선택 중 가장 최근 포인트로 focus가 이동한다.
| Parameter | Type |
|---|---|
| p | DataPoint |
return 상태가 바뀌었으면 true.