Skip to content

Commit 5f61a95

Browse files
committed
Cascade composite rescale() to children
1 parent d60c7ec commit 5f61a95

4 files changed

+88
-3
lines changed

spec/composite-chart-spec.js

+45
Original file line numberDiff line numberDiff line change
@@ -778,4 +778,49 @@ describe('dc.compositeChart', function () {
778778
});
779779
});
780780
});
781+
782+
describe('rescale', function () {
783+
beforeEach(function () {
784+
expect(chart.resizing()).toBe(true);
785+
chart.children().forEach(function (child) {
786+
expect(child.resizing()).toBe(true);
787+
});
788+
789+
chart.render();
790+
791+
expect(chart.resizing()).toBe(false);
792+
chart.children().forEach(function (child) {
793+
expect(child.resizing()).toBe(false);
794+
});
795+
796+
chart.rescale();
797+
});
798+
799+
it('should rescale child charts', function () {
800+
expect(chart.resizing()).toBe(true);
801+
802+
chart.children().forEach(function (child) {
803+
expect(child.resizing()).toBe(true);
804+
});
805+
});
806+
});
807+
808+
describe('re-compose rendered chart', function() {
809+
beforeEach(function () {
810+
chart.render();
811+
expect(chart.resizing()).toBe(false);
812+
813+
chart.compose([
814+
dc.lineChart(chart).group(dateGroup)
815+
]);
816+
});
817+
818+
it('should rescale child charts', function () {
819+
expect(chart.resizing()).toBe(true);
820+
821+
chart.children().forEach(function (child) {
822+
expect(child.resizing()).toBe(true);
823+
});
824+
});
825+
});
781826
});

spec/coordinate-grid-chart-spec.js

+9
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,10 @@ describe('dc.coordinateGridChart', function () {
538538
describe('rescaling', function () {
539539
var originalUnitCount;
540540
beforeEach(function () {
541+
expect(chart.resizing()).toBe(true);
541542
chart.render();
543+
expect(chart.resizing()).toBe(false);
544+
542545
originalUnitCount = chart.xUnitCount();
543546
chart.x().domain([makeDate(2012, 4, 20), makeDate(2012, 6, 15)]);
544547
chart.rescale();
@@ -547,6 +550,12 @@ describe('dc.coordinateGridChart', function () {
547550
it('should reset x unit count to reflect updated x domain', function () {
548551
expect(chart.xUnitCount()).not.toEqual(originalUnitCount);
549552
});
553+
554+
it('should be resizing until render', function() {
555+
expect(chart.resizing()).toBe(true);
556+
chart.render();
557+
expect(chart.resizing()).toBe(false);
558+
});
550559
});
551560

552561
describe('range chart setup', function () {

src/composite-chart.js

+27
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,31 @@ dc.compositeChart = function (parent, chartGroup) {
6868
return g;
6969
});
7070

71+
dc.override(_chart, 'rescale', function () {
72+
_chart._rescale();
73+
74+
var _children = _chart.children();
75+
_children.forEach(function (child) {
76+
child.rescale();
77+
});
78+
79+
return _chart;
80+
});
81+
82+
dc.override(_chart, 'resizing', function (resizing) {
83+
if (!arguments.length) {
84+
return _chart._resizing();
85+
}
86+
_chart._resizing(resizing);
87+
88+
var _children = _chart.children();
89+
_children.forEach(function (child) {
90+
child.resizing(resizing);
91+
});
92+
93+
return _chart;
94+
});
95+
7196
_chart._brushing = function () {
7297
// Avoids infinite recursion (mutual recursion between range and focus operations)
7398
// Source Event will be null when brush.move is called programmatically (see below as well).
@@ -349,6 +374,8 @@ dc.compositeChart = function (parent, chartGroup) {
349374

350375
child.options(_childOptions);
351376
});
377+
378+
_chart.rescale();
352379
return _chart;
353380
};
354381

src/coordinate-grid-mixin.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,12 @@ dc.coordinateGridMixin = function (_chart) {
9191
return _chart;
9292
};
9393

94-
_chart.resizing = function () {
95-
return _resizing;
94+
_chart.resizing = function (resizing) {
95+
if (!arguments.length) {
96+
return _resizing;
97+
}
98+
_resizing = resizing;
99+
return _chart;
96100
};
97101

98102
/**
@@ -1220,7 +1224,7 @@ dc.coordinateGridMixin = function (_chart) {
12201224
_chart.redrawBrush(_chart.filter());
12211225
}
12221226
_chart.fadeDeselectedArea(_chart.filter());
1223-
_resizing = false;
1227+
_chart.resizing(false);
12241228
}
12251229

12261230
function configureMouseZoom () {

0 commit comments

Comments
 (0)