# 3.03.00 (30610) Apr 20, 2009 4/20/09 Batch deploy as part of IOM milestone with revision 30609 # 3.02.03 (30125) Mar 31, 2009 3/31/09 deploy dev version for verification 3/25/09 #1545, widen and right-justify amplitude text fields 3/25/09 #1337, address proper redrawing of amplitude text fields in PhetJComponent # 3.02.02 (29629) Mar 22, 2009 3/22/09 Batch deploy for Alpha Simulation Tests 2, svn 29628 3/12/09 #1453, remove unused strings from English localization file # 3.02.01 (28791) 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 795 9/5/08 - remove use of DialogUtils, use JOptionPane directly > use fancier tabs to switch panels 5/20/08 - add new-style Piccolo tabs 5/20/08 - replace Font with PhetFont throughout 4/28/08 - add PhetLookAndFeel to main 1/7/08 - replace "Lucida Sans" with PhetDefaultFont in HelpBubble 11/9/07 - move about.credits property to localization file 10/9/07 - migrate "Reset All" and "set minimum width" features to phetcommon ControlPanel 10/9/07 - switch persistence to phetcommon's XMLPersistenceManager 9/11/07 - rename FourierModule and FourierControlPanel to have "Abstract" in their names, consistent with other sims 8/27/07 - replace "Lucida Sans" with PhetDefaultFont.getDefaultFontName() 8/16/07 - convert persistence code to use IProguardKeepInterface instead of FourierSerializable # 3.02.00 (17033) 7/27/07 - new version published as part of new website deployment 7/2/07 - wrap the body of main in invokeLater 6/15/07 - convert description properties to well-formed HTML 4/6/07 - organize imports 4/6/07 - set locale in Spanish JNLP file via javaws.locale property 4/6/07 - encapsulate loading of strings and images in FourierResources 4/6/07 - convert from SimStrings to PhetProjectConfig 3/20/07 - move TrigCache to phetcommon, convert to an instance instead of static methods 3/20/07 - rename packages that contained "enum" keyword, use "enums" instead 3/20/07 - move ColorChooserFactory to phetcommon 3/20/07 - replace ZoomControl et. al. with PhetZoomControl from phetgraphics 3/14/07 - rename SimStrings files to have basename fourier_strings 3/14/07 - move images to data/fourier/images to avoid namespace collisions 3/14/07 - get version and credits from properties file (2/19/07) - create ProGuard file (2/19/07) - add FourierSerializable marker interface so that ProGuard doesn't strip out persistence code (2/19/07) - change "Reset" to "Reset All" (11/29/06) - add missing description in SimStrings file, format for new About dialog # 3.01.00 (2/2/06) - wait to initialize sound until user clicks Sound checkbox, because some users have hosed audio drivers (2/2/06) - handle all Exception types in DiscreteControlPanel.initSound, not just expected audio exceptions (1/2/06) - changes to support new ModulePanel layout (12/27/05) changes to support phetcommon's new Module and Clock architecture (12/14/05) - minor changes to support separation of phetcommon and phetgraphics into separate CVS projects # 3.00.00 (11/8) - replace "cheat" panel with hints panel that gradually reveals the answer (11/7) - change WiggleMeGraphic to use HTMLGraphic instead of PhetTextGraphic # 2.01.10 (11/6) - change "Congratulations!" back to "Winner!" # 2.01.09 (11/4) - use Noah's instructions for game (11/4) - change "you won" dialog to make it look less like an error dialog # 2.01.08 (11/2) - simplify the game instructions even more (11/2) - bugfix: use same precision (2 decimal places) in matching algorthm and display of amplitude values (11/2) - simplify the game instructions # 2.01.07 (11/1) - display an instructions dialog the first time we visit the game module (11/1) - don't calculate game match until user releases slider (not responsive enough otherwise) # 2.01.06 (11/1) - sync with phetcommon (11/1) - change location of help items in Discrete module so that they point to A1 slider and textfield (11/1) - in game, check for a match while the user is dragging an amplitude slider, don't wait for slider release (10/28) - replaced FourierHelpItem with HelpBubble (total rewrite) (10/24) - fix display of amplitude values so that they use the same precision as GameManager.isMatch (10/21) - better workaround for syncing all views before starting a new game # 2.01.05 (10/19) - bugfix: use only 2 significant decimal places when determining if the game has been won (10/18) - bugfix: exception occurred when playing game with level=Preset (10/18) - all generated amplitudes in game should have an absoltue value >= 0.1 (10/18) - bugfix: update all game views before starting a new game after you've won (10/18) - bugfix: "cheat" panel doesn't update after you've won a game and started a new game # 2.01.04 (10/17) - use absolute values (0.03, 0.09) instead of percents (3%, 9%) for "win" calculations (10/17) - don't calculate closeness while the user is dragging an amplitude slider (10/17) - calculate when the game has been won, inform the user (10/17) - implement new game levels, rewrite game generation code to be more general (10/17) - delete RandomFourierSeries, move all random generation into GameManager (10/17) - move game code into GameManager # 2.01.03 (10/14) - remember the last directory where you did a load/save when running under JNLP (10/14) - store individual components of harmonic colors to work around a bug with XMLEncoder under JNLP (10/14) - report only first exception encountered in XML encoding/decoding (10/14) - consolidate error display code in ConfigManager (10/14) - add state of views (minimized/maximized) to config (10/13) - rewrite save/load to work with both JNLP and load applications (not tested fully) # 2.01.02 (10/12) - add program version & build info to config file (10/12) - "pink waveform" to "pink function" in game (10/12) - autoscale the game's Sum view based only on the random waveform (10/12) - add support for persistence by XML encoding a "configuration" object (10/12) - add support for persistence to enum classes (10/10) - bugfix: "infinite" sine waveform in Discrete module out of sync when switching from space-&-time to space (10/10) - convert Domain, GameLevel, MathForm, Preset and WaveType to typesafe enums (10/10) - factor separate enum classes out of FourierConstants for Domain, GameLevel, MathForm, Preset, WaveType (10/10) - move all of FourierConfig into FourierConstants (10/10) - javadoc code for Game module (10/10) - get fundamental sound frequency from Fourier series (10/7) - magenta -> pink in Game (roll into 2.1.1) # 2.01.01 (10/6) - improve random generation of amplitudes (10/6) - when game preset is "sine/cosine", pick a random harmonic for the sine/cosine (10/6) - add instructions above Sum view in Game (10/6) - wait cursors on Game controls (10/6) - add "cheat" panel to Game controls (10/6) - randomly generate waveforms for game levels (10/6) - add random Fourier series to Game's Sum graph (10/6) - enable harmonic highlighting in Game (10/6) - fix minimize/maximize of views in Game (10/6) - add Sum view to Game (10/6) - add Harmonics view to Game (10/6) - add Ampltiudes view to Game (10/6) - started fleshing out apparatus panel for Game module (10/6) - set up control panel for Game module # 2.01.00 (10/5) - bugfix: measurement tools sometimes disappear when you click on them (Ron fixed ApparatusPanel) (10/5) - bugfix: measurement tools don't drag properly after you resize the application's frame (Ron fixed ApparatusPanel) (10/4) - bugfix: manage clipping based on FourierConfig.MAX_HARMONICS, not the # harmonics in the Fourier series (10/4) - volume slider takes up too much space, change to use min/max icons at ends of slider (10/4) - bugfix: amplitude text fields show negative zero (-0.00) (10/4) - disable the clock controls for the D2C module (10/4) - add a volume control for sound (10/4) - when generating audio data, normalize the amplitudes of the harmonics to a -1...+1 scale (10/4) - fix sound so that audio samples don't exceed the sample size # 2.00.01 (10/3) - implement sound feature in Discrete module (9/30) - make a separate manifest file for each project, which includes Main-Class attribute (9/30) - reorganize 'cmalley' CVS project, add Java stuff (including sound test program) (9/30) - create a Swing-based test app using Oscillator from jsresource.org (9/30) - work on sound, use a SourceDataLine instead of a Clip (9/29) - work on sound, try to play waveform data as a Clip # 2.00.00 (9/28) - re-tag and re-publish 2.0.0 (9/28) - redo Spanish JNLP file (9/28) - redo Spanish translations (9/28) - move Spanish translations into fourier/data/localization (9/28) - phetcommon: move Spanish translations into phetcommon/data/localization, add missing stuff, fix bugs # 1.00.17 (9/23) - bugfix: minimize then maximize Discrete harmonics graph, sum vertical zoom control isn't positioned correctly (sometimes) (9/22) - phetcommon: rendering hints should be appended, not replaced, by PhetGraphic (9/22) - bugfix: set infinite sine waveform waveType when it's made visible (9/22) - phetcommon: fix AbstractClock.getFramesPerSecond to be double precision (9/22) - synch with phetcommon (9/22) - make border on FourierTitledPanel 10% darker (9/22) - override FourierTitledPanel.paintComponent to enable anti-aliasing of title borders on Windows (9/22) - use a different stroke on D2C Sum x-space envelope so that it looks smoother (9/21) - before 2.0: hide "Audio controls" panel (9/21) - before 2.0: disable MegaHelp (9/21) - increase autoscale factor in D2C sum graph so that width indictor is not clipped when x-width is min (9/21) - use red to stroke bounds in FourierModule.drawBounds (9/21) - make BoundsDebugger ignore the mouse, so that interface is still usable # 1.00.16 (9/20) - tweak alignment of measurement tool combo boxes (9/20) - keep registration point of Discrete harmonics and sum graphs at (0,0) (9/20) - bugfix: align vertical zoom & autoscale controls with bottom of Discrete Sum graph (9/20) - reduce height of harmonic and sum graphs in both panels so that x-axis labels are not cramped or clipped (9/20) - charts: x-axis numeric tick labels should be at the same location as labelTable tick labels (9/20) - tweak default location of all measurement tools in Discrete module (9/20) - make k1 tool help point down (9/20) - switch to a 1-pixel light grey line border for titled panels (9/20) - experiment with raised bevel border for subpanels, hilite gets lost on gray background (9/20) - add a left margin to the contents of each subpanel (9/20) - align Period Tool combo box with Wavelength Tool combo box (9/20) - change "sin/cos" preset option to "sine/cosine" (9/20) - change "sine" and "cosine" radio buttons to "sin" and "cos" (9/20) - remove "Show:" label before "sin" and "cos" radio buttons (9/20) - remove verb from all control panel labels (eg, "Show math form" -> "Math form") (9/20) - change font style of titles in titled panels to Lucida Sans italic (9/20) - change "look" of titled panels, create a subclass that encapsulates this # 1.00.15 (9/20) - increase autoscale factor in D2C sum graph so that width indictor and x-envelope are not clipped (9/19) - "sine/cosine" -> "sin/cos" (9/19) - "Play sound" -> "Sound" (9/19) - left justify all controls except top 3 subpanels in D2C (9/19) - add arrows to "width" graphics in D2C, point inward or outward depending on width (9/19) - convert width indicators to DataSetGraphics that are placed on a Chart and specified in model coordinates # 1.00.14 (9/14) - phetcommon: fix bug in PhetApplication with old constructors (9/14) - sync with Ron's changes to ApparatusPanel and ApparatusPanel2's mouse/key handling (9/14) - phetcommon: internationalize PhetApplication.StartupDialog (9/14) - convert to PhetApplication.StartupDialog (9/14) - decrease vertical space above Reset buttons (9/14) - reorganize D2C control panel per Sam M's specification # 1.00.13 (9/13) - add MegaHelp button to see how it impacts layout of control panels (9/13) - change wave type controls from combo boxes to radio buttons (9/13) - reorganized all control panels the way I think they should be organized (9/13) - remove vertical space between components in control panels by setting all EasyGridBagLayout insets to zero (9/13) - fix subscript on D2C center control (9/13) - reorganize D2C control panel (my proposal) (9/13) - add dummy "Show widths" control to D2C (9/13) - hook up wiggle me to model so that it disappears when model changes (9/13) - change default # harmonics to 11 (9/13) - change default domain back to "space" (9/13) - relocate the Help on the text fields in Discrete module, put below text fields (9/13) - make help bubbles more transparent (9/13) - phetcommon: add PhetStartupWindow for displaying startup progress (9/13) - enable correct Discrete measurement tool controls based on the default domain (9/13) - add sound button to Discrete control panel so we can see what the space issues are # 1.00.12 (9/13) - fixed vertical height of "x-space width" graphic in D2C (9/12) - remove help from D2C width tools (9/12) - fix SimStrings keys to match renamed classes throughout (9/12) - move most axis titles out of SimStrings (9/12) - in math mode, make units on horizontal axis ("mm" or "ms") go away (9/12) - add space between charts and x-axis titles in Discrete module (9/12) - bugfix: in time mode, Discrete Sum x-axis should be "t (ms)" (9/12) - fixed vertical height of k-space width graphic (9/12) - First crack at static "width" graphics in D2C, sort of broken (9/12) - put envelopes behind other plots in charts (9/12) - use 4-pixel stroke for envelopes (9/12) - fix x-space envelope so it works correctly when k1=0 (9/12) - add wait cursor to all controls in D2C control panel (9/12) - display x-space envelope in D2C Sum graph (9/12) - add "Show x-space envelope" control (not functional) (9/12) - change color of envelope to gray in D2C Ampltidues chart (9/12) - rename "Show continuous..." to "Show k-space envelope" (9/12) - rename classes/variables/comments/i18n to use more general terminology: dk->kWidth, dx->xWidth, k1->spacing, k0->center (9/12) - set the Discrete x-axis titles to "x (mm)" and "t (ms)" (9/12) - label the x-axis of Discrete harmonics and sum graphs with numbers when math mode is off (L=1, T=1) (9/12) - change default math form to "Frequency" in time domain (9/12) - phetcommon: move ClockPausedHandler to phetcommon, integrate into Module (9/12) - rewrite ClockPausedHandler to use javax.swing.Timer, to avoid sync problems # 1.00.11 (9/9) - change dk to sigma-sub-k, dx to sigma-sub-x, dw to sigma-sub-w, and dt to sigma-sub-t (9/9) - bugfix: D2C harmonics y-axis range if Reset while minimized (9/9) - use verbose labels for math mode options in space-&-time, put label above combobox (9/9) - make "time" the default domain in Discrete and D2C modules (9/9) - initialize D2C with Harmonics graph maximized (9/9) - constant width for D2C amplitude bars (9/8) - HarmonicPeriodDisplay should not be an observer of its harmonic, does nothing (9/8) - bugfix: FourierHelp.pointAt(Point,...) doesn't actually point at the specified Point (9/8) - make help items ignore the mouse so that you can used controls that are underneath them (9/8) - phetcommon: print a stack trace in PhetJComponent only the first time that we reach excessive # of dirty components (9/8) - rename close->minimize, open->maximize on buttons/methods/variables/images (9/8) - change GraphClosed to MinimizedView (9/8) - rename member data in modules, Graph -> View (9/8) - fixed problem with laying out views when Reset button is pressed (9/8) - when disabling the wait cursor, don't try to restore the cursor, simply set the default cursor (9/8) - phetcommon: need to call paint whenever the size of ApparatusPanel2 changes (9/7) - set default height of Discrete views close to what they'll actually be so that resizing is less obvious (9/7) - phetcommon: fix ApparatusPanel2 so that its scale isn't set to a negative number (9/7) - phetcommon: fix a problem introduced into ApparatusPanel that duplicates all MouseEvents # 1.00.10 (9/7) - delete disabled zoom button images that were made irrelevant on 7/26 (9/7) - fix javadoc for renamed classes (9/7) - rename Chart subclasses to indicate which module they go with, put them under fourier.view instead of fourier.charts (9/7) - create fourier.view.discrete and fourier.view.d2c packages for view classes that are module specific (9/7) - rename classes to indicate what module they are in, change "Graph" to "View" (9/7) - charts: allow fractional values in SinePlot.setPixelsPerPoint (9/7) - bugfix: increase precision of D2C sum waveform so that all peaks are the same height (9/6) - hide features that won't be 2.0 release (9/6) - bugfix: adjust flattened charts so that y-axis labels are not clipped (9/6) - add a bit of space (5%) above and below Harmonics waveforms in Discrete module (9/2) - move definition of wait cursor to FourierConfig (9/2) - add wait cursor to graph maximize buttons (9/2) - add wait cursor to zoom control buttons (9/2) - add missing call to super(component) in ZoomControl constructor # 1.00.09 (8/31) - change order of presets in Discrete module per Sam M's request # 1.00.08 (8/30) - bugfix: infinite sines/cosines waveform in Discrete Sum graph doesn't display wave type cosines (8/30) - change all equations to "cos" when switching to "cosines" (8/30) - equation above D2CAmplitudesGraph should be An for all cases in which k1!=0 (8/30) - make D2CHarmonicsGraphic closed by default (8/30) - set default k1 to pi (8/30) - remove dead code in MeasurementTool (8/30) - preserve the Math Form selection for each domain (8/30) - change the default selections for Math Form in Discrete panel to "Wavelength" and "Period" # 1.00.07 (8/30) - change "look" of measurement tools so that ends don't overlap label (8/30) - 'e' in "Drag me" wiggle me doesn't move with it (hack: add a space on end) (8/29) - call cleanup on any DataSetGraphics before releasing their references (8/29) - charts: add DataSetGraphic.cleanup to fix memory leak with Chart's PhetGraphicListeners (8/29) - charts: move clipping code to DataSetGraphic base class instead of handling it in every subclass (8/29) - complete the implementation of ClosedPathPlot (8/29) - fix memory leak with HarmonicPlot in D2CHarmonicsGraph (8/29) - always scale D2C amplitudes graph based on max amplitude of continuous waveform # 1.00.06 (8/26) - update D2CHarmonicsGraph when it becomes visible only if model has changed (8/26) - flatten Amplitudes chart in Discrete module (8/26) - flatten all charts in D2C module (8/26) - create FlattenedChart for flattening charts (8/26) - phetcommon: delete PhetFlattenedGraphic (8/25) - phetcommon: tried to debug PhetFlattenedGraphic, failed (8/24) - add equation above D2CAmplitudesGraph (8/24) - fix BoundsDebugger so that it draws the correct location when no directly on the apparatus panel (8/24) - phetcommon: fix PhetFlattenedGraphic.flatten so that it assumes bounds are dirty (8/24) - phetcommon: fix PhetGraphic.rebuildBounds (8/24) - add wait cursor to Reset buttons (8/24) - setIgnoreMouse for all non-interactive graphics in D2C module # 1.00.05 (8/23) - add a message to D2C components graph "Minimize this graph to improve performance". (8/23) - remove help item from D2C components graph minimize button (8/23) - constrain dragging of x-space tools to Components and Sum graphs (8/23) - add a small amount (5%) to maxAmplitude when autoscaling (8/23) - move x-axis titles to the right 4 pixels in D2C Components and Sum graphs (8/23) - wire k0 slider control to model (8/23) - modify GaussianWavePacket model so that center point can be changed (8/23) - reorganize D2C control panel so that everything still fits without scrolling (8/23) - add k0 control to D2C control panel, nto connected to model # 1.00.04 (8/22) - charts: add Chart.addDataSetGraphic(DataSetGraphic graphic, double layer) (8/22) - set proper registration points for all axis labels in all modules (8/22) - fix x axis title (as set via Chart.setXAxisTitle) so that it stays aligned with x axis (8/22) - charts: add missing method for setting y axis title: Chart.setYAxisTitle (8/22) - change y-axis ticks and labels on all D2C graphs as they autoscale, so that labels aren't cramped (8/22) - bugfix: autoscale y axis on D2C Sum graph when switching between sines and cosines wave types (8/22) - add GaussianWavePacketPlot to D2C Sum graph (8/22) - implement GaussianWavePacketPlot for plotting a continuos gaussian wave packet # 1.00.03 (8/18) - when k1 = 0, change equation to an integral above D2CSumGraph (8/18) - when k1 != 0 show sum equation from +-infinity above D2CSumGraph (8/18) - make the x axis in D2C harmonics and sum zoomable from 0.5-8 (8/18) - set period for D2C harmonics and sum as 2pi/k1 (8/18) - add 2dx and lamda1 measurement tools (8/18) - used symbolic constants for all symbols in measurement tools # 1.00.02 (8/17) - implement k=0 in D2CAmplitudes graph (fill the area under continuous curve with gradient) (8/17) - implement D2C "Show continuous" checkbox (8/17) - refactored fourier.tools classes so that there are symmetrical abstract base classes (8/17) - when k1=0, hide chart in D2C graph and replace with "Cannot draw infinite number of components" (8/17) - constrain k1 and deltaK tools to stay within the D2CAmplitudesGraph (8/17) - place k1 and deltaK measurement tools directly on the apparatus panel, instead of inside D2CAmplitudesGraph (8/17) - moved k1 and deltaK measurement tools into their own subclasses that observe a wave packet and a chart (8/17) - change D2C measurement tools to say "X=0" when their value is zero (8/17) - make bar disappear when measurement tool width is 0 (8/17) - change D2C measurement tools to yellow, black stroke, black text, translucent white background (8/17) - add optional background to measurement tool labels (8/16) - use a lighter stroke for the axes in D2C charts (8/16) - change measurement tools in D2C to bold font, green fill, white stroke (8/16) - enable autoscaling of D2C Sum graph (8/16) - multiple amplitudes by k1 in D2C Sum graph (8/16) - implement Sum waveform in D2C (8/16) - implement sine/cosine control in D2C (8/16) - implement horizontal zoom controls in D2C # 1.00.01 (8/15) - make new subclasses for the D2C module's Harmonics and Sum charts, too many differences with Discrete module (8/15) - add wait cursor to D2C control panel (8/15) - compute and display the D2C harmonics (8/15) - added help items to D2C module (8/15) - replace all uses of SubscriptedSymbol with HTMLGraphic (8/15) - rename PeriodDisplay -> HarmonicPeriodDisplay (8/15) - rename WaveMeasurementTool -> HarmonicMeasurementTool (8/15) - remove subclasses of WaveMeasurementTool (8/15) - make MeasurementTool use an HTMLGraphic for its label, add setLabel method (8/15) - refactor measurement tools into separate classes that encapsulate the "look" of the tool (8/12) - set color of D2C measurement tools to a dark red (8/12) - first pass at adding k1 and deltak measurement tools to D2C (8/12) - more drawing of measurement tools into a more generic class (MeasurementTool) (8/12) - autoscale the D2C amplitudes graph (8/11) - fix computation of amplitudes in D2C (8/10) - charts: BarPlot.setBarWidth should take width in model coordinates (8/10) - charts: fix clipping in BarPlot so that bars aren't drawn outside the chart (8/9) - add GaussianWavePacket to model, wire into D2C control panel (8/9) - charts: add BarPlot for charting bar graphs (8/8) - update labels on controls when domain is changed (k->omega, x->t, mm->ms) (8/8) - add basic chart (no data) for Amplitudes view in D2C module (8/8) - charts: LabelTable labels on horizontal (bottom) tick marks were overlapping the tick marks (8/8) - charts: add Axis.setMajorLabels and setMinorLabels (8/8) - charts: javadoc confusing methods in Chart (7/29) - add a dummy help item to each incomplete module, so that Help button is visible (7/29) - change "Minimizes this graph" to "Minimize this graph" (7/29) - move all version information to Version class (7/29) - remove build tag from version in FourierApplication, will need to get it in there some other way (7/29) - phetcommon: add the version number to the titlebar v1r0... (7/28) - change title back to "Fourier: Making Waves" (7/28) - add version number to title (7/28) - add left & right insets to control panels (7/28) - add space between subpanels in Discrete control panel (7/28) - bugfix: visibility of wavelength & period tools is incorrectly changed when number of harmonics is changed v0r7... (7/26) - when maximizing a graph, it's animation is briefly shown out of sync (7/26) - bugfix: infinite waveform animation is out of sync when you minimize then maximize the Sum graph (7/26) - bugfix: wrong infinite preset is shown (set preset to sine/cosine, select show infinite, change preset to square) (7/26) - center slider help item on A4 slider on Windows (7/26) - make disabled zoom buttons part of the zoom control background image (7/26) - change close button to a "-" symbol, to go with the "+" on the open button (7/26) - change title to "Fourier - Making Waves" (7/26) - relabel, reposition and remove help items (7/26) - change color of help items to light transparent yellow v0r6... (7/26) - test Reset in Discrete module (7/26) - charts: fix Charts so that x-axis title in not placed in the top layer (7/26) - phetcommon: fix behavior of HTMLGraphic when it is given a plain text string (7/26) - i18n of help items (7/26) - add additional help items to Discrete module (7/26) - remove all forces1d code from FourierHelpItem (7/25) - add help items to Discrete module (7/25) - add FourierHelpItem, based on forces1d.common.HelpItem2 (7/25) - convert WiggleMeGraphic to be a ClockTickListener, so we don't have to add it to the model (7/25) - phetcommon: when a GraphicLayerSet's visibility changes, notify all children's listeners (7/25) - phetcommon: deprecated HelpManager.addHelpItem and removeHelpItem (7/25) - phetcommon: set selection state of Help menu item to match state of active module (7/25) - bugfix: turn off infinite waveform when user selects Wave Packet or Custom presets (7/25) - bugfix: turn off infinite waveform when user starts to edit a preset (7/25) - bugfix: infinite waveform gets out of sync when toggling "Show infinite..." (7/25) - increase the width of the graph background so there is no empty space to the right (7/25) - resize the graphs to fill the apparatus panel whenever the apparatus panel resizes (7/21) - disable all modules except "Discrete" for AAPT (7/21) - fix horizontal alignment of amplitude slider knob (7/21) - charts: reposition the x-axis title when chart size is changed (7/21) - expand Harmonics and Sum graphs to fill space (7/21) - wire up open & close buttons on Harmonics and Sum graphs (7/21) - add "closed" versions of Harmonics and Sum graphs (7/20) - redo layout of SumGraph so that origin is at top-left corner (7/20) - redo layout of HarmonicsGraph so that origin is at top-left corner (7/20) - redo layout of AmplitudesGraph so that origin is at top-left corner (7/20) - set the sim description to "" (7/20) - set the sim title to "Fourier: Making Waves" (7/20) - migrate EasyGridBagLayout to phetcommon.view.util (7/19) - create open & close button graphics for the Harmonics and Sum graphs (7/19) - disable File>Load and File>Save until they are implemented (7/19) - chart in Amplitudes view refactored into AmplitudesChart (7/19) - change wiggle me for Discrete module (7/19) - bugfix: reset AnimationCycleController when number of harmonics is changed (7/19) - bugfix: update the preset plots in SumGraph.update, regardless of whether they are enabled (7/19) - bugfix: after decreasing then increasing #harmonics, new harmonics not wired into Harmonics graph (7/19) - set all pixel-per-point values to 1 so that all waveforms line up (7/19) - close the "Expand sum" dialog when "Math mode" is turned off v0r5... (7/19) - fix infinite waveform animation sync when changing presets or wave type (7/19) - handle infinite waveform for sine/cosine preset specially in Sum graph (7/18) - add data between -3L and -2L for preset waveforms, so that animation works correctly (7/18) - synchronize animation of Harmonics, Sum and Period Tool (7/18) - centralize all animation synchronization in AnimationCycleController (7/18) - pull charts out of Harmonics and Sum views and put them in their own class files (7/18) - totally change K1SpacingSlider (no longer logarithmic or continuous) (7/18) - change format of slider values (#.##) (7/18) - add a titled border around domain & wave type controls (7/18) - decouple k1 spacing slider and continuous checkbox (7/15) - move all sliders to their own package (7/15) - DefaultFourierSlider assumes that user will see actual slider values (7/15) - FourierSlider -> AbstractFourierSlider (7/15) - remove JSlider convenience method from FourierSlider due to obfuscation (7/15) - wire up D2C control panel so that controls affect each other (7/15) - K1SpacingSlider for adjusting spacing of harmonics in wave packet (7/15) - XWidthSlider for adjusting x-space width of wave packet (7/15) - KWidthSlider for adjusting k-space width of wave packet (7/14) - add preliminary labels to sliders in D2C control panel (7/14) - preallocate all HarmonicPlots in HarmonicsGraph to simplify code (7/14) - remove Continuous module, per SamM's request (7/14) - DiscreteToContinuous* -> D2C* throughout the source code (7/14) - add higher-order harmonics to Harmonics chart first, so that fundamental is in the foreground (7/14) - add wait cursor control to control panels (7/13) - charts: added zoom & color/grayscale selection to TestSinePlotPerformance (7/12) - charts: wrote TestSinePlotPerformance to test performance of drawing large # of sine waves v0r4... (7/11) - call setMinumumWidth in all control panels, using value from SimStrings file (7/11) - add setMinimumWidth to FourierControlPanel (7/11) - misc updates to DiscreteToContinuousControlPanel (7/11) - phetcommon: works with SamR to fix control panel layout problem with JSliders on Mac (7/11) - collect "Discrete To Continuous" requirements from SamM (7/8) - create empty control panel subclass for each module (7/8) - make FourierControlPanel abstract (7/8) - reset Sum when number of harmonics changes, so it stays sync'ed with Harmonics graph (7/8) - decrease width of Sum and Harmonics graphs so that "Auto scale" label fits in apparatus panel on Mac (7/8) - set the control panel minimum width in the SimStrings file (7/8) - remove HarmonicsGraph.setWaveType, should be getting wave type from FourierSeries (6/28) - define StringLabelTable to make creation of chart labels more readable (6/28) - lots of javadoc and cleanup (6/28) - refactor FourierUtils into TrigCache (6/28) - phetcommon: provide access to the DebugMenu so that it can be extended (6/28) - set apparatus panel bkg color to match Harmonics & Sum graphs (6/28) - phetcommon: move FlattenedGraphic to PhetFlattenedGraphic in phetcommon (6/28) - flatten all static graphics in AmplitudeGraph (6/28) - create FlattenedGraphic for flattening graphics (6/28) - phetcommon: fix GraphicLayerSet and CompositePhetGraphic mouse handling to use getIgnoreMouse correctly (6/28) - reuse GeneralPath in LinePlot, instead of repeated reallocation (6/28) - remove redundant redraws from LinePlot v0r3... (6/27) - fix FourierUtils.sin and cos (6/27) - setIgnoreMouse where possible (6/27) - use SinePlot.setPixelsPerPoint to optimize HarmonicsGraph somewhat (6/27) - reset all graphs whenever domain, preset or wave type changes (6/27) - add animation to Sum graph, sync sum and preset (6/27) - move sum charting code into FourierSumPlot (6/27) - rename HarmonicDataSetGraphic to HarmonicPlot (6/24) - add rough waveform animation to Harmonic graph (6/24) - add SinePlot.setPixelsPerPoint (6/24) - reuse points in SinePlot when the number of points hasn't changed (6/24) - charts: migrate SinePlot to charts package (6/24) - charts: change charts package to use double precision model-to-view transforms (6/24) - phetcommon: add double precision model-to-view methods to ModelViewTransform2D (6/24) - create SinePlot subclass of LinePlot that changes its data set to match the chart range (6/23) - move preset constants and accessor methods into FourierConstants (6/23) - moved math symbols out of Fourier.properties and into MathStrings (6/23) - consolidated all equation strings in MathStrings class (6/23) - change format of summation symbol in Sum equation (6/23) - bugfix: update Sum equation when # harmonics changes (6/23) - bugfix: add An to Sum equations (6/22) - implement Sum graph equation with summation symbol (6/22) - fix PhetGraphics2D to properly restore stroke and paint (6/22) - send SamR a test case for broken tab traversal in PhetJComponents (6/22) - "Save for Web" all images (6/22) - amplitude sliders don't get mouse exit if you quickly move the mouse to the control panel (test Sam's fix) (6/22) - phetcommon: link Help button and Help menu item in phetcommon (6/21) - remove sound controls from Discrete control panel (6/21) - add infinite waveform for "sine/cosine" preset choice (6/21) - use light gray for infinite waveform in Sum graph, put it behind sum waveform (6/21) - add basic support for "Show infinite..." (6/21) - fix X-axis labels in 2nd zoom level (6/21) - set initial locations of tools (6/21) - use ItemListener for comboboxes so we don't get false selections (6/21) - "Show wavelength" -> "Wavelength Tool", "Show period" -> "Period Tool" (6/21) - lighter gridlines in Harmonics and Sum graphs (6/21) - fix typos in math mode equations (6/21) - make Harmonics and Sum graph background color the same (6/21) - fix wavelength and period comboboxes so that duplicate choices are not added (6/21) - add period display (pie) in "space & time" (6/21) - fix X-axis labels in "space & time", should be in terms of L (6/20) - add coefficients that are missing from expanded sum (6/20) - sync with phetcommon (6/20) - dialog that shows expanded form of sum (6/20) - move LucidaSans to FourierConfig, so we can change the font name in one place if needed (6/20) - Harmonics graph equations implemented using HTMLGraphic (6/19) - set default range of Sum graph to +-4/PI (SamM request) v0r2... (6/17) - add hand cursor to zoom control buttons (6/17) - remove horizontal minor gridlines from Harmonics graph (6/17) - add empty "Sound & Music" module (6/17) - fixed performance problems introduced when I added preset waveforms (6/17) - change finalize methods to cleanup, shouldn't override finalize (6/17) - add preset waveforms (6/17) - make HarmonicDataSetGraphic listen for color changes, instead of HarmonicGraph (6/16) - interface for changing harmonic colors (Options>Harmonic Colors...) (6/16) - add the various implementations of SubscriptedSymbol as inner classes (6/16) - convert SubscriptedSymbol to HTMLGraphic subclass (6/16) - rename several classes in view and control packages (6/16) - hide sound controls (6/16) - add transparency to auto scale button (6/16) - phetcommon: add transparency support to PhetJComponent (6/15) - add spacing around parts of zoom control (6/15) - increase width of focus harmonic (6/15) - don't give focus to harmonics with zero amplitude (6/14) - move L constant to FourierConstants, replace 1.0 in WaveformMeasurementTool (6/14) - javadoc what I've done so far (6/14) - highlight harmonic when its wavelength/period tool has focus (6/14) - wavelength & period tools listen for range changes in the charts, resize themselves (6/14) - wavelength & period tools both available in "space & time" mode (6/14) - turn off min/max range labeling on graphs (Sam M's request) (6/14) - change graph labels based on "Show function of" setting (6/14) - change visibility of equations based on "Math Mode" checkbox (6/13) - added wavelength and period measurement tools (length is incorrect) (6/13) - created SubscriptedSymbol graphic (6/13) - remove evil casts from focus handlers in Harmonics graph (6/13) - make all graphs reset to initial zoom levels when Reset button is pressed (6/13) - fix vertical zoom in Sum graph v0r1... (6/10) - i18n of all mathematical symbols (6/10) - stubs for all control handlers in "Discrete" module (6/10) - populate "Show wavelength" and "Show period" controls (6/10) - highlight component when mouse moves over it in Amplitudes graph (6/10) - add Y-axis range labels to graphs (6/10) - add X-axis titles to graphs (6/10) - add PhetGraphic.updateGraphicsState, use in paint method of all subclasses (6/10) - fix clip support in phetgraphics (6/10) - work with Sam on new charts features (6/10) - link horizontal zoom buttons (6/10) - add placeholders for equation graphics (6/10) - use grayscales instead of colors for graph backgrounds, add a stroke (6/9) - different background behind graphs to group them (6/9) - Sum graph: support vertical zoom from 4/PI to 12. (6/9) - Harmonics & Sum graphs: support horizontal zoom +2x to -4x (6/9) - fix horizontal zoom, precision errors with Math.sqrt(2) (6/9) - remove up/down cursor on Amplitude sliders (6/8) - up/down arrows control amplitude text field (6/8) - fully select amplitude value when text field gains focus sandbox-2005-06-08... (6/8) - redo Amplitude slider: no arrows, small rectangle knob, click above/below/on to jump to a value (6/8) - charts: work with Sam to reduce the overhead of adding a collection of points to charts (6/8) - charts: work with Sam to fix repaint problems in charts (6/7) - add charts package to fourier CVS module dependencies (6/7) - replace arrows with a small rectangle on AmplitudeSlider (6/7) - move sin/cos caching functions to FourierUtils (6/7) - add charts.jar to JNLP file (6/7) - add auto scale control to Sum graph (6/7) - add vertical zoom control to Sum graph (6/7) - convert Sum graph to charts package (6/6) - convert waveforms in Harmonics graph to data sets in charts package (6/6) - combobox choices should appear in the order that they're added (6/2) - create a "Zoom" control graphic (6/2) - convert Harmonics graph to use charts package for the graphic (but not the wavesforms) (6/1) - change Amplitude slider to have a configurable maximum value (in this case, 4/PI) (6/1) - convert Amplitudes graph to use charts package (6/1) - use specific colors for specific harmonics, instead of allocating dynamically from visible spectrum (5/31) - add new controls to "Discrete" module, they don't do anything yet (5/31) - add File>Save and File>Load, not wire up yet (5/31) - disable wiggle me in "Discrete" module (5/31) - Select function choice "sine" -> "sine/cosine" (5/31) - change range of harmonics to 1-11. (5/20) - convert to new PhetApplication startup sequence (5/19) - "Fourier Component" to "Harmonic" throughout (5/18) - comboBoxes for "Show wavelength" and "Show period" sandbox... (5/16) - add all controls in Discrete module, most not wired up (5/16) - add skeleton for WavePulseShaperModule (5/16) - optimize memory allocation in ComponentsGraphic (5/16) - optimize memory allocation in SumGraphic (5/16) - setIgnoreMouse where possible (5/16) - cache stroked shape in PhetShapeGraphic, improved performance by 38% (5/16) - add minor ticks and horizontal lines to SumGraphic sandbox-2005-05-13... (5/13) - add Reset button to all control panels (5/13) - add Sum view (5/12) - add Wiggle Me to Discrete module (5/12) - switch between sines and cosines for Components view sandbox-2005-05-11... (5/11) - first pass at "Components" view in Discrete module (5/11) - rename some stuff to match terminology (5/11) - set default # Fourier components to 7 (5/11) - Javadoc what's been done so far (5/11) - optimize memory allocation in what I've done so far sandbox-2005-05-10... (5/10) - flesh out demo of "Amplitudes" view in "Discrete" module (5/10) - add label and value to harmonic amplitude slider (5/10) - determine why only 1 harmonic component is shown when dragging slider from more to less (5/9) - amplitude sliders for harmonics (5/9) - HarmonicSeries control panel (5/9) - models for Harmonic and HarmonicSeries (5/9) - ********* DEVELOPMENT BEGINS ********* (4/26) - add fourier to CVS loginfo and modules files (3/30/05) - set up basic application framework