This is an automated email from the ASF dual-hosted git repository.

sushuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git

commit 346af22dc00cc3a084d908eafafdc6d35067d110
Author: sushuang <sushuang0...@gmail.com>
AuthorDate: Wed Apr 4 02:55:51 2018 +0800

    refactor candlestick.
---
 src/chart/candlestick/CandlestickView.js   | 255 ++++++++++++++++++++++--
 src/chart/candlestick/candlestickLayout.js |  43 ++---
 src/chart/candlestick/candlestickVisual.js |  26 ++-
 src/chart/helper/WhiskerBoxDraw.js         | 300 -----------------------------
 src/chart/helper/whiskerBoxCommon.js       |  32 ---
 test/candlestick.html                      |   5 +
 6 files changed, 276 insertions(+), 385 deletions(-)

diff --git a/src/chart/candlestick/CandlestickView.js 
b/src/chart/candlestick/CandlestickView.js
index 622cf79..6f8d960 100644
--- a/src/chart/candlestick/CandlestickView.js
+++ b/src/chart/candlestick/CandlestickView.js
@@ -1,30 +1,173 @@
 import * as zrUtil from 'zrender/src/core/util';
 import ChartView from '../../view/Chart';
 import * as graphic from '../../util/graphic';
-import {viewMixin} from '../helper/whiskerBoxCommon';
+import Path from 'zrender/src/graphic/Path';
+
+var NORMAL_ITEM_STYLE_PATH = ['itemStyle'];
+var EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];
 
 var CandlestickView = ChartView.extend({
 
     type: 'candlestick',
 
-    getStyleUpdater: function () {
-        return updateStyle;
+    render: function (seriesModel, ecModel, api) {
+        var group = this.group;
+        var data = seriesModel.getData();
+        var oldData = this._data;
+        var pipelineContext = seriesModel.pipelineContext;
+        var isLargeRender = pipelineContext.large;
+        var largePoints = isLargeRender && data.getLayout('largePoints');
+
+        // There is no old data only when first rendering or switching from
+        // stream mode to normal mode, where previous elements should be 
removed.
+        if (!this._data) {
+            group.removeAll();
+        }
+
+        data.diff(oldData)
+            .add(function (newIdx) {
+                if (data.hasValue(newIdx)) {
+                    var symbolEl = isLargeRender
+                        ? createLargeBox(data, largePoints, newIdx)
+                        : createNormalBox(data, newIdx, true);
+                    data.setItemGraphicEl(newIdx, symbolEl);
+                    group.add(symbolEl);
+                }
+            })
+            .update(function (newIdx, oldIdx) {
+                var symbolEl = oldData.getItemGraphicEl(oldIdx);
+
+                // Empty data
+                if (!data.hasValue(newIdx)) {
+                    group.remove(symbolEl);
+                    return;
+                }
+
+                if (symbolEl && symbolEl.__largeWhiskerBox ^ isLargeRender) {
+                    group.remove(symbolEl);
+                    symbolEl = null;
+                }
+
+                if (!symbolEl) {
+                    symbolEl = isLargeRender
+                        ? createLargeBox(data, largePoints, newIdx)
+                        : createNormalBox(data, newIdx);
+                }
+                else {
+                    isLargeRender
+                        ? updateLargeBoxData(symbolEl, data, newIdx)
+                        : updateNormalBoxData(symbolEl, data, newIdx);
+                }
+
+                // Add back
+                group.add(symbolEl);
+
+                data.setItemGraphicEl(newIdx, symbolEl);
+            })
+            .remove(function (oldIdx) {
+                var el = oldData.getItemGraphicEl(oldIdx);
+                el && group.remove(el);
+            })
+            .execute();
+
+        this._data = data;
     },
 
-    dispose: zrUtil.noop
+    incrementalPrepareRender: function (seriesModel, ecModel, api) {
+        this.group.removeAll();
+        this._data = null;
+    },
+
+    incrementalRender: function (params, seriesModel, ecModel, api) {
+        var data = seriesModel.getData();
+        var pipelineContext = seriesModel.pipelineContext;
+        var isLargeRender = pipelineContext.large;
+        var largePoints = isLargeRender && data.getLayout('largePoints');
+
+        for (var idx = params.start; idx < params.end; idx++) {
+            var symbolEl = isLargeRender
+                ? createLargeBox(data, largePoints, idx, params.start)
+                : createNormalBox(data, idx, this.styleUpdater, true);
+            symbolEl.incremental = true;
+            this.group.add(symbolEl);
+        }
+    },
+
+    remove: function (ecModel) {
+        var group = this.group;
+        var data = this._data;
+        this._data = null;
+        data && data.eachItemGraphicEl(function (el) {
+            el && group.remove(el);
+        });
+    }
+
 });
 
-zrUtil.mixin(CandlestickView, viewMixin, true);
 
-// Update common properties
-var normalStyleAccessPath = ['itemStyle'];
-var emphasisStyleAccessPath = ['emphasis', 'itemStyle'];
 
-function updateStyle(data, idx, boxEl, whiskerEl, bodyEl) {
-    var itemModel = data.getItemModel(idx);
-    var normalItemStyleModel = itemModel.getModel(normalStyleAccessPath);
-    var color = data.getItemVisual(idx, 'color');
-    var borderColor = data.getItemVisual(idx, 'borderColor') || color;
+
+
+// ---------------------
+// -- Normal Renderer --
+// ---------------------
+
+var NormalBoxPath = Path.extend({
+
+    type: 'candlestickBox',
+
+    shape: {},
+
+    buildPath: function (ctx, shape) {
+        var ends = shape.points;
+
+        ctx.moveTo(ends[0][0], ends[0][1]);
+        ctx.lineTo(ends[1][0], ends[1][1]);
+        ctx.lineTo(ends[2][0], ends[2][1]);
+        ctx.lineTo(ends[3][0], ends[3][1]);
+        ctx.closePath();
+
+        ctx.moveTo(ends[4][0], ends[4][1]);
+        ctx.lineTo(ends[5][0], ends[5][1]);
+        ctx.moveTo(ends[6][0], ends[6][1]);
+        ctx.lineTo(ends[7][0], ends[7][1]);
+    }
+});
+
+function createNormalBox(data, dataIndex, isInit) {
+    var itemLayout = data.getItemLayout(dataIndex);
+    var ends = itemLayout.ends;
+
+    var el = new NormalBoxPath({
+        shape: {
+            points: isInit
+                ? transInit(ends, itemLayout)
+                : ends
+        },
+        z2: 100
+    });
+
+    updateNormalBoxData(el, data, dataIndex, isInit);
+
+    return el;
+}
+
+function updateNormalBoxData(el, data, dataIndex, isInit) {
+    var seriesModel = data.hostModel;
+    var itemLayout = data.getItemLayout(dataIndex);
+    var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];
+
+    updateMethod(
+        el,
+        {shape: {points: itemLayout.ends}},
+        seriesModel,
+        dataIndex
+    );
+
+    var itemModel = data.getItemModel(dataIndex);
+    var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);
+    var color = data.getItemVisual(dataIndex, 'color');
+    var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color;
 
     // Color must be excluded.
     // Because symbol provide setColor individually to set fill and stroke
@@ -32,15 +175,89 @@ function updateStyle(data, idx, boxEl, whiskerEl, bodyEl) {
         ['color', 'color0', 'borderColor', 'borderColor0']
     );
 
-    whiskerEl.useStyle(itemStyle);
-    whiskerEl.style.stroke = borderColor;
+    el.useStyle(itemStyle);
+    el.style.strokeNoScale = true;
+    el.style.fill = color;
+    el.style.stroke = borderColor;
 
-    bodyEl.useStyle(itemStyle);
-    bodyEl.style.fill = color;
-    bodyEl.style.stroke = borderColor;
+    var hoverStyle = 
itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();
+    graphic.setHoverStyle(el, hoverStyle);
+}
+
+function transInit(points, itemLayout) {
+    return zrUtil.map(points, function (point) {
+        point = point.slice();
+        point[1] = itemLayout.initBaseline;
+        return point;
+    });
+}
+
+
+
+
+
+
+// --------------------
+// -- Large Renderer --
+// --------------------
+
+var NORMAL_STYLE_ACCESS_PATH = ['itemStyle'];
+var EMPHASIS_STYLE_ACCESS_PATH = ['emphasis', 'itemStyle'];
+
+function createLargeBox(data, largePoints, dataIndex, segmentStart) {
+    var boxEl = new graphic.Line({
+        shape: largeBoxMakeShape(largePoints, dataIndex, segmentStart)
+    });
+
+    boxEl.__largeWhiskerBox = true;
+
+    largeBoxSetStyle(boxEl, data, dataIndex);
+
+    return boxEl;
+}
+
+function largeBoxMakeShape(largePoints, dataIndex, segmentStart) {
+    var baseIdx = (dataIndex - (segmentStart || 0)) * 5;
+    return {
+        x1: largePoints[baseIdx + 1],
+        y1: largePoints[baseIdx + 2],
+        x2: largePoints[baseIdx + 3],
+        y2: largePoints[baseIdx + 4]
+    };
+}
 
-    var hoverStyle = 
itemModel.getModel(emphasisStyleAccessPath).getItemStyle();
+function updateLargeBoxData(boxEl, data, dataIndex) {
+    graphic.updateProps(
+        boxEl,
+        {shape: largeBoxMakeShape(data.getLayout('largePoints'), dataIndex, 
0)},
+        data.hostModel,
+        dataIndex
+    );
+
+    largeBoxSetStyle(boxEl, data, dataIndex);
+}
+
+function largeBoxSetStyle(boxEl, data, dataIndex) {
+    var itemModel = data.getItemModel(dataIndex);
+    var normalItemStyleModel = itemModel.getModel(NORMAL_STYLE_ACCESS_PATH);
+    var color = data.getItemVisual(dataIndex, 'color');
+    var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color;
+
+    // Color must be excluded.
+    // Because symbol provide setColor individually to set fill and stroke
+    var itemStyle = normalItemStyleModel.getItemStyle(
+        ['color', 'color0', 'borderColor', 'borderColor0']
+    );
+
+    boxEl.useStyle(itemStyle);
+    boxEl.style.stroke = borderColor;
+
+    var hoverStyle = 
itemModel.getModel(EMPHASIS_STYLE_ACCESS_PATH).getItemStyle();
     graphic.setHoverStyle(boxEl, hoverStyle);
 }
 
+
+
+
 export default CandlestickView;
+
diff --git a/src/chart/candlestick/candlestickLayout.js 
b/src/chart/candlestick/candlestickLayout.js
index 929d93b..6fa8fda 100644
--- a/src/chart/candlestick/candlestickLayout.js
+++ b/src/chart/candlestick/candlestickLayout.js
@@ -18,9 +18,8 @@ export default {
         var coordSys = seriesModel.coordinateSystem;
         var data = seriesModel.getData();
         var candleWidth = calculateCandleWidth(seriesModel, data);
-        var chartLayout = seriesModel.get('layout');
-        var cDimIdx = chartLayout === 'horizontal' ? 0 : 1;
-        var vDimIdx = 1 - cDimIdx;
+        var cDimIdx = 0;
+        var vDimIdx = 1;
         var coordDims = ['x', 'y'];
         var cDim = data.mapDimension(coordDims[cDimIdx]);
         var vDims = data.mapDimension(coordDims[vDimIdx], true);
@@ -39,10 +38,7 @@ export default {
         function normalProgress(params, data) {
 
             for (var dataIndex = params.start; dataIndex < params.end; 
dataIndex++) {
-                layoutDataItem(dataIndex);
-            }
 
-            function layoutDataItem(dataIndex) {
                 var axisDimVal = data.get(cDim, dataIndex);
                 var openVal = data.get(openDim, dataIndex);
                 var closeVal = data.get(closeDim, dataIndex);
@@ -57,28 +53,22 @@ export default {
                 var lowestPoint = getPoint(lowestVal, axisDimVal);
                 var highestPoint = getPoint(highestVal, axisDimVal);
 
-                var whiskerEnds = [
-                    [
-                        subPixelOptimizePoint(highestPoint),
-                        subPixelOptimizePoint(ocHighPoint)
-                    ],
-                    [
-                        subPixelOptimizePoint(lowestPoint),
-                        subPixelOptimizePoint(ocLowPoint)
-                    ]
-                ];
-
-                var bodyEnds = [];
-                addBodyEnd(bodyEnds, ocHighPoint, 0);
-                addBodyEnd(bodyEnds, ocLowPoint, 1);
+                var ends = [];
+                addBodyEnd(ends, ocHighPoint, 0);
+                addBodyEnd(ends, ocLowPoint, 1);
+
+                ends.push(
+                    subPixelOptimizePoint(highestPoint),
+                    subPixelOptimizePoint(ocHighPoint),
+                    subPixelOptimizePoint(lowestPoint),
+                    subPixelOptimizePoint(ocLowPoint)
+                );
 
                 data.setItemLayout(dataIndex, {
-                    chartLayout: chartLayout,
                     sign: getSign(data, dataIndex, openVal, closeVal, 
closeDim),
                     initBaseline: openVal > closeVal
                         ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx], // open 
point.
-                    bodyEnds: bodyEnds,
-                    whiskerEnds: whiskerEnds,
+                    ends: ends,
                     brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)
                 });
             }
@@ -92,7 +82,7 @@ export default {
                     : coordSys.dataToPoint(p);
             }
 
-            function addBodyEnd(bodyEnds, point, start) {
+            function addBodyEnd(ends, point, start) {
                 var point1 = point.slice();
                 var point2 = point.slice();
 
@@ -104,8 +94,8 @@ export default {
                 );
 
                 start
-                    ? bodyEnds.push(point1, point2)
-                    : bodyEnds.push(point2, point1);
+                    ? ends.push(point1, point2)
+                    : ends.push(point2, point1);
             }
 
             function makeBrushRect(lowestVal, highestVal, axisDimVal) {
@@ -168,7 +158,6 @@ export default {
 
             data.setLayout('largePoints', points);
             data.setLayout('candleWidth', candleWidth);
-            data.setLayout('candleWidth', candleWidth);
         }
     }
 };
diff --git a/src/chart/candlestick/candlestickVisual.js 
b/src/chart/candlestick/candlestickVisual.js
index d4cf012..ad94894 100644
--- a/src/chart/candlestick/candlestickVisual.js
+++ b/src/chart/candlestick/candlestickVisual.js
@@ -22,7 +22,11 @@ export default {
         var largePoints = isLargeRender && data.getLayout('largePoints');
 
         data.setVisual({
-            legendSymbol: 'roundRect'
+            legendSymbol: 'roundRect',
+            colorP: getColor(1, seriesModel),
+            colorN: getColor(-1, seriesModel),
+            borderColorP: getBorderColor(1, seriesModel),
+            borderColorN: getBorderColor(-1, seriesModel)
         });
 
         // Only visible series has each data be visual encoded
@@ -40,17 +44,25 @@ export default {
                 data.setItemVisual(
                     dataIndex,
                     {
-                        color: itemModel.get(
-                            sign > 0 ? positiveColorQuery : negativeColorQuery
-                        ),
-                        borderColor: itemModel.get(
-                            sign > 0 ? positiveBorderColorQuery : 
negativeBorderColorQuery
-                        )
+                        color: getColor(sign, itemModel),
+                        borderColor: getBorderColor(sign, itemModel)
                     }
                 );
             }
         }
 
+        function getColor(sign, model) {
+            return model.get(
+                sign > 0 ? positiveColorQuery : negativeColorQuery
+            );
+        }
+
+        function getBorderColor(sign, model) {
+            return model.get(
+                sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery
+            );
+        }
+
         return {progress: progress};
     }
 
diff --git a/src/chart/helper/WhiskerBoxDraw.js 
b/src/chart/helper/WhiskerBoxDraw.js
deleted file mode 100644
index 1753633..0000000
--- a/src/chart/helper/WhiskerBoxDraw.js
+++ /dev/null
@@ -1,300 +0,0 @@
-/**
- * @module echarts/chart/helper/Symbol
- */
-
-import * as zrUtil from 'zrender/src/core/util';
-import * as graphic from '../../util/graphic';
-import Path from 'zrender/src/graphic/Path';
-
-
-
-
-// ------------------
-// -- Whisker Path --
-// ------------------
-
-var WhiskerPath = Path.extend({
-
-    type: 'whiskerInBox',
-
-    shape: {},
-
-    buildPath: function (ctx, shape) {
-        for (var i in shape) {
-            if (shape.hasOwnProperty(i) && i.indexOf('ends') === 0) {
-                var pts = shape[i];
-                ctx.moveTo(pts[0][0], pts[0][1]);
-                ctx.lineTo(pts[1][0], pts[1][1]);
-            }
-        }
-    }
-});
-
-
-
-
-// ----------------
-// -- Normal Box --
-// ----------------
-
-
-var BODY_INDEX = 0;
-var WHISKER_INDEX = 1;
-
-/**
- * @param {module:echarts/data/List} data
- * @param {number} idx
- * @param {Function} styleUpdater
- * @param {boolean} isInit
- */
-function createNormalBox(data, dataIndex, styleUpdater, isInit) {
-    var boxEl = new graphic.Group();
-
-    var itemLayout = data.getItemLayout(dataIndex);
-    var constDim = itemLayout.chartLayout === 'horizontal' ? 1 : 0;
-
-    // Whisker element.
-    boxEl.add(new graphic.Polygon({
-        shape: {
-            points: isInit
-                ? transInit(itemLayout.bodyEnds, constDim, itemLayout)
-                : itemLayout.bodyEnds
-        },
-        style: {strokeNoScale: true},
-        z2: 100
-    }));
-
-    // Box element.
-    var whiskerEnds = zrUtil.map(itemLayout.whiskerEnds, function (ends) {
-        return isInit ? transInit(ends, constDim, itemLayout) : ends;
-    });
-    boxEl.add(new WhiskerPath({
-        shape: makeWhiskerEndsShape(whiskerEnds),
-        style: {strokeNoScale: true},
-        z2: 100
-    }));
-
-    updateNormalBoxData(boxEl, data, dataIndex, styleUpdater, isInit);
-
-    return boxEl;
-}
-
-function updateNormalBoxData(boxEl, data, dataIndex, styleUpdater, isInit) {
-    var seriesModel = boxEl._seriesModel = data.hostModel;
-    var itemLayout = data.getItemLayout(dataIndex);
-    var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];
-    var whiskerEl = boxEl.childAt(WHISKER_INDEX);
-    var bodyEl = boxEl.childAt(BODY_INDEX);
-
-    updateMethod(
-        bodyEl,
-        {shape: {points: itemLayout.bodyEnds}},
-        seriesModel, dataIndex
-    );
-    updateMethod(
-        whiskerEl,
-        {shape: makeWhiskerEndsShape(itemLayout.whiskerEnds)},
-        seriesModel, dataIndex
-    );
-
-    styleUpdater(data, dataIndex, boxEl, whiskerEl, bodyEl);
-}
-
-function transInit(points, dim, itemLayout) {
-    return zrUtil.map(points, function (point) {
-        point = point.slice();
-        point[dim] = itemLayout.initBaseline;
-        return point;
-    });
-}
-
-function makeWhiskerEndsShape(whiskerEnds) {
-    // zr animation only support 2-dim array.
-    var shape = {};
-    zrUtil.each(whiskerEnds, function (ends, i) {
-        shape['ends' + i] = ends;
-    });
-    return shape;
-}
-
-
-
-
-// ---------------
-// -- Large Box --
-// ---------------
-
-var NORMAL_STYLE_ACCESS_PATH = ['itemStyle'];
-var EMPHASIS_STYLE_ACCESS_PATH = ['emphasis', 'itemStyle'];
-
-function createLargeBox(data, largePoints, dataIndex, segmentStart) {
-    var boxEl = new graphic.Line({
-        shape: largeBoxMakeShape(largePoints, dataIndex, segmentStart)
-    });
-
-    boxEl.__largeWhiskerBox = true;
-
-    largeBoxSetStyle(boxEl, data, dataIndex);
-
-    return boxEl;
-}
-
-function largeBoxMakeShape(largePoints, dataIndex, segmentStart) {
-    var baseIdx = (dataIndex - (segmentStart || 0)) * 5;
-    return {
-        x1: largePoints[baseIdx + 1],
-        y1: largePoints[baseIdx + 2],
-        x2: largePoints[baseIdx + 3],
-        y2: largePoints[baseIdx + 4]
-    };
-}
-
-function updateLargeBoxData(boxEl, data, dataIndex) {
-    graphic.updateProps(
-        boxEl,
-        {shape: largeBoxMakeShape(data.getLayout('largePoints'), dataIndex, 
0)},
-        data.hostModel,
-        dataIndex
-    );
-
-    largeBoxSetStyle(boxEl, data, dataIndex);
-}
-
-function largeBoxSetStyle(boxEl, data, dataIndex) {
-    var itemModel = data.getItemModel(dataIndex);
-    var normalItemStyleModel = itemModel.getModel(NORMAL_STYLE_ACCESS_PATH);
-    var color = data.getItemVisual(dataIndex, 'color');
-    var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color;
-
-    // Color must be excluded.
-    // Because symbol provide setColor individually to set fill and stroke
-    var itemStyle = normalItemStyleModel.getItemStyle(
-        ['color', 'color0', 'borderColor', 'borderColor0']
-    );
-
-    boxEl.useStyle(itemStyle);
-    boxEl.style.stroke = borderColor;
-
-    var hoverStyle = 
itemModel.getModel(EMPHASIS_STYLE_ACCESS_PATH).getItemStyle();
-    graphic.setHoverStyle(boxEl, hoverStyle);
-}
-
-
-
-
-// --------------------
-// -- WhiskerBoxDraw --
-// --------------------
-
-/**
- * @constructor
- * @alias module:echarts/chart/helper/WhiskerBoxDraw
- */
-function WhiskerBoxDraw(styleUpdater) {
-    this.group = new graphic.Group();
-    this.styleUpdater = styleUpdater;
-}
-
-var whiskerBoxDrawProto = WhiskerBoxDraw.prototype;
-
-/**
- * Update symbols draw by new data
- * @param {module:echarts/data/List} data
- */
-whiskerBoxDrawProto.updateData = function (data) {
-    var group = this.group;
-    var oldData = this._data;
-    var styleUpdater = this.styleUpdater;
-    var pipelineContext = data.hostModel.pipelineContext;
-    var isLargeRender = pipelineContext.large;
-    var largePoints = isLargeRender && data.getLayout('largePoints');
-
-    // There is no old data only when first rendering or switching from
-    // stream mode to normal mode, where previous elements should be removed.
-    if (!this._data) {
-        group.removeAll();
-    }
-
-    data.diff(oldData)
-        .add(function (newIdx) {
-            if (data.hasValue(newIdx)) {
-                var symbolEl = isLargeRender
-                    ? createLargeBox(data, largePoints, newIdx)
-                    : createNormalBox(data, newIdx, styleUpdater, true);
-                data.setItemGraphicEl(newIdx, symbolEl);
-                group.add(symbolEl);
-            }
-        })
-        .update(function (newIdx, oldIdx) {
-            var symbolEl = oldData.getItemGraphicEl(oldIdx);
-
-            // Empty data
-            if (!data.hasValue(newIdx)) {
-                group.remove(symbolEl);
-                return;
-            }
-
-            if (symbolEl && symbolEl.__largeWhiskerBox ^ isLargeRender) {
-                group.remove(symbolEl);
-                symbolEl = null;
-            }
-
-            if (!symbolEl) {
-                symbolEl = isLargeRender
-                    ? createLargeBox(data, largePoints, newIdx)
-                    : createNormalBox(data, newIdx, styleUpdater);
-            }
-            else {
-                isLargeRender
-                    ? updateLargeBoxData(symbolEl, data, newIdx)
-                    : updateNormalBoxData(symbolEl, data, newIdx, 
styleUpdater);
-            }
-
-            // Add back
-            group.add(symbolEl);
-
-            data.setItemGraphicEl(newIdx, symbolEl);
-        })
-        .remove(function (oldIdx) {
-            var el = oldData.getItemGraphicEl(oldIdx);
-            el && group.remove(el);
-        })
-        .execute();
-
-    this._data = data;
-};
-
-whiskerBoxDrawProto.incrementalPrepareUpdate = function (seriesModel, ecModel, 
api) {
-    this.group.removeAll();
-    this._data = null;
-};
-
-whiskerBoxDrawProto.incrementalUpdate = function (params, seriesModel, 
ecModel, api) {
-    var data = seriesModel.getData();
-    var pipelineContext = seriesModel.pipelineContext;
-    var isLargeRender = pipelineContext.large;
-    var largePoints = isLargeRender && data.getLayout('largePoints');
-
-    for (var idx = params.start; idx < params.end; idx++) {
-        var symbolEl = isLargeRender
-            ? createLargeBox(data, largePoints, idx, params.start)
-            : createNormalBox(data, idx, this.styleUpdater, true);
-        symbolEl.incremental = true;
-        this.group.add(symbolEl);
-    }
-};
-
-/**
- * Remove symbols.
- * @param {module:echarts/data/List} data
- */
-whiskerBoxDrawProto.remove = function () {
-    var group = this.group;
-    var data = this._data;
-    this._data = null;
-    data && data.eachItemGraphicEl(function (el) {
-        el && group.remove(el);
-    });
-};
-
-export default WhiskerBoxDraw;
diff --git a/src/chart/helper/whiskerBoxCommon.js 
b/src/chart/helper/whiskerBoxCommon.js
index b9fd4e2..714cd44 100644
--- a/src/chart/helper/whiskerBoxCommon.js
+++ b/src/chart/helper/whiskerBoxCommon.js
@@ -1,6 +1,5 @@
 
 import createListSimply from '../helper/createListSimply';
-import WhiskerBoxDraw from '../helper/WhiskerBoxDraw';
 import * as zrUtil from 'zrender/src/core/util';
 import {getDimensionTypeByAxis} from '../../data/helper/dimensionHelper';
 
@@ -110,34 +109,3 @@ export var seriesModelMixin = {
     }
 
 };
-
-export var viewMixin = {
-
-    init: function () {
-        /**
-         * Old data.
-         * @private
-         * @type {module:echarts/chart/helper/WhiskerBoxDraw}
-         */
-        var whiskerBoxDraw = this._whiskerBoxDraw = new WhiskerBoxDraw(
-            this.getStyleUpdater()
-        );
-        this.group.add(whiskerBoxDraw.group);
-    },
-
-    render: function (seriesModel, ecModel, api) {
-        this._whiskerBoxDraw.updateData(seriesModel.getData());
-    },
-
-    incrementalPrepareRender: function (seriesModel, ecModel, api) {
-        this._whiskerBoxDraw.incrementalPrepareUpdate(seriesModel, ecModel, 
api);
-    },
-
-    incrementalRender: function (params, seriesModel, ecModel, api) {
-        this._whiskerBoxDraw.incrementalUpdate(params, seriesModel, ecModel, 
api);
-    },
-
-    remove: function (ecModel) {
-        this._whiskerBoxDraw.remove();
-    }
-};
diff --git a/test/candlestick.html b/test/candlestick.html
index 14d3bbc..3150b86 100644
--- a/test/candlestick.html
+++ b/test/candlestick.html
@@ -150,6 +150,11 @@
                             name: '上证指数',
                             type: 'candlestick',
                             data: data.values,
+                            // itemStyle: {
+                            //     borderColor: '#345',
+                            //     borderColor0: '#998',
+                            //     borderWidth: 2
+                            // },
                             tooltip: {
                                 formatter: function (param) {
                                     var param = param[0];

-- 
To stop receiving notification emails like this one, please contact
sushu...@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org
For additional commands, e-mail: commits-h...@echarts.apache.org

Reply via email to