# 1.1.0-rc.2 10/26/13 10/26/13 scenery-phet#18, workaround for intermittent problem with Reset All button # 1.1.0-rc.1 10/24/13 10/14/13 scenery-phet#15: corrected problems in scenery-phet.FaucetNode, added beers-law-lab.BLLFaucetNode adapter 10/14/13 rename screen-icon images 10/8/13 fix touchArea for dropper and concentration probe 10/8/13 simplify derivation of concentration and precipitateAmount in ConcentrationSolution 10/7/13 concentration#1, simplify the equation for precipitate amount 10/4/13 revert other English string keys to what was used in Java 10/4/13 rename a few string files to use 'zh_CN' locale convention (lowercase language, uppercase country) 10/4/13 replace '_' with '.' in English string file, to match Java string file 10/4/13 reorganize string imports 10/4/13 converted to use json string plugin (SR) 10/3/13 remove assert imports, assert is now a global # 1.1.0-dev.1 10/2/13 10/2/13 #48, document performance improvements to precipitate 10/2/13 #48, delete PrecipitateCanvasNode, we're going with the solution that looks better 9/30/13 #48, demonstration of canvas-based precipitate (PrecipitateCanvasNode) 9/30/13 #48, faster version of scenery-based precipitate (PrecipitateNode) 9/30/13 #53, wrong bounds for canvas in ShakerParticlesNode 9/27/13 #49, fixed algorithm for random distribution of precipitate particles on bottom of beaker 9/27/13 #50, yellow arrows appear and disappear on iPad 9/27/13 #39, migrate FaucetNode and associated images to scenery-phet 9/27/13 #40, migrate WavelengthSlider and associated strings to scenery-phet 9/27/13 move BLLStrings.js to beers-law-lab-strings.js 9/27/13 change implementation of meter bodies to workaround tiling problem, see concentration#2 9/24/13 replace phet-core.callSuper with Supertype.prototype.method.call( this,...) 9/24/13 delete bogus French translation 9/23/13 convert to use chipper 'image' plug-in, and scenery-phet.ResetAllButton 9/19/13 changes required by merge of chipper 'single-file' branch into master 9/19/13 move dependencies to sherpa, update to lodash-2.0.0, jquery-2.0.3, i18n-2.0.4, require-2.1.8 9/15/13 sun#9, change HSlider {Boolean} options.snapToMinWhenReleased to {Function} options.endDrag 9/15/13 EvaporationSlider moved to sun.HSlider by SR, #46 9/9/13 added namespace BEERS_LAW_LAB (merged into master by SR) 9/6/13 sun#20, ComboBox: make listParent a required constructor parameter, fix moveList 9/3/13 #41, set initial width of concentration value in a way that supports i18n 9/3/13 move formatting of concentration value to BeersLawSolution 9/3/13 #27, when the Evaporation slider is disabled, end the drag sequence 9/3/13 #42, remove workaround for SimpleDragHandler, event.currentTarget now returns the drag node 9/3/13 #28, turn off the dropper when it becomes invisible 8/22/13 joist#35, terminology change: tab -> screen # 1.0.0 8/16/13 8/13/13 branch '1.0' created 7/29/13 fixed typo in RSC credits, #29 7/29/13 add google-analytics.js to html and package.json 7/29/13 add meta tags that are in chipper.sim.html 7/29/13 use English string as default 7/29/13 fix to scenery.SVGLayer, prevents shaker from jumping to upper-left corner when window is resized, #20 # 0.0.0-18 7/26/13 7/26/13 fix up package.json to work with build.sh changes (chipper#12) 7/26/13 new home screen icons, focused on specific elements of each tab instead of complete play area screenshots 7/26/13 fix: concentration meter doesn't update when dropper stream stops, #22 7/26/13 fix: shaker appears behind dropper if you resize the window (scenery#91) # 0.0.0-17 7/25/13 7/25/13 move "Reset All" button slightly to the right in "Concentration" tab # 0.0.0-16 7/25/13 7/25/13 make some non-interactive things pickable:false, minor performance improvement 7/25/13 merge 'performance' branch with JO's performance enhancements for shaker particles, #16 7/24/13 #15: fix the TabView.layoutBounds so that all object are inside the play area bounds 7/24/13 add local copy of new ResetAllButton and associated images # 0.0.0-15 7/24/13 7/24/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 <meta> 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 <title> in html file 4/16/13 concentration meter workaround for scenery#16 (poor Text node performance) 3/27/13 fix dropper so that it changes color to match solute 3/27/13 left-justify radio buttons under solute dropdown 3/27/13 center radio buttons under solute dropdown 3/27/13 used fixed-width button for solute dropdown menu 3/27/13 put label and caret on one button for solute dropdown menu, this is the bootstrap "style" 3/27/13 allow user to click either button or caret to get dropdown menu 3/27/13 wire up selection of solute from dropdown, make notes about what isn't working 3/26/13 alphabetize imports 3/26/13 rewrite polyfill for requestAnimationFrame 3/26/13 switch from phetcommon.util.Inheritance to phet-core.inherit and phet-core.callSuper 3/26/13 delete Rectangle, replace with dot.Bounds2 3/26/13 switch from phetcommon.MathUtil to dot.Util 3/26/13 use renderer:'svg' for solute control panel, so it doesn't block events to other DOM elements in the scene 3/26/13 add SoluteControlsNode last, so that other DOM nodes get events. 3/26/13 add selection handler to solute dropdown, only does console.log 3/26/13 solute dropdown pops up, but no selection yet 3/26/13 include bootstap.js in html instead of config.js, so that bootstrap-dropdown.js plugin works 3/25/13 first attempt at using a bootstrap dropdown for choosing solute 3/25/13 put solute controls in a control panel (SoluteControlsNode) 3/25/13 fix reset for shaker and dropper 3/25/13 "use strict"; 3/25/13 use 'var thisNode = this' consistently 3/25/13 move window resize handler to ConcentrationView, use inheritance for scene subtype 3/25/13 change to radio buttons for solid/solution control 3/25/13 make dropper initially invisible, add visible arg to dropper and shaker constructors 3/25/13 make slider knob wider 3/25/13 rename EvaporatorNode 3/25/12 specify a font for ButtonNode 3/25/13 demonstrate using custom icons with bootstrap 3/25/13 use class instead of tag when changing check box icon, so that additional icons can be supported 3/25/13 test commit from IDEA 3/25/13 test commit from command line 3/24/13 enabled setVisible calls in DropperNode and ShakerNode 3/24/13 added PHET_CORE 3/20/13 generalize ControlPanelNode 3/20/13 evaporation control tweaks, general slider tweaks 3/20/13 create a control panel for evaporation, ala java sim 3/20/13 adjust layout of controls to match java sim 3/20/13 first pass at horizontal slider with tick marks, wired up to control evaporation rate 3/20/13 add CSS styling for font and spacing of buttons and check boxes 3/20/13 fix reset of solution color 3/20/13 delete reset all button from html file 3/20/13 flesh out CheckBoxNode to handle property and icon changes 3/20/13 delete enum SoluteForm and model.soluteForm, unnecessary 3/20/13 add contrib/font-awesome-3.0.2/ 3/19/13 add debug output for setVisible problem in ShakerNode and DropperNode 3/19/13 wire up Solid and Solution buttons 3/19/13 add bootstrap controls for switching between shaker and dropper (not wired up, not correct look) 3/19/13 add DOM controls to scenegraph last, so that they are not obscured by canvas-based nodes and receive DOM event 3/19/13 changes for breaking changes in scenery 3/19/13 delete window.phetcommon.locale in config.js, it's invalid JSON and causes grunt failure 3/18/13 add some button nodes that combine bootstrap+dom+scenery (not working yet) 3/18/13 remove all particles when the solute amount goes to zero 3/18/13 add missing mvts to Concentration nodes 3/18/13 add wire that connects probe to meter 3/18/13 add probe to concentration meter 3/18/13 use same bit-depth and ColorSync profile for all concentration meter images (didn't fix color issue) 3/18/13 fix in HorizontalTiledNode 3/18/13 rework text layout for shaker and concentration meter 3/17/13 add text to concentration meter 3/14/13 change location of performance monitor 3/14/13 first pass at concentration meter, only the body is rendered 3/14/13 port of HorizontalTiledNode from piccolo-phet, for use in concentration meter 3/14/13 fix stroke color of solution in beaker 3/14/13 reorganize observer function in ConcentrationSolution 3/14/13 add Color.toString 3/14/13 add bootstrap dependency 3/14/13 switch to lodash 3/14/13 add <div> for Reset All button 3/13/13 fix label on dropper 3/13/13 first pass at StockSolutionNode, not rendering 3/13/13 bug fix in Color.interpolateRBGA 3/13/13 port MomentaryButtonNode from piccolo-phet, add to DropperNode 3/13/13 partial implementation of DropperNode 3/13/13 add precipitate view, bug fixes 3/13/13 bug fixes in model, for array methods that didn't port directly 3/13/13 convert common to CommonJS-style imports 3/13/13 convert concentration.model to CommonJS-style imports 3/13/13 convert concentration.view to CommonJS-style imports 3/13/13 try CommonJS-style imports in BeakerNode 3/13/13 add shaker particles to view 3/13/13 **** concentration model fully ported ****** 3/13/13 fix derived properties in ConcentrationSolution 3/12/13 add '_' prefix to private methods in particle model 3/12/13 wire up shaker particles in concentration model 3/12/13 port shaker particles model 3/12/13 port precipitate model 3/12/13 add '_' prefix to private methods in concentration model 3/12/13 port Concentration Meter model 3/12/13 port Evaporator model 3/12/13 port Evaporator model 3/12/13 port time-based portion of concentration model (untested) 3/12/13 port property listeners that are internal to concentration model 3/12/13 drop "Property" suffix from all vars of type Property 3/12/13 add dropper model element, flesh out some of concentration model 3/12/13 create instances of all solute types 3/12/13 display solution in beaker 3/12/13 add basic scaling of the scene on browser window resize 3/12/13 add missing semicolons throughout 3/12/13 turn off faucet when it's disabled 3/12/13 modifications for kite change: Shape.rect(upperleft,lowerright) -> Shape.rect(x,y,width,height) 3/12/13 modifications for scenery change: Finger -> Pointer 3/12/13 implement faucet fluid geometry 3/12/13 set faucet flow to zero when handle is released 3/12/13 rename top-level files to beers-law-lab 3/11/13 faucet handle drag handler working 3/11/13 added dependency on kite, change imports for things that moved from scenery to kite 3/11/13 more partial work on faucet handler drag handler 3/11/13 "use strict" 3/8/13 more partial work on faucet handler drag handler, getting closer 3/8/13 partial work on faucet handler drag handler, not working yet 3/7/13 rotate faucet handle in pivot 3/7/13 adjust imports for new locations of scenery/js/shapes/Shape 3/6/13 add css to hide top and left margin in browser window 3/6/13 delete phetcommon type (Dimension2D, Vector2D, Point2D), use dot type (Dimension2 and Vector2) 3/6/13 ignore scenery submodules, checkout dependencies as sibling repos 3/6/13 initial layout of faucet images 3/5/13 automate subscripting in molecule formulas (port of ChemUtils.toSubscript) 3/5/13 use css to style shaker label DOM node 3/5/13 ***** end port from Easel to Scenery ***** 3/5/13 generalize drag handler for Movables 3/5/13 create DOM element programmatically for shaker label, update html dynamically, bounds are fubar 3/5/13 add drag bounds to shaker 3/5/13 polyfill for requestAnimationFrame 3/5/13 basic dragging with model-view roundtrip for shaker 3/5/13 use "round" cap and join, now supported by scenery 3/5/13 incremental step towards porting MovableDragHandler to scenery 3/5/13 StringUtils.format for Java-like MessageFormat 3/4/13 set pointer cursor on shaker 3/4/13 adjust imports for SCENERY/nodes/Node 3/4/13 add stub drag handler to ShakerNode 3/4/13 remove Easel from Color 3/4/13 port BeakerNode to scenery 3/4/13 set background color, add stub for window resize handler 3/4/13 port FaucetFluidNode to scenery 3/4/13 fix rotation of shaker 3/4/13 make local copies of libs required by phetcommon, so I can ignore its submodules 3/4/13 port FaucetNode to scenery 3/4/13 add PerformanceMonitor 3/4/13 add animation loop 3/4/13 fix imports of Inheritance to point to new location in phetcommon 3/4/13 bail on submodules for common code, use sibling repositories in IDEA workspace 3/4/13 partial port to Scenery 3/4/13 ***** begin port from Easel to Scenery ***** 2/28/13 added phetLocale for reading the locale from URL query parameters 2/28/13 test i18n local config 2/28/13 replace i18n fork with official release i18n-2.0.2.js 2/19/13 upgrade from requirejs 2.1.2 to 2.1.4 2/19/13 fix in MoveableDragHandler 2/19/13 upgrade from jquery 1.8.3 to 1.9.1 2/19/13 upgraded to Easel 0.6.0 (couldn't find non-minified version) 2/19/13 use double quotes for requirejs import strings 2/19/13 use Inheritance.callSuper to chain reset calls to supertypes 2/19/13 move Fluid to common/model/ 2/19/13 add view of fluid coming out of faucet (FaucetFluidNode) 2/19/13 add solution model (ConcentrationSolution) 2/19/13 add fluid model (Fluid) and subtype solvent and solution models 2/19/13 add Faucet model and image files 2/15/13 change submodule urls to https so they are not read-only 2/15/13 rename top-level "concentration" files to "beers-law-lab" 2/15/13 delete files for 2nd tab until approach stabilizes 2/11/13 fix requirejs imports in concentration/model/ and concentration/view, sim runs 2/11/13 create contrib directory with copies of libs 2/11/13 delete jquery-mobile from top-level hmtl 2/11/13 reformat to use 2-space indentation 2/11/13 fix config.js and requirejs imports to use uppercase for symbolic constants 2/11/13 ***** moved this project from Unfuddle SVN to GitHub, lost all commit history before here, does not run ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1/30/13 port particle models (untested) 1/30/13 drag handler for shaker, with constrained bounds 1/30/13 rotate and label shaker 1/30/13 add DebugOriginNode for debugging origins 1/30/13 set up model-view transforms to match Java implementation 1/30/13 rename FrameRateDisplay to FrameRateNode 1/30/13 add shaker node 1/30/13 add model types for rgba color, rectangle, solute, solute colorscheme 1/30/13 implement important bits of Java's MessageFormat for i18n using patterns 1/30/13 add tick marks to BeakerNode 1/28/13 add BeakerNode (no ticks yet) 1/28/13 i18n of titles 1/28/13 ported a few model classes from Java to JS 1/28/13 set up project skeleton