# 1.00.00 (56978) Sep 27, 2011 9/27/11 delete TODO.txt, all future work will be tracked via Unfuddle 9/26/11 #3092, workaround for "play area visibly resizes at startup on Mac" # 0.00.27 (56960) Sep 26, 2011 9/26/11 first pass at model.txt 9/26/11 design doc snapshot checked into SVN 9/26/11 screenshot for website 9/26/11 fix left justification of View check boxes 9/23/11 more requested changes to credits.txt 9/23/11 fix typos in credits.txt # 0.00.26 (56915) Sep 23, 2011 9/23/11 tweak "Three Atoms" play area layout to make sure we have room for control panel translations 9/23/11 slight tweak to 2D dipole arrow heads to make them look more like Jmol dipoles 9/23/11 add icons next to dipole check boxes 9/23/11 change request: add bond to tiny molecule in Bond Character indicator 9/23/11 reviewed and addressed results of IntelliJ "Locate Duplicates" 9/23/11 reviewed and addressed results of IntelliJ "Inspect Code" 9/23/11 simplify 2D canvas code by moving surfaces and decorations into molecule nodes 9/23/11 document layout of canvases 9/23/11 fix "Bond Dipoles" label (plural) that was messed up in yesterday's changes 9/23/11 delete unnecessary scale factor from dipole nodes 9/22/11 create View control panels inline, since they differ 9/22/11 move getPixelColor to BufferedImageUtils 9/22/11 document the coordinate frame used by view components 9/22/11 rewrite and simplify DipoleNode and its subclasses 9/22/11 delete Bond.deltaElectronegativity property # 0.00.25 (56852) Sep 22, 2011 9/22/11 change request: redesign of "Bond Character" indicator 9/22/11 increase font size in all control panels (similar to Balancing Act) 9/22/11 workaround for difference between background color of play area and Jmol viewer 9/22/11 move RotateMol2 to jmephet.util (see javadoc for "why") 9/21/11 promote Element to top-level model class 9/21/11 fix rotate cursor, padding wasn't applied equally on all sides 9/21/11 move JmolConsole to jmol-phet 9/21/11 generalize DialogCheckBoxMenuItem and move to phetcommon 9/20/11 move STAGE_SIZE constant to MPCanvas 9/20/11 migrate SliderDragHandler to piccolo-phet, rename SliderThumbDragHandler, use in capacitor-lab 9/20/11 replace HorizontalSliderDragHandler with generalized SliderDragHandler 9/20/11 cleanup of HorizontalSliderDragHandler 9/20/11 add dependency on chemistry common project, to use ChemUtils.toSubscript 9/20/11 #3077, move padPreferredWidthDeep to SwingUtils 9/20/11 workaround for #3077 (PSwing clips labels in floating control panels) 9/20/11 vertically center 2D molecules between plates 9/20/11 restore Bond Type feature # 0.00.24 (56733) Sep 20, 2011 9/20/11 temporarily hide Bond Type feature, for interviews # 0.00.23 (56723) Sep 19, 2011 9/19/11 move Jmol console to Developer menu 9/19/11 first pass at a reusable Jmol console component 9/19/11 move duplicate observer code into Molecule2D base class 9/19/11 move duplicate ClockListener into MPModel2D base class 9/19/11 fix 2D model class hierarchy 9/19/11 javadoc 9/19/11 write development-notes.xt 9/19/11 rename RotateMol2 9/19/11 add rotate cursor to 2D surfaces 9/19/11 generalize algorithm for computing molecular dipole, move to base class 9/19/11 move 2D molecular dipole to base class 9/19/11 first pass at a base class for 2D molecules 9/19/11 fix incorrect usages of "isosurface" terminology 9/19/11 create a base class for 2D surface nodes 9/19/11 delete unneeded keep statements from molecule-polarity.pro (for file format readers that we're not using) 9/19/11 delete unused TestMepCalculation 9/19/11 make MoleculeRotationHandler extend PDragSequenceEventHandler 9/19/11 change request: make CHF3 have same initial orientation as CHCl3 9/19/11 rename BondAngleDragIndicatorNode to BondAngleArrowsNode 9/19/11 override correct drag methods in BondAngleHandler 9/19/11 merge BondAngleVisibilityHandler into BondAngleHandler 9/19/11 change behavior of bond angle arrows (visible on mouse enter, disappear on mouse exit or when drag starts) # 0.00.22 (56575) Sep 14, 2011 9/14/11 put red outline around stage bounds only for dev versions 9/14/11 add additional horizontal space between Jmol viewer and control panel 9/14/11 revert to original EN values for atoms in diatomic molecule 9/14/11 change initial orientation of CHCl3 (multi-step rotation: x=-90 -> y=+10 -> x=+25), relabel atoms 9/14/11 change initial orientation of CH2F2 (multi-step rotation: x=-90 -> y=+40) 9/14/11 change initial orientation of CHF3 (multi-step rotation: x=-90 -> y=+30 -> x=+15), relabel atoms 9/14/11 change initial orientation of CH3F (multi-step rotation: x=+90 -> y=+30 -> x=+30), relabel atoms 9/14/11 change initial orientation of NH3 (multi-step rotation: x=-90 -> y=+30 -> x=+20), relabel atoms 9/14/11 utility program utilizing JME Transform to rotate molecules into desired initial orientations # 0.00.21 (56538) Sep 13, 2011 9/13/11 adjust layout of "Real Molecules" play area 9/13/11 adjust layout of "Two Atoms" play area, based on molecule location 9/13/11 adjust layout of "Three Atoms" play area, based on molecule location 9/13/11 use double arrows to indicate dragging direction for changing bond angle 9/13/11 transform the shape of the bond angle indicator to point in the correct direction 9/13/11 move bond angle indicator to front on mouse over 9/13/11 merge MoveToFrontHandler into BondAngleHandler 9/13/11 bug fix in BondAngleHandler 9/13/11 first pass at bond angle drag indicators (visibility behavior is correct, shape is wrong) 9/13/11 center layout of stuff in "Real Molecules" tab 9/13/11 fix horizontal spacing of cells in EN table 9/13/11 refactor control panel nodes into a base class 9/13/11 create a class for each module's control panel, to simplify canvas code 9/13/11 change request: make all floating control panels the same width, looks better 9/13/11 turn off all mouse features except "rotate" in the Jmol viewer 9/13/11 scale Jmol dipoles by 0.8, so the molecular dipole isn't clipped by the Jmol viewer 9/13/11 swap EN values for atoms in diatomic molecule, so that turning on E-field is more likely to result in animation 9/13/11 make Jmol viewer as large as possible 9/13/11 adjust layout of "Real Molecules" play area 9/13/11 permanently remove E-field features from "Real Molecules" tab # 0.00.20 (56383) Sep 10, 2011 9/8/11 decrease perpendicular offset of 2D bond dipoles # 0.00.19 (56333) Sep 8, 2011 9/8/11 join clipped cloud shapes at center of bond in 2D electrostatic potential 9/8/11 temporarily hide E-field features in "Real Molecules" tab, for interview version 9/8/11 factor out duplicate code in DiatomicElectrostaticPotentialNode.updatePaint 9/8/11 set correct endpoints for gradient in 2D electrostatic potential 9/8/11 add Bond.getLength, useful in 2D isosurface computations 9/8/11 first pass at gradient paints for 2D electrostatic potential (path clipping is incorrect, gradient endpoints are a little off) 9/8/11 update 2D isosurfaces only when they're visible 9/7/11 implement simple color change for electrostatic potential, based on polarity 9/7/11 handle neutral polarity specially in electron density gradient, tweak alpha 9/7/11 account for molecule transform when creating electron density gradient 9/7/11 first pass at 2D electron density isosurface, does not account for molecule rotation 9/7/11 prepare separate classes for 2D representations of electrostatic potential and electron density # 0.00.18 (56228) Sep 6, 2011 9/6/11 fix sign on partial charges 8/24/11 remove bad code from MPCanvas.updateLayout that was interfering with CenteredStage transform strategy 8/24/11 add stage bounds node, for layout debugging 8/24/11 convert rotate cursor to 32x32 gif, to work around Windows/Java bug #4842475 8/23/11 restore rotate cursor # 0.00.17 (55737) Aug 23, 2011 8/23/11 temporarily disable rotate cursor 8/23/11 change canvas transform strategy from RenderingSizeStrategy to CenteredStage 8/23/11 fix unusual case where pressing Reset All results in "UnsupportedOperationException: Cannot normalize a zero-magnitude vector" 8/23/11 remove duplicate "do script" functionality from JmolViewerNode 8/23/11 add code (currently disabled) for "centered stage" transform strategy 8/23/11 pad rotate cursor with whitespace, so that it's 32x32, required by Windows 8/23/11 add major and minor tick marks to EN sliders 8/22/11 fix test program for EN sliders, change snap interval to 0.2 8/22/11 change bond color to dark gray, so that partial charges are still visible when they overlap bonds 8/22/11 position partial charge opposite molecular dipole for atom B in triatomic molecule 8/22/11 add view of partial charge for atom B in triatomic molecule (location is incorrect) 8/22/11 move computation of partial charges from bond to molecule, to handle atoms that participate in multiple bonds, lie atom B in triatomic molecule 8/22/11 prepare 2D isosurface by adding constructor args that will be needed for coloring 8/22/11 remove nodes related to surfaces from "Three Atoms" canvas 8/22/11 reverse order of colors in gradient specifications, to match Jmol naming conventions (negative-to-positive) 8/22/11 move gradient color specifications to MPColors, for reuse in 2D surfaces # 0.00.16 (55638) Aug 22, 2011 8/22/11 dev version for discussion with KL 8/22/11 try another design for the Bond Type pointer, looks like a little bond [55631] 8/22/11 change request: redesign Bond Type indicator, move labels inside track, dual pointers above/below track [55629] 8/22/11 shorten max length of bond dipoles, so that vector tails don't run together for linear triatomic molecule 8/22/11 document our simplified relationship between deltaEN, bond dipole and partial charge 8/22/11 remove "more" from range labels on Bond Type indicator 8/22/11 use 31 colors for rainbow gradient, as shown for "Jmol roygb" at http://jmol.sourceforge.net/jscolors/#gradnt 8/22/11 remove surface features from "Three Atoms" tab, since we're creating molecules that are impossible to create surfaces for 8/22/11 use neutral green as documented for Jmol roygb gradient at http://jmol.sourceforge.net/jscolors/#gradnt 8/22/11 remove arrows from continuum titles 8/22/11 Jmol: make atom labels be hidden by things in front of them 8/22/11 change request: change EN range to 2.0-4.0 # 0.00.15 (55611) Aug 22, 2011 8/22/11 dev version for discussion with KL 8/22/11 change request: try no color change on the E-field plates when turned on, because color is sending wrong messages 8/22/11 Jmol weights blue for 20% of the rainbow gradient, so add more blue to the color key 8/22/11 add dipole scaling factor to view, currently set to 1.0 8/22/11 delete JComboBox-based molecule control, stick with Piccolo version 8/22/11 create color constants in MPColors for things that are in flux 8/22/11 tone down color of Reset All button, bright yellow was a little to eye-grabbing 8/22/11 change format (<- title ->) and location (bottom) of titles to reclaim some vertical space [55595] 8/21/11 add title to Bond Type indicator, flip arrow to point up for now, use lowercase for range labels to be consistent 8/21/11 add cyan to rainbow mep color key, trying to match Jmol's color scheme 8/21/11 restore titles with smaller non-bold font # 0.00.14 (55578) Aug 21, 2011 8/21/11 change request: remove titles from electronegativity table and color keys 8/21/11 change request: end rainbow electrostatic potential with blue, not violet 8/21/11 change request: use pale yellow for E-field plates "on" 8/21/11 change request: move "atom electronegativity" check box up 1 row, off by default # 0.00.13 (55556) Aug 19, 2011 8/19/11 experiment with different colors for play area and plates, white is problematic # 0.00.12 (55542) Aug 19, 2011 8/19/11 fix change notification mechanism for electronegativity table 8/19/11 first pass at electronegativity table 8/19/11 reverse order of colors for rainbow mep, so that red is negative 8/19/11 implement Option menu item to switch MEP color scheme to "rainbow" for "Real Molecules" tab 8/19/11 move bond type indicator closer to EN sliders, since they are closely related 8/19/11 fix seams in rainbow surface color key 8/19/11 add titles to surface color keys, fix black outline 8/18/11 first pass at isosurface color keys 8/18/11 add stubs for Options "rainbow mep" menu item 8/18/11 add empty Options menu to menubar 8/18/11 add View property and check box for "Electronegativity Table" 8/18/11 improved rotate cursor image 8/18/11 fix: atom labels "on" by default in "Real Molecules" tab # 0.00.11 (55434) Aug 18, 2011 8/18/11 add new rotate cursor, created by NP 8/18/11 delete CO from real molecules, since "it could be confusing" 8/18/11 use HF as the default real molecule 8/18/11 initialize EN slider for atom B to middle value in all tabs 8/18/11 make the E-field plates brighter gray to indicate "on", to avoid chem/physics inconsistency with red/blue 8/18/11 encapsulate L&F of "Reset All" button, disable confirmation 8/17/11 initialize view properties in constructor, so that Reset All works properly 8/17/11 for triatomic molecule, make molecular dipole on by default, bond dipole off by default 8/17/11 put 2D isosurfaces behind molecule, so that it's possible to change bond angle and rotate isosurface 8/17/11 delete periodic table, replace with placeholder for electronegativity table 8/17/11 change "Isosurface" label to "Surface", also change internally 8/17/11 change request: pause animation of E-field alignment when an EN slider is being dragged 8/17/11 change request: when changing bond angle, move the atom that's being dragged to the front # 0.00.10 (55361) Aug 16, 2011 8/16/11 replace PolarImmutableVector2D with ImmutableVector.parseMagnitudeAndAngle 8/16/11 add rotate cursor, for discussion 8/16/11 use bond dipole instead of deltaEN in diatomic molecule and bond type indicator 8/16/11 adjust canvas layouts 8/16/11 change rendering order of scenegraph so that molecule is on top 8/16/11 general alignment of molecular dipole with E-field so that it's handled in the base class model 8/16/11 align triatomic molecular dipole with E-field 8/16/11 add bond angle manipulation 8/16/11 fixed transforms in molecular dipole view 8/16/11 fix rendering order of scenegraphs 8/16/11 add bond dipole to model 8/16/11 add partial charge to atom model 8/16/11 restore molecular dipole # 0.00.09 (55303) Aug 16, 2011 8/16/11 dev version for discussion at Chem meeting 8/16/11 temporarily disable molecular dipole because it's currently incorrect 8/15/11 checked in a version of "real molecules" control that uses PComboBox instead of ComboBoxNode, #2982 8/15/11 tweak molecular dipole interface and fields 8/15/11 make molecule location a simple field, doesn't need to be a Property 8/15/11 intermediate implementation of molecular dipole model and view, not functional yet 8/15/11 generalize 2D isosurface placeholder, add to triatomic molecule 8/15/11 generalize "rotatable molecule" interface, add rotation handler to triatomic molecule 8/15/11 update atom locations when molecule angle or bond angles change 8/15/11 change request: use gray background for periodic table, to provide more contrast between selected and unselected cells 8/15/11 first pass at fleshing out "Three Atoms" tab, only partially functional 8/15/11 change request: make "bond dipoles" on by default in "Two Atoms" tab # 0.00.08 (55174) Aug 13, 2011 8/12/11 make sure that all PText instances have a call to setFont(PhetFont) 8/12/11 rename various TwoAtoms* classes to Diatomic* 8/12/11 javadoc throughout 8/12/11 fix Reset All so that it resets the molecule in Real Molecules 8/12/11 add currentMolecule property to Real Molecules model, observe in Jmol viewer and periodic table 8/12/11 reuse piccolo-phet's PeriodicTableNode 8/12/11 display element numbers in periodic table placeholder 8/12/11 Jmol: script to return element numbers, for use in periodic table 8/12/11 wire up "electron density" control in "Two Atoms" tab 8/12/11 Jmol: use different isosurfaces for homogeneous diatomic molecules 8/12/11 Jmol: wrote script to identify homogeneous diatomic molecules 8/12/11 change "bond dipoles" to "bond dipole" in Two Atoms tab 8/12/11 #3039, add Arrow.getHeadScale, use it to scale dipole cross 8/12/11 add cross to dipole by decorating arrow 8/11/11 cannibalize Vector2DNode for use in rewrite of DipoleNode 8/11/11 make TwoAtomsIsosurfaceNode observer atom locations, since those are the properties it relies on 8/11/11 rename "Test" control panel to "Electric Field" 8/11/11 first attempt at 2D isosurface 8/11/11 generalize molecule drag handler in MoleculeRotationHandler 8/11/11 add 3D perspective to E-field plates 8/10/11 restore "more" in bond type indicator 8/10/11 remove arrows and "more" from bond type indicator 8/10/11 Jmol: return status from developer scripts 8/10/11 adjust 2D dipoles to look more like Jmol dipoles 8/10/11 Jmol: swp atom labels so that they are numbered clockwise from upper left 8/10/11 Jmol: change atoms labels so that if there's only one atom of a type, it has no index (eg "C", not "C1") 8/9/11 Jmol: manually edit mol2 file for O3, swap y and z axes 8/9/11 Jmol: manually edit mol2 file for H2O, swap y and z axes, invert y axis 8/9/11 Jmol: manually edit mol2 file for CH2O, swap y and z axes, invert y axis, adjust labels 8/9/11 Jmol: manually edit mol2 orientation of atoms that involve swapping x and z axes, adjust labels 8/9/11 Jmol: manually edit atom names in mol2 files 8/9/11 Jmol: delete sdf and smol files, #3018 # 0.00.07 (54913) Aug 6, 2011 8/6/11 Jmol: execute scripts synchronously with JmolViewer.scriptWait, #3009 8/6/11 change Model control panel to Isosurface, with choices "none", "Electrostatic Potential", "Electron Density" 8/6/11 Jmol: add a proposed isosurface command for "electron density" view, for discussion 8/3/11 change request: add line separator between atom name and partial charge 8/3/11 change request: atom labels on by default # 0.00.06 (54831) Aug 3, 2011 8/3/11 add molecule angle to Reset All 8/3/11 align two-atom molecule with E-field 8/2/11 change Bond.dipoleMagnitude to Bond.deltaElectronegativity, since this is really what it is 8/2/11 revert work done on making dipole a vector, introduced many problems and seems redundant 8/2/11 hide View controls that are not relevant to a tab 8/2/11 tweak sizes and locations of some things, so that there are no collisions when rotating molecule 8/2/11 for 2-atom molecule, molecular dipole is identical to bond dipole 8/2/11 make Bond dipole field a vector instead of a scalar 8/2/11 add infrastructure for aligning molecular dipole with E-field over time 8/2/11 Jmol: limit display of partial charge to 2 decimal places 8/2/11 Implemented TwoAtomMoleculeNode.RotationHandler 8/2/11 Set position of partial charges relative to their associated atoms 8/2/11 Centered the play area in the panel 8/1/11 simple implementation of bond type (covalent/ionic) display # 0.00.05 (54624) Jul 29, 2011 7/29/11 reduce font size of MoleculeComboBoxNode (temporarily?), so that popup fits in the play area, workaround for #3025 7/29/11 Jmol: switch to mol2 files provided by KL, add additional molecules 7/28/11 Jmol: separate chem data files into separate directories, by file type # 0.00.04 (54576) Jul 27, 2011 7/27/11 Jmol: order molecules in combo box by increasing size/complexity 7/27/11 Jmol: make bond and atoms translucent when dipoles are visible 7/27/11 Jmol: use custom (colorblind) red for oxygen atoms 7/27/11 Jmol: remove duplicate code in readers for files and jar resources 7/27/11 Jmol: disable hovers 7/27/11 Jmol: disable zooming 7/27/11 Jmol: customize color and thickness of bonds, doc ball-and-stick script commands 7/27/11 Jmol: display partial charge as part of atom label 7/27/11 Jmol: increase font size of Jmol labels, set label color to black for all atoms # 0.00.03 (54557) Jul 27, 2011 7/27/11 Jmol: use KL's list of molecules and SDF files 7/27/11 Jmol: check in SDF files obtained from PubChem (http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi) 7/27/11 Jmol: use KL's method of creating mep isosurface 7/26/11 intermediate implementation of partial charge view (not positioned correctly) 7/26/11 bond dipole view based on Vector2DNode 7/25/11 intermediate implementation of bond dipole view (offset and magnitude not functional) 7/25/11 add Bond to model 7/25/11 intermediate implementation of two-atom molecule rotation 7/25/11 intermediate check-in of two-atom molecule model and view # 0.00.02 (54482) Jul 25, 2011 7/25/11 Jmol: add "Import from file" option to Molecule combo box, so that non-developers can experiment Jmol file formats, see #3018 7/25/11 Jmol: tested more file formats, see #3018 7/21/11 Jmol: tested various file formats, see #3018 7/20/11 Jmol: add developer control for entering and executing scripts # 0.00.01 (54332) Jul 20, 2011 7/19/11 dev version to demonstrate Jmol features and integration in "Real Molecules" tab 7/19/11 Jmol: add classes that are dynamically loaded to proguard-template.pro 7/19/11 Jmol: add dipole offsets, so that dipoles don't intersect atoms and bonds 7/19/11 add placeholder for periodic table 7/19/11 add "Molecule" label to combo box control 7/19/11 render molecule combo box items at HTMLNodes 7/19/11 delete acetone, because we should only include real molecules with one central atom 7/19/11 add hand cursor to Jmol viewer node 7/19/11 add View control for atom labels 7/19/11 setForeground(red) for controls that are not implemented 7/19/11 remove Jmol atom labels 7/19/11 increase width of dipoles, default is a little difficult to see 7/19/11 add combo box for selecting real molecule 7/19/11 wire up Jmol viewer to controls 7/19/11 integrate Jmol into "Real Molecules" tab 7/19/11 remove dependencies on jmol-phet 7/18/11 feasibility test of many Jmol features 7/18/11 add dependencies on Jmol, create test harness for integration of Jmol with Piccolo 7/13/11 hide clock controls in all modules, this sim has no clock controls 7/12/11 add rudimentary E-field plates 7/12/11 converted to floating control panels 7/11/11 created electronegativity control 7/11/11 created control panels 7/11/11 set up localized strings 7/11/11 created project and set up skeleton