From bff0884b2a6fac7401b4f29aa70249656369fed9 Mon Sep 17 00:00:00 2001 From: lang Date: Sat, 26 Dec 2015 20:36:37 +0800 Subject: [PATCH] Legend add newline flag --- src/component/legend/LegendView.js | 7 +++++++ src/util/layout.js | 12 ++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/component/legend/LegendView.js b/src/component/legend/LegendView.js index a2d998cd0..2a1d99a88 100644 --- a/src/component/legend/LegendView.js +++ b/src/component/legend/LegendView.js @@ -59,6 +59,13 @@ define(function (require) { var legendDrawedMap = {}; zrUtil.each(legendModel.getData(), function (itemModel) { var seriesName = itemModel.get('name'); + // Use empty string or \n as a newline string + if (seriesName === '' || seriesName === '\n') { + group.add(new graphic.Group({ + newline: true + })); + } + var seriesModel = ecModel.getSeriesByName(seriesName)[0]; legendDataMap[seriesName] = itemModel; diff --git a/src/util/layout.js b/src/util/layout.js index 9e3ede9aa..860e4f781 100644 --- a/src/util/layout.js +++ b/src/util/layout.js @@ -29,8 +29,8 @@ define(function(require) { var nextY; if (orient === 'horizontal') { nextX = x + rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0); - // Wrap - if (nextX > maxWidth) { + // Wrap when width exceeds maxWidth or meet a `newline` group + if (nextX > maxWidth || child.newline) { x = 0; y += currentLineMaxSize + gap; currentLineMaxSize = 0; @@ -41,8 +41,8 @@ define(function(require) { } else { nextY = y + rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0); - // Wrap - if (nextY > maxHeight) { + // Wrap when width exceeds maxHeight or meet a `newline` group + if (nextY > maxHeight || child.newline) { x += currentLineMaxSize + gap; y = 0; currentLineMaxSize = 0; @@ -52,6 +52,10 @@ define(function(require) { } } + if (child.newline) { + return; + } + position[0] = x; position[1] = y; -- GitLab