API
Selection

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을 쓴다. 이 메서드는 프로그램에서 해제 없이 확실히 추가하고 싶을 때 사용한다.

ParameterType
pDataPoint

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 없는 클릭에 해당한다.

ParameterType
pDataPoint

return 상태가 바뀌었으면 true.

toggle(p): boolean (opens in a new tab)

기존 선택을 유지하면서 p의 선택을 toggle한다.
Shift·Ctrl(Cmd) + 클릭과 터치 long press에 해당한다.

ParameterType
pDataPoint

return 상태가 바뀌었으면 true.

unselect(p): boolean (opens in a new tab)

p의 선택을 해제한다.
focus 포인트가 해제되면 남은 선택 중 가장 최근 포인트로 focus가 이동한다.

ParameterType
pDataPoint

return 상태가 바뀌었으면 true.