# 1.0.0-dev.7 10/22/14 10/22/14 add 'Under Construction' placeholder for challenge view in PlayNode 10/22/14 ensure that all sandwiches are the same width, so that changing sandwich recipe doesn't cause sandwich to move horizontally 10/22/14 move sandwich-specific code out of BeforeAfterNode 10/22/14 add convenience function Substance.getWrappedNode (a substance's Node appears in the scenegraph multiple times) 10/22/14 i18n: limit width of labels below horizontal brackets 10/22/14 i18n: scale level-selection button labels to be no wider than icons 10/22/14 i18n: scale radio buttons to fit in 25% of blue bar 10/22/14 i18n: scale box titles (Before, After) to fit in 75% of box width 10/22/14 use the same Before/After box margin for all sandwich choices # 1.0.0-dev.6 10/21/14 10/21/14 fix ChallengeFactory.test 10/21/14 add 'testGame' query parameter, runs a sanity test on challenge generation 10/21/14 expand touch areas for radio buttons 10/21/14 fold IconFactory into SettingsNode, since all of its functions should be private to SettingsNode 10/21/14 add 'eye' icons to VisibilityControl 10/21/14 #3 drop P4 + 10Cl2 -> 4PCl5, since it has a coefficient greater than our quantity range 10/20/14 adjust size of scoreboard font 10/20/14 add visibility controls to game settings 10/20/14 ensure that icons are the same size on all level-selection buttons, so they scale uniformly 10/20/14 flesh out PlayNode 10/20/14 flesh out ResultsNode 10/20/14 implement the reset of GameModel, based on graphing-lines.LineGameModel instead of a direct Java port 10/20/14 replace HBox and VBox with LayoutNode throughout 10/20/14 create icons for level-selection buttons 10/20/14 first pass at level-selection interface for Game 10/20/14 make GameModel extend PropertySet 10/20/14 replace ChallengeVisibility enum with 2 booleans 10/20/14 completed porting ChallengeFactory.test 10/17/14 started porting ChallengeFactory.test (incomplete) 10/17/14 port big chunks of the Game model from Java (untested by seems to pass requirejs) 10/17/14 add clone to Reactant and Product, for Game 10/16/14 increase vertical space between sandwich ingredients by 1 pixel 10/14/14 rename BeforeAfterNode 10/14/14 factor out commonality in ScreenView subtypes into ReactionView 10/14/14 include Java team in credits 10/14/14 clean up ScreenView subtypes # 1.0.0-dev.5 10/14/14 10/14/14 fix node stack for leftovers 10/14/14 display 'No "Reaction"' as multi-line text, constrain to approximate width of max-size sandwich and its coefficient 10/14/14 reduce horizontal spacing in equations 10/14/14 make the 'no reaction' dashed rectangle the same size as the area occupied by max-size sandwich and its coefficient 10/14/14 add missing '1' coefficient on right side of sandwich equations 10/14/14 port two-product reactions from Java 10/14/14 port single-product reactions from Java 10/14/14 rename MoleculeStackNode to SubstanceStackNode, simplify constructor 10/14/14 collapse Molecule into Substance, MoleculeFactory into ReactionFactory 10/14/14 use thisBlah consistently 10/14/14 clean up and checking in clients of SandwichRecipe 10/14/14 better encapsulation of "sandwiches" analogy in SandwichRecipe type 10/14/14 clean up factories a bit, wrt "sandwiches" analogy # 1.0.0-dev.4 10/14/14 10/14/14 try a dashed square to represent "no reaction" 10/14/14 Sandwiches: keep the same amount of vertical spacing below boxes for all 'reactions', so that things don't move up and down 10/13/14 simplify interleaving of ingredients in SandwichNode 10/13/14 fix: layout of products below 'After' box sometimes doesn't leave enough vertical space for max-size sandwich # 1.0.0-dev.3 10/13/14 10/13/14 'Sandwiches' and 'Molecules' screens feature complete 10/13/14 always add the most prevalent ingredient first when making a sandwich, to maximize interleaving 10/13/14 cleanup options to SandwichesBoxesNode 10/13/14 delete Reaction.fireStateChanged, no longer needed 10/13/14 update custom sandwich image below 'after' box 10/13/14 split equation into SandwichesEquationNode and MoleculesEquationNode, they are sufficiently different 10/13/14 move dispose to prototype 10/13/14 use _.max to compute max height of collections of nodes 10/13/14 adjust layout of stuff below boxes to accommodate dynamic custom sandwich image 10/13/14 update stacks of molecules in the before/after boxes if their visual representation changes (for custom sandwich) 10/13/14 make equation responsible for deciding what to display when custom sandwich formula is not well-defined 10/13/14 when the custom sandwich formula is not well-defined, still require a {Node} with well-defined bounds 10/13/14 change the custom sandwich image based on the coefficients of the reactants 10/13/14 handle custom sandwich as a special case, since it's so different than static reactions 10/13/14 add createEquationNode parameter to ReactionBarNode 10/13/14 add NumberPickers for reactant coefficients in "custom sandwich" equation 10/13/14 adjust EquationNode layout 10/13/14 add mutable reactant coefficients to Reaction for "custom sandwich" 10/13/14 and Substance.coefficient mutable to support "custom sandwich" and game challenges 10/13/14 make Molecule.node mutable to support "custom sandwich" 10/1/14 use new JSdoc convention for @param (primitive types, arrays, Property type qualifier) 10/1/14 rename unlink to dispose, function to be called when disposing of an instance of this object 10/1/14 generalize IntegerSpinner to NumberSpinner, add options.decimalPlaces 10/1/14 generalize IntegerNode to NumberNode, add options.decimalPlaces 10/1/14 mutate IntegerNode options after value is set, so that positioning is accurate 9/8/14 use {Object} instead of {*} as type expression for options param 9/4/14 factor out common options for brackets 9/4/14 support any type of Node for the bracket label 9/4/14 simplify interface to ReactionBarNode 9/4/14 move Reset All button to lower-right in Game screen 9/4/14 put double quotes around "Reaction" in box titles of Sandwiches screen 9/3/14 fix algorithm for creating sandwich node, a slice of bread was being left out 9/2/14 add instanceof checks in equals # 1.0.0-dev.2 9/2/14 9/2/14 set left and top of ReactionBoxesNode, so that it doesn't jump around when switching reactions 9/2/14 reduce width of boxes so that 'reactants' bracket doesn't interfere with 'Reset All' button for custom sandwich 9/2/14 fix computation of maxImageHeight in ReactionBoxesNode, so that y-margin is correct 9/2/14 create placeholder for custom sandwich, to evaluate worst-case layout 9/2/14 reduce size of sandwich components 9/2/14 add stroke around content inside accordion boxes 8/29/14 implement MoleculeFactory.createSandwichNode 8/29/14 use sun.AccordionBox 8/28/14 first pass at 'Sandwiches' screen 8/28/14 move 'Reset All' button to lower left # 1.0.0-dev.1 8/26/14 8/26/14 'Molecules' screen is feature-complete 8/26/14 fix 'Reset All' for quantities 8/26/14 add stacked molecules inside boxes 8/26/14 reduce size of 'Rest All' button 8/26/14 use a more subtle stroke for boxes 8/26/14 add labels (titles) to collapsed boxes 8/26/14 add collapsed version of boxes, wire up to expand/collapse buttons 8/26/14 add expand/collapse buttons, not wired up yet 8/26/14 unlink from reaction properties when switching equations, to prevent memory leak 8/26/14 add ability to unlink spinners and value displays from quantity value properties 8/26/14 #2 standardize capitalization of labels 8/25/14 first pass at Before-After boxes, doesn't show molecules in boxes yet 8/25/14 RPALFont 8/25/14 IntegerNode 8/25/14 IntegerSpinner 8/22/14 BracketNode 8/18/14 scale equation if it's too wide to fit in the available space in the blue control bar 8/18/14 add option to show either molecule symbol or node in equations 8/18/14 add support for 'equation' query parameter, which determines whether equation is at 'top' or 'bottom' of screen 8/18/14 EquationNode 8/18/14 control panel for selecting reaction 8/18/14 misc model changes 7/29/14 port string files from Java 6/24/14 ported majority of the model 6/23/14 add all strings shown in design doc to English strings file 6/23/14 programmatically create 'Molecules' screen icon 6/23/14 create sim skeleton 6/22/14 create GitHub repository