# 0.0.0-15 7/24/13 7/23/13 fix rendering order so that AT probe is behind light beam # 0.0.0-14 7/23/13 7/23/13 adjust rendering order so that meter probes can't be lost behind control panels 7/22/13 use _.extends to specify options in WavelengthSlider 7/22/13 move VisibleColor to scenery-phet 7/22/13 new icons for home screen and navbar 7/22/13 tweak position of "Reset All" button in "Concentration" tab 7/19/13 VisibleColor: eagerly compute color table, as requested in REVIEW comments 7/19/13 add a bit more space between Concentration label and value 7/19/13 delete unused view units (BLLStrings.units_M) 7/19/13 add knobScale option to FaucetNode, scale image files 7/19/13 cleanup and doc use of 'dev' query param 7/17/13 migrate ArrowButton to scenery-phet 7/17/13 replace BLLFont with PhetFont # 0.0.0-13 7/8/13 7/11/13 add arrows to shaker 7/11/13 make Concentration meter body temporarily movable (allow team to experiment with position) 7/11/13 add vertical separator between radio buttons in solute control panel 7/11/13 add this.mutate(options) to end of ArrowButton constructor, #10 7/11/13 migrate HorizontalTiledNode to scenery-phet 7/11/13 use scenery.Pattern to implement HorizontalTiledNode, #12 7/11/13 fix: semantics of 'left' and 'right' were reversed for ArrowButton direction, #8 7/11/13 use strings instead of enum for ArrowButton direction, #9 7/11/13 remove jquery shim from config.js 7/11/13 change request: move cuvette handle down 7/11/13 change double quotes (") to single quotes (') throughout, #3 7/11/13 make BLLSymbols return an object literal, #14 7/10/13 use a color for "Remove Solute" button 7/10/13 tested thoroughly on Nexus7, working well, performance OK, no longer seems to be hanging when switching tabs 7/10/13 new faucet images for spout and pipe 7/9/13 integrate new faucet images (pipe missing) 7/9/13 move drain faucet down, so that it's flush with bottom of beaker 7/8/13 gray out the outline of the "Remove Solute" button when it's disabled, now supported by sun # 0.0.0-12 7/8/13 7/8/13 reduce timer delay from 500 to 400 ms for arrow buttons 7/8/13 change layout so that there is space for ruler below beaker 7/3/13 new "stop" image for faucet (faucet_stop.png) 7/3/13 adjust margins and spacing of control panels 7/2/13 new faucet_spout.png, to match color of faucet_pipe.png 7/2/13 switch to svg renderer to improve text quality # 0.0.0-11 7/1/13 7/1/13 expand touch area for arrow buttons 7/1/13 gray out the stroke of arrow button when it's disabled 7/1/13 temporary support for "press and hold" feature of arrow buttons, using JS timer and interval 7/1/13 fix problem with how arrow buttons were enabled/disabled, was causing exception at min/max values, and showing -0 for concentration 7/1/13 change the cursor when the "Remove Solute" button is disabled 7/1/13 disable the "Remove Solute" button when there is no solute in the solution 7/1/13 fix drag handler for faucet knob, make it continuous instead of on/off 7/1/13 fix background fill in faucet "window" 7/1/13 support for ruler with zero insets and minor ticks to the right of last major tick 7/1/13 show a bit more of the faucet shaft in the "off" position 7/1/13 make faucet knob 20% smaller 7/1/13 make slider knobs narrower (similar to Java version) # 0.0.0-10 7/1/13 7/1/13 increase diameter of faucet fluid so that it matches new spout image 7/1/13 move solvent faucet slightly to the right 7/1/13 adjust FaucetNode.SPOUT_OUTPUT_CENTER_X so that fluid comes out of spout's center 6/30/13 increase touch area of dropper 6/30/13 increase touch area of ruler 6/30/13 new faucet images (pipe is a little darker than spout) 6/27/13 update copyright 6/27/13 make AT probe snap to light beam when at least half of beam is in the probe 6/27/13 adjust cuvette y-coordinate to vertically center everything (approximately) in the play area 6/27/13 make all locations in BeersLawModel relative to cuvette location 6/27/13 increase length of input faucet pipe so it's fills MacBook and Nexus7 screens 6/27/13 adjust dropper's drag bounds, limit to horizontal dragging, prevent overlap with faucet and solute control panel 6/27/13 lower the dropper 6/27/13 reduce height of ruler to be same as Java sim (0.35cm) 6/25/13 integrate new faucet images, still not quite right # 0.0.0-9 6/24/13 6/24/13 add credits 6/24/13 integrate new artwork for faucet knob 6/24/13 add a background for wavelength and concentration values, to make them stand out 6/24/13 test and optimize touchAreas 6/24/13 expand touchArea for evaporation slider thumb 6/24/13 expand touchArea for concentration slider thumb 6/24/13 expand touchArea for wavelength slider thumb 6/24/13 expand touchArea for faucet knobs 6/24/13 expand touchArea for Concentration meter probe 6/24/13 expand touchArea for AT detector probe 6/24/13 expand touchArea for light button 6/24/13 expand touchArea for cuvette handle 6/24/13 configure sim options via "dev" query parameter # 0.0.0-8 6/24/13 6/21/13 make combo box items taller, to improve usability on tablets 6/21/13 reformat code 6/21/13 view: provide prototype properties via inherit() instead of attaching to Type.prototype 6/21/13 model: provide prototype properties via inherit() instead of attaching to Type.prototype 6/21/13 increase horizontal space between arrow buttons and wavelength slider 6/19/13 upgrade from require 2.1.4 to 2.1.6 6/19/13 upgrade from jquery 1.9.1 to 2.0.2 6/19/13 upgrade from lodash 1.2.1 to 1.3.1 6/19/13 improve bounds constraint in MovableDragHandler 6/19/13 use parent coordinate frame in MovableDragHandler, solves drag "drift" problem 6/19/13 use scenery.Pattern to texture map input pipe in FaucetNode 6/19/13 trim transparent pixels off left edge of faucet_pipe.png 6/19/13 make Evaporation slider thumb look similar to Concentration slider 6/18/13 merge MomentaryButton into ToggleButton, generalize, change image file names 6/18/13 move scaling out of FaucetNode, specify scale via options arg 6/18/13 set 'allowTouchSnag: true' for all draggable objects 6/18/13 disable (instead of hide) arrow buttons for sliders (not supported by sun.Button) 6/18/13 combine LeftArrowButton and RightArrowButton 6/14/13 generalize left/right arrow buttons for sliders 6/14/13 increase xMargin on arrow buttons, so they look like those in GFL design doc 6/14/13 make radio buttons on AT detector larger, to match other radio buttons 6/14/13 fix AT detector body images so that lighting is correct, and make it taller to fit larger buttons # 0.0.0-7 6/11/13 6/11/13 gray out faucet knob when disabled 6/11/13 integrate new faucet images for "pinball shooter" design 6/11/13 delete unused faucet image files 6/11/13 rename FaucetNode2 to FaucetNode (pinball shooter design) 6/11/13 delete 3 versions of faucet that will not be used (FaucetNode1, FaucetNode3, FaucetNode4) 6/7/13 migrate FillHighlighter to scenery-phet from molarity and beers-law-lab 6/7/13 change order of args to dot.Util.linear 6/7/13 change order of args to dot.LinearFunction, fix bug in LinearFunction.inverse 6/7/13 replace require('DOT/Util').linear with require('DOT/Util) 6/7/13 upgrade from lodash-1.0.0-rc3 to lodash-1.2.1, fixes Chrome "source URL declaration is deprecated" warning 6/7/13 migrate LinearFunction from beers-law-lab to dot 6/7/13 change LinearFunction so that API looks like: f(a), f.inverse(b) 6/7/13 replace imagesloaded jquery plugin with PxLoader, integrate SimLauncher 6/5/13 remove redundant first arg from FillHighlighter constructor, node can be obtained via event.currentTarget 6/5/13 remove vestigial special case from VisibleColor.wavelengthToColor 6/5/13 change LinearFunction.evaluateInverse to inverse 6/5/13 fix where fluid comes out of FaucetNode4 6/5/13 change signature of LinearFunction constructor to match dot.Util.linear 6/5/13 replace kite.Shape.rect with scenery.Rectangle 6/5/13 replace some instances of LinearFunction with dot.Util.linear 6/4/13 MovableDragHandle: note offset when drag starts, compensate during drag (still a little off) 6/4/13 integrate scenery.ButtonListener with MomentaryButton 6/4/13 integrate scenery.ButtonListener with ToggleButton 6/4/13 fix: selecting from "Solute" combo box also presses radio buttons behind it 6/3/13 delete backbone from lib/, delete FORT from config.js 6/3/13 delete css for scrollbars that was addressed in joist#6 6/3/13 use Property.link/unlink instead of addObserver/removeObserver # 0.0.0-6 6/3/13 6/3/13 dev version with "slider on pipe" faucet control (FaucetNode4) # 0.0.0-5 6/3/13 6/3/13 dev version with "slider on valve" faucet control (FaucetNode3) # 0.0.0-4 6/3/13 6/3/13 dev version with "pinball shooter" faucet control (FaucetNode2) 6/3/13 FaucetNode4: alternate design with slider on pipe 6/3/13 FaucetNode3: alternate design with slider on valve, ala Java version 6/3/13 FaucetNode2: alternate design that uses a pinball shooter 6/3/13 rename FaucetNode1 and related image files, preparing for 2 alternative implementations 5/31/13 migrate ChemUtils to nitroglycerin.ChemUtils 5/31/13 migrate ColorUtils.interpolateRGBA to scenery.Color 5/31/13 migrate StringUtils to phetcommon.util 5/30/13 create solutions array using [] instead of new Array() 5/30/13 varargs implementation of StringUtil.format 5/29/13 replace DebugOriginNode with scenery.Circle # 0.0.0-3 5/28/13 5/28/13 {resize: false} for control panels that shouldn't resize 5/28/13 workaround for layout of invisible SaturatedIndicator, due to change in semantics of scenery bounds 5/24/13 migrate ComboBox from beers-law-lab to sun 5/24/13 remove ComboBoxItem from ComboBox API, document the "item" contract 5/23/13 rename BLLStrings.fixed to BLLStrings.preset 5/21/13 generalize DebugOriginNode 5/21/13 remove uses of Color.toCSS in Beam and ConcentrationSlider 5/21/13 resize wavelength control panel when slider is shown/hidden 5/21/13 delete questionable tags that were supposedly for mobile Safari cache busting 5/21/13 remove lib/font-awesome, not used 5/20/13 scrub my email address from source files 5/20/13 temporarily restore CSS to remove browser window margins, should be handled by joist#6 5/20/13 ComboBoxNode: add "click to dismiss" feature, by attaching a 'down' listener to the scene 5/20/13 remove lousy solution for dragging the dropper by its button, investigate other approaches 5/20/13 ComboBoxNode: support for listParent (and coordinate-frame transforms this requires) so that combo box list is always on top 5/20/13 remove Color.toCSS calls from places where a Color is supported 5/20/13 remove Font.toCSS calls from places where a Font is supported 5/15/13 encapsulate fonts in BLLFont, use scenery.Font, provide a fallback family and limited options (size and weight) 5/15/13 switch from beers-law-lab.Color to scenery.Color (major change) 5/15/13 JSDoc parameters and return types 5/15/13 use "_" prefix for methods that are not intended to be part of public interface 5/15/13 review TODO items in code, delete some that have been done # 0.0.0-2 5/14/13 5/14/13 event batching added to joist.Sim, resolves lag time when dragging text 5/14/13 make AT detector radio buttons smaller until we get a bigger graphic 5/14/13 remove "Node" suffix from type names that are UI components or clearly have no analogous model element 5/14/13 fixed scenery#38 with JO (combo box popup works every other time) 5/14/13 fix: orientation of shaker node was being set in degrees, should use radians 5/14/13 fix: shaker particle go up, incorrect shaker orientation set incorrect initial velocity 5/14/13 replace ControlPanelNode with sun.PanelNode 5/14/13 move ruler to front, so it won't get lost behind things 5/14/13 move Solute control panel to the right a bit, so it doesn't interfere with shaker 5/14/13 move ruler down and left a tad 5/14/13 make wavelength slider thumbs bigger so it's easier to grab on tablets 5/14/13 make ruler taller so that it's more tablet-friendly 5/14/13 increase default size of radio buttons to work better on tablets 5/14/13 add a "hit area" to radio buttons, so we don't have a dead spot between button and node 5/14/13 make evaporation and concentration slider thumbs bigger so that they are easier to grab on tablets 5/14/13 scenery.DOMLayer fixed so that HTML text doesn't wrap 5/14/13 scenery.Text boundsMethod was changed to "fastCanvas", resulting in fewer layers, and able to run nicely on iPad # 0.0.0-1 5/13/13 5/13/13 increase performance of wavelength spectrum image by drawing it directly to a canvas 5/10/13 replace build.config with package.json 5/10/13 move Gruntfile.js and build.sh to chipper 5/8/13 make Gruntfile independent of sim project by reading project name from package.json 5/8/13 build.sh 5/8/13 set up Grunt.js and package.json 5/8/13 use a single listener instance for all items in combo box list 5/8/13 replace "new Array()" with "[]" to appease Crockford disciples 5/8/13 fix various jshint warnings 5/7/13 == to === throughout 5/7/13 fix equilateral triangles in slider buttons 5/7/13 add up/down glyph to combo box button 5/7/13 add fill highlighting to ComboBoxNode 5/7/13 delete list alignment feature from ComboBoxNode, "left" is sufficient 5/7/13 format all BLL code again with correct PhetStyle.xml (after restarting IDEA) 5/7/13 install latest PhetStyle.xml and format all BLL code 5/6/13 align baselines of labels and values 5/6/13 add optional label to left of combo box 5/6/13 get rid of SolutionChoiceNode, fold into SolutionControlNode 5/6/13 delete vestigial CSS related to bootstrap UI components 5/6/13 switch from RequireJS.images to jQuery.imagesLoaded for loading images 5/6/13 prevent dropper from being dragged by on/off button 5/6/13 add support for list alignment to combo box 5/6/13 add ComboBoxItem combo box, eliminate "selectedItem" delegate property, push boilerplate code into ComboBoxNode 5/6/13 add color chips to Solute and Solution combo boxes 5/6/13 fix default assignment of BeersLawSolution.saturatedColor 5/6/13 handle reset for Solution combo box 5/6/13 handle reset for Solute combo box 5/6/13 move wavelength value display from slider to control panel 5/6/13 add increment/decrement buttons to concentration slider, rewire when solution changes 5/6/13 use left/right arrows instead of +/- buttons for wavelength slider 5/6/13 move concentration value between label and slider 5/6/13 concentration slider: move ticks above track 5/6/13 evaporation slider: move ticks above track, make knob point up 5/6/13 change "fixed" to "preset" in wavelength control panel 5/6/13 fix shaker rotation angle 5/1/13 ******* FEATURE COMPLETE ******** 5/1/13 delete bootstrap from beers-law-lab, no longer used 5/1/13 replace bootstrap with ComboBoxNode in implementation of solute combo box 5/1/13 display correct format of solution names in combo box 5/1/13 add remaining solution types to "Beer's Law" model 5/1/13 wire up combo box for selecting solution 5/1/13 primitive combo box 5/1/13 delete assertion-disabling code from config.js 5/1/13 adjust ruler drag bounds 5/1/13 make ticks and label larger on evaporation slider 5/1/13 make ticks and thumb larger on concentration slider 5/1/13 add highlighting to evaporation slider thumb 5/1/13 made cuvette drag handle 50% larger 5/1/13 vertically flip AT detector body, so that value display is at the top 5/1/13 change connection points and control points for AT detector, so that body can be in upper-right of play area 5/1/13 move things around in "Beer's Law" tab to correspond to layout in design doc 4/30/13 fix initial location of concentration slider thumb 4/30/13 update numeric value in concentration control panel, rewire observer when solution changes 4/30/13 completed port of concentration slider 4/30/13 add track with linear gradient to concentration slider 4/30/13 stubs for solution and concentration controls 4/30/13 use _.isUndefined 4/30/13 slightly better +/- buttons for sliders 4/30/13 use double quotes consistently 4/30/13 fix layout of dropper label, increase font size 4/30/13 add query-parameters.js and check-assertions.js to html file 4/30/13 migrate RulerNode to scenery-phet 4/30/13 complete port of Java RulerNode 4/30/13 replace DOMText with Text and HTMLText, as appropriate 4/30/13 placeholder for ruler node 4/30/13 use scenery's coordinate-frame transform methods in input listeners 4/30/13 handle click offset for thumb in wavelength slider and evaporation slider 4/30/13 add option to clamp value to range for LinearFunction 4/29/13 add + and - buttons to wavelength slider 4/29/13 fully-functional wavelength slider 4/29/13 first pass at wavelength slider 4/29/13 rename RadioButtonNode to RadioButton, add options and doc 4/29/13 use scenery-phet.ResetAllButton 4/29/13 replace "Remove Solute" button with sun.Button 4/29/13 tweak layout of text in concentration meter and AT detector 4/29/13 replace bootstrap radio buttons with RadioButtonNode ("solid" and "solution") 4/29/13 generalize RadioButtonNode to use a Node instead of text string 4/25/13 attempt to resize wavelength control panel as slider is show/hidden 4/25/13 first pass at wavelength control panel, with stub for wavelength slider 4/25/13 fix wires that connect probe to meters (this was apparently not generalized in the Java sim for good reason) 4/25/13 add radio buttons to AT detector, for selecting mode 4/25/13 implemented basic radio button 4/25/13 display value in AT detector 4/25/13 pickable=false for solution in cuvette, because AT detector probe goes behind it 4/25/13 add "Saturated" indicator to Concentration tab 4/25/13 fix transparency of solution in cuvette 4/25/13 fix positioning of AT detector probe 4/25/13 use DOMText node in DropperNode 4/25/13 use identify mvt in Concentration tab 4/25/13 adjust how faucet pipe length is computed, in model and view 4/25/13 correct some mvt errors in Concentration tab, by testing with non-identify mvt 4/25/13 switch to ModelViewTransform2 4/25/13 create temporary DOMText node, for use until Text node supports HTML 4/24/13 generalize WireNode, for use in both concentration meter and AT detector 4/24/13 partial port of ATDetectorNode 4/24/13 handle 'up' in FillHighlighter by attaching a listener to 'down' pointer (yuck) 4/23/13 reposition "Reset All" button 4/23/13 default to "Beer's Law" tab for development 4/23/13 fix beam gradient 4/23/13 fix positioning of light 4/23/13 first pass at port of BeamNode, some bugs 4/23/13 add double-headed arrow drag handle to cuvette 4/23/13 add cuvette drag handler 4/23/13 port CuvetteNode, no resize behavior yet 4/23/13 add toggle button to light 4/23/13 port LightNode 4/23/13 add missing license.txt entries for images 4/23/13 move contrib/ to lib/ 4/23/13 delete tpl.js, this sim no longer uses templates 4/23/13 delete stuff associated with PerformanceMonitor 4/23/13 validate various function args using assert 4/23/13 load strings once, in BLLStrings 4/23/13 compute fill color for Beam using scenery.LinearGradient 4/23/13 use scenery/Rectangle instead of Kite/Shape.rect for particles, to improve performance 4/23/13 add has.js to contrib/ and html, disable assertions in config.js 4/22/13 ported parts of VisibleColor needed by this sim 4/22/13 changed "module" to "tab" throughout, to use joist terminology 4/22/13 Sim framework moved to joist 4/19/13 remove "scene" div, it is automatically created by Sim.js with proper CSS 4/19/13 add temp icons for modules 4/19/13 rework module and view in order to use scenery-phet/Sim framework 4/17/13 partial port of beam model (need to port VisibleColor and figure out gradient paint) 4/17/13 port of absorbance/transmittance detector 4/17/13 port of absorbance model 4/17/13 ported most of model for Beer's Law module, loads with require.js, instantiates without errors, but untested 4/17/13 added modules (in the PhET sim sense), created skeleton for "Beer's Law" module 4/16/13 call invalidateDOM when changing value in concentration meter, so that DOM node bounds are correct 4/16/13 use a non-empty