# 1.1.0 10/31/13
# 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 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 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 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