# 0.00.55 (71901) Jan 29, 2013 1/29/13 dev version with game change requests 1/29/13 game change: tweak overall layout of challenges [71894] 1/29/13 game change: put challenge title above equations, on left [71894] 1/29/13 game change: put equations on left for all challenge types [71894] # 0.00.54 (71845) Jan 23, 2013 1/23/13 dev version with change requests from 1 interview and code review 1/23/12 change request: for "Graph the Line" challenges, plot the point if it's not variable 1/23/12 add test harness for generating massive numbers of challenge sets, to verify that nothing fails 1/23/12 #3487 code review: address run==0 in Line.solveX 1/23/12 #3487 code review: factor out a duplicate block of code, reuse in challenge generation for levels 5 & 6 1/23/13 #3487 code review: use Collections.shuffle instead of custom shuffling algorithm (thanks, didn't know about this) 1/18/13 wrote implementation-notes.txt 1/18/13 more detailed doc for RandomChooser 1/18/13 remove flavor test-equation-nodes from build.properties # 0.00.53 (71794) Jan 18, 2013 1/18/13 use separate image files for point tool body and tip, make tip unpickable so that bounds of point tool doesn't interfere with picking manipulators # 0.00.52 (71766) Jan 17, 2013 1/17/13 bug fixes in levels 5 & 6 1/17/13 fix: in levels 5 & 6, need to use x1=0 for PTP challenges involving slope-intercept 1/17/13 fix: in level=6, the PTP challenge with point-slope form is erroneously configured for slope-intercept 1/17/13 fix: in level=5, the PTP challenge with point-slope form is erroneously configured for slope-intercept 1/17/13 ran IDEA's Analyze->Inspect Code, addressed issues where it made sense to do so 1/17/13 screenshot # 0.00.51 (71745) Jan 16, 2013 1/16/13 first feature-complete version for testing 1/16/13 organize imports for all source files 1/16/13 use Graph.lines in game [71728] 1/16/13 add Graph.lines, make the point tool observe it [71724] 1/15/13 cleanup ChallengeFactory subclasses 1/15/13 delete unnecessary zero-arg constructors in ChallengeFactory subclasses 1/15/13 delete obsolete TestFractionSlopes 1/15/13 internal documentation touch-up 1/15/13 mismatch representations for PTP challenges in level=6 1/15/13 save a snapshot of Google design doc and check into SVN 1/15/13 incorporate AP's feedback into model.txt 1/15/13 clearer documentation for individual challenges in ChallengeFactory hierarchy 1/15/13 expand abbreviations throughout code (GTE->GraphTheLine, MTE->MakeTheEquation, PTP->PlaceThePoints, etc.) 1/15/13 factor out duplication in ChallengeFactory hierarchy 1/15/13 use the same instance of the random number generator for all random parts of a challenge factory 1/15/13 move static ChallengeFactory.createChallenges to LineGameModel 1/15/13 implementation of challenge generation for level=6 1/15/13 provide random choosers as members of ChallengeFactory base class 1/15/13 completed challenge generation for level=5 1/15/13 incremental progress on level=5 1/15/13 rename some methods in ChallengeFactory 1/14/13 partial implementation of challenge generation for level=5 1/14/13 consolidated random choices into RandomChooser, a generically-typed class for making random choices from lists and lists-of-lists 1/14/13 rename ChallengeFactory methods to pick*FromBin 1/14/13 first draft of model.txt # 0.00.50 (71658) Jan 12, 2013 1/12/13 implemented all change requests from 1/10/13 design meeting 1/12/13 fix: initially hide answer equation for MTE challenges 1/12/13 fix: force view to reinitialize when replaying a challenge 1/12/13 make everything invisible by default in challenge graphs, since this is closer to most default states 1/12/13 all challenges: plot (x1,y1) for answer and guess if they get the challenge wrong 1/12/13 for PTP challenges, only show guess lines when (!correct && (state=TRY_AGAIN || state==NEXT)) 1/10/13 use only positive slopes for challenges in level 4 that force slope inversion 1/10/13 show guess ("Your Line" for GLT, "A Correct Equation" for MTE) only if they get the challenge wrong, to avoid issue of different equations for the same line 1/10/13 in level 1, change y-intercept range to (-6,4) 1/10/13 fix: scoreboard always displays level 6 1/10/13 change: "Correct Answer" to "A Correct Answer" 1/10/13 change order of graph controls: slope tool, y=x, y=-x, Hide lines # 0.00.49 (71607) Jan 9, 2013 1/9/13 dev version with challenge generation for levels 1-4 1/9/13 document why mvt is created in model 1/9/13 various changes in comments for LineForm to EquationForm change 1/9/13 rename LineForm to EquationForm, rename local variables accordingly 1/9/13 add support for mismatching the line form of the equation & graph in GTL challenges 1/9/13 algorithm that forces inversion of slope, picks (x1,y1) on the graph such that (x2,y2) is off the graph 1/9/13 document game packages, change signatures of some constructors and methods for consistency [71586] 1/9/13 make some classes package private 1/9/13 move inner subclasses of ChallengeGraphNode to their own class files, rename 1/9/13 remove code in SlopeEquationNode related to putting m=rise/run on a separate line [71577] 1/9/13 merge GTL_GraphNode and MTE_GraphNode into ChallengeGraphNode 1/9/13 remove console logging that is no longer needed 1/9/13 document CoordinateSpinnerNode constructor 1/9/13 scale only the control panel that's too wide, not both control panels 1/9/13 center control panels in the right section of the canvas (first 3 tabs), scale control panels if i18n makes them too wide 1/8/13 for first 3 tabs, keep graph in same position, tweak position so that slope tool doesn't fall off left edge of play area 1/8/13 remove unnecessary IChallenge interface, rename base class MatchChallenge to Challenge 1/8/13 make specialized graphs inner classes of GTL_GraphNode 1/8/13 handle PTP challenges in the GTL view 1/8/13 make MatchChallenge.createInitialGuess private, make initial guess null for PTP challenges 1/8/13 PTP_GraphNode extends GTL_GraphNode 1/8/13 PTP_Challenge extends GTL_Challenge 1/8/13 rename GTL_GraphNode subclasses 1/8/13 rename ManipulationMode.POINTS to TWO_POINTS, change usage sites accordingly 1/8/13 add ManipulationMode.THREE_POINTS 1/8/13 a couple of tweaks to make GTL and PTP view implementations more similar, to ease refactoring 1/8/13 change "P3P" (Place 3 Points) to "PTP" (Place the Points) throughout code, to match terminology used by the team # 0.00.48 (71539) Jan 8, 2013 1/8/13 demonstrate equation fixes 1/8/13 fix: in point-slope equations, if interactive rise=0, then noninteractive (x-x1) term disappears 1/8/13 fix: in slope-intercept equations, if interactive run=0, then noninteractive y-intercept is 0/0 1/8/13 fix: in slope-intercept equations, if interactive run=0, then interactive y-intercept can't be changed 1/8/13 slope-intercept equations: use separate properties and node for interactive (integer) vs non-interactive (fractional) y-intercept 1/8/13 add developer "Skip" button for skipping the current challenge 1/8/13 change request: "Set the y-Intercept" -> "Set the Y-intercept" # 0.00.47 (71528) Jan 7, 2013 1/7/13 add challenge descriptions, displayed below challenge title for debugging purposes 1/7/13 first attempt at forcing slope inversion in level=4 1/7/13 first pass at challenge generation for level=4 1/7/13 cleanup and document challenge generation for levels 1-3 1/7/13 challenge generation for level=3 # 0.00.46 (71520) Jan 7, 2013 1/7/13 demonstrate challenge generation for levels 1 & 2 1/7/13 position "Replay" button below "Next" button 1/7/13 add ability to reset a challenge, add developer "Replay" button for replaying the current challenge 1/7/13 in level 2, constrain (x1,y1) so that slope indicator stays on the graph 1/7/13 encapsulate challenge factory choice in ChallengeFactory.createChallenges 1/7/13 move hard-coded challenges to their own factory class 1/3/13 fix: for P3P challenges, show "not a line" when guess is not a line (broken during refactoring from 0.00.44 to 0.00.45) 1/2/13 when P3P is correct, set the guess to the answer, so that equations will match 1/2/13 first pass at challenge generation for level=2 1/2/13 more challenge generation utilities to base class 1/2/13 restore challenge factory for level=1 # 0.00.45 (71486) Jan 2, 2013 1/2/13 publish a dev version with hardcoded challenges, since significant refactoring/rewriting has been done since previous version 1/2/13 break out challenge generation into separate factories for each level, single they are quite complicated 1/2/13 more refinement of level=1 challenge generation 1/2/13 fixes and additional constraints for level=1 challenges 1/2/13 first pass at challenge generation for level=1 1/2/13 use list instead of array for challenges 12/27/12 move createEquationNode to ChallengeNode base class 12/27/12 move correct/incorrect icons into EquationBoxNode 12/27/12 move more duplicated code into ChallengeNode base class 12/27/12 standardize rendering order in ChallengeNode subclasses 12/27/12 move most (but not all) duplicate code into ChallengeNode base class 12/27/12 delete redundant visibility updates in Check button handler 12/27/12 move visibility changes into model game-state observer 12/27/12 move title creation to ChallengeNode base class 12/27/12 fix: call IChallenge.setAnswerVisible when "Next" button is visible, so that point tools see the answer line 12/27/12 standardize order of lines that are provided to point tool 12/27/12 move enums to top-level class files 12/27/12 improve model sync in P3P_GraphNode 12/27/12 move duplicate code into GTL_GraphNode base class 12/27/12 make LineNode non-abstract, with no equation by default (useful in game) 12/27/12 fix default title for MTE challenges 12/27/12 make P3P_Challenge extend MatchChallenge, instead of being a different type of challenge 12/27/12 move duplication in GTL_Challenge and MTE_Challenge into base class MatchChallenge 12/22/12 add support for 6 levels to game reward; PhET logo for level 5, all images for level 6 12/22/12 smite inappropriate uses of constants for axes ranges 12/22/12 started the basic outline of challenge generator for Level 1, see ChallengeFactory1 12/22/12 review and augment internal documentation 12/22/12 verified that basic data-collection works for Game 12/22/12 fix dynamic ranges for GTL challenges 12/22/12 set initial guess for GTL and MTE challenges in a more general way 12/22/12 add slope manipulator for dissimilar line forms 12/22/12 throw exception if an unsupported LineForm or ManipulationMode is encountered 12/22/12 consolidate all game view elements in one package 12/22/12 collapse GTL view hierarchy to 1 primary node and 4 graphs by consulting challenge.lineForm and challenge.manipulationMode 12/22/12 collapse GTL view hierarchy by consulting challenge.lineForm 12/22/12 collapse MTE view hierarchy to 2 nodes by consulting challenge.lineForm and challenge.manipulationMode 12/22/12 collapse MTE view hierarchy by consulting challenge.lineForm 12/22/12 move duplicate code into MTE_ChallengeNode base class 12/22/12 use PointSlopeLineNode throughout MTE challenges, because we don't show the equation on graphed lines 12/22/12 use PointSlopeLineNode throughout GTL challenges, because we don't show the equation on graphed lines 12/22/12 simplify GTL_GraphNode interface, don't need separate methods for creating answer and guess line nodes 12/22/12 fix RewardNode.setLevel so that we have a perfect-score reward for all levels 12/22/12 consolidate all game-model elements in one package 12/22/12 flatten MTE_Challenge hierarchy to one class (model for "Make the Equation" challenges) 12/22/12 flatten GTL_Challenge hierarchy to one class (model for "Graph the Line" challenges) # 0.00.44 (71398) Dec 21, 2012 12/21/12 demonstrate "Place the Points" challenges for Game 12/21/12 simplify implementation of P3P challenges to 3 classes 12/21/12 add LineForm enum to game model 12/21/12 fix fractional y-intercepts in P3P challenges 12/21/12 a bit more refactoring of P3P view, to eliminate some duplicate code 12/21/12 refactor P3P challenges, move functionality to base classes, add support for slope-intercept 12/21/12 remove assertion from SlopeInterceptLineNode that disallows fractional y-intercept 12/21/12 prevent points from overlapping in "Place 3 Points" challenges 12/21/12 first pass at "Place 3 Points" for point-slope form (mostly working, a few warts) 12/21/12 remove ':' from sim title 12/21/12 add game levels 5 & 6, for testing "Place Points" challenges 12/21/12 make "correct answer" a slightly darker shade of green (from rgb=0,200,0 to 0,180,0) 12/20/12 move computations and tests related to fractional y-intercept into Fraction class 12/18/12 consolidate calls to Line.getYIntercept # 0.00.43 (71362) Dec 18, 2012 12/18/12 demo fractional y-intercept in test application 12/18/12 fix Line.getYIntercept to handle case where numerator or denominator is zero 12/18/12 factor out duplicated code in for fractional y-intercept in slope-intercept equations 12/18/12 add fractional y-intercept to slope-intercept equations (some duplicated code) 12/18/12 TestEquationNodes: add test case for fractional y-intercept 12/18/12 TestEquationNodes: delete some redundant test cases to make room for testing fractional y-intercept 12/17/12 move algorithm for fractional y-intercept into model 12/17/12 test program for converting y-intercept from decimal to improper fraction 12/17/12 MTE challenges: show the user's guess line (black) when the user's guess is correct 12/17/12 GTL challenges: show the answer line (green) when user's guess is correct 12/17/12 keep the color of "your line" consistently black 12/17/12 change request: put check-mark and "X" icons in upper-right corner of equation boxes 12/17/12 restore game tab 12/17/12 rewrite layout code for point-slope equations so that it adds, rather than deletes, nodes 12/17/12 rewrite layout code for slope-intercept equations so that it adds, rather than deletes, nodes # 0.00.42 (70534) Nov 20, 2012 11/20/12 dev version with smaller subscripts 11/20/12 subscripts are too small with tag, revert to 11/20/12 use instead of for subscripts, because is deprecated in HTML4.01 and unsupported in HTML5 11/20/12 fill in {0} in "{0}=# (slope undefined)" with the translated symbol for "x" 11/20/12 move symbol subscripting (x1,y1,...) into code, make subscripts smaller # 0.00.41 (70308) Nov 14, 2012 11/14/12 fix: represent y=x and y=-x in slope-intercept form in "Point-Slope" tab 11/14/12 change request: "Save line" -> "Save Line", "Erase lines" -> "Erase Lines" # 0.00.40 (70166) Nov 10, 2012 11/10/12 dev version for interviews on first 3 tabs 11/10/12 temporarily hide "Line Game" tab 11/10/12 fix: incorrect order of range params in PointSlopeEquationNode constructor was allowing out-of-range values in spinners 11/7/12 make "Line Game" tab accessible # 0.00.39 (70077) Nov 7, 2012 11/7/12 fix: pad equation control panel width a little bit, so that undefined-slope indicator doesn't make the control panel resize 11/7/12 use DefaultDecimalFormat("0") in DynamicValueNode, instead of doing double-to-int conversion 11/7/12 promote SlopeUndefinedNode to top level, because it's not used in all equations 11/7/12 simplify i18n for slopeUndefined key 11/7/12 remove EquationControls.xPadding param, because interactive Slope equation no longer has a dynamic width 11/7/12 use a constant size for the unsimplified rise & run boxes in the Slope equation 11/6/12 adjust y-spacing for version of Slope interactive equation that puts unsimplified value on a separate line # 0.00.38 (70043) Nov 6, 2012 11/6/12 make slope color look the same everywhere: adjust slope color, change slope tool node so that it doesn't add transparency # 0.00.37 (70041) Nov 6, 2012 11/6/12 dev version for discussing recent change requests with AP 11/6/12 temporarily hide "Line Game" tab 11/6/12 in Slope equation, put rise and run on blue background, ala slope tool [70038] 11/6/12 extract NumberBackgroundNode from slope tool, for reuse in interactive Slope equation 11/6/12 move equation on graphed lines to be near slope manipulator 11/6/12 change request: use plain font style with challenge titles 11/6/12 tweak game challenge titles with AP 11/6/12 display special titles only for single-variable challenges, use default title for all other challenges 11/5/12 make SlopeInterceptModel a specialization of PointSlopeInterceptModel, with x1 constrained to zero via SlopeInterceptParameterRange 11/5/12 center titles in EquationControlPanel 11/5/12 deal with changes in SlopeEquationControls panel width, due to changes in the equation's unsimplified value 11/5/12 fix: sizing of EquationControls strutNode looks suspicious, layout hasn't been done for nodes used to determine size 11/5/12 revert to 1 line for Slope equation # 0.00.36 (69881) Nov 5, 2012 11/5/12 demonstrate putting unsimplified slope below interactive Slope equation 11/4/12 horizontally center the number parts of the unsimplified rise and run in SlopeEquationNode 11/4/12 fix positioning of undefined-slope indicator (red "X") on Slope equation 11/4/12 Slope: try putting "m = #/#" on a separate line below the interactive equation 11/2/12 quick review and cleanup of all code 11/2/12 change initial line for Slope tab 11/2/12 simplify SlopeEquationControls, delete test main 11/2/12 delete unused enum in LGSimSharing # 0.00.35 (69796) Nov 2, 2012 11/2/12 demonstrate new "Slope" tab 11/2/12 remove unnecessary updater call at end of LineFormsGraphNode constructor 11/2/12 doc and @Override annotations in LineFormsGraphNode subclasses 11/2/12 address need to call updaters at end of LineFormsGraphNode subclass constructors, register subclass-specific observers instead of overriding update methods 11/2/12 add getManipulatorDiameter to LineFormsGraphNode base class 11/2/12 move stuff related to line manipulators to linegraphing.common.view.manipulator 11/2/12 move stuff related to spinners to linegraphing.common.view.spinner 11/2/12 replace X1Y1DragHandler with YInterceptDragHandler (constrain to vertical drag) in SlopeInterceptGraphNode 11/2/12 move model subclasses to appropriate packages 11/2/12 fix: init of ranges in SlopeModel 11/2/12 create model and graph node for Slope tab 11/2/12 move manipulators to subclasses of LineFormsGraphNode 11/2/12 move ranges to subclasses of LineFormsModel 11/2/12 #3472, delete security=all-permissions for TestEquationNodes from line-graphing-build.properties 11/1/12 prevent (x1,y1)==(x2,y2) by making spinners skip over values in interactive slope equation 11/1/12 use slope-intercept form for standard lines in Point-Slope tab 11/1/12 Slope: label lines with "m is value", blow off i18n ordering (too difficult, can't use MessageFormat) 11/1/12 fix: undefined slope indicator (red "X") isn't centered on slope equation when the equation is wrapped in a ZeroOffsetNode 11/1/12 add Slope module, currently using point-slope graph implementation 11/1/12 add graphControls constructor arg to LineFormsCanvas base class 11/1/12 add a variant of GraphControls that hides check boxes for standard lines 11/1/12 add "Slope:" prefix to title in Slope equation control panel # 0.00.34 (69712) Oct 31, 2012 10/31/12 create specialization of LineNode that labels the line with slope formula, m = value 10/31/12 non-interactive version of slope equation, which shows m = 10/31/12 add a flag to show/hide unsimplified value in interactive slope equation 10/31/12 make return type of LineNode.createEquationNode less specific # 0.00.33 (69693) Oct 30, 2012 10/30/12 dev version for discussing Slope equation format with AP 10/30/12 use difference colors for (x1,y1) and (x2,y2) 10/30/12 render general form of slope equation, add test harness to SlopeEquationControls 10/30/12 show both unsimplified and simplified value on RHS of slope equation 10/30/12 remove parens from slope equation 10/30/12 move responsibility for rendering general form of equation to EquationNode subclasses 10/30/12 add ability to specify an arbitrary node for the title of equation control panel, since slope equation cannot be rendered using HTMLNode # 0.00.32 (69676) Oct 30, 2012 10/30/12 dev version to demo slope equation 10/30/12 temporarily disable game levels 5 & 6 (where "Place 3 Points" challenges are being developed) 10/30/12 rearrange layout of TestEquationNodes 10/30/12 add undefined-slope indicator (big red "X") to slope equation 10/30/12 adjust y-offset of static parts of slope equation 10/30/12 first pass at interactive slope equation 10/30/12 add packages and resources for new "Slope" tab 10/29/12 increase x-offset for equations on graphed lines so that they are more often inside the bounds of the grid 10/29/12 prevent "x = 0 (undefined slope)" from overlapping the y-axis labels in Slope-Intercept tab 10/29/12 replace !line.isSlopeDefined with line.undefinedSlope (all usages were inverted) 10/29/12 replace Line.simplified with getSimplifiedRise and getSimplifiedRun [69640] 10/29/12 tweak the stroke used for the slope tool 10/29/12 "intercept" -> "y-intercept" in challenge instructions 10/29/12 add ability to specify titles (eg "Set the slope", "Set the intercept") for challenge subclasses 10/29/12 fix: manipulators sometimes overlap equation on graphed line, e.g. (y-1)=(3/3)(x-5) 10/29/12 cleanup to reduce coupling introduced in previous change 10/29/12 show slope tool for user's line when they've failed a challenge 10/29/12 use color of line for color of title in EquationBoxNode 10/26/12 use (x1,y1) color for intercept, since intercept is (0,y1) 10/26/12 relax assertion in SlopeInterceptEquationNode to allow fractional y-intercept when y-intercept is not interactive 10/26/12 use MathUtil.isInteger(value) instead of (value==Math.round(value)) 10/25/12 change some class constants to final local vars 10/25/12 move starting location of point tools in first 2 tabs, center them under the graph 10/25/12 GTL challenge: "Target line" -> "Line to Graph", "Your line" -> "Your Line" 10/25/12 MTE challenge: "Your line" -> "Your Equation", "Target line" -> "Correct Equation" 10/24/12 add strings for "Place 3 Points" challenge 10/24/12 change request: "Given line" -> "Target line" 10/24/12 implemented model for "Place 3 Points" challenge, and stubs for view components 10/24/12 revise class hierarchy to support challenges that are not "matching" challenges 10/24/12 clean up some uses of Line.color 10/24/12 eliminate the need for EquationNode.setPaintDeep, replace equation on graphed line when its color changes 10/24/12 scale titles in EquationBoxNode if they don't fit in the dimensions of the box # 0.00.31 (69463) Oct 24, 2012 10/24/12 adjust centering of first 2 tabs 10/24/12 game: add an outline around face, because we have a bright yellow face on a light yellow background 10/24/12 game: reduce size of face, change layout so that face is below equation boxes 10/24/12 game: reduce equation font size so that everything fits in equation boxes 10/23/12 game: move point tools in front of check-mark and X icons 10/19/12 tweak rendering order in challenge nodes 10/19/12 delete setPickable calls in challenge nodes, unnecessary for this sim 10/19/12 tweak layout of equation boxes in game 10/19/12 cleanup layout code in GTL_ChallengeNode and MTE_ChallengeNode 10/19/12 put boxes around the equations in "Make the Equation" challenges 10/19/12 put boxes around the equations in "Graph the Line" challenges 10/18/12 cleanup positioning of equation on graphed line 10/18/12 point-slope equations: fix spacing on rhs of relational operator when slope is 1 10/18/12 address "declaration redundancy" items from IDEA code inspection 10/18/12 change color of Check-Mark-u2713.png from yellow to green 10/18/12 change request: restore sign on slope-tool numbers # 0.00.30 (69149) Oct 12, 2012 10/12/12 tweak margins and spacing in slope tool to look better for rise/run=1/1 case 10/12/12 game fix: when challenge is correct, disable interactivity 10/12/12 game: add check-mark and "X" icons for "correct" and "incorrect" next to equations 10/12/12 new slope tool got a thumbs up, delete old version (RiseRunBracketNode) 10/12/12 slope tool: change color of line, adjust strokes # 0.00.29 (69048) Oct 9, 2012 10/9/12 demo various change requests 10/8/12 slope tool: use a lighter stroke, fix delimiter paint bug 10/8/12 slope tool: add dimensional delimiters at ends of arrow, offset from grid lines, create new icon for control panel 10/8/12 render slope tool behind line manipulators 10/8/12 fix arrow tips on slope tool, they looked a bit off due to rounding error 10/7/12 #3423, migrate CenteredStageCanvas to piccolo-phet 10/7/12 #3423, generalize and rename CenteredStageCanvas, in preparation for migration to piccolo-phet 10/7/12 intermediate step in implementation of new slope tool 10/7/12 copy X and check-mark images from balancing-chemical-equations 10/7/12 delete vestigial entries in images/license.txt 10/5/12 factor out method for creating shape of fraction division line 10/5/12 fix location of equation on graphed line so that it's always on the opposite side of the line from the slope tool 10/5/12 change color scheme to avoid overloading of yellow and green 10/5/12 instantiate some colors in LGColors to take advantage of IDEA's color editor 10/5/12 flip slope tool so that it you follow rise, then run to get from point to slope manipulator 10/5/12 put equation below plotted line only in quadrant 1, so that it doesn't overlap with the new location of slope tool 10/5/12 add separate x-spacing for fraction vs integer slope 10/5/12 delete unnecessary field for undefined-slope indicator 10/5/12 fix spacing between slope spinners and "(" in point-slope equations 10/5/12 add TestEquationNodes to build.properties to facilitate cross-platform layout comparisons 10/5/12 render zero point coordinates, eg "(y - 0) = m(x - 0)" [68863] 10/5/12 implement EquationNode.setPaintDeep so that highlighting of static equations works properly 10/5/12 delete obsolete StaticEquationNode base class 10/5/12 rename TestEquationNodes 10/5/12 flatten EquationNode hierarchy, rename subclasses [68859] 10/5/12 delete EquationFactory hierarchy, replace usages with EquationNode instantiations [68857] 10/5/12 merge implementations of equations [68855] 10/5/12 interactive equations: if nothing is interactive and slope is undefined, display "x={0} (slope undefined)" 10/5/12 add Line.isSlopeDefined 10/3/12 fix rendering of operators and fraction line in interactive equations 10/3/12 consolidate equation layout metrics in a base class, used by all equation renderers 10/3/12 rename EquationNode to StaticEquationNode 10/3/12 create a single main for testing all equations, so we can everything in one place (slope-intercept vs point-slope, static vs interactive, etc.) 10/2/12 more tweaking of line rendering parameters (spacing, thickness, etc) with AP 10/2/12 change color of user's guess from red to black in game 10/2/12 tweak thickness of minus sign and fraction line # 0.00.28 (68663) Oct 1, 2012 10/1/12 demo complete set of challenges for "Make the Equation" 10/1/12 consolidate methods for computing the ranges of line parameters 10/1/12 game fix: use point-slope line factory when manipulating 2 arbitrary points, since y intercept may be non-integer 10/1/12 move LineGameConstants to correct package 10/1/12 game: make button font larger 10/1/12 game: change color of plotted (non-interactive) points to gray 10/1/12 game: make point tools smaller 10/1/12 game: move initial location of point tools down slightly for "Make the Equation" challenges 10/1/12 game: if dev flag is true, show answer for "Make the Equation" challenges 9/29/12 collapse interactive equations to a single constructor 9/29/12 use same font sizes for answer & guess equations in game 9/29/12 show correct answer for failed "Make the Equation" challenges 9/29/12 always show the equation/line to be matched in green, don't mess with black-to-green transition 9/29/12 add marker class ChallengeNode to view hierarchy 9/29/12 fix which lines are "seen" by the point tools for "Make the Equation" challenges 9/29/12 change signature of PointSlopeInteractiveEquationNode constructors so that "point" params are before "slope" params 9/29/12 add "Make the Equation" challenges for point-slope form 9/29/12 change interface to GTL_ChallengeNode.createGraphNode 9/29/12 game: modify interface for MTE_GraphNode constructors 9/28/12 game: create all base classes for MTE challenges, plus one concrete example 9/28/12 game: when user fails to solve GTL challenge, show equation that corresponds to user's guess 9/28/12 game: rename base classes for GTL graph nodes 9/28/12 game: when dev flag is enabled, show the answer as a translucent gray line (for debugging) 9/27/12 game: fix color displayed by point tools 9/27/12 game: move point tools from model container to challenge 9/25/12 reduce uses of Line.color, since I'd like someday like to move this field out of the model 9/25/12 game: change modifier on internal method from public to protected 9/25/12 game: move graph nodes to top level 9/25/12 game: move graph and mvt into "Graph the Line" challenge subclass 9/25/12 game: change naming convention for model and view classes 9/25/12 game: repackage model & view 9/25/12 game: class name changes and a bit of monkeying with the view hierarchy 9/25/12 point tools moveToFront when dragged, so we give them a common parent to preserve rendering order of the reset of the scenegraph 9/24/12 fix spacing between negative slope sign and integer slope value in point-slope interactive equation 9/24/12 interactive equations: compute dimensions and layout offsets based on font point size 9/24/12 static equations: compute dimensions and layout offsets based on font point size 9/24/12 move layout constants and creation methods to EquationNode base class 9/20/12 change request: add more space around relational operator in interactive equations 9/20/12 add Karina to the credits 9/20/12 change request: add more space around relational operator (done for static equations) # 0.00.27 (68226) Sep 20, 2012 9/20/12 demo major (internal) changes to static and interactive equations 9/19/12 fix: EquationNode.setPathDeep needs to setPaint for PPath nodes, because equations now use filled Rectangle2D exclusively 9/19/12 factor out duplicate code related to slope sign in interactive equations 9/19/12 fix: handle undefined slope (rise/0) properly in interactive equations 9/19/12 fix: Line.simplify should do nothing if slope is zero or undefined 9/19/12 completed the various forms of point-slope equations in PointSlopeInteractiveEquationNode 9/18/12 add Line.getSlope 9/18/12 PointSlopeInteractiveEquationNode: use MinusNode, move layout to a private method 9/18/12 convert layout function to a method in SlopeInterceptInteractiveEquationNode, move x-spacing and y-spacing constants to base class 9/18/12 extract layout function for SlopeInterceptInteractiveEquationNode 9/18/12 use MinusNode for intercept sign, add constructors to MinusNode and PlusNode 9/18/12 use plus and minus nodes in interactive slope-intercept equation, parameterize y-offset of slope sign 9/18/12 rework PointSlopeEquationFactory: render signs and operators using PPath, parameterize y-offset of slope sign 9/18/12 rework SlopeInterceptEquationFactory: render signs and operators using PPath, parameterize y-offset of slope sign 9/17/12 rewrite/simplification of layout code in SlopeInterceptInteractiveEquationNode 9/17/12 handle layout for simplified forms of interactive slope-intercept equation 9/13/12 render guess before answer, so that answer is visible when guess==answer 9/13/12 make challenge interactive when user gets it wrong twice and correct answer is shown 9/13/12 slope-intercept: show simplified slope if slope is not interactive, hide zero intercept if it's not interactive 9/13/12 point-slope: show simplified slope if slope is not interactive 9/13/12 add ability to make x1 and y1 interactive (or not) independently in point-slope interactive equation # 0.00.26 (67947) Sep 12, 2012 9/12/12 demonstrate complete set of example challanges for "Graph the Line" 9/12/12 increase width of fraction line used in static equations 9/12/12 use more interesting point-slope lines for sample "Graph the Line" challenges 9/12/12 extract base class for interactive equations 9/12/12 adapt point-slope interactive equation so that specific parts of it can be made interactive (point, slope, both) 9/12/12 extract text node that synchronizes with model value 9/12/12 adapt slope-intercept interactive equation so that specific parts of it can be made interactive (slope, intercept, both) 9/11/12 i18n of challenge titles 9/11/12 adapt challenge node base class so that it works for both "Graph the Line" and "Make the Equation" challenges 9/11/12 add sim-sharing UserComponent values for (x1,y1) and (x2,y2) manipulators 9/11/12 factor out interface for creating nodes for "answer" and "guess" lines 9/11/12 keep manipulators visible when showing correct answer 9/11/12 add a drag handler for (x2,y2), use it instead of slope drag handler in "2 arbitrary points" challenges 9/11/12 fix: prevent arbitrary points from being dragged on top of each other, creating undefined line 9/11/12 fix: adjust range of rise and run dynamically for (x2,y2) 9/11/12 bugfix in Line.createPointSlope 9/11/12 show answers in game if "dev" flag is enabled 9/11/12 adjust rendering order of answer and guess in challenges 9/11/12 cleanup challenge nodes 9/11/12 add challenge: given an equation in point-slope form, graph the matching line by manipulating 2 arbitrary points 9/11/12 add challenge: given an equation in point-slope form, graph the matching line by manipulating point and slope 9/11/12 add convenience constructor for creating Line with a default color 9/11/12 add challenge: given an equation in point-slope form, graph the matching line by manipulating point 9/11/12 create base classes for challenge nodes 9/11/12 add challenge: given an equation in point-slope form, graph the matching line by manipulating slope 9/11/12 (temporary?) naming scheme for challenges, encodes: line form, "given" type, "guess" type 9/10/12 add challenge: given an equation in slope-intercept form, graph the matching line by manipulating 2 arbitrary points 9/10/12 reorganize the view implementation for matching challenges 9/10/12 fix: for challenge where y-intercept is manipulated, position of slope shouldn't affect range of y-intercept 9/10/12 change some variable names related to ranges 9/10/12 add ability keep either slope or (x2,y2) constant while manipulating (x1,y1) 9/10/12 update sim-sharing message for line manipulators to match revised Line model 9/10/12 add assert(x1==0) where we assume that a line is in slope-intercept form 9/10/12 remove unnecessary final modifiers from constructor params 9/10/12 rename StraightLineNode to LineNode 9/10/12 replace multiple params with LineFormsModel and LineFormsViewProperties in constructors that are specific to the first 2 tabs [67794] 9/10/12 create a data structure (LineFormsViewProperties) for properties that are specific to the view [67794] 9/10/12 fix: rise/run brackets go behind interactive-equation control panel 9/10/12 change order of constructor args to match point-slope form 9/10/12 prevent model from modifying x1 range when it is initially [0,0] 9/10/12 replace LineFormsModel subclasses with factory methods 9/10/12 add cursor handler in LineManipulatorNode base class, all manipulators are interactive 9/10/12 cleanup and doc of revised line model 9/10/12 major change: collapsed the line hierarchy, simplifies the entire implementation [67772] 9/7/12 fix: setPickable(false) for UndefinedSlopeIndicator [67749] # 0.00.25 (67746) Sep 7, 2012 9/7/12 demo change requests 9/7/12 introduce PointPointLine as the base class for the line model hierarchy [67742] 9/7/12 change request: put a translucent red "X" over the interactive equation when run=0 9/6/12 change request: when run=0, label line as "x=# (slope undefined)" 9/6/12 #3434, change default behavior of "New Game" to no confirmation # 0.00.24 (67688) Sep 5, 2012 9/5/12 demo a couple of new "Graph the Line" challenges 9/5/12 refine challenges for slope-intercept lines, remove duplicate code 9/5/12 brute-force implementation of "graph the intercept" challenge for slope-intercept lines 9/5/12 brute-force implementation of "graph the slope" challenge for slope-intercept lines 9/5/12 add node for plotted points in game (typically the intercept for some slope-intercept challenges) 9/5/12 add factory method to challenges for instantiating view 9/4/12 add factory field to challenges for instantiating lines 9/4/12 extract constants for range of axes 8/31/12 fix: game reward should be running only when its visible 8/31/12 fix: reset score when starting a new game 8/31/12 add logging to game canvas, to debug start/stop of reward animation when module is activated/deactivated 8/31/12 move initial location of point tools up slightly 8/31/12 fix drag bounds for point tools 8/31/12 change flavor name to "graphing-lines", to match new sim name 8/30/12 change request: rename sim to "Graphing: Lines" 8/30/12 encapsulate game results in GameResults 8/30/12 remove unused constructor arg 8/30/12 reset point tool locations when challenge changes 8/30/12 move mvt into game challenge, since the origin location depends on where the graph is in the play area # 0.00.23 (67522) Aug 30, 2012 8/30/12 demo change requests and internal-architecture changes 8/28/12 migrate game strings to phetcommon: Check, Try Again, Show Answer, Next 8/28/12 migrate GameTimer to common.games, use in RPAL and BCE 8/28/12 generalizations and doc for GameTimer 8/28/12 minor tweaks in RewardNode 8/28/12 introduce generics in linegame package 8/28/12 delete PointSlopeLine.withColor, misc docs 8/28/12 major change: use generics to enforce use of SlopeInterceptLine, instead of "assert( line.x1 == 0 )" [67467] 8/27/12 move point tool to the foreground when drag starts 8/27/12 change line class hierarchy, SlopeInterceptLine extends PointSlopeLine 8/27/12 change order of constructor params to "point,slope" and "slope,intercept" to match line-form names 8/27/12 SlopeInterceptModel extends PointSlopeModel 8/27/12 first step in collapsing LineFormsModel hierarchy 8/27/12 move more responsibility into LineFormsModel, since slope-intercept is a special case of point-slope 8/27/12 delete InterceptDragHandler, it's a special case of PointDragHandler with x1 fixed at zero 8/27/12 move line manipulator functionality into LineFormsGraphNode base class, because slope-intercept is a special case of point-slope, with x1 fixed at zero 8/27/12 rename LineFormsGraphNode, doc that it's a base class for tabs 1 & 2 8/27/12 doc and cleanup of common classes 8/27/12 doc and cleanup of classes that are specific to tabs 1 & 2 8/27/12 place point tools close together 8/27/12 add orientation to point tool, make one point "up", one point "down" 8/24/12 don't request confirmation for "New Game" button 8/21/12 add assertions to verify x1==0 when we're expecting a slope-intercept line 8/21/12 add assertions to equation factory constructors 8/21/12 simplify placement of slope manipulator for slope-intercept lines 8/21/12 rename methods that deal with add/remove of lines in LineGraphNode, doc 8/21/12 memory leak in list of lines solved by other previous change (updating spinners atomically) 8/21/12 bug fix: update spinners atomically, so that dragging slope manipulator can't create a line with slope=0/0 8/21/12 delete WellDefinedLineProperty, make slope spinners handle avoidance of slope=0/0, add assertion check for slope=0/0 to StraightLine 8/21/12 change order of args to constructors in SpinnerNode hierarchy 8/21/12 more cleanup of equation spinners 8/21/12 generalization and cleanup of equation spinners 8/21/12 fixed StraightLine.same 8/21/12 use color constant for title in control panel 8/21/12 delete RoundedStraightLine class, handle snap-to-grid in drag handlers for line manipulators 8/21/12 fix issues with StraightLine.solveX and solveY 8/20/12 simplify StraightLine model by deleting redundant yIntercept field 8/20/12 bug fix in WellDefinedLineProperty constructor 8/20/12 change LineFormsModel constructor, pass in default line, create property internally 8/20/12 add a zero-arg constructor to GameTimer 7/31/12 add PlayState.NONE to fix bugs with starting a new game in the middle of playing a game 7/31/12 #3395, move -startModule program arg to PhetApplication.startApplication # 0.00.22 (66238) Jul 25, 2012 7/25/12 dev version to demo progress on first challenge type: graph a line in slope-intercept form 7/25/12 setPickable(false) for game challenge nodes that aren't interactive 7/25/12 fix color of correct answer line, as shown by point tool 7/25/12 make game graph interactive only when in "Check" state 7/25/12 add 2 point tools to "Graph the Line" challenge 7/25/12 change PointTool to use a single list of lines, so it can be reused in the game 7/24/12 on "Show Answer", set color of equation to be same as the correct line 7/24/12 clean up challenge and state initialization for game 7/24/12 complete game-play cycle for one type of challenge 7/24/12 mess around with colors for given, guess and correct answer 7/24/12 move game constants to GameConstants 7/24/12 first challenge: add manipulators, display points 7/24/12 partial first-pass at first challenge, no interactivity, brute-force implementation to investigate issues and architecture 7/24/12 update game-model fields before notifying observers that game phase has changed 7/24/12 simplify identification of objects that describe the same line, delete problematic override of equals 7/24/12 move highlight color out of line model and into view, since it is applicable to saved lines only 7/24/12 replace odd mutation constructor with "with" method in StraightLine 7/24/12 fix initial position of slope-intercept manipulators, broken in [66153] by overriding StraightLine.equals 7/23/12 rudimentary challenge added to game model 7/23/12 simplify a line only if its rise and run are who numbers 7/23/12 modify *EquationFactory interfaces so that equation simplification is optional 7/23/12 move responsibility for equation simplification into the model 7/23/12 rename nodes for interactive equations # 0.00.21 (65997) Jul 18, 2012 7/18/12 tweak game reward parameters 7/18/12 add images of simplified equations to game reward 7/18/12 flatten PointToolNode hierarchy 7/18/12 make PointToolNode responsible for generation of game reward images 7/18/12 add point coordinates to point tools in the game reward # 0.00.20 (65976) Jul 18, 2012 7/18/12 dev version to demonstrate top-level flow of game and reward 7/17/12 use a consistent color for game buttons/instructions 7/17/12 save/restore the game reward node's animation state when deactivating/activating the game module 7/17/12 add "Developer->Test game reward" menu item 7/17/12 add graph images to game reward 7/17/12 add point tool images to game reward 7/16/12 configure game reward based on level 7/16/12 compute what a perfect score is 7/16/12 update bounds of game reward when the canvas is resized 7/16/12 encapsulate handling of "best scores" 7/16/12 play end-of-game sounds 7/16/12 add basic structure of game reward 7/13/12 implemented basic game flow between settings, play and results phases 7/13/12 set up basic "phases" of game, add dependency on common "games" module # 0.00.19 (65067) Jun 14, 2012 6/14/12 first 2 tabs cleaned up, feature complete, all known issues addressed 6/14/12 fix jumpiness of slope manipulator that was happening when skipping over slope=0/0 6/14/12 fix graph tick marks to display integer values 6/13/12 when model adjusts slope to prevent undefined lines, send a sim-sharing model message 6/13/12 make equation spinners update correctly when they skip over zero value to prevent slope=0/0 6/12/12 add specialization of StraightLine that snaps its args to an integer grid 6/12/12 encapsulate method of rounding and formatting doubles to ints in SimplifiedEquationFactory.toIntString 6/12/12 show equation on line while manipulators are in use, since we're snapping to grid [65022] 6/12/12 remove MathUtil.roundHalfUp calls that are unnecessary now that we snap to grid while dragging [65019] 6/12/12 rename MathUtil.round to MathUtil.roundHalfUp, to prevent accidentally using Math.round 6/12/12 factor out duplication in GraphNode 6/12/12 change test harnesses for interactive equations 6/12/12 javadoc, reorder constructor args for consistency 6/12/12 refactor duplication in canvas classes for first 2 tabs 6/12/12 add model constructor for graph with 4 uniform quadrants, javadoc 6/12/12 more refactoring of model-container classes 6/12/12 create a property that ensures that our line is not undefined 6/12/12 refactor duplication in model-container classes for first 2 tabs 6/12/12 refactor duplication in control panels for interactive equation 6/12/12 use the same slope drag handler for both line forms 6/12/12 refactor duplication in class hierarchy of line manipulation drag handlers # 0.00.18 (64844) Jun 7, 2012 6/7/12 change requests based on 6/7 meetings 6/7/12 when rise<0 and run>0, put equation below line so that it isn't occluded by rise/run brackets 6/7/12 rename some classes related to simplified equations 6/7/12 snap point tool to grid while dragging 6/7/12 delete equation controls that aren't used 6/7/12 gray for control panel backgrounds 6/7/12 black for non-interactive parts of equation 6/7/12 change default equations 6/7/12 constants for x and y spacing in interactive equations 6/7/12 position point tools under graph 6/7/12 vertically center controls to right of graph 6/7/12 change format of "unknown" point, make it translatable 6/7/12 make the rise/run labels opaque, but add the ability to vary their color saturation 6/7/12 rename interactive equation nodes 6/7/12 rename SpinnerNode2 (and related classes) to SpinnerNode 6/7/12 delete spinner implementation and image files that were based on fractions sim [64786] 6/7/12 revert to gray for non-interactive parts of equation # 0.00.17 (64784) Jun 7, 2012 6/7/12 dev version with black for non-interactive parts of equation (requested by KP) # 0.00.16 (64780) Jun 7, 2012 6/7/12 additional refinements to spinners, based on meeting with AP 6/5/12 fix sign of intercept in equation 6/5/12 clean up constructor interfaces for interactive equations 6/5/12 use neutral blue for background of graph controls 6/5/12 subscripts on x1 and y1 6/5/12 add whitespace to formatting of point-slope equation in title bar of equation control panel 6/5/12 use low-saturation magenta for x1,y1 point color 6/5/12 make spinner arrows slight wider (20->26) 6/5/12 use plain font style for static elements of interactive equations 6/5/12 increase equation font size to 28 pt # 0.00.15 (64643) Jun 4, 2012 6/4/12 refinements to new spinners in interactive equations 6/4/12 fix width of slope spinners 6/4/12 improve "continuous spin" behavior of spinners, cleanup, refinement 6/4/12 add paint strategies (solid & gradient) to spinner background 6/4/12 add rounded corners to background areas of spinners, using CAG # 0.00.14 (64615) Jun 4, 2012 6/4/12 first pass at new spinner design in interactive equations 5/31/12 always update line manipulators on endDrag, so that equation is displayed 5/31/12 snap to grid while dragging line manipulators (flag LGConstants.SNAP_TO_GRID_WHILE_DRAGGING) 5/31/12 right justify numbers in spinners 5/31/12 point-slope: don't change sign in static part of interactive equation for spinners implementation 5/31/12 slope-intercept: don't change sign in static part of interactive equation for spinners implementation 5/31/12 increase stroke width of dividing line in interactive equations, standardize font size 5/30/12 fix copy constructor for StraightLine 5/30/12 point-slope: hide zeros when reducing equations 5/29/12 point-slope: first pass at interactive equation (uses spinners) 5/29/12 rename interactive equation node implementations to indicate what type of controls they use (spinners, pickers,...) 5/29/12 move SpinnerNode and subclasses to linegraphing.common.view 5/29/12 point-slope: factory for creating reduced forms of (y-y1)=m(x-x1) 5/29/12 point-slope: skip over values that would result in slope=0/0 5/29/12 add -startModule command line dev arg 5/29/12 point-slope: dynamically adjust ranges for rise, run, x1, x2 5/29/12 slope-intercept: don't bother with slope=0/0 when adjusting ranges, handle post manipulation 5/29/12 point-slope: fix positioning of slope manipulator 5/29/12 point-slope: use lighter blue for (x1,y1) manipulator 5/29/12 reduced point-slope form when rise=0 5/29/12 when run=0, position line at (x1); when rise=0, position line at y1 5/29/12 first pass at (x1,y1) manipulator, not quite right 5/29/12 adjust rise/run bracket placement to account for (x1,y1) 5/29/12 implement factory method for simplest form of point-slope, for debugging 5/29/12 flesh out point-slope specializations 5/29/12 more base class extraction 5/29/12 extract base class for line graph view, specialize for different line forms 5/29/12 populate point-slope model and view, with considerable duplication to start 5/29/12 resurrect spinner-based equation from [64199] 5/23/12 get colors from modified line, instead of using color constants 5/23/12 rename ReducedSlopeInterceptEquationFactory to SlopeInterceptEquationFactory 5/23/12 moe more stuff to linegraphing.common.view 5/23/12 move icon creation methods to GraphNode 5/23/12 move view components used in tab 1 & 2 to linegraphing.common.view 5/23/12 move PointTool to linegraphing.common.model 5/23/12 change PointTool to use x1,y1 instead of yIntercept (more general) 5/23/12 collapse StraightLine class hierarchy to one class with slope-intercept and point-slope constructors 5/22/12 simplify Graph model 5/22/12 class hierarchy for lines 5/21/12 prevent slope=0/0 by skipping over zero rise or run (depending which is changing), do this in the model 5/17/12 in computation of dynamics rise range, prevent slope=0/0 5/17/12 cleanup of internal property observers in SlopeInterceptEquationNode 5/16/12 rename SlopeInterceptEquationNode2 to SlopeInterceptEquationNode 5/16/12 decided to use pickers instead of spinners, deleted version of interactive equation with spinners [64199] # 0.00.13 (63678) Apr 20, 2012 4/19/12 fix sign on reduced equations when slope is an integer 4/19/12 restore use of pickers # 0.00.12 (63651) Apr 19, 2012 4/19/12 identical to 0.00.11, but uses spinners instead of pickers 4/19/12 temporarily replace pickers with spinners, so we can compare in 2 identical dev versions # 0.00.11 (63649) Apr 19, 2012 4/19/12 make rise/run values slightly less transparent, so that the values are more clearly-visible when they are on top of other things 4/19/12 make manipulators slightly larger, to encourage users to play with them 4/19/12 layout tweak in picker 4/19/12 clean up standard line icons (no equation on line, shorter line) 4/19/12 align fraction dividing line with center of equals sign 4/19/12 color-code title of equation controls to match the interactive line 4/19/12 use a thinner stroke for picker numbers, the aliasing is less noticeable 4/19/12 use less-saturated colors for picker button highlight 4/19/12 center root node on stage in tab 1 4/19/12 make sign outside picker same color as number in picker 4/19/12 add a flag to make it easy to switch between spinners and pickers in interactive equation # 0.00.10 (63626) Apr 19, 2012 4/19/12 dev version with refined pickers 4/19/12 color tweaks 4/19/12 use number color for button highlight color, white highlight wasn't noticeable enough 4/19/12 AP picker change requests: use gray gradient for buttons, use color for numbers, black outline on numbers 4/19/12 i18n for format of xy coordinates in point tool 4/17/12 use gradients for picker buttons 4/17/12 simplify color scheme for pickers 4/17/12 add model for point-slope line format, add stub for base class 4/17/12 new point tool image from AP 4/17/12 make GraphNode more object-oriented 4/17/12 add test to GraphNode, move view-specific assertion from Graph to GraphNode 4/17/12 repackage classes used in >1 tab 4/17/12 rename some classes that are specific to slope-intercept format 4/17/12 i18n suggestion from Sandor: add a space between x and y coordinates in point tool, because ',' is the decimal separator for many locales 4/16/12 use Paint instead of Color in picker interfaces, to support possible use of gradients # 0.00.09 (63501) Apr 16, 2012 4/16/12 make pickers show abs value, put signs outside pickers 4/16/12 delete convenience pickers for rise and run # 0.00.08 (63479) Apr 16, 2012 4/16/12 version of interactive equation that uses number pickers instead of spinners 4/16/12 add "barrel" shapes to number pickers 4/16/12 bug fix for SpinnerButtonNode, inherited from fractions 4/16/12 intermediate, crude version of AP's number picker 4/16/12 scale point tool image to eliminate scaling in PointTooNode # 0.00.07 (63437) Apr 16, 2012 4/16/12 use grayscale image for point tool, until we work out colors of other things 4/16/12 highlight the point tool using the color of the line that the tool is on 4/16/12 use a more subdued color for point tool image 4/16/12 improve visibility of minus sign in graphed equations by aligning it with slope numerator 4/16/12 try yellow for highlight on point tool, but it conflicts with yellow used elsewhere for intercept 4/16/12 revert to spinner buttons on right, above/below was deemed to be ugly with poor usability 4/12/12 delete "interviews" study version from build.properties, it's premature # 0.00.06 (63392) Apr 12, 2012 4/12/12 try spinner buttons above/below numbers, buttons side-by-side # 0.00.05 (63387) Apr 12, 2012 4/12/12 tweak initial location of point tools 4/12/12 tweak the layout of spinner-based interactive equation 4/12/12 set correct sign (+,-) for intercept in interactive equation 4/12/12 adjust for minus sign when centering values in spinner 4/12/12 center value in spinner 4/12/12 don't allow slope and intercept to overlap, snap rise towards the origin (above or below intercept) 4/12/12 shrink the grid a bit, so that there's a margin around it for rise/run brackets 4/12/12 dynamically enable/disable the spinner buttons as the range changes 4/12/12 common color for all canvases 4/12/12 move non-app classes to linegraphing.common 4/12/12 rename packages for tabs 1 & 3 4/12/12 rename top-level classes for tabs 1 & 3 4/12/12 rename first tab (Slope-Intercept), add second tab (Point-Slope) 4/12/12 dynamically set the rise and intercept ranges, so that rise + intercept is constrained to the bounds of the graph 4/12/12 set up infrastructure for dynamically adjusting rise and intercept ranges 4/11/12 fix: when equation is minimized, equation on graphed line should be hidden, not the entire line 4/11/12 correct accidental use of Math.round when MathUtil.round was intended # 0.00.04 (63327) Apr 11, 2012 4/11/12 hide equation on interactive line while manipulators are being dragged 4/11/12 fix: don't show rise/run bracket when value is zero 4/11/12 make manipulator drag handler specific to manipulator node 4/11/12 revert to continuous line manipulation # 0.00.03 (63322) Apr 11, 2012 4/11/12 add a 2nd point tool 4/11/12 allow manipulators to be dragged continuously, but keep interactive line snapped to grid 4/11/12 bug fix in point tool, only solve equation when slope is defined # 0.00.02 (63268) Apr 10, 2012 4/10/12 limit range of rise, run and intercept to -5 to 5 (half the range of the grid) 4/10/12 tweak interactive equation layout 4/10/12 move view properties from LineGraphNode to IntroCanvas 4/10/12 solve for y when deciding whether to highlight point tool, to avoid divide-by-zero 4/10/12 turn off point tool highlighting when lines are hidden on graph 4/10/12 highlight the pointer tool by changing its background color 4/10/12 don't use rounding when determining if point tool is on line 4/10/12 delete unnecessary specializations of SlopeInterceptLine 4/10/12 first pass at highlighting point tool when it's on any line 4/10/12 when "Hide Lines" is unchecked, disable Save Line and Erase Lines buttons 4/10/12 keep saved and standard lines in model 4/10/12 add line subclasses for different categories of lines, move line color into model because it's convenient 4/10/12 make point tool a full-fledged model element, in preparation for adding highlighting feature 4/10/12 start with pointer tool off the grid 4/9/12 static constants for standard lines 4/9/12 clean up rise/run bracket class 4/9/12 make view classes package private 4/9/12 rename equation controls 4/9/12 hide equation on interactive line when equation control panel in minimized 4/9/12 factory pattern for creating reduced equations in the correct format 4/9/12 first attempt at revising format of equations shown on graphed lines, complicated and buggy while dragging 4/9/12 keep bounds of point tool node inside bounds of stage 4/9/12 add convenience constructor to LineGraph 4/9/12 when point tool is outside grid, don't snap and don't display coordinates 4/9/12 change rendering order of line types: interactive, saved, standard 4/9/12 convert graph and components to use absolute coordinates instead of deltas for mvt 4/9/12 separate layout and positioning of graph 4/9/12 constrain point tool to stage bounds 4/9/12 separate point tool from graph 4/9/12 make mvt apply to entire canvas, not just the graph 4/6/12 make slope (rise over run) brackets visible by default, since AP feels strongly that they should always be visible 4/6/12 use SettableNot to invert linesVisible property 4/6/12 flatten line graph hierarchy, to provide control over rendering order for the different categories of lines 4/6/12 generalize workaround for toImage clipping, move to piccolo-phet (PadBoundsNode) 4/6/12 when "Hide Lines" is unchecked, disable related controls: y=x, y=-x, Slope 4/6/12 change "Slope" check box icon to show both rise and run, connect ends of brackets with dashed line 4/6/12 delete "Point Tool" check box, make it always visible 4/6/12 remove dependency between interactive line controls and graph 4/6/12 when run=0, don't hide interactive equation, show equation as "slope undefined" on graphed line 4/6/12 change "Lines" check box to "Hide Lines", invert semantics of associated property, remove check box icon 4/5/12 increase icons size for standard lines, change labels to "y=x" and "y=-x" 4/5/12 change "Rise/Run" check box to "Slope" 4/5/12 remove title from graph control panel 4/5/12 use larger font for equations in graph 4/5/12 structure scenegraph of control panel so that it's easier to minimize and maximize 4/5/12 remove control panel title background, add horizontal strut to prevent resizing when minimized 4/5/12 remove y=+x and y=-x lines from the model 4/5/12 specify line extents in view units 4/5/12 fix model-view transforms used in grid creation 4/5/12 constants to make model easier to adjust 4/5/12 fix layout of equation so that rise and run spinners are always right justified # 0.00.01 (63099) Apr 4, 2012 4/4/12 center x=0 4/4/12 set up credits.txt 4/4/12 set up build.properties 4/4/12 data-collection instrumentation for Point Tool 4/4/12 data-collection instrumentation for Save Line and Erase Lines buttons 4/4/12 repackage sim-specific spinner classes 4/4/12 change SpinnerButtonNode interface, use generics, add specializations for incrementing and decrementing Double values 4/4/12 add data-collection to SpinnerButtonNode 4/4/12 add colors for canvas and grid background 4/4/12 clean up visibility of interactive line 4/4/12 set rise/run feature off by default 4/4/12 generate graph-related icons programmatically, to facilitate changing colors 4/4/12 add slope manipulator after intercept, so that slope can be changed when x=0 4/4/12 group all line-related check boxes together 4/4/12 improve icons using workaround for #558 (image returned by PPath.toImage is clipped on right and bottom edges) 4/4/12 improved icon for rise/run check box 4/4/12 increase stroke width of rise/run divisor line 4/4/12 change color of point tool, it was clashing with interactive line color 4/4/12 put a translucent background behind values on rise/run brackets, so they are visible when on top of other things, color code to slope 4/4/12 use gray for saved lines, green for highlight on mouseOver 4/4/12 tweak font for equations shown on lines 4/4/12 tweak color scheme 4/4/12 used colorblind-friendly version of red for interactive line 4/4/12 change "Show" panel to "Graph", rename and simplify constructor 4/4/12 tweak brackets so they don't get lost behind manipulators, and they look nicer where they meet 4/4/12 make manipulators slightly larger 4/4/12 add separator for save/erase buttons 4/4/12 replace equation with "x = 0" when slope is undefined 4/4/12 put "Erase Lines" button next to "Save Line" button 4/4/12 don't disable any controls when "Lines" is unchecked (for discussion) 4/4/12 add horizontal separators for titles in control panels 4/3/12 move formatting of equation in reduced form from model to view 4/3/12 constrain drag range of line manipulators to match equation constraints 4/3/12 use nearest-neighbor rounding instead of truncation when computing reduced form of equation 4/3/12 rename spinner button images 4/3/12 tweak font sizes 4/3/12 delete JSpinner-based equation implementation [63011] 4/3/12 color code the spinner buttons to match the line manipulators 4/3/12 replace JSpinners with SpinnerButtonNode from fractions project 4/3/12 drag handler base class for line manipulators 4/3/12 add rise/run/intercept parameters to sim-sharing messages for line manipulators 4/3/12 misc cleanup 4/3/12 scale bracket tip with when bracket width is < a threshold 4/3/12 first pass at drag handlers for line manipulators (glitchy, behavior doesn't match requirements) 4/3/12 use white for all piccolo buttons until we work out more important color-coding issues 4/3/12 3D look for line manipulators 4/2/12 check for run==0 before rise==0 4/2/12 show reduced equations on lines 4/2/12 show unreduced equations on lines 4/2/12 add equations (placeholder) to lines 4/2/12 make "Reset All" button white until we decide on colors 4/2/12 add rise/run icon 4/2/12 replace MinimizeMaximizeButtonNode with ToggleButtonNode 4/2/12 load common images statically in LGResources 4/2/12 use transparent background behind control panel title 4/2/12 factor out LineManipulatorNode, so we can play with look of this 4/2/12 round corners of rise/run brackets 4/2/12 add quick-and-dirty icons for visibility controls related to lines 4/2/12 point tool icon for control panel 4/2/12 adjust point tool image and font to fit (-10,-10) 3/30/12 add point tool 3/30/12 convert line model to double precision, to support continuous dragging 3/30/12 handle cases where rise or run is zero 3/30/12 change "Graph Lines" check box to "Lines" 3/30/12 add rise and run brackets, wire up to check boxes 3/30/12 for development, allow all values to range (-10,+10) 3/30/12 add horizontal bracket for displaying run 3/30/12 highlight saved lines on mouseOver 3/30/12 hide manipulators when interactive line is not visible 3/29/12 added manipulators for slope and intercept (no drag handlers yet) 3/29/12 create specialization of graph that deals with direct manipulation and interactivity 3/29/12 add show/hide button for slope-intercept equation 3/29/12 color coding for slope and intercept 3/28/12 move Save Lines button into equation control panel 3/28/12 extend lines a bit beyond the bounds of the grid 3/28/12 create LGColors 3/28/12 constrain lines to the range of the graph 3/28/12 quick-and-dirty implementation of equation using Swing spinners 3/28/12 disable "Save Line" button until the line has been changed 3/28/12 add intermediate nodes to maintain rendering order for interactive, standard and saved lines 3/28/12 add interactive line to graph 3/28/12 wire up Save Line and Erase Lines buttons 3/28/12 disable check boxes for standard lines when "Graph lines" is unchecked 3/28/12 wire up "Graph lines" check box 3/28/12 make SlopeInterceptLine immutable 3/28/12 add standard lines and wire up to visibility controls 3/28/12 add support for different color and stroke for major grid lines 3/28/12 add major and minor ticks to graph 3/28/12 add axes (no ticks yet) 3/28/12 move origin of graph view to (0,0) 3/28/12 intermediate progress on line model, graph model, graph view 3/27/12 split up controls for saving and erasing lines, since they are unlikely to be co-located 3/27/12 migrate PropertyCheckBoxWithIcon to phetcommon 3/27/12 add placeholders for icons in "Show" control panel 3/27/12 delete control for choosing from of slope-intercept equation, we're using only y=mx+b 3/27/12 add additional controls to "Show" control panel 3/27/12 change format of standard equations (y=+1x, y=-1x) 3/20/12 adjust Intro canvas layout, implement Reset All 3/20/12 placeholders for graph and equation, to get a feel for layout 3/20/12 control for showing standard lines 3/20/12 control for chosing form of slope-intercept equation 3/20/12 control for saving and erasing lines 3/20/12 English strings for Intro tab 3/20/12 add "Reset All" button to Intro canvas 3/20/12 create MVC structure for Intro and Game tabs 3/20/12 set up project skeleton in SVN