| 33 | import { ISymbolDraw, SymbolDrawUpdateOpt } from '../helper/baseDraw'; |
| 34 | |
| 35 | class ScatterView extends ChartView { |
| 36 | static readonly type = 'scatter'; |
| 37 | type = ScatterView.type; |
| 38 | |
| 39 | _finished: boolean; |
| 40 | |
| 41 | _isLargeDraw: boolean; |
| 42 | |
| 43 | _symbolDraw: ISymbolDraw; |
| 44 | |
| 45 | render(seriesModel: ScatterSeriesModel, ecModel: GlobalModel, api: ExtensionAPI) { |
| 46 | const data = seriesModel.getData(); |
| 47 | |
| 48 | const symbolDraw = this._updateSymbolDraw(data, seriesModel); |
| 49 | |
| 50 | symbolDraw.updateData(data, createSymbolDrawOpt(seriesModel)); |
| 51 | |
| 52 | this._finished = true; |
| 53 | } |
| 54 | |
| 55 | incrementalPrepareRender(seriesModel: ScatterSeriesModel, ecModel: GlobalModel, api: ExtensionAPI) { |
| 56 | const data = seriesModel.getData(); |
| 57 | const symbolDraw = this._updateSymbolDraw(data, seriesModel); |
| 58 | |
| 59 | symbolDraw.incrementalPrepareUpdate(data); |
| 60 | |
| 61 | this._finished = false; |
| 62 | } |
| 63 | |
| 64 | incrementalRender(taskParams: TaskProgressParams, seriesModel: ScatterSeriesModel, ecModel: GlobalModel) { |
| 65 | this._symbolDraw.incrementalUpdate( |
| 66 | taskParams, seriesModel.getData(), getIncrementalId(seriesModel), createSymbolDrawOpt(seriesModel) |
| 67 | ); |
| 68 | |
| 69 | this._finished = taskParams.end === seriesModel.getData().count(); |
| 70 | } |
| 71 | |
| 72 | /** |
| 73 | * See also VIEW_COORD_SYS_ANIMATION |
| 74 | */ |
| 75 | updateTransform(seriesModel: ScatterSeriesModel, ecModel: GlobalModel, api: ExtensionAPI) { |
| 76 | const data = seriesModel.getData(); |
| 77 | // Must mark group dirty and make sure the incremental layer will be cleared |
| 78 | // PENDING |
| 79 | this.group.dirty(); |
| 80 | |
| 81 | if (!this._finished) { // FIXME: _finished checking is unnecessary? |
| 82 | return {update: true} as const; |
| 83 | } |
| 84 | else { |
| 85 | const res = pointsLayout('').reset(seriesModel, ecModel, api) as StageHandlerProgressExecutor; |
| 86 | if (res.progress) { |
| 87 | res.progress({ start: 0, end: data.count(), count: data.count() }, data); |
| 88 | } |
| 89 | |
| 90 | this._symbolDraw.updateLayout(createSymbolDrawOpt(seriesModel)); |
| 91 | } |
| 92 | } |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…