# 2.03.03 (58651) Nov 16, 2011 11/16/11 > Java 7 compatibility fix (#3138, treeLock exception) # 2.03.02 (53437) Jun 23, 2011 # 2.03.01 (53435) Jun 23, 2011 1/24/11 #2608, change ruler fix to work with fixed RulerNode superclass 1/18/11 #2608, fix play area ruler, not horizontally aligned with laser origin # 2.03.00 (38019) Jan 11, 2010 1/11/10 public version for milestone "full redeploy, 2010 Q1" # 2.02.01 (37369) Dec 11, 2009 12/11/09 test version for milestone "full redeploy, 2010 Q1" 12/4/09 #89, subclass PaintImmediateDialog instead of JDialog 10/23/09 FluidControlsDialog doesn't repaint while clock is running, extend PaintImmediatelyDialog # 2.02.00 (30671) Apr 21, 2009 4/21/09 Batch deploy as part of IOM milestone with revision 30670 # 2.01.03 (29786) Mar 24, 2009 3/24/09 publish dev version so that fixes can be verified 3/24/09 #1519, change control panel insets to account for PhetFont 3/23/09 #1520, fix visibility of laser beam when a config is loaded 3/23/09 #1518, fluid controls check box should be unchecked by default # 2.01.02 (29629) Mar 22, 2009 3/22/09 Batch deploy for Alpha Simulation Tests 2, svn 29628 3/16/09 #1494, selected and unselected tab colors are indistinguishable 3/12/09 #1453, remove unused strings from English localization file # 2.01.01 (28805) Feb 19, 2009 Batch deploy for alpha Simulation Tests, svn 28773 10/8/08 - use PhetApplicationConfig.launchSim 10/8/08 - moved list of rejected features to Unfuddle 805 9/5/08 - remove uses of DialogUtils, use JOptionPane directly 6/24/08 - move SphericalNode to piccolo-phet > improve fonts 5/20/08 - replace Font with PhetFont # 2.01.00 (21029) 4/28/08 - add PhetLookAndFeel to main 4/28/08 - pick up fix to PhetDefaultFont so that preferred fonts are derived properly 4/28/08 - pick up change to PhetDefaultFont so that default font is "Lucida Sans" plain 12pt on all platforms 4/28/08 - redeploy production version to fix translations (Unfuddle #141) # 2.00.01 (20988) 4/28/08 - publish dev version to test translations (Unfuddle #141) 4/4/08 - remove clock icon from OTClockControlPanel, animated icon was added to phetcommon 1/4/08 - delete OTLauncher, obsolete # 2.00.00 (18753) 11/14/07 - organize imports 11/9/07 - move about.credits property to localization file # 1.00.16 (18421) 10/31/07 - update screenshots, create screenshots for new flavors 10/31/07 - use constant stall force strategy, 6pN for EnzymeA, 7pN for EnzymeB 10/30/07 - flavorize:"Optical Tweezers and Applications", "Stretching DNA", "Molecular Motors" 10/25/07 - make DNAForceVector an observer of Fluid, so that stall force vector is updated when ATP changes 10/25/07 - add IStallForceStrategy, implement "constant" and "lookup table" strategies for mapping ATP to stall force 10/25/07 - delete IDNASpeedStrategy.getForce, we won't use this approach for stall force 10/17/07 - add test case for consistency of getSpeed and getForce in Tom's DNASpeedStrategy 10/17/07 - convert Tom & Kathy's DNASpeedStrategy implementation to top-level types 10/10/07 - improved performance of frame resize, fixed problem in PhetPCanvas.updateLayout strategy 10/10/07 - remove calls to PhetApplication.instance().getPhetFrame, add parentFrame arg to constructors that need it 10/10/07 - remove stuff from OTAbstractModule that was moved to phetcommon's Module 10/10/07 - all overrides of PhetPCanvas.updateLayout must call super.updateLayout 10/10/07 - defer Cartesian-Polar conversions in OTVector2D until a relevant getter is called 10/10/07 - make OTVector2D abstract, remove unused methods 10/10/07 - rename Vector2D to OTVector2D because phetcommon has a Vector2D 10/9/07 - migrate updateLayout to PhetPCanvas 10/9/07 - bugfix: reset ATP concentration in Motors module 10/9/07 - migrate "Reset All" and "set minimum width" features to phetcommon ControlPanel 10/8/07 - use persistence manager from phetcommon (XMLPersistenceManager) 10/8/07 - change LaserBeamNode implementation to create entire gradient, to remove visible seams on Macintosh 10/8/07 - fix conversion of fluid speed between nm and um, manifested as "beep" when switching to vaccum # 1.00.15 (18097) 10/2/07 - improve performance of e-field display via optimizations to phetcommon's Arrow 10/2/07 - optimize updates to ElectricFieldVectorNode to reduce creation of Arrow objects 10/2/07 - make BeadNode and LaserNode remove/addPropertyChangeListener before they adjust the view to match the model 10/2/07 - center "keep trap force constant" info dialog in parent frame 10/2/07 - make KathAbstractDNASpeedStrategy.getForce throw UnsupportedOperationException since we don't have (and won't likely be getting) this piece of the model 10/2/07 - when DNA strand consists of 1 spring, use stall force model instead of DNA force model in DNAStrand.getForce 10/2/07 - when user attempts to check "keep trap force constant" when bead is outside the laser outline, uncheck it and post a modal dialog telling the user why 10/2/07 - add DNAStrand.attachEnzyme so that enzyme is available to calculate stall force 10/2/07 - add DNAStrand.isShortAsPossible to hide encapsulate this constraint 10/1/07 - setPickable(false) on non-interactive nodes 10/1/07 - factor responsibility for moving laser out of DNAStrand and into LaserPositionController 10/1/07 - DNAStrand.initialize should call evolve with max clock dt # 1.00.14 (18049) 9/27/07 - remove duplicate notifications that were occurring in LaserControlPanel 9/27/07 - change laser on/off button from JButton to 2 PNodes so we don't see white halo 9/27/07 - use hydrogen atom's gun on/off button for laser on/off control 9/27/07 - reduce number of columns in fluid flow speed textfield, display is in microns/sec, model is in nm/sec 9/27/07 - move initial position of Fluid Controls dialog to lower left in Motors panel 9/27/07 - move "Reset DNA" button above enzyme 9/27/07 - add "Enable Brownian force" checkbox to all control panels, with save/load support 9/27/07 - remove dead code, move shared code to OTAbstractControlPanel 9/27/07 - add/modify class-level javadoc 9/27/07 - package-level javadoc 9/27/07 - always use fastest dt to evolve strand when user drags bead with clock paused # 1.00.13 (17999) 9/26/07 - use Tom's new model for speed with which enzyme pulls DNA 9/26/07 - organize imports 9/26/07 - implement Tom's new model for speed with which enzyme pulls DNA (untested) 9/26/07 - separate constants for the diameters of the 2 enzyme types 9/26/07 - change implementation of DNA speed to use Strategy pattern, so we can switch between Kathy's and Tom's models 9/26/07 - increase invisible bead diameter to 50% of visible bead diameter to reduce curling 9/26/07 - remove partial-implementation of dynamic bead diameter # 1.00.12 (17974) 9/25/07 - fix AbstractValue.getTextFieldValue to work for all locales 9/25/07 - Spanish translations (Google translate) 9/25/07 - removed unused strings from localization files # 1.00.11 (17970) 9/25/07 - implement "keep trap force constant" model in DNAStrand 9/25/07 - uncheck "keep trap force constant" if bead or laser is dragged, or if laser power is changed 9/24/07 - BeadDragHandler.mousePressed should call super.mousePressed # 1.00.10 (17956) 9/24/07 - reduce invisible bead diameter to 20% of visible bead diameter 9/24/07 - change fluid mobility model so that constant is a function of bead diameter 9/24/07 - fix bug in calculation of fluid mobility constant (was 6E5, should have been 6E6) 9/21/07 - reduce insets throughout Fluid controls dialog 9/21/07 - add support for insets to value control's DefaultLayoutStrategy 9/21/07 - remove "Return Bead" feature from Molecular Motors panel so we don't exceed DNA contour length # 1.00.09 (17942) 9/21/07 - prevent DNA force from going to infinity when strand is composed of 1 spring 9/20/07 - make enzyme tick mark thicker and white 9/20/07 - change orange enzyme to purple # 1.00.08 (17928) 9/20/07 - notifyObservers(PROPERTY_FORCE) when DNA strand's contour length is changed 9/19/07 - fix method of computing contour length delta (delta = speed * dt) 9/19/07 - move enzyme node in front of DNA strands so that single spring between pin and bead isn't so obvious 9/19/07 - reset DNA strand when doing "Reset All" of Motors module 9/19/07 - verified that switching enzymes causes DNA to be reset when clock is paused 9/19/07 - verified that pressing "Reset DNA" button works when clock is paused 9/19/07 - automatically "Reset DNA" when switching between enzymes 9/19/07 - move method for resetting DNA into model 9/19/07 - remove slider MotorsCanvas, used to test dynamic DNA contour length 9/19/07 - rewrite DNAStrand.makeShorter/Longer to manipulate springs instead of pivots 9/19/07 - add a flag for enabling debug output in enzyme 9/19/07 - change free DNA strand from green to gray 9/19/07 - fix bugs in DNAStrand.makeShorter 9/19/07 - use a different color for DNA free strand, so it's easier to distinguish the 2 strand 9/19/07 - make enzyme stop rotating when DNA strand is fully reeled in 9/19/07 - first attempt at making enzyme pull DNA strand 9/19/07 - move enzyme node behind DNA strand 9/19/07 - move bead node behind DNA strand and enzyme 9/18/07 - associate 2 DNA strands (bead and free end) with enzyme 9/18/07 - require DNA strand to consist of at least one complete spring 9/18/07 - test pulling the DNA strand through the enzyme (using a slider control) 9/18/07 - implement dynamic contour length feature for DNA strand 9/18/07 - limit spring constant for first DNA spring to prevent failure of strand evolution 9/18/07 - swap position of drag force and DNA force controls in control panel 9/18/07 - hide vaccum developer controls in modules where they are irrelevant 9/18/07 - add developer controls for invisible bead 9/18/07 - attach invisible bead to free end of DNA strand 9/18/07 - add support for multiple DNA strands to developer controls 9/18/07 - convert back to DNA model where the parts on each side of the pin are treated as separate strands 9/17/07 - first pass at another rewrite of DNA model 9/17/07 - bugfix: display of vector values should be off by default 9/17/07 - use one instance where zero vector is required 9/17/07 - add DNAStrand.getForce(Point2D), rename getForce() -> getHeadForce() 9/17/07 - make laser optional in Bead model, to support invisible bead attached to tail of DNA strand 9/17/07 - rename NewDNAStrand -> DNAStrand, NewDNAStrandNode -> DNAStrandNode 9/17/07 - remove old DNA model and view classes 9/17/07 - switch over to new DNA model and view 9/17/07 - clean up pointy end of pushpin image 9/14/07 - create NewDNAStrandNode, view of NewDNAStrand (untested) 9/14/07 - add evolution model to NewDNAStrand (untested) 9/14/07 - rename variables in DNAExtensionNode to support new terminology for Molecular Motors 9/14/07 - calculate springMotionScale only once per call to DNAStrand.evolve # 1.00.07 (17815) 9/12/07 - throw an exception if DNA pin point is too far from bead (extension > contour length) 9/12/07 - create DNA pivot points starting at pin point, working towards bead position 9/12/07 - first pass at NewDNAStrand, incomplete 9/12/07 - remove unused methods from DNAStrand 9/11/07 - encapsulate common model container functionality in OTAbstractModel 9/11/07 - move model container classes into their respective module packages 9/11/07 - if the bead is moved while the clock is paused, force the DNA strand to evolve so it looks correct 9/11/07 - bugfix: make DNA force vector update when fluid temperature is changed while clock is paused 9/11/07 - per-module specification of default location for Position Histogram dialog 9/11/07 - per-module specification of default location for Fluid Controls dialog 9/11/07 - remove startsPaused from module constructors, handled in resetAll 9/11/07 - save/load clock's run state in active and inactive modules 9/11/07 - save/load state of dialogs in active and inactive modules 9/11/07 - rename AbstractCanvas, AbstractControlPanel, AbstractModule (add OT prefix) # 1.00.06 (17653) 8/29/07 - restore dialogs when main frame is minimized/maximized 8/29/07 - fluid control selected by default in Motors panel 8/29/07 - restore visibility of dialogs (fluid controls, position histogram) when switching modules 8/29/07 - add workaround to CursorHandler so that it's impossible to pop the stack too many times 8/29/07 - when dragging over-stretches and auto-releases bead, cursor should change from hand to arrow 8/29/07 - pull out BeadDragHandler into it's own file 8/29/07 - set "stretchiness" in DNA model, used by bead drag handler 8/29/07 - migrate OTWiggleMe to piccolo-phet DefaultWiggleMe 8/29/07 - replace JLabel().getFont() with PhetDefaultFont 8/29/07 - restarting the clock should clear position histogram 8/28/07 - increase max rotation delta for enzyme model 8/28/07 - convert c1...c8 args to one double[] arg in enzyme model 8/28/07 - use d2 as maxSpeed in enzyme model 8/28/07 - replace d1 with c1/c5 in enzyme model 8/24/07 - when position histogram is reopened, restore its previous location 8/24/07 - refactor common code related to dialog management 8/24/07 - when fluid controls dialog is reopened, restore its previous location 8/24/07 - bugfix: enzyme inner sphere wobbles when it rotates (because of conversion to image) 8/24/07 - scale enzyme rotation speed as clock speed changes 8/24/07 - first pass at enzyme speed model, rotation varies with ATP and DNA force 8/23/07 - add persistence for enzyme choice 8/23/07 - javadoc 8/23/07 - set visibility of enzyme nodes based on notification of enzymes enabled state 8/23/07 - make EnzymeControlPanel observer of enzymes 8/23/07 - get control panel icons from enzyme node instances 8/23/07 - separate view classes for enzyme A & B (specify colors), abstract base class 8/23/07 - separate model classes for enzyme A & B, abstract base class 8/23/07 - replace 'A' and 'B' with icons in "Molecular motor" control 8/23/07 - check in revised design doc that includes Molecular Motors panel 8/23/07 - add icon for laser beam view # 1.00.05 (17458) 8/22/07 - add control for choosing enzyme type (no icons yet, not wired) 8/22/07 - place PushpinNode at DNA tail location in DNA module, at enzyme location in Motors module 8/22/07 - extract pushpin into its own node 8/22/07 - parameterize EnzymeNode, specify colors for inner, outer, tick 8/22/07 - move vector icon creation into force nodes 8/22/07 - move default location of ruler to bottom of microscope slide so it doesn't overlap other things 8/22/07 - add control panel icon for efield vectors 8/22/07 - add control panel icons for charts 8/22/07 - add color key vector icons to "Forces on Bead" control panel 8/22/07 - move "Reset DNA" button further away from enzyme 8/22/07 - refine 2D representation of enzyme, convert to images, add tick mark to indicate rotation 8/21/07 - first attempt at 3D enzyme view 8/21/07 - remove Close button from fluid controls dialog to save some vertical space 8/21/07 - rename FluidControlDialog to FluidControlsDialog 8/21/07 - reduce function calls in module reset/save/load 8/21/07 - Save/Load motors module 8/21/07 - add control for keeping trap force constant (not wired up), include persistence support 8/21/07 - add persistence support for "Show force values" control 8/21/07 - add "Show force values" control to DNA and Motors control panels, remove from developer controls 8/20/07 - add "Reset DNA" button to canvas (not wired up) 8/20/07 - change terminology to "reference clock step" in DNA strand evolution model 8/20/07 - bugfix: handle entry of bogus numbers into sim speed textfield 8/20/07 - show Motors module # 1.00.04 (17352) 8/20/07 - hide Motors module for publishing 8/20/07 - for DNA and Motors modules, change dt.fast.max=4E-4, dt subdivisions=1000, kick=60 8/20/07 - make GlobalDefaults package private, add constants to module-specific default classes 8/17/07 - add simple model and view of enzyme 8/17/07 - add control for ATP concentration to fluid control panel (temporary solution) 8/17/07 - add ATP concentration to Fluid model 8/17/07 - start with Motors module being identical to DNA module 8/17/07 - add MotorsModule to app 8/17/07 - change default value of "charge motion scale" to 0.25 8/16/07 - replace OTSerializable with IProguardKeepInterface in my proguard config files 8/16/07 - convert persistence code to use IProguardKeepInterface instead of OTSerializable 8/16/07 = add -keep option proguard-template.pro for IProguardKeepClass 8/16/07 - add IProguardKeepClass marker interface to phetcommon # 1.00.03 (17289) 8/15/07 - migrate Vector2DNode to piccolo-phet 8/15/07 - merge ColorIntensitySlider into phetcommon's IntensitySlider, delete ColorIntensitySlider 8/15/07 - delete ColorUtils, rewrite 1 case where addAlpha was used 8/15/07 - migrate ScaleAlphaImageOpARGB to phetcommon.view.util 8/15/07 - migrate PolarCartesianConverter to phetcommon.math 8/14/07 - delete CursorUtils, not used 8/14/07 - migrate ColorControl from optical-tweezers to phetcommon 8/14/07 - generalize ColorControl 8/14/07 - convert hi-res screenshot to png format 8/14/07 - make save/load handle activation state of modules 8/14/07 - loading should restore clock's run state only if module is active 8/14/07 - implement Save/Load feature for "Physics" and "DNA" modules 8/10/07 - remove controls related to "horizontal trap force", feature has been dropped # 1.00.02 (17205) 8/10/07 - make "charge motion scale" dev control work for "Reset All" 8/10/07 - add developer control for "charge motion scale", set default scale to 50% 8/10/07 - layout charges on rect grid, clip to bead shape 8/10/07 - fix: positive charges should be stationary in "charge distribution" view 8/10/07 - add "motion scale" property to "charge distribution" view 8/10/07 - reverse behavior of +- charges 8/10/07 - disable alpha channel modulation in e-field display 8/10/07 - rename LaserElectricFieldNode to ElectricFieldNode # 1.00.01 (17165) 8/8/07 - implement "charge distribution" view, temporary layout of charges 8/8/07 - bugfix: very small scaling values cause problems in ChargeExcessNode, treat those values as zero 8/8/07 - use a butt cap for "excess charge" stroke, increase stroke thickness 8/8/07 - make "excess charge" view work properly in fast mode 8/8/07 - remove stubs for "Show change in momentum model", feature has been dropped 8/8/07 - simplify "excess charge" implementation, reduce resources required, clean up visual artifacts 8/8/07 - implement "excess charge" view 8/8/07 - add stub nodes for total & excess charge 8/8/07 - remove "Return Bead" test code that allowed you to drag bead off play area 8/8/07 - pull out common canvas functionality into AbstractCanvas 8/8/07 - remove unused wiggleMe init code from canvas classes # 1.00.00 (17033) 7/27/07 - new version published as part of new website deployment # 0.00.32 (17024) 7/26/07 - adjust defaults for "really fast" bead in vaccum motion (threshold=1E-3, dt=1E-5, power=100) # 0.00.31 (16998) 7/26/07 - set background of vacuumFastThresholdControl to green when threshold is exceeded 7/26/07 - add developer controls for "really fast" bead-in-vacuum motion (threshold, dt, power) 7/26/07 - group together all instance data related to developer controls 7/26/07 - move *Defaults classes back into defaults package, easier to manage # 0.00.30 (16962) 7/25/07 - fix: fake bead-in-vacuum motion needs to use power=500mW when calculating trap force # 0.00.29 (16939) 7/24/07 - for bead-in-vacuum, when (laserPower * dt >= 240e-5), fake bead motion to look "really fast" 7/24/07 - add help items ("Movable bead", "Movable laser", "Movable ruler") 7/24/07 - make fast e-field behavior use dt=4E-5 to protect against changes to dt.fast.max 7/24/07 - change lower threshold on viscosity to 5e-4 7/24/07 - change bottom end of "fast speed" to 1.0e-7 (8 times slower) 7/24/07 - change description as requested # 0.00.28 (16736) 7/14/07 - add description to About dialog # 0.00.27 (16704) 7/13/07 - change defaults: Verlet scale to 4E-3, Verlet dt subdivisions to 10 7/13/07 - bugfix: Brownian motion checkbox does not get reset properly with Reset All # 0.00.26 (16699) 7/13/07 - rename Laser.getElectricFieldScale to getElectricFieldComponent to prevent confusion with _electricFieldScale 7/13/07 - when dt changes, make E-field continue propogation from where it's at, rather than resetting 7/13/07 - change screenshots to reflect new color scheme # 0.00.25 (16687) 7/13/07 - click on ruler icon to toggle state of ruler check box in control panel 7/13/07 - change trap force vector back to red 7/13/07 - change trap force vector color to HSB=(41,100,100) 7/13/07 - use default tab color (royal blue) for module tabs 7/13/07 - use default panel background color (grey) for control/clock panels 7/13/07 - add "Verlet subdivision threshold" model parameter and developer control 7/13/07 - add "Verlet # dt subdivisions" model parameter and developer control 7/13/07 - reduce dt subdivisions default to 100 since dt fast.max was reduced by 10x 7/13/07 - increase max for Verlet scale to 1E-1 7/13/07 - revert dt fast.max to 4E-5, DNA strand evolves too slowly at 4E-5 when fast.max is 4E-4 7/13/07 - fixed "slow mode" trap force bug introduced when refactoring Laser.getElectricFieldScale on 7/12 7/12/07 - create preliminiary screenshots # 0.00.24 (16647) 7/12/07 - fixed machine epsilon problem in Laser.stepInTime's accumulation of time 7/12/07 - add subpackages for each module 7/12/07 - move defaults into package with modules, since they are default for modules 7/12/07 - add E-field units to localization file 7/12/07 - refactor often-changed Colors into OTConstants 7/12/07 - refactor common model default values into GlobalDefaults 7/12/07 - fix OTClockControlPanel to add columns to time display 7/12/07 - increase number of columns in time display to 10 # 0.00.23 (16616) 7/12/07 - increase fastest dt to 4E-4 7/12/07 - increase dt subdivisions for bead motion model to 1000 7/12/07 - refactor common code into Laser.getElectricFieldScale # 0.00.22 (16594) 7/11/07 - developer controls for setting all vector colors 7/11/07 - developer control for setting the background color of the control panel & clock panel 7/11/07 - developer control for setting the color of Piccolo tabs 7/11/07 - add Developer>DeveloperControls menu item and associated dialog 7/11/07 - add support for setting color of selected module tab 7/11/07 - add support for setting background color of control panel and clock control panel 7/11/07 - bugfix: fluid temperature control not initialized to fluid's temperature 7/11/07 - change default fluid temperature to 298 7/11/07 - change default Brownian motion scale to 1.3 # 0.00.21 (16565) 7/10/07 - simplify implementation of PositionHistogramPlot.setPositionRange 7/10/07 - histogram: workaround renderer bug by not adding observations to a series unless they're in the series range 7/10/07 - update Vector2DNode value display only if it's visible 7/10/07 - optimize e-field model for x-component, since we don't care about (and don't have a model for) y component 7/10/07 - increased histogram cache size to 30,000 observations (~30 minutes of data at fastest dt) 7/10/07 - tested behavior of histogram observation cache when it gets full, zoom performance is good 7/10/07 - module's resetAll method should set the clock run state only if the module is active 7/10/07 - update force vector nodes only when visible 7/10/07 - rename DragForceNode to FluidDragForceNode 7/10/07 - update ruler position only when the ruler is visible 7/10/07 - phetcommon bugfix: undo previous fix, it was my problem 7/10/07 - phetcommon bugfix: all modules were active when sim started, modules weren't deactivated until visited once 7/10/07 - update potential energy chart before making it visible 7/10/07 - optimize potential energy chart, do finer granularity updates 7/10/07 - only update potential energy chart when it's visible 7/10/07 - optimize DNStrand.evolve by reusing a vector for fluid velocity 7/10/07 - finish memory optimization of Rectangle2D, Point2D and Vector2D 7/10/07 - reuse Point2D objects when doing model-view transforms 7/10/07 - reduce number of Point2D allocated by bead drag handler 7/10/07 - rename FixedObject.getPositionRef to getPositionReference 7/10/07 - use PNode.getFullBoundsReference instead of getFullBounds 7/10/07 - use -dev commandline arg to enable developer controls instead of javaws.phet.developer property 7/9/07 - remove PhetFrameWorkaround, didn't solve the problem 7/9/07 - make play area ruler translucent 7/9/07 - add PhetFrameWorkaround to address AWT thread priority problem 7/9/07 - change trap force model in slow mode, shrink & grow with E-field # 0.00.20 (16480) 7/9/07 - histogram: change bin widths per Kathy's specification 7/9/07 - histogram: let client set dialog's location 7/9/07 - histogram: fix exception thrown when changing modules 7/9/07 - histogram: set max size of observations cache to 10,000 7/9/07 - histogram: don't clear histogram when zooming, cache observations and refill bins 7/9/07 - histogram: add ruler to snapshot 7/9/07 - histogram: make ruler translucent 7/9/07 - when dt > slow.max, run E-field model using dt=fast.max # 0.00.19 (16448) 7/9/07 - histogram: javadoc 7/9/07 - histogram: set zoom ranges a little bigger than desired so min/max tick labels are visible (again) 7/9/07 - histogram: tweak ruler's major/minor ticks for each zoom level 7/9/07 - histogram: sync ruler labeling with x-axis range 7/9/07 - histogram: use light gray background color for snapshots 7/9/07 - histogram: sync ruler scale with plot scale 7/9/07 - histogram: restore ruler visibility and position when reopening the dialog 7/9/07 - histogram: set ruler's default position to center of chart 7/9/07 - histogram: add ruler, constrain dragging to chart area (tick marks are wrong) 7/9/07 - histogram: restore zoom index when dialog is reopened 7/9/07 - histogram: initial position of main dialog and snapshots 7/8/07 - histogram: add snapshot feature 7/8/07 - histogram: set zoom ranges a little bigger than desired so min/max tick labels are visible # 0.00.18 (16414) 7/6/07 - show vertical dashed line through laser bead origin when histogram is open 7/6/07 - histogram: add vertical marker (dashed line) at origin 7/6/07 - histogram: display bin width 7/6/07 - histogram: cleanup listeners and observers when dialog is closed 7/6/07 - histogram: vary bin width based on position range 7/6/07 - histogram: add horizontal zoom feature, range +-50 to +-300, increments of 100 nm 7/6/07 - histogram: label x axis with "Position relative to laser" 7/6/07 - histogram: connect chart to model, record observations, clear observations when laser moves 7/6/07 - skeleton for new Position Histogram dialog, wired into control panels 7/6/07 - fix zero-magnitude exception in Arrow call to AbstractVector2D.Double.getNormalizedInstance 7/5/07 - cleanup and doc of bead drag handler 7/5/07 - second pass at constraining bead drag, working nicely, needs cleanup and doc 7/5/07 - first pass at constraining bead drag to prevent over-stretching DNA strand (not correct) 7/5/07 - don't change clock's dt while dragging in "between" zone of simulation speed slider 7/5/07 - reduce width of "between" zone in simulation speed slide, change alignment of slow.max and fast.min tick labels # 0.00.17 (16349) 7/3/07 - change fast clock range: 8E-7 to 4E-5 7/3/07 - change slow clock range: 4E-18 to 5E-16 7/3/07 - removed references to PhysicsDefaults in DNACanvas 7/3/07 - removed references to DNADefaults in PhysicsCanvas 7/3/07 - set initial position of ruler to just below center of trap 7/3/07 - convert chart visibility controls from radio buttons to check boxes 7/3/07 - combine Advanced controls and ruler checkbox into MiscControlPanel 7/3/07 - add charts & associated controls to DNA module 7/3/07 - position Fluid Controls dialog at lower left of play area 7/3/07 - create mockup of new position histogram 7/3/07 - fix memory leak in LaserElectricFieldNode._vectorNodes 7/3/07 - fix error in model that causes e-field to propogate in wrong direction 7/3/07 - change laser e-field color to dark red (rgb=230,57,5) 7/2/07 - when "Return bead" button is pressed, set bead's velocity to zero # 0.00.16 (16305) 7/2/07 - adjust clock time display format when dt is changed 7/2/07 - reset the clock time whenever dt is changed 7/2/07 - make the non-interactive labels in LaserPowerControl draggable 6/29/07 - make laser danger sign look better 6/29/07 - make entire laser control panel draggable 6/29/07 - demonstrate how to make a draggable Piccolo control panel that contains a JSlider 6/29/07 - workaround for horizontal alignment problem with ruler 6/29/07 - verified that none of the controls visible for AAPT version needed to be disabled based on clock speed 6/28/07 - write ConstantDtClock, use in OTClock, test, migrate to phetcommon # 0.00.15 (16200) 6/27/07 - add editable textfield for simulation speed 6/27/07 - add read-only value display to SimulationSpeedControlPanel 6/27/07 - wire SimulationSpeedSlider into simulation control panels 6/27/07 - change OTClock model to have slowRange and fastRange for dt 6/27/07 - add log mapping strategies to convert simulation speed sliders value to model (time) values 6/27/07 - add SimulationSpeedSlider.isAdjusting so that clients can defer updates until drag is completed 6/27/07 - add drag handler to knob in simulation speed slider 6/27/07 - resolve roundoff problems in simulation speed slider by using integer precision for layout 6/27/07 - first pass at custom slider for simulation speed, layout only # 0.00.14 (16084) 6/25/07 - update E-field vectors when scale, power or run state of laser changes 6/25/07 - only show value for E-field vector at center of trap 6/25/07 - complete layout of sample points and vectors for E-field representation of laser 6/22/07 - get row of E-field vector across laser's waist working 6/22/07 - dev control for E-field vector color 6/22/07 - E-field vectors should be green outline with no fill color, alpha based on E-field magnitude 6/21/07 - add developer control to show efield vector values 6/21/07 - bugfix in positioning of value on Vector2DNode, make value invisible by default 6/21/07 - implement efield model 6/21/07 - ElectricFieldVectorNode, subclass of Vector2DNode that stores model coordinates 6/21/07 - remove bogus Laser.reset method 6/21/07 - add developer control for efield scale 6/21/07 - connect laser efield view to model, set up with 1 sample point 6/21/07 - implement laser efield E0 and dummy algorithm for E 6/21/07 - fix all developer control panels so that they do temporary deleteObserver when changing the model 6/20/07 - make Vector2DNode independent of Vector2D implementation 6/20/07 - add PolarCartesianConverter utils so that I don't keep replicating these conversions 6/20/07 - wire up stub view for E-field, connect to radio button controls for setting visibility 6/20/07 - extract laser outline display as a separate node 6/20/07 - improved look of laser beam so that seams in quadrants are not so obvious # 0.00.13 (16028) 6/20/07 - set default trap force ratio to 0.179 6/19/07 - hide File>Save and Load menu items for AAPT 6/19/07 - hide any unimplemented (red) controls for AAPT 6/19/07 - hide "Show momentum model" checkbox for AAPT (in AdvancedControlPanel) 6/19/07 - hide horizontal trap force controls for AAPT (in ForcesControlPanel) 6/19/07 - hide 'Bead charge' panel for AAPT (in PhysicsControlPanel) 6/19/07 - hide Molecular Motors module 6/19/07 - add ruler icon next to "show ruler" 6/19/07 - fix bugs with restoring state of "Show fluid controls" checkbox 6/19/07 - add developer control for acceleration scale in Verlet motion-in-vacuum algorithm 6/19/07 - make units consistent in Verlet motion-in-vacuum algorithm, bead moves correctly 6/18/07 - set velocity to zero when user grabs the bead 6/18/07 - add debug output for Verlet motion-in-vacuum algorithm 6/18/07 - disable brownian motion control when bead is in a vacuum 6/18/07 - add default values and "reset all" for fluid/vacuum state 6/18/07 - hide fluid/vacuum radio buttons in DNA panel 6/18/07 - remove dependency of MicroscopeSlide model on Fluid model 6/18/07 - disable "Show fluid drag force" when vacuum is selected 6/18/07 - hide FluidDragForceNode when vacuum is selected 6/18/07 - first try at Verlet algorithm for bead in a vacuum, not working as expected 6/18/07 - switch between fluid and vaccum by disabling fluid 6/18/07 - add fluid/vacuum radio buttons to control panel 6/18/07 - make Fluid final in Microscope slide model to simplify lots of things 6/18/07 - add MicroscopeSlide to model, in preparation for switching between fluid and vacuum 6/18/07 - fix centering of fluid speed vectors in microscope slide 6/18/07 - remove "Enable Brownian motion" from DNA module # 0.00.12 (15901) 6/14/07 - set Save/Load menu items foreground=red to indicate that they aren't implemented 6/14/07 - fix bead motion model so that DNA force is computed using intermediate bead position 6/14/07 - add ability to ask for DNA force at any arbitrary point 6/12/07 - add dev control for Fz:Fx ratio in trap force model 6/12/07 - rename panels that contain developer controls # 0.00.11 (15814) 6/11/07 - first pass at new on/off button for laser 6/11/07 - change laser button to big ON/OFF (temporary solution) 6/11/07 - developer controls to show vector components and values 6/11/07 - reset DNA fluid drag coefficient with "Reset All" 6/11/07 - implement new model for trap force Fz 6/11/07 - make the objective supports look more substantial, as if they are holding the lens 6/11/07 - change objective view, make it an on-edge view of the lens # 0.00.10 (15790) 6/10/07 - fix Vector2DNode so that small magnitudes scale properly 6/10/07 - add fluid drag force to acceleration in DNA strand evolution model 6/10/07 - add fluid drag coefficient to DNA model and developer controls 6/8/07 - add motion scaling factor related to how tightly the DNA strand is stretched 6/8/07 - scale kick proportial to sqrt of simulation speed in DNA strand model 6/8/07 - scale evolution dt proportional to simulation speed in DNA strand model 6/8/07 - add node for displaying DNA extension and associated value 6/8/07 - new DNA strand parameter values and ranges, per Mike Dubson 6/7/07 - change "Show Brownian force" feature to "Enable Brownian force" 6/7/07 - make laser start/stop button transparent on Mac only 6/7/07 - make pushpin green, add original image to assets folder 6/7/07 - increase min width of control panels to accommodate developer controls 6/7/07 - rescale range/values for DNA strand parameters by 100x 6/5/07 - improve algorithm for positioning the value in Vector2DNode 6/5/07 - remove OTRuler alignment hack, it wasn't working in all cases # 0.00.09 (15620) 6/5/07 - make strand follow bead when clock is paused 6/5/07 - disable tooltips on developer controls, they're annoying 6/5/07 - add tooltips to all developer controls 6/5/07 - add developer controls for showing DNA strand pivots and extension 6/5/07 - add evolution dt scaling factor to DNA strand model, clock timestep is too slow 6/5/07 - pushpin image at the tail of the DNA strand 6/4/07 - refactor DNAPivotNode into its own file 6/4/07 - rename DNAStrand.dampingConstant to dragCoefficient 6/4/07 - implement model for DNA strand initialization and evolution 6/4/07 - don't make position histogram autoscale until a least one bin contains 10 observations 6/4/07 - make all developer controls resettable 6/4/07 - add model properties for all developer controls for Bead and DNAStrand 6/4/07 - add ranges for all developer controls in constant classes 6/1/07 - add ranges for all DNAStrand properties to DNADefaults 6/1/07 - add properties to DNAStrand for everything that's settable 6/1/07 - reorganize package structure 6/1/07 - add DNAStrand.numberOfEvolutionsPerClockTick 6/1/07 - add dev controls for DNA strand model 6/1/07 - move developer controls into module's control panel, so it's clear they are module specific 6/1/07 - refactor developer control for bead motion model into BeadMotionControlPanel 6/1/07 - add developer controls to DNA panel 6/1/07 - refactor developer control panel into its own class 6/1/07 - disable "Show Brownian force" feature, don't have a model for this yet 6/1/07 - fix terminology in bead model, we are computing Brownian displacement, not force # 0.00.08 (15481) 5/30/07 - choose better colors for vector nodes, disable display of xy component vectors 5/30/07 - first (incorrect) stab at DNA strand path initialization 5/30/07 - show extension as a dashed line in DNAStrandNode for debugging 5/30/07 - move ModelViewTransform to model package, since encapsualted in the model 5/30/07 - make force values use black paint 5/30/07 - fix direction of DNA force vector 5/30/07 - add optional "Show DNA force" to forces control panel 5/30/07 - add DNA force node to canvas 5/30/07 - add DNA force to bead motion model 5/30/07 - add optional DNA attachement to bead model 5/30/07 - increase width of objective in DNA panel so that beam shape is similar to Physics panel 5/30/07 - first pass at view of DNA strand 5/30/07 - add stubs for DNA strand evolution model 5/30/07 - add DNAStrand to model for DNA panel 5/30/07 - remove unnecessary copying of ModelElement list in models 5/29/07 - first pass at DNA strand model, implemented force model 5/29/07 - set up basic DNA module, control panel, canvas, default values 5/29/07 - specify ruler major/minor ticks in constructor, to accommodate different scales 5/29/07 - set up control subpanels to support persistence 5/29/07 - add "Laser display" panel with radio buttons "beam", "electric field vectors", "beam with vectors", 5/29/07 - add "Bead's charges" panel with radio buttons "hidden", "charge distribution", "excess charge only" 5/29/07 - replace "Fields and charges" control panel with "Laser display" and "Bead's charges" panels 5/29/07 - move clock step control into ClockStepControlPanel 5/29/07 - move advanced controls into AdvancedControlPanel 5/29/07 - move force vector controls into ForcesControlPanel 5/29/07 - move chart controls into ChartsControlPanel 5/29/07 - combine all chart controls into "Graphs" panel with radio buttons "none", "position histogram", "potential energy curve" 5/26/07 - hide "Show change in momentum model" control for now 5/18/07 - use Vector2DNode in FluidNode, scale arrow heads/tails 5/18/07 - scale arrow heads/tails on vectors for trap/drag/Brownian forces # 0.00.07 (15214) 5/18/07 - precompute Brownian force so that displayed vector is accurate when no dt subdivision is applied 5/17/07 - bug fix in Fluid.getVelocity, should create vector using polar coordinates 5/17/07 - added Vector2D.Cartesian and Vector2D.Polar to prevent errors in construction 5/17/07 - javadoc methods related to bead's "clock step subdivision" feature 5/17/07 - remove bogus collision detection code from Brownian force algorithm 5/17/07 - save Brownian force vector in Bead, connect to force display node 5/17/07 - add view of Brownian force node, model not implemented 5/17/07 - use units.force string for all force vectors 5/17/07 - bugfix in computation of potential energy curve 5/17/07 - increase width of potential energy curve stroke 5/16/07 - add bead representation to potential energy chart 5/16/07 - add additional constructor to BeadNode, for creating images that are not connected to the model 5/16/07 - add Laser.getMaxIntensity 5/16/07 - document units for Laser.getPotentialEnergy, Laser.ALPHA, and Bead.getPotentialEnergy 5/16/07 - implement Laser.getMinPotentialEnergy 5/16/07 - potential energy chart should not autoscale, set Y-axis range to max in PositionHistogramChartNode constructor 5/16/07 - simplify chart creation, reduce number of constructor args 5/16/07 - add ALPHA fudge factor to potential energy model 5/16/07 - rewrite potential energy model, model in design doc is wrong 5/15/07 - first attempt at potential energy model and diagram, missing some info 5/15/07 - permanent solution for position histogram, custom renderer that ignores empty series 5/15/07 - better workaround for position histogram that doesn't involve adding bogus observations 5/15/07 - workaround for horizontal line that appears in center of position histogram when series is empty 5/15/07 - clean up "look" of position histogram 5/15/07 - migrate PhetHistogramSeries and PhetHistogramDataset to jfreechart-phet 5/15/07 - test for PhetHistogramSeries and PhetHistogramDataset 5/15/07 - extract PhetHistogramSeries from PhetHistogramDataset, reorganize to be more like JFreeChart series/dataset 5/14/07 - replace custom clock control panel with ClockControlPanelWithTimeDisplay 5/14/07 - create ClockControlPanelWithTimeDisplay in phetcommon 5/10/07 - remove flash activity on "Return Bead" button node 5/10/07 - upgrade jfreechart from 1.0.0 to 1.0.5 # 0.00.06 (15001) 5/9/07 - integrate PhetHistogramDataset into PositionHistogramPlot 5/9/07 - write PhetHistogramDataset, mutable version of JFreeChart's HistogramDataset 5/8/07 - remove ChangeListener interface on charts, add PropertyListener that watches visibility 5/8/07 - remove dummy data from PositionHistogramPlot 5/8/07 - change implementation of PositionHistogramPlot to use HistogramDataset 5/8/07 - delete PositionHistogramChart and PotentialEnergyChart, collapse into associated nodes 5/2/07 - migrate CloseButton to phetcommon, CloseButtonNode to piccolo-phet, remove duplicate image file 5/2/07 - generalize new velocity computation in Bead.move to work with any fluid velocity direction 5/2/07 - generalize Fluid.getDragForce to work with any fluid velocity direction 5/2/07 - add Fluid.getVelocity and setVelocity # 0.00.05 (14935) 5/1/07 - increase nubmer of subdivisions range to 1-1000 for bead motion algorithm 4/30/07 - change viscosity range to 1E-4 to 1E-2 4/30/07 - set reasonal defaults and ranges for bead motion dt subdivision parameters 4/30/07 - fix precision roundoff errors at min/max for LinearValueControl and LogarithmicValueControl 4/30/07 - subdivide clock timestep in bead motion algorithm 4/30/07 - convert bead motion model to use nm distance units 4/30/07 - add developer controls for bead motion: N (number of dt subdividions) and dt threshold, not connected to model 4/30/07 - add developer control for bead's Brownian motion scale factor 4/30/07 - set up framework for opening developer-only dialog from control panel 4/30/07 - implement display of fluid drag force 4/30/07 - generalize node for displaying forces 4/30/07 - close FluidControlsDialog when switching modules 4/30/07 - reduce complexity of PhysicsModule 4/30/07 - move all node creation into PhysicsCanvas 4/30/07 - move all nodes into package view.nodes # 0.00.04 (14904) 4/27/07 - change model for bead motion, Mike Dubson's 4/26/07 model 4/27/07 - add water viscosity constant and normalization method to Fluid 4/27/07 - adjust clock dt so that fastest speed is 1E-3 realtime 4/27/07 - add display of x & y components to TrapForceNode 4/27/07 - change model for Fz trap force 4/27/07 - set laser run state in resetAll 4/24/07 - move control.valuecontrol to phetcommon.view.controls.valuecontrol 4/24/07 - add AbstractValueControl.setMinorTickLabelsVisible 4/24/07 - use predefined cursors that indicate drag constraints (left/right vs up/down) 4/24/07 - add AbstractValueControl.setHorizontalAlignment 4/24/07 - left-align all fluid controls 4/24/07 - simplifications to min/max tick mark code in AbstractValueControl 4/24/07 - move testers to controls.valuecontrols 4/24/07 - rename AbstractSliderStrategy etal to AbstractMappingStrategy 4/24/07 - move ValueControl stuff to controls.valuecontrol 4/23/07 - remove PhysicsDefaults references from FluidControlPanel, should be independent of module 4/23/07 - set clock range to vary from realtime to 140E-16 * realtime 4/23/07 - replace ClockSpeedSlider with a LogarithmicValueControl 4/23/07 - display & control fluid speed in microns/sec, model is in nm/sec 4/23/07 - debug LogarithmicSliderStrategy.sliderToModel and modelToSlider when abs(modelMinValue) < 1 4/23/07 - use Double.parseValue to accept multiple formats for entry of viscosity value (1E-10, 1e-10, 0.0001) 4/23/07 - use new controls in FluidControlPanel, logarithmic viscosity control 4/23/07 - replace SliderControl with LinearValueControl and LogarithmicValueControl 4/23/07 - slider and control hierarchy built on slider strategies 4/19/07 - implement strategies (linear and log) for mapping between slider and model coordinates 4/18/07 - simplify SliderControl constructor 4/18/07 - increase brownian motion scale factor 4/18/07 - set clock dt range to correspond to seconds units 4/18/07 - change clock units to seconds 4/18/07 - cleanup bead motion, disable trap and fluid forces, and put on hold until physicists revise the model 4/17/07 - disable trap force and Brownian motion components in bead motion model 4/17/07 - change bead motion algorithm to use new units 4/17/07 - javadoc model classes, indicate units 4/17/07 - document units and conversions in doc/units.txt 4/12/07 - implement fluid flow and trap force components for bead motion model, behaving badly 4/12/07 - fix TrapForceNode to hide vectors when laser is off 4/12/07 - make Laser.getIntensity and getTrapForce return 0 when laser is off 4/12/07 - simplify Laser.getIntensity and getTrapForce 4/12/07 - change fluid speed model units to nm/sec (was microns/sec), range becomes [0,1000000] 4/12/07 - merge test-src into src # 0.00.03 (14322) 4/11/07 - add Brownian motion to bead, including collision detection with top & bottom edges of microscope slide 4/11/07 - change clock dt range to [0.01,1] 4/11/07 - encapsulate model creation for "Physics of Tweezers" panel in PhysicsModel 4/10/07 - explicitly call handlers in all control panel setters 4/10/07 - hook up TrapForceNode to control panel 4/10/07 - rewrite TrapForceNode to use Vector2DNode 4/10/07 - Vector2DNode for displaying a Vector2D as an arrow, with optional value 4/10/07 - add trap force units to localization file 4/10/07 - add units to trap force vector display 4/10/07 - change Fy calculation for trap force, old physics was wrong 4/9/07 - add TrapForceNode for visualizing trap forces on bead 4/9/07 - implement trap force model, correct problems with physics 4/9/07 - scale laser alpha using sqrt to compensate for human eye perception 4/9/07 - add gradient for portion of laser beam going into objective 4/9/07 - combine BeamInNode and BeamOutNode into LaserBeamNode to handle all laser beam drawing 4/7/07 - encapsulate all resource loading in OTResources 4/7/07 - use PhetCommonProjectConfig to get common images and strings 4/5/07 - set locale in Spanish JNLP file via javaws.locale property 4/5/07 - convert from SimStrings to PhetProjectConfig 4/5/07 - consolidate all strings in OTStrings 4/5/07 - consolidate all images in OTConstants # 0.00.02 (14202) 4/4/07 - optimize gradient view of laser power intensity using a BufferedImageOp that adjusts alpha channel 4/4/07 - reduce size of gradient image by only drawing one quadrant, then scaling it to the view 4/4/07 - make BeamInNode and BeamOutNode handle their own visibility based on Laser state 4/4/07 - show left and right edges of BeamOutNode as a faint dashed line 4/4/07 - speed up creation of laser gradient view by 4x 4/3/07 - implemented gradient field view of Laser power intensity, very slow! 4/3/07 - add power intensity model to Laser 4/3/07 - draw outline of beam shape in BeamOutNode 4/3/07 - make BeamInNode and BeamOutNode observers of Laser 4/3/07 - test program to display laser power gradient 4/3/07 - model laser power gradient 4/2/07 - fix beam shape model, calc of scaling factor was wrong 3/26/07 - restore OTObservable, functionality was important 3/26/07 - remove OTObservable, additional functionality not used 3/26/07 - document model coordinate system in package javadoc 3/26/07 - add Laser.contains, determines if a point is inside the laser beam 3/26/07 - temporary hack in OTRuler for ruler alignment problem 3/26/07 - converting bead to image crops right & bottom pixels, remove stroke 3/26/07 - add debug crosshair at laser's origin 3/26/07 - make laser's local origin be at the center of its waist 3/26/07 - remove canvas argument from all nodes in the scenegraph 3/26/07 - add beam shape model to Laser 3/26/07 - add size and layout dependencies to PhysicsDefaults 3/26/07 - add zr scaling factor to model of laser beam shape 3/23/07 - implement laser profile model, create test program to show scale problems 3/23/07 - change default fluid speed to 0 3/23/07 - convert to new PSwing interface that doesn't require canvas in constructor 3/22/07 - make fluid dialog appear at left-center of the main frame 3/22/07 - move fluid control to a separate dialog 3/22/07 - add a faint cross-hair at center of bead 3/22/07 - add close button to upper-right corner of charts 3/22/07 - optical trap force control should be enabled in fast speed 3/22/07 - make fluid vectors disappear when speed=0 3/22/07 - change min fluid velocity to 0 3/22/07 - use double precision for laser wavelength 3/22/07 - use laser wavelength of 1064 nm (IR) in model, but use 632 (visible red) in view 3/22/07 - set fluid temperature range to 50-350 Kelvin 3/22/07 - add density to the bead model, calculate mass based on diameter and density 3/22/07 - increase font size for controls on the play area (14->16) 3/22/07 - show whichever chart was selected last, close the other one 3/22/07 - add 9 minor-ticks between each major tick on ruler # 0.00.01 (13958) 3/21/07 - if laser is outside the canvas bounds, move it to the center 3/21/07 - flash the "Return Bead" button when it's visible 3/21/07 - center "Return Bead" button on the canvas 3/21/07 - properly set visibility of "Return Bead" button 3/21/07 - hook up "Return Bead" button so that it returns the bead to the button's position 3/21/07 - hook up BeadNode so that dragging updates the model 3/21/07 - use red foreground color for all unimplemented controls 3/21/07 - add controls and stuff above position histogram 3/21/07 - restructure scenegraph for charts 3/21/07 - make visibility of potential chart take prescendence over position histogram 3/21/07 - add position histogram, wire to control panel, no buttons, no data or connection to model 3/21/07 - add potential energy chart, wire to control panel, no data or connection to model 3/20/07 - add power range to laser model 3/20/07 - javadoc what I've done so far 3/20/07 - remove ModelViewManager framework, not necessary, too complicated 3/20/07 - set ruler off by default 3/20/07 - set viscosity range to [1E-12,1E-2] Pa*s, default=1E-3 3/20/07 - use scientific notation to format numbers in viscosity control 3/20/07 - add feature to set number formats for SliderControl 3/20/07 - add units label for fluid viscosity 3/20/07 - add velocity vectors to FluidNode 3/20/07 - change model property Fluid.width to Fluid.height 3/20/07 - rename GlassSlideNode to FluidNode 3/20/07 - move DoubleRange, IntegerRange to phetcommon 3/19/07 - debug phet.piccolo.BoundedDragHandler with Sam Reid 3/19/07 - test application to isolate drag problem with ruler and laser apparatus 3/19/07 - clean up specialized ruler 3/19/07 - add units to ruler 3/19/07 - piccolo-phet: add feature to set units on RulerNode for a specific major lick label 3/19/07 - set fluid speed range to [1,1000] microns/sec 3/19/07 - add units labels for fluid speed and temperature 3/14/07 - rename SimStrings files to have basename opticaltweezers_strings 3/14/07 - move images to data/opticaltweezers/images to avoid namespace collisions 3/14/07 - get version and credits from properties file 3/13/07 - clean up stub modules 3/13/07 - move VIEW_SIZE and MODEL_TO_VIEW_SCALE into defaults classes 3/13/07 - revert to ModelViewTransform terminology 3/13/07 - update ruler drag bounds when laser moves 3/13/07 - add setWorldSize to GlassSliderNode and OTRulerNode 3/13/07 - add debug code to show drag bounds for draggable things 3/13/07 - fix major bug in ModelWorldTransform 3/13/07 - rename ModelViewTransform -> ModelWorldTransform 3/13/07 - wire up ruler to checkbox 3/13/07 - change ModelViewTransform to use a separate xform for view->model 3/13/07 - wire up ClockSpeedSlider to clock 3/13/07 - encapsulate clock speed model-view mappings in ClockSpeedSlider 3/13/07 - change clock stuff in *Defaults classes 3/13/07 - delete SpeedControl class (complicated clock control) 3/13/07 - change clock speed control to 1 slider 3/13/07 - change laser "width" to "diameter" 3/12/07 - move RoundGradientPaint to phetcommon 3/12/07 - move getWorldSize funtionality to PhetPCanvas 3/12/07 - laser power should be double precision 3/12/07 - no error dialog for power textfield input; if value is bad, beep and clamp to min/max 3/12/07 - fix vertical lines in laser control, attach to ends of objective, not the control panel 3/12/07 - move getWorldSize into AbstractModule 3/12/07 - remove CVS keywords from headers, javadoc, and persistence 3/12/07 - add validation in Fluid model setters 3/12/07 - bug fix in MovingObject.setSpeed 3/12/07 - make FluidControlPanel observer of Fluid 3/12/07 - move property ranges into Fluid model 3/12/07 - use font in FluidControlPanel 3/12/07 - add SliderControl.setFont 3/12/07 - enable textfield editing for fluid controls 3/12/07 - get lastest SliderControl from rutherford-scattering 3/12/07 - vertically align left edges of fluid controls 2/23/07 - add ruler, lots of problems, no vertical drag 2/23/07 - add draggable handles to sides of laser control panel 2/23/07 - create HandleNode in piccolo-phet 2/23/07 - add vertical lines to connect objective to laser control panel 2/22/07 - work on piccolo-phet RulerNode 2/21/07 - remove drag handler from laser control panel, multiple PSwing-related problems 2/21/07 - change to BoundedDragHandler for bead and laser dragging 2/21/07 - create PhetPSwing so that wrapped JComponents aren't active when invisible 2/21/07 - contrain bead dragging with ConstrainedDragHandler for now 2/21/07 - make bead diameter mutable 2/21/07 - setPickable(false) on non-interactive nodes 2/21/07 - hook up laser power control to alpha channel of laser beam view 2/20/07 - add laser beam coming out of objective, no waist 2/20/07 - laser power text field entry and validation with error dialog 2/20/07 - make laser power slider range be 0-1000 mW 2/20/07 - make LaserControlPanel observer of Laser 2/20/07 - layout LaserControlPanel using Piccolo instead of JPanel 2/20/07 - set layout of laser objective, incoming beam, control panel 2/20/07 - fix initial positioning of Laser and Bead views 2/20/07 - make view nodes observers of their model elements 2/20/07 - remove glass slide from model, fluid model is sufficient 2/20/07 - change "flow velocity" to "flow speed" through, there is no direction control 2/14/07 - dynamically resize width of glass slide view to match play area width 2/14/07 - continue work on Laser view objective, incoming beam, etc) 2/14/07 - use model to size/position view nodes 2/14/07 - create model-view transform for mapping between coordinate systems 2/14/07 - flesh out bits of model related to controls, positioning, sizing, etc. 2/6/07 - add warning sign to laser control panel 2/6/07 - toggle laser start/stop button 2/6/07 - settable font for LaserControlPanel 2/6/07 - define separate fonts in OTConstants for controls in control panel and play area 2/6/07 - first pass at Laser control panel 2/6/07 - fluid control panel 2/6/07 - add ad hoc view of bead (no connection to model, no drag constraints) 2/6/07 - add ad hoc view of glass slide (no connection to model) 2/5/07 - implement "reset all" for first module 2/5/07 - wire up first control panel to show/hide controls properly 2/5/07 - create a separate "default values" class for each module 2/5/07 - add all Swing components to first control panel, no wiring 2/5/07 - add entries in CVS modules and loginfo 2/5/07 - sim requires charts, add dependencies on jfreechart and jfreechart-phet 2/5/07 - remove speed slider from clock control panel 1/29/07 - set up ProGuard 1/29/07 - set up dev directory 1/29/07 - create JNLP files 1/29/07 - set up basic application framework (modules, control panels, clock controls, persistence, etc) 1/29/07 - set up project in CVS