# 1.00.00 (72068) Feb 7, 2013
2/7/13 approved for 1.00 release
2/7/13 update screenshot to reflect color changes
# 0.00.57 (72040) Feb 6, 2013
2/6/13 #3502, fix Deuteranope colorblind problem with point (x1,y2)
2/6/13 #3502, fix Tritanope colorblind problem with point (x2,y2)
# 0.00.56 (71957) Feb 4, 2013
2/3/13 change request: exclude simplified slopes of 1 and -1 from game levels 5 & 6
2/3/13 change request: "Place the Points" -> "Put Points on Line"
# 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