From 29e0648a1490b4ab2bbb1ef9e6cc0c44e248e46d Mon Sep 17 00:00:00 2001 From: pixelzoom Date: Tue, 5 Apr 2022 09:11:00 -0600 Subject: [PATCH] instrument ZoomLevelProperty, make it numberType:Integer, https://github.com/phetsims/fourier-making-waves/issues/221 --- js/common/view/ZoomLevelProperty.js | 5 ++--- js/discrete/view/DiscreteHarmonicsChartNode.js | 5 ++++- js/discrete/view/DiscreteSumChartNode.js | 5 ++++- js/wavepacket/view/WavePacketComponentsChartNode.js | 5 ++++- js/wavepacket/view/WavePacketSumChartNode.js | 5 ++++- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/js/common/view/ZoomLevelProperty.js b/js/common/view/ZoomLevelProperty.js index 1ffb6936..f2207aa7 100644 --- a/js/common/view/ZoomLevelProperty.js +++ b/js/common/view/ZoomLevelProperty.js @@ -25,14 +25,13 @@ class ZoomLevelProperty extends NumberProperty { */ constructor( axisDescriptionProperty, options ) { assert && AssertUtils.assertPropertyOf( axisDescriptionProperty, AxisDescription ); - assert && assert( axisDescriptionProperty.validValues ); const axisDescriptions = axisDescriptionProperty.validValues; assert && assert( axisDescriptions, 'axisDescriptionProperty should have been defined with validValues option' ); super( axisDescriptions.indexOf( axisDescriptionProperty.value ), { - range: new Range( 0, axisDescriptions.length - 1 ), - isValidValue: value => value >= 0 && value < axisDescriptions.length + numberType: 'Integer', + range: new Range( 0, axisDescriptions.length - 1 ) } ); // Keep axisDescriptionProperty and zoomLevelProperty in sync, while avoiding reentrant behavior. diff --git a/js/discrete/view/DiscreteHarmonicsChartNode.js b/js/discrete/view/DiscreteHarmonicsChartNode.js index c6be7ef0..807a62eb 100644 --- a/js/discrete/view/DiscreteHarmonicsChartNode.js +++ b/js/discrete/view/DiscreteHarmonicsChartNode.js @@ -28,11 +28,14 @@ class DiscreteHarmonicsChartNode extends HarmonicsChartNode { constructor( harmonicsChart, options ) { assert && assert( harmonicsChart instanceof DiscreteHarmonicsChart ); + assert && assert( options && options.tandem ); options = merge( { // DomainChartNode options - xZoomLevelProperty: new ZoomLevelProperty( harmonicsChart.xAxisDescriptionProperty ), + xZoomLevelProperty: new ZoomLevelProperty( harmonicsChart.xAxisDescriptionProperty, { + tandem: options.tandem.createTandem( 'xZoomLevelProperty' ) + } ), xTickLabelSetOptions: { createLabel: value => TickLabelUtils.createTickLabelForDomain( value, X_TICK_LABEL_DECIMALS, harmonicsChart.xAxisTickLabelFormatProperty.value, diff --git a/js/discrete/view/DiscreteSumChartNode.js b/js/discrete/view/DiscreteSumChartNode.js index 790cc6a5..38e2d346 100644 --- a/js/discrete/view/DiscreteSumChartNode.js +++ b/js/discrete/view/DiscreteSumChartNode.js @@ -29,11 +29,14 @@ class DiscreteSumChartNode extends SumChartNode { constructor( sumChart, options ) { assert && assert( sumChart instanceof DiscreteSumChart ); + assert && assert( options && options.tandem ); options = merge( { // DomainChartNode options - xZoomLevelProperty: new ZoomLevelProperty( sumChart.xAxisDescriptionProperty ), + xZoomLevelProperty: new ZoomLevelProperty( sumChart.xAxisDescriptionProperty, { + tandem: options.tandem.createTandem( 'xZoomLevelProperty' ) + } ), xTickLabelSetOptions: { createLabel: value => TickLabelUtils.createTickLabelForDomain( value, X_TICK_LABEL_DECIMALS, sumChart.xAxisTickLabelFormatProperty.value, diff --git a/js/wavepacket/view/WavePacketComponentsChartNode.js b/js/wavepacket/view/WavePacketComponentsChartNode.js index 4e2de3a4..670fd732 100644 --- a/js/wavepacket/view/WavePacketComponentsChartNode.js +++ b/js/wavepacket/view/WavePacketComponentsChartNode.js @@ -36,13 +36,16 @@ class WavePacketComponentsChartNode extends DomainChartNode { constructor( componentsChart, options ) { assert && assert( componentsChart instanceof WavePacketComponentsChart ); + assert && assert( options && options.tandem ); // Fields of interest in componentsChart, to improve readability const xAxisDescriptionProperty = componentsChart.xAxisDescriptionProperty; const componentDataSetsProperty = componentsChart.componentDataSetsProperty; options = merge( { - xZoomLevelProperty: new ZoomLevelProperty( xAxisDescriptionProperty ), + xZoomLevelProperty: new ZoomLevelProperty( xAxisDescriptionProperty, { + tandem: options.tandem.createTandem( 'xZoomLevelProperty' ) + } ), xTickLabelSetOptions: { createLabel: value => TickLabelUtils.createNumericTickLabel( value, X_TICK_LABEL_DECIMALS ) }, diff --git a/js/wavepacket/view/WavePacketSumChartNode.js b/js/wavepacket/view/WavePacketSumChartNode.js index 1a615e99..7c75f78f 100644 --- a/js/wavepacket/view/WavePacketSumChartNode.js +++ b/js/wavepacket/view/WavePacketSumChartNode.js @@ -33,6 +33,7 @@ class WavePacketSumChartNode extends DomainChartNode { constructor( sumChart, options ) { assert && assert( sumChart instanceof WavePacketSumChart ); + assert && assert( options && options.tandem ); // Fields of interest in sumChart, to improve readability const domainProperty = sumChart.domainProperty; @@ -47,7 +48,9 @@ class WavePacketSumChartNode extends DomainChartNode { options = merge( { // x axis with dynamic scale and zoom buttons - xZoomLevelProperty: new ZoomLevelProperty( xAxisDescriptionProperty ), + xZoomLevelProperty: new ZoomLevelProperty( xAxisDescriptionProperty, { + tandem: options.tandem.createTandem( 'xZoomLevelProperty' ) + } ), xTickLabelSetOptions: { createLabel: value => TickLabelUtils.createNumericTickLabel( value, X_TICK_LABEL_DECIMALS ) },