From eb6a696c0efeea24ce8c54d079e9d9baefc5757a Mon Sep 17 00:00:00 2001 From: pixelzoom Date: Tue, 7 Dec 2021 12:42:43 -0700 Subject: [PATCH] delete RulerLayer, https://github.com/phetsims/geometric-optics/issues/263 --- js/common/view/GeometricOpticsScreenView.ts | 19 ++++--- js/common/view/RulersLayer.ts | 56 --------------------- js/common/view/RulersToolbox.ts | 15 +++--- 3 files changed, 19 insertions(+), 71 deletions(-) delete mode 100644 js/common/view/RulersLayer.ts diff --git a/js/common/view/GeometricOpticsScreenView.ts b/js/common/view/GeometricOpticsScreenView.ts index da41eafa..49d70776 100644 --- a/js/common/view/GeometricOpticsScreenView.ts +++ b/js/common/view/GeometricOpticsScreenView.ts @@ -28,7 +28,6 @@ import GeometricOpticsModel from '../model/GeometricOpticsModel.js'; import DebugPointNode from './DebugPointNode.js'; import FocalPointNode from './FocalPointNode.js'; import GeometricOpticsControlPanel from './GeometricOpticsControlPanel.js'; -import RulersLayer from './RulersLayer.js'; import LabelsNode from './LabelsNode.js'; import LightRaysNode from './LightRaysNode.js'; import OpticalAxis from './OpticalAxis.js'; @@ -44,6 +43,7 @@ import VisibleProperties from './VisibleProperties.js'; import RaysModeEnum from '../model/RaysModeEnum.js'; import Lens from '../../lens/model/Lens.js'; import Optic from '../model/Optic.js'; +import GeometricOpticsRulerNode from './GeometricOpticsRulerNode.js'; // constants const ZOOM_RANGE = new RangeWithValue( 1, 3, 3 ); @@ -118,7 +118,7 @@ class GeometricOpticsScreenView extends ScreenView { ); // scale for with the current zoom level - const absoluteZoomScaleProperty = new DerivedProperty( + const zoomScaleProperty = new DerivedProperty( [ zoomLevelProperty ], ( zoomLevel: number ) => getAbsoluteZoomScale( zoomLevel ) ); @@ -126,8 +126,10 @@ class GeometricOpticsScreenView extends ScreenView { // Things that are outside the Experiment Area ===================================================================== // create Rulers - const rulersLayer = new RulersLayer( model.horizontalRuler, model.verticalRuler, - zoomTransformProperty, absoluteZoomScaleProperty, this.visibleBoundsProperty ); + const horizontalRulerNode = new GeometricOpticsRulerNode( model.horizontalRuler, + zoomTransformProperty, zoomScaleProperty, this.visibleBoundsProperty ); + const verticalRulerNode = new GeometricOpticsRulerNode( model.verticalRuler, + zoomTransformProperty, zoomScaleProperty, this.visibleBoundsProperty ); // create control panel at the bottom of the screen const controlPanel = new GeometricOpticsControlPanel( model.representationProperty, model.optic, @@ -139,13 +141,14 @@ class GeometricOpticsScreenView extends ScreenView { } ); // create toolbox at the top right corner of the screen - const toolbox = new RulersToolbox( rulersLayer, { + const toolbox = new RulersToolbox( horizontalRulerNode, verticalRulerNode, { rightTop: erodedLayoutBounds.rightTop, tandem: config.tandem.createTandem( 'toolbox' ) } ); // Tell the rulers where the toolbox is. - rulersLayer.setToolboxBounds( toolbox.bounds ); + horizontalRulerNode.setToolboxBounds( toolbox.bounds ); + verticalRulerNode.setToolboxBounds( toolbox.bounds ); // radio buttons for the shape of the optic const opticShapeRadioButtonGroup = new OpticShapeRadioButtonGroup( model.optic, { @@ -343,6 +346,10 @@ class GeometricOpticsScreenView extends ScreenView { // Layout ================================================================================================ + const rulersLayer = new Node( { + children: [ horizontalRulerNode, verticalRulerNode ] + } ); + const screenViewRootNode = new Node( { children: [ experimentAreaNode, diff --git a/js/common/view/RulersLayer.ts b/js/common/view/RulersLayer.ts deleted file mode 100644 index 07f564bc..00000000 --- a/js/common/view/RulersLayer.ts +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2021, University of Colorado Boulder - -/** - * A layer that contains 1 horizontal ruler and 1 vertical ruler - * - * @author Martin Veillette - * @author Chris Malley (PixelZoom, Inc.) - */ - -import Property from '../../../../axon/js/Property.js'; -import Bounds2 from '../../../../dot/js/Bounds2.js'; -import ModelViewTransform2 from '../../../../phetcommon/js/view/ModelViewTransform2.js'; -import { Node } from '../../../../scenery/js/imports.js'; -import geometricOptics from '../../geometricOptics.js'; -import Ruler from '../model/Ruler.js'; -import GeometricOpticsRulerNode from './GeometricOpticsRulerNode.js'; - -class RulersLayer extends Node { - - horizontalRulerNode: GeometricOpticsRulerNode; - verticalRulerNode: GeometricOpticsRulerNode; - - /** - * @param horizontalRuler - * @param verticalRuler - * @param zoomTransformProperty - * @param absoluteScaleProperty - * @param visibleBoundsProperty - * @param options - */ - constructor( horizontalRuler: Ruler, verticalRuler: Ruler, zoomTransformProperty: Property, - absoluteScaleProperty: Property, visibleBoundsProperty: Property, options?: any ) { - - super( options ); - - this.horizontalRulerNode = new GeometricOpticsRulerNode( horizontalRuler, - zoomTransformProperty, absoluteScaleProperty, visibleBoundsProperty ); - this.verticalRulerNode = new GeometricOpticsRulerNode( verticalRuler, - zoomTransformProperty, absoluteScaleProperty, visibleBoundsProperty ); - this.addChild( this.horizontalRulerNode ); - this.addChild( this.verticalRulerNode ); - } - - public dispose(): void { - assert && assert( false, 'dispose is not supported, exists for the lifetime of the sim' ); - super.dispose(); - } - - public setToolboxBounds( toolboxBounds: Bounds2 ): void { - this.horizontalRulerNode.setToolboxBounds( toolboxBounds ); - this.verticalRulerNode.setToolboxBounds( toolboxBounds ); - } -} - -geometricOptics.register( 'RulersLayer', RulersLayer ); -export default RulersLayer; \ No newline at end of file diff --git a/js/common/view/RulersToolbox.ts b/js/common/view/RulersToolbox.ts index 42fc00f3..90990d08 100644 --- a/js/common/view/RulersToolbox.ts +++ b/js/common/view/RulersToolbox.ts @@ -11,23 +11,20 @@ import merge from '../../../../phet-core/js/merge.js'; import RulerNode from '../../../../scenery-phet/js/RulerNode.js'; -import { SceneryEvent } from '../../../../scenery/js/imports.js'; -import { DragListener } from '../../../../scenery/js/imports.js'; -import { HBox } from '../../../../scenery/js/imports.js'; -import { Node } from '../../../../scenery/js/imports.js'; +import { DragListener, HBox, Node, SceneryEvent } from '../../../../scenery/js/imports.js'; import Panel from '../../../../sun/js/Panel.js'; import Tandem from '../../../../tandem/js/Tandem.js'; import geometricOptics from '../../geometricOptics.js'; -import RulersLayer from './RulersLayer.js'; import GeometricOpticsRulerNode from './GeometricOpticsRulerNode.js'; class RulersToolbox extends Panel { /** - * @param rulersLayer + * @param horizontalRulerNode + * @param verticalRulerNode * @param options */ - constructor( rulersLayer: RulersLayer, options?: any ) { + constructor( horizontalRulerNode: GeometricOpticsRulerNode, verticalRulerNode: GeometricOpticsRulerNode, options?: any ) { options = merge( { @@ -103,8 +100,8 @@ class RulersToolbox extends Panel { }; // Add a forwarding listener for each ruler icon, to forward drag events from the icon to its associated ruler. - addForwardingListener( horizontalRulerIconNode, rulersLayer.horizontalRulerNode ); - addForwardingListener( verticalRulerIconNode, rulersLayer.verticalRulerNode ); + addForwardingListener( horizontalRulerIconNode, horizontalRulerNode ); + addForwardingListener( verticalRulerIconNode, verticalRulerNode ); } public dispose(): void {