Skip to content

Commit

Permalink
Fix #6529 Fix #6516 Fix #6532 (fix flatterning textStyle, and emphasi…
Browse files Browse the repository at this point in the history
…s without 'show' set in normal)
  • Loading branch information
100pah committed Aug 29, 2017
1 parent 2ab9460 commit 318f207
Show file tree
Hide file tree
Showing 15 changed files with 279 additions and 234 deletions.
40 changes: 13 additions & 27 deletions src/chart/bar/helper.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
define(function (require) {

var zrUtil = require('zrender/core/util');
var graphic = require('../../util/graphic');

var helper = {};
Expand All @@ -11,35 +10,22 @@ define(function (require) {
var labelModel = itemModel.getModel('label.normal');
var hoverLabelModel = itemModel.getModel('label.emphasis');

if (labelModel.get('show')) {
setLabel(
normalStyle, labelModel, color,
zrUtil.retrieve2(
seriesModel.getFormattedLabel(dataIndex, 'normal'),
seriesModel.getRawValue(dataIndex)
),
labelPositionOutside
);
}
else {
normalStyle.text = null;
}
graphic.setLabelStyle(
normalStyle, hoverStyle, labelModel, hoverLabelModel,
{
labelFetcher: seriesModel,
labelDataIndex: dataIndex,
defaultText: seriesModel.getRawValue(dataIndex),
isRectText: true,
autoColor: color
}
);

if (hoverLabelModel.get('show')) {
setLabel(
hoverStyle, hoverLabelModel, false,
seriesModel.getFormattedLabel(dataIndex, 'emphasis'),
labelPositionOutside
);
}
else {
hoverStyle.text = null;
}
fixPosition(normalStyle);
fixPosition(hoverStyle);
};

function setLabel(style, model, defaultColor, labelText, labelPositionOutside) {
graphic.setText(style, model, defaultColor);
style.text = labelText;
function fixPosition(style, labelPositionOutside) {
if (style.textPosition === 'outside') {
style.textPosition = labelPositionOutside;
}
Expand Down
11 changes: 9 additions & 2 deletions src/chart/custom.js
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,11 @@ define(function (require) {
opacity != null && (itemStyle.opacity = opacity);

if (currLabelValueDim != null) {
graphicUtil.setText(itemStyle, currLabelNormalModel, currVisualColor);
graphicUtil.setTextStyle(itemStyle, currLabelNormalModel, null, {
autoColor: currVisualColor,
isRectText: true
});

itemStyle.text = currLabelNormalModel.getShallow('show')
? zrUtil.retrieve2(
customSeries.getFormattedLabel(dataIndexInside, 'normal'),
Expand All @@ -366,7 +370,10 @@ define(function (require) {
var itemStyle = currItemModel.getModel(ITEM_STYLE_EMPHASIS_PATH).getItemStyle();

if (currLabelValueDim != null) {
graphicUtil.setText(itemStyle, currLabelEmphasisModel, false);
graphicUtil.setTextStyle(itemStyle, currLabelEmphasisModel, null, {
isRectText: true
}, true);

itemStyle.text = currLabelEmphasisModel.getShallow('show')
? zrUtil.retrieve3(
customSeries.getFormattedLabel(dataIndexInside, 'emphasis'),
Expand Down
29 changes: 15 additions & 14 deletions src/chart/funnel/FunnelView.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,17 +129,22 @@ define(function (require) {
var labelLineHoverModel = itemModel.getModel('labelLine.emphasis');
var visualColor = data.getItemVisual(idx, 'color');

graphic.setTextStyle(labelText.style, labelModel, {
textAlign: labelLayout.textAlign,
textVerticalAlign: labelLayout.verticalAlign,
text: zrUtil.retrieve(data.hostModel.getFormattedLabel(idx, 'normal'), data.getName(idx))
}, {
defaultTextColor: visualColor,
autoColor: visualColor,
checkInside: function (model, opt) {
return labelLayout.inside;
graphic.setLabelStyle(
labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel,
{
labelFetcher: data.hostModel,
labelDataIndex: idx,
defaultText: data.getName(idx),
autoColor: visualColor,
checkInside: function (model, opt) {
return labelLayout.inside;
}
},
{
textAlign: labelLayout.textAlign,
textVerticalAlign: labelLayout.verticalAlign
}
});
);

labelText.ignore = labelText.normalIgnore = !labelModel.get('show');
labelText.hoverIgnore = !labelHoverModel.get('show');
Expand All @@ -153,10 +158,6 @@ define(function (require) {
});
labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());

labelText.hoverStyle = graphic.setTextStyle({}, labelHoverModel, {
text: data.hostModel.getFormattedLabel(idx, 'emphasis')
}, {forMerge: true});

labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();
};

Expand Down
19 changes: 9 additions & 10 deletions src/chart/heatmap/HeatmapView.js
Original file line number Diff line number Diff line change
Expand Up @@ -192,18 +192,17 @@ define(function (require) {
defaultText = rawValue[2];
}

graphic.setText(style, labelModel);
style.text = labelModel.getShallow('show')
? seriesModel.getFormattedLabel(idx, 'normal') || defaultText
: null;

graphic.setText(hoverStl, hoverLabelModel, false);
hoverStl.text = hoverLabelModel.getShallow('show')
? seriesModel.getFormattedLabel(idx, 'emphasis')
: null;
graphic.setLabelStyle(
style, hoverStl, labelModel, hoverLabelModel,
{
labelFetcher: seriesModel,
labelDataIndex: idx,
defaultText: defaultText,
isRectText: true
}
);

rect.setStyle(style);

graphic.setHoverStyle(rect, data.hasItemOption ? hoverStl : zrUtil.extend({}, hoverStl));

group.add(rect);
Expand Down
25 changes: 15 additions & 10 deletions src/chart/helper/Line.js
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,8 @@ define(function (require) {
var label = this.childOfName('label');
var defaultLabelColor;
var defaultText;
var normalText;
var emphasisText;

if (showLabel || hoverShowLabel) {
var rawVal = seriesModel.getRawValue(idx);
Expand All @@ -307,17 +309,22 @@ define(function (require) {
? numberUtil.round(rawVal)
: rawVal;
defaultLabelColor = visualColor || '#000';

normalText = zrUtil.retrieve2(
seriesModel.getFormattedLabel(idx, 'normal', lineData.dataType),
defaultText
);
emphasisText = zrUtil.retrieve2(
seriesModel.getFormattedLabel(idx, 'emphasis', lineData.dataType),
normalText
);
}

// label.afterUpdate = lineAfterUpdate;
if (showLabel) {
if (showLabel || hoverShowLabel) {
var labelStyle = graphic.setTextStyle(label.style, labelModel, {
text: zrUtil.retrieve2(
seriesModel.getFormattedLabel(idx, 'normal', lineData.dataType),
defaultText
)
text: normalText
}, {
defaultTextColor: defaultLabelColor,
autoColor: defaultLabelColor
});

Expand All @@ -329,13 +336,11 @@ define(function (require) {
else {
label.setStyle('text', null);
}

if (hoverShowLabel) {
// Only these properties supported in this emphasis style here.
label.hoverStyle = {
text: zrUtil.retrieve2(
seriesModel.getFormattedLabel(idx, 'emphasis', lineData.dataType),
defaultText
),
text: emphasisText,
textFill: hoverLabelModel.getTextColor(true),
// For merging hover style to normal style, do not use
// `hoverLabelModel.getFont()` here.
Expand Down
28 changes: 10 additions & 18 deletions src/chart/helper/Symbol.js
Original file line number Diff line number Diff line change
Expand Up @@ -226,24 +226,16 @@ define(function (require) {
var valueDim = labelHelper.findLabelValueDim(data);

if (valueDim != null) {
graphic.setText(elStyle, labelModel, color);
var normalText = seriesModel.getFormattedLabel(idx, 'normal');
var value = data.get(valueDim, idx);
elStyle.text = labelModel.getShallow('show')
? zrUtil.retrieve2(
normalText,
value
)
: null;

graphic.setText(hoverItemStyle, hoverLabelModel, false);
hoverItemStyle.text = hoverLabelModel.getShallow('show')
? zrUtil.retrieve3(
seriesModel.getFormattedLabel(idx, 'emphasis'),
normalText,
value
)
: null;
graphic.setLabelStyle(
elStyle, hoverItemStyle, labelModel, hoverLabelModel,
{
labelFetcher: seriesModel,
labelDataIndex: idx,
defaultText: data.get(valueDim, idx),
isRectText: true,
autoColor: color
}
);
}

symbolPath.off('mouseover')
Expand Down
28 changes: 13 additions & 15 deletions src/chart/map/MapView.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,16 +116,19 @@ define(function (require) {

var polygonGroups = fullData.getItemGraphicEl(fullIndex);

var normalText = zrUtil.retrieve2(
mapModel.getFormattedLabel(idx, 'normal'),
name
);
var emphasisText = zrUtil.retrieve2(
mapModel.getFormattedLabel(idx, 'emphasis'),
normalText
);

var onEmphasis = function () {
var hoverStyle = graphic.setTextStyle({}, hoverLabelModel, {
text: hoverLabelModel.get('show')
? zrUtil.retrieve3(
mapModel.getFormattedLabel(idx, 'emphasis'),
mapModel.getFormattedLabel(idx, 'normal'),
name
)
: null
}, {isRectText: true, forMerge: true});
text: hoverLabelModel.get('show') ? emphasisText : null
}, {isRectText: true, checkInside: false}, true);
circle.style.extendFrom(hoverStyle);
// Make label upper than others if overlaps.
circle.__mapOriginalZ2 = circle.z2;
Expand All @@ -134,14 +137,9 @@ define(function (require) {

var onNormal = function () {
graphic.setTextStyle(circle.style, labelModel, {
text: labelModel.get('show')
? zrUtil.retrieve2(
mapModel.getFormattedLabel(idx, 'normal'),
name
)
: null,
text: labelModel.get('show') ? normalText : null,
textPosition: labelModel.getShallow('position') || 'bottom'
}, {isRectText: true});
}, {isRectText: true, checkInside: false});

if (circle.__mapOriginalZ2 != null) {
circle.z2 = circle.__mapOriginalZ2;
Expand Down
31 changes: 16 additions & 15 deletions src/chart/pie/PieView.js
Original file line number Diff line number Diff line change
Expand Up @@ -231,18 +231,23 @@ define(function (require) {
var labelLineHoverModel = itemModel.getModel('labelLine.emphasis');
var visualColor = data.getItemVisual(idx, 'color');

graphic.setTextStyle(labelText.style, labelModel, {
textVerticalAlign: labelLayout.verticalAlign,
textAlign: labelLayout.textAlign,
opacity: data.getItemVisual(idx, 'opacity'),
text: zrUtil.retrieve(data.hostModel.getFormattedLabel(idx, 'normal'), data.getName(idx))
}, {
defaultTextColor: visualColor,
autoColor: visualColor,
checkInside: function (model, opt) {
return labelLayout.inside;
graphic.setLabelStyle(
labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel,
{
labelFetcher: data.hostModel,
labelDataIndex: idx,
defaultText: data.getName(idx),
autoColor: visualColor,
checkInside: function (model, opt) {
return labelLayout.inside;
}
},
{
textAlign: labelLayout.textAlign,
textVerticalAlign: labelLayout.verticalAlign,
opacity: data.getItemVisual(idx, 'opacity')
}
});
);

labelText.ignore = labelText.normalIgnore = !labelModel.get('show');
labelText.hoverIgnore = !labelHoverModel.get('show');
Expand All @@ -257,10 +262,6 @@ define(function (require) {
});
labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());

labelText.hoverStyle = graphic.setTextStyle({}, labelHoverModel, {
text: data.hostModel.getFormattedLabel(idx, 'emphasis')
}, {forMerge: true});

labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();

var smooth = labelLineModel.get('smooth');
Expand Down
30 changes: 11 additions & 19 deletions src/chart/radar/RadarView.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,25 +174,17 @@ define(function (require) {
symbolPath.setStyle(itemStyle);
symbolPath.hoverStyle = zrUtil.clone(itemHoverStyle);

var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);
graphic.setText(symbolPath.style, labelModel, color);
symbolPath.setStyle({
text: labelModel.get('show')
? zrUtil.retrieve(
seriesModel.getFormattedLabel(
idx, 'normal', null, symbolPath.__dimIdx
),
defaultText
)
: null
});

graphic.setText(symbolPath.hoverStyle, labelHoverModel, true);
symbolPath.hoverStyle.text = labelHoverModel.get('show')
? seriesModel.getFormattedLabel(
idx, 'emphasis', null, symbolPath.__dimIdx
)
: null;
graphic.setLabelStyle(
symbolPath.style, symbolPath.hoverStyle, labelModel, labelHoverModel,
{
labelFetcher: data.hostModel,
labelDataIndex: idx,
labelDimIndex: symbolPath.__dimIdx,
defaultText: data.get(data.dimensions[symbolPath.__dimIdx], idx),
autoColor: color,
isRectText: true
}
);
});

function onEmphasis() {
Expand Down
Loading

0 comments on commit 318f207

Please sign in to comment.