########
# Changelog for: TCP ISN Attractor Drawing Tool
#        Author: David Cannings <david@edeca.net>
#    Start date: 01/02/04
########

Prior:
------

Basic AttractorGUI and StrangeAttractor classes.


01/02/04:
---------

AttractorGUI.java:
  - Add an "Open" option to "File" menu.
  - Create methods to show a file open dialog, validate the chosen data file and then load it.


05/02/04:
---------

AttractorGUI.java:
  - 3D view properties (zoom/rotation/position) are now reset when a data file is loaded.
  - Cleanup in createAndShowGUI(), removal of unnecessary variables.
  - Open file dialog now uses the path to this application as the default path.  It stores the last path the user chose for next time it is shown, in the instance variable "currentDirectory".


06/02/04:
---------

AttractorGUI.java:
  - 3D view properties are now stored in the attractor class, not this one.  The associated variables in this class removed as they are no longer needed.
  
StrangeAttractor.java
  - All methods updated to reflect the fact 3D view properties are now stored in this class, not passed when getImage() is called.


19/02/04:
---------

AttractorGUI.java
  - Save to PNG now implemented and a "Save PNG.." option added to the "File" menu with a file chooser so that user can pick where to save to.
  - Modified loadDataFile() so that it uses an ArrayList to load into.  This means we can finally do away with the 100 thousand item limit.  It also means that if there are less than 100 thousand items, we don't have an over sized array.
  - Removed obsolete instance variable "totalISN".
  

20/02/04:
---------

StrangeAttractor.java:
  - Size, zoom and rotation are now written onto the attractor using Graphics2D.
  - Changed the code that converts from plotsArray to pixelArray (that looks up the correct colour code to use) so that it supports palettes with more/less than 16 colours.


23/02/04:
---------

StrangeAttractor.java:
  - Changed getImage() so that the zoom printed onto the image is a factor (ie  "14x", from 2^x), instead of the actual number (ie 4096).


24/03/04:
---------

All classes:
  - Some documentation and creation of a simple Makefile.


25/03/04:
---------

StrangeAttractor.java:
  - Replace constructor and resize() with versions that use a Dimension object instead.
  - Renamed set[X/Y]Offset to setOffset[X/Y].
  - Added setOffset() that uses the new instance variable "offset", a Point2D.
  - Changed getImage() and get2DPoint() to use both the new instance variable size (a Dimension) and offset (a Point2D).
  - javadoc documentation finished for all current methods.

AttractorGUI.java:
  - Changed whole class to use new constructor and methods in StrangeAttractor class that deal with sizing and offset, to take advantage of the new Dimension and Point2D objects.


28/03/04:
---------

StrangeAttractor.java:
  - Removed variables n, n1th, n2th, n3th from getImage() and replaced with an array that is shifted after each calculation.


31/03/04:
---------

StrangeAttractor.java:
  - Changed the way text is drawn onto the image, external class TextMetrics (in Utilities.jar) is now used instead.  This removes responsibility from this class for calculating text height and width.
  

01/04/04:
---------

StrangeAttractor.java:
  - Completion of javadoc commenting.
  - General tidying of code, removal of many unnecessary variables and all debugging code.  


13/04/04
--------

AttractorGUI.java:
  - Better handling for resizing of the canvas, instead of subtracting a fixed amount to account for any border the method .getInsets() is used to retrieve the size instead.


30/04/04
--------

StrangeAttractor.java:
  - Changed instance variable "zoom" from int to double to account for negative zoom factors, for example 0.5.
  
AttractorGUI.java:
  - Improved regex in verifyDataFile() so that blank lines aren't allowed, the previous regex was incorrect and would validate a file with blank lines.
  
  
08/07/04
--------

The StrangeAttractor class will now only write text onto the image (the user comment and position information) if it is told to do so.

StrangeAttractor.java:
  - Added setTextVisible() and getTextVisible() to control printing of text onto the attractor.


25/08/04
--------

Imported into svn.  Classes put into package net.edeca.david.attractor.  AttractorGUI renamed MainWindow and made subclass of JFrame.  Controller class Attractor created with main() method to launch MainWindow.

Major refactoring to commence now.


26/08/04
--------

Code in its current status frozen to version 0.1.  Tagged in SVN.


01/09/04
--------

Code in its current status frozen to version 0.2.  Tagged in SVN.

MainWindow.java:
  - Event handling refactored to Mediators in inner classes, one per event type.
  - Menu option to disable text on the attractor now works.  The value is loaded at init from whatever the default is in StrangeAttractor.
