# 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