diff --git a/js/lab/view/LabProjectilePanel.js b/js/lab/view/LabProjectilePanel.js
index 4121c4b6..53a9def3 100644
--- a/js/lab/view/LabProjectilePanel.js
+++ b/js/lab/view/LabProjectilePanel.js
@@ -13,7 +13,6 @@ define( require => {
const ComboBox = require( 'SUN/ComboBox' );
const ComboBoxItem = require( 'SUN/ComboBoxItem' );
const Dimension2 = require( 'DOT/Dimension2' );
- const DownUpListener = require( 'SCENERY/input/DownUpListener' );
const FontAwesomeNode = require( 'SUN/FontAwesomeNode' );
const HBox = require( 'SCENERY/nodes/HBox' );
const HStrut = require( 'SCENERY/nodes/HStrut' );
@@ -25,6 +24,7 @@ define( require => {
const NumberDisplay = require( 'SCENERY_PHET/NumberDisplay' );
const Panel = require( 'SUN/Panel' );
const PhetColorScheme = require( 'SCENERY_PHET/PhetColorScheme' );
+ const FireListener = require( 'SCENERY/listeners/FireListener' );
const projectileMotion = require( 'PROJECTILE_MOTION/projectileMotion' );
const ProjectileMotionConstants = require( 'PROJECTILE_MOTION/common/ProjectileMotionConstants' );
const RectangularPushButton = require( 'SUN/buttons/RectangularPushButton' );
@@ -251,10 +251,11 @@ define( require => {
numberMaxWidth: this.textDisplayWidth - 2 * this.options.readoutXMargin
} );
+ const numberDisplayTandem = tandem.createTandem( 'numberDisplay' );
const numberDisplay = new NumberDisplay(
valueProperty,
range,
- merge( valueLabelOptions, { tandem: tandem.createTandem( 'numberDisplay' ), valuePattern: valuePattern } )
+ merge( valueLabelOptions, { tandem: numberDisplayTandem, valuePattern: valuePattern } )
);
const editValue = () => {
@@ -277,8 +278,11 @@ define( require => {
tandem: tandem.createTandem( 'editButton' )
} );
- numberDisplay.addInputListener( new DownUpListener( { // no removeInputListener required
- down: editValue
+ numberDisplay.addInputListener( new FireListener( { // no removeInputListener required
+ fire: editValue,
+ fireOnDown: true,
+ tandem: numberDisplayTandem.createTandem( 'fireListener' ),
+ phetioDocumentation: 'When fired, calls listener to open UI to edit the value for this NumberDisplay'
} ) );
const valueNode = new Node( { children: [ numberDisplay, editButton ] } );
diff --git a/js/phet-io/projectile-motion-phet-io-elements-baseline.js b/js/phet-io/projectile-motion-phet-io-elements-baseline.js
index 4439ce9b..df638c7e 100644
--- a/js/phet-io/projectile-motion-phet-io-elements-baseline.js
+++ b/js/phet-io/projectile-motion-phet-io-elements-baseline.js
@@ -23700,6 +23700,45 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NumberDisplayIO"
},
+ "projectileMotion.labScreen.view.projectilePanel.customControl.altitudeControl.numberDisplay.fireListener.firedEmitter": {
+ "phetioDocumentation": "A function that executes. No arguments.",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "EmitterIO<>"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.altitudeControl.numberDisplay.fireListener.pressAction": {
+ "phetioDocumentation": "Executes whenever a press occurs. The first argument when executing can be used to convey info about the Event. The arguments are:
- event: EventIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.altitudeControl.numberDisplay.fireListener.releaseAction": {
+ "phetioDocumentation": "Executes whenever a release occurs. The arguments are:
- event: NullableIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO>"
+ },
"projectileMotion.labScreen.view.projectilePanel.customControl.altitudeControl.numberDisplay.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -24038,6 +24077,45 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NumberDisplayIO"
},
+ "projectileMotion.labScreen.view.projectilePanel.customControl.diameterControl.numberDisplay.fireListener.firedEmitter": {
+ "phetioDocumentation": "A function that executes. No arguments.",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "EmitterIO<>"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.diameterControl.numberDisplay.fireListener.pressAction": {
+ "phetioDocumentation": "Executes whenever a press occurs. The first argument when executing can be used to convey info about the Event. The arguments are:
- event: EventIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.diameterControl.numberDisplay.fireListener.releaseAction": {
+ "phetioDocumentation": "Executes whenever a release occurs. The arguments are:
- event: NullableIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO>"
+ },
"projectileMotion.labScreen.view.projectilePanel.customControl.diameterControl.numberDisplay.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -24376,6 +24454,45 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NumberDisplayIO"
},
+ "projectileMotion.labScreen.view.projectilePanel.customControl.dragCoefficientControl.numberDisplay.fireListener.firedEmitter": {
+ "phetioDocumentation": "A function that executes. No arguments.",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "EmitterIO<>"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.dragCoefficientControl.numberDisplay.fireListener.pressAction": {
+ "phetioDocumentation": "Executes whenever a press occurs. The first argument when executing can be used to convey info about the Event. The arguments are:
- event: EventIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.dragCoefficientControl.numberDisplay.fireListener.releaseAction": {
+ "phetioDocumentation": "Executes whenever a release occurs. The arguments are:
- event: NullableIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO>"
+ },
"projectileMotion.labScreen.view.projectilePanel.customControl.dragCoefficientControl.numberDisplay.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -24714,6 +24831,45 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NumberDisplayIO"
},
+ "projectileMotion.labScreen.view.projectilePanel.customControl.gravityControl.numberDisplay.fireListener.firedEmitter": {
+ "phetioDocumentation": "A function that executes. No arguments.",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "EmitterIO<>"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.gravityControl.numberDisplay.fireListener.pressAction": {
+ "phetioDocumentation": "Executes whenever a press occurs. The first argument when executing can be used to convey info about the Event. The arguments are:
- event: EventIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.gravityControl.numberDisplay.fireListener.releaseAction": {
+ "phetioDocumentation": "Executes whenever a release occurs. The arguments are:
- event: NullableIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO>"
+ },
"projectileMotion.labScreen.view.projectilePanel.customControl.gravityControl.numberDisplay.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -25052,6 +25208,45 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NumberDisplayIO"
},
+ "projectileMotion.labScreen.view.projectilePanel.customControl.massControl.numberDisplay.fireListener.firedEmitter": {
+ "phetioDocumentation": "A function that executes. No arguments.",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "EmitterIO<>"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.massControl.numberDisplay.fireListener.pressAction": {
+ "phetioDocumentation": "Executes whenever a press occurs. The first argument when executing can be used to convey info about the Event. The arguments are:
- event: EventIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "projectileMotion.labScreen.view.projectilePanel.customControl.massControl.numberDisplay.fireListener.releaseAction": {
+ "phetioDocumentation": "Executes whenever a release occurs. The arguments are:
- event: NullableIO
",
+ "phetioDynamicElement": false,
+ "phetioDynamicElementArchetype": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO>"
+ },
"projectileMotion.labScreen.view.projectilePanel.customControl.massControl.numberDisplay.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,