phetsims / molecule-polarity

"Molecule Polarity" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
2 stars 6 forks source link

Irrelevant/nonexistent elements show (as featured) in Studio #123

Closed KatieWoe closed 3 years ago

KatieWoe commented 3 years ago

Device Dell OS Win 10 Browser Chrome Problem Description For https://github.com/phetsims/qa/issues/680. The third screen, Real Molecules, is blank except for a dialog directing the user to the old java version. However, in studio, including in featured, there are elements such as combo boxes and radio buttons that do not appear in the sim. Turning them on and off doesn't seem to do anything that I can see. Visuals

featureditemsnotthere
pixelzoom commented 3 years ago

moleculePolarity.realMoleculesScreen does not appear in molecule-polarity-phet-io-overrides.js, so all of the "featured" elements are defaults from common code. That said, we should probably opt out of PhET-iO instrumentation for the Real Molecules screen until that screen is implemented.

What's a litte tricky is that there's a lot of stuff that IS implemented for the Real Molecules screen, and we want to continue to create that stuff (but not display it), so that it gets tested by CT. In RealMoleculesScreenView.js, here's where everything that's created is replaced by the "Real Molecules is not currently available in HTML5" panel:

    //TODO see https://github.com/phetsims/molecule-polarity/issues/32
    // Until the Real Molecules screen is fully implemented, hide everything that was created above, and display
    // a message. We're continuing to create everything to reduce the possibility that regressions creep in.
    if ( !MPQueryParameters.realMolecules ) {
      rootNode.visible = false;
      this.addChild( new UnderDevelopmentPlane( this.layoutBounds ) );
    }

I'll investigate using Tandem.OPT_OUT to hide most of moleculePolarity.realMoleculesScreen in the Studio tree.

pixelzoom commented 3 years ago

In the commits about, I've opted out of PhET-iO instrumentation for sim-specific stuff in the Real Molecules screen, and updated the API file. moleculePolarity.realMoleculesScreen still appears in the Studio tree, but it only has the child elements that are common to all screens. Here's what that looks like:

screenshot_1119

There is no need to instrument the message panel. We're not supporting customization of the message. And if a client doesn't want to see the message, they should be hiding the Real Molecules screen by running with ?screens=1,2.

The nice thing about this solution is that running the sim with ?realMolecules still shows the partial implementation of the Real Molecules screen. AND it opts into PhET-iO instrumentation for that partial instrumentation, so that development can continue.

@KatieWoe please verify in master. Feel free to close if it looks OK.

pixelzoom commented 3 years ago

I discovered on one more element in the Studio tree that should opt out, surfaceColorProperty:

screenshot_1120

The Studio documentation indicates that it's specific to the Real Molecules screen. And in https://github.com/phetsims/molecule-polarity/issues/88#issuecomment-792980807 we had decided to just include it:

We noticed that moleculePolarity.global.model.surfaceColorProperty appears in all versions, even though it's relevant only to the Real Molecules screen. We decided that was OK, and will improve the phetioDocumentation to read "color scheme for the Electrostatic Potential surface in the Real Molecules screen" (done in #89).

But it's easy to opt out, so I'll do that.

pixelzoom commented 3 years ago

moleculePolarity.global.model.surfaceColorProperty is no longer shown in the Studio tree, unless you run with ?realMolecules.

Over to @KatieWoe to verify in master.

KatieWoe commented 3 years ago

Looks good in master