jraceman  v1.1.8  January 30, 2010  SQL bug fixes

  Enhancements:

  * The Entries task in the ByEvent tab now includes a column that shows
    the NonScoring flag for the team associated with each entrant.

  Bug Fixes:

  * When there is a size mismatch between a lane map and the lane count for
    and area, JRaceman now displays an error message noting that and
    suggesting how to correct it.
  * Fixed a bug in which filling in results for group races did not all get
    saved to the database (introduced in v1.1.7).
  * Fixed a bug in which the status of progressions was not properly
    calculated, leading to an inability to automatically progress an event
    (introduced in v1.1.7).

===============================================================================

jraceman  v1.1.7  August 9, 2009  SQL Debugging and Optimizations

  Enhancements:

  * There is now additional support for debugging SQL commands in the
    Debug Sql tab.
    + The menu now includes a command to clear the SQL list to more
      easily see what SQL statements are part of a user-level command.
    + The SQL statements now record the start time and duration of
      execution and display that in the list of Previous SQL commands.
    + The menu now includes a command to retrieve the SQL commands sorted
      in order to execution duration to allow easily finding the longest
      running SQL commands.
    + When executing an SQL command, the execution duration of that command
      is now displayed in the status line.
    + The number of saved SQL commands has been changed from 50 to 500.

  Bug Fixes:

  * Performance on larger databases has been significantly improved.

===============================================================================

jraceman  v1.1.6  October 26, 2008  Fix installer in Windows

  Enhancements:

  * The new file simplan-sdbf.txt in the data directory shows how you
    can set up a pretty complicated progression by using "flights" to
    divide up a round into groups that are independently tracked.
    This progression is used for Dragon Boat racing by the
    Sudbury Dragon Boat Federation.

  Bug Fixes:

  * The installer once again works in Windows.  This was broken in
    version 1.1.4 and 1.1.5.
  * The Person Entries dialog was leaking about 500K of memory each time
    it was opened and closed, leading to an OutOfMemory error after about
    30 minutes of continued use.  The memory leakage has been reduced to
    a few K per open/close, making this problem much less severe.

===============================================================================

jraceman  v1.1.5  March 6, 2008  Sorting now works under Java 1.6

  Enhancements:

  * The Filter tab in the Person Entries dialog now includes a
    "Remember these values" checkbox.  If this check box is set when
    the dialog is closed, then the next time that dialog is opened the
    Filter tab will have the same values as the previous time.  To
    clear the values when the dialog is closed, uncheck the box.

  Bug Fixes:

  * Sorting of tables now works properly when using Java 1.6.
    Sun added some new functionality to their Table in 1.6, and they
    picked a method name that I was already using, so things got confused.
    I changed my method name and that fixed the problem.
  * The Edit Parameters dialog in the Complan editing screen now includes 
    the multipleFinals, nsProgMode and useExtraLanes parameters.  In
    previous versions, you can work around this problem by manually
    setting these values directly in the Parameters field.

===============================================================================

jraceman  v1.1.4  March 3, 2008  A few miscellaneous enhancements

  Enhancements:

  * It is now possible to define a progression where an entry is progressed
    out of a best-time pool and into another one, as long as the target pool
    has a higher pool number.
  * The new Fill Order field in the ComplanStages tab allows controlling
    the order in which heats are filled when using a seeding list.
    This now works the same was as for Simplans.  The default fill order
    is Round Robin, which is the same behavior as before.
  * You can now sort tables and sheets on multiple columns.  To do so,
    hold down the SHIFT key while clicking on the header column of the
    second and additional columns on which you want to sort.  The sort
    indicator arrow will appear in all columns on which a sort is being
    done.  For all columns other than the primary sorting column, a number
    after the sort arrow shows the sorting order of the columns.
  * The TeamSetup/Teams/Export tab now includes two more export formats:
    Web Team Roster and Web Team Entries.  These formats are the same as
    the export formats available to coaches for their teams through the
    web interface.  The tab also now includes an Import button which allows
    importing files of those formats.

  Bug Fixes:

  * The sort order indicator arrow in column headers now properly updates
    when the sort column is changed.
  * Complans now work even when multiple Complans are loaded into the database.

===============================================================================

jraceman  v1.1.3  August 19, 2007  As used at the 2007 USACK Nationals

  Enhancements:

  * The new "Move Selected Entries" command in the By Event menu, available
    when using the Entries task, makes it easy to move a group of Entries
    into another Event.  The "Move Selected Entries to another Level"
    presents only the list of Events which are the same as the current
    Event except for Level.
  * The Race Lanes report now shows Alternates.  The previous Race Lanes
    report is now called Race Lanes Without Alternates (the new report is
    implemented slightly differently, so the old one is preserved in case
    of problems with the new report).
  * In the Registration Summary report, the event count no longer includes
    scratched Entries or Events.  Entrants who are not entered into any
    events and have no amount due balance are no longer included.
  * The new data/sql directory contains an assortment of useful SQL snippets.
    You can load these into the Debug/SQL window, modify them for your
    situation, and execute.  The Load and Save commands in the DebugSQL
    menu now remember the last loaded and saved locations.
  * The USACK Awards report now includes the new Bill Bragg award for
    most team C-4 points.

  Bug Fixes:

  * Errors during commands in the ByEvent menu now appear in a dialog rather
    than going to stdout.  The Tool Prompts on those menu items also work now.
  * Average age calculations no longer include scratched entries.
  * In the list of reports in the Reports tab, the Race Awards report has been
    moved to before the Challenge race reports.
  * Race and Event numbers with four or more digits no longer cause SQL
    errors when used in the Report tab.

===============================================================================

jraceman  v1.1.2  August 12, 2007  Improved registration and scheduling

  Enhancements:

  * Three new commands in the Schedule menu simplify creating a schedule.
    + The "Set Duration for Selected Races" allows you to set a scheduled
      duration value for the Races you select.
    + The "Calculate Start for Selected Races" will calculate the start
      time for each selected Race based on the sum of the start time and
      the duration of the Race above it in the list.
    + The "Renumber Selected Races" command renumbers all of the selected
      Races sequentially, starting from the number of the race above
      the first selected race.
  * The new Filter tab in the Person Entries dialog allows you to
    reduce the number of Events displayed in the Full tab, making it
    easier to register one person for a set of Events.  For example,
    by setting the Gender and Level in the Filter tab, you can reduce
    the number of Events in the Full tab typically to about 8.  Sort
    by the Competition, and you can very quickly find the Events of
    interest.
  * The Person Entries dialog now includes the "Entered" column in the
    lower list (the list of currently entered Events).  This makes it
    simpler to un-enter someone from many events.
  * The new IsLate web registration option supports late registration.
    When this option is set (see the Database/Options tab), web users
    will see a Late notice under the title at the top of every web page.
    You can set your own notice text by setting the LateLabel value
    in Database/Options.
  * The Names check now checks for all upper-case names.
  * The new EventEntries report shows who is entered in each event,
    grouped by group name.  This can be used to show the groups before
    the Lanes have been drawn.

===============================================================================

jraceman  v1.1.1  July 16, 2007  Bug fixes, improved checks

  Enhancements:

  * The Import/Export page of the Team Menu in the web registration
    interface now includes a Download Data Checks button that downloads
    a CSV file with all of the data errors JRaceman thinks there are in
    the team entry data.
  * The new Check Lane Results menu command in the By Event menu runs
    the Lane Results check on the currently selected Event and Round
    and displays the results in the Query Results window.  If when
    trying to progress you get a warning dialog about lane result
    problems, you can use this command to see the details.
    This command is only available when the Results task is selected.
  * The Schedule tab now includes an initially hidden "Free Where" field
    into which you can enter arbitrary WHERE clauses when searching for
    Events.  In order to use this field, you must enable the
    "Show Free Where field" menu check item in the Schedule menu.
    When visible, this text field can be used for both Query Events and
    Search Races, although the table field names are slightly different.
    If you get an error when entering a WHERE clause, you can view the
    SQL in the Debug/SQL tab, from which you should be able to see the
    table names being used in that query.
  * The Race Entries report can now be sorted based on Race number rather
    than Event number, with Race number being the default sort.
  * Challenge-Fill is now a bit smarter about distributing empty lanes
    in order to improve the grouping.

  Bug Fixes:

  * When drawing lanes in an Event for which some lanes are already drawn,
    and that Event is a group event, it now correctly counts the number of
    previously drawn lanes rather than incorrectly counting every entry
    as a lane.  This could lead to an error saying there was not enough
    space to draw all the remaining lanes.
  * When re-creating races, the Stage rather than the round is now
    preserved, so that when changing from a direct final to heats plus
    final or vice-versa, the final stays as a final with the same race
    number and start time, and the round number on it changes.

===============================================================================

jraceman  v1.1.0  July 3, 2007  Challenge Categories

  NOTE: If you upgrade to this version and are using seeding lists,
  you will need to make some manual changes in order to continue
  using those lists.  See the comments under "Seeding Plans" below.

  Enhancements:

  * "Challenge" categories are now supported:
    + The new Team Setup/Challenges tab allows you to set up a list
      of Challenge category names.
    + The Team Setup/Teams tab allows you to attach a Category to
      Team records.
    + The new "Challenge" format of the Race reports (Lanes, Starter,
      Finish Line, Results, Score, Web Lanes By Race, Web Results By Race)
      shows the team number and challenge category instead of the
      person name.  These are available in both the Reports tab and in
      the Reports task of the By Event tab.
    + The "Challenge-Fill" seeding order in the new SeedingPlans tab
      allows you to specify that unseeded entries should be grouped
      by the team's Challenge.
  * The Team Setup/Teams tab now allows you to specify a team number
    for each team.
  * Race comments and Event comments now appear in the Race reports
    (Lanes, Starter, Finish Line, Results, Score) at the bottom.
  * The new Team Setup/Seeding Plans tab allows specifying the Seeding Plans
    which are the valid choices when setting up lists in the Seedings tab.
    See the "Seeding Plans" section below.
  * When the Backup button is used for the first time on a host, it now
    opens a dialog allowing you to easily set the backup directory.
  * When generating web reports for the first time on a host, it now
    opens a dialog allowing you to easily set the web reports directory.
  * The new Debug/Change ID tab can be used to update an ID value in a
    table along with all references to that ID.
    There is a corresponding extended SQL command, "!changeid", that
    does the same thing:
        !changeid People XX.123 YY.234
    will change the People record with ID XX.123 to have ID YY.234,
    and will change all references to match.
    NOTE: This function will not work on databases created with previous
    versions of JRaceman, as it required a change to the way in which
    foreign keys are set up when the database is initially created.

  Seeding Plans:

  * In previous versions of JRaceman, the Seedings table was set up with
    a "shortcut" which could cause problems (error messages about foreign
    keys).  To correct this, and to allow for additional functionality,
    the old Seedings table was split into two new tables: SeedingPlans
    and SeedingLists.  The SeedingLists table is the same as the old
    Seedings table except that it has a seedingPlanId column rather than
    a seedingListName column.  The SeedingPlans table has one row for each
    seeding list, plus a column to specify how the unseeded entries should
    be ordered.  To continue using your old seeding lists in the Seedings
    table, your must do three things:
    1. Using the Seeding Plans tab, create a plan for your list.
    2. For each Event which uses your seeding list, set the Seeding Plan
       on that Event to the same seeding plan as you specified in your
       seeding list.
    3. Transfer the data from your old Seedings list into the SeedingLists
       table and add a reference to your seedingPlanId.
       You can try executing this command in the Debug/SQL tab:
            insert into SeedingLists(id,seedingPlanId,rank,personId)
                select id,'YourSeedingPlanIdHere',rank,personId
                from Seedings where listName='YourListNameHere'
  * The Events table formerly contained a field called "seedingListName".
    This field has been replaced by the new field "seedingPlanId".
    If you have upgraded your database from a previous version, the
    "seedingListName" column will still be there, but JRaceman will
    ignore it.  If you do not require the data in that column, you can
    clean it up by executing the following command in the Debug/SQL tab:
        alter table Events drop column seedingListName

  Bug Fixes:

  * The Finish line report now properly uses the Zebra stripes in the
    Finish Line boxes.
  * The Starter report is now as wide as the other reports, so the header
    width generally does not exceed the body width (the space where the
    Result and Place columns go in the other reports is left blank).

===============================================================================

jraceman  v1.0.3  Jun 23, 2007  Add Fill Order in Simplans

  Enhancements:

  * Exception types now include a Result Allowed/Required flag telling
    whether a Lane with that Exception is allowed or required to have a
    result value.
    + 0 means a Result can not be used with that Exception, nor is a Place
      value allowed; 1 means a Result can optionally be given, and a Place
      value is allowed; 2 means Result and Place values are required.
    + The Exceptions tab has a new column, Result Allowed/Required,
      allowing this flag to be viewed and edited.
    + The Checks tab has a new button, Lane Results, which checks the
      Lane data for various conditions such as an Exception with a
      Result when that Exception does not allow it.
    + The USACK Sports definition file includes two new Exception types:
      Time Not Available (TNA), with resultAllowedRequired=1; and
      Estimated (EST), with resultAllowedRequired=2.  All of the previously
      defined Exceptions use resultAllowedRequired=0.
    + Before progressing, the Lanes are checked to ensure that they have
      the appropriate Result and Place data.
  * The USACK sports definition file now includes the Masters Levels as
    used in recent USACK Nationals, and Simplan DF for direct finals races
    such as the 5K races.

===============================================================================

jraceman  v1.0.3  Jun 23, 2007  Add Fill Order in Simplans

  Enhancements:

  * The new Fill Order field in the Simplan Stages tab allows you to
    specify the order in which sections gets filled when drawing or
    progressing to a round with multiple sections.  There are five choices,
    illustrated here by giving the order of sections into which each lane
    is assigned when there are four sections:

      SEQ = Sequential: fill up the section before moving on to the next one.
            1,1,1,1,..., 2,2,2,2,..., 3,3,3,3,..., ...
      SEQ_SEQ = Sequential/Sequential: same as SEQ, but fill the lanes
            within each section in sequential order as well.
      RR = Round Robin:
            1,2,3,4, 1,2,3,4, 1,2,3,4, ...
      SNAKE = Snake (or serpentine; boustrophedonic)
            1,2,3,4, 4,3,2,1, 1,2,3,4, 4,3,2,1, ...
      ZZ = Zig-Zag (like Round Robin but offset by one on each pass):
            1,2,3,4, 2,3,4,1, 3,4,1,2, 4,1,2,3, 1,2,3,4, ...

    Within each section, each time a lane is assigned it used the best
    available lane, according to the Lane Order if defined, except for
    SEQ_SEQ, which assigns lanes within each section in ascending lane
    number order (it uses the Lane Order lane numbers, but sorts them).

  * The new UnProgress menu command in the ByEvent menu will undo the
    progression to the next round.  It will not unprogress if any of
    the progressed lanes already have results data in them.  You must
    select the Entries/Progress task to use this menu command.
  * The new Clear Results From Race and Clear Results From Round menu
    commands in the ByEvent menu will clear the results from the current
    selected Race, or all races in the same round as the currently selected
    Race, respectively.  It will not clear results if you have progressed
    beyond the selected round.  You must select the Results task to use
    these menu commands.
  * The sql parser (used for importing SQL files and in -sqli mode) now
    reads multiple lines until it finds one that ends with a semicolon.
    This means you can split your SQL commands on to multiple lines for
    easier editing and reading.
  * The output format when using -sqli mode is now tabular, more compact,
    and includes a header with the column names.

===============================================================================

jraceman  v1.0.2  June 18, 2007  Bug fixes

  Enhancements:

  * The new data file data/simplan-nosemi.txt provides an example of
    a Simplan that progresses direct from Heats to Finals with no
    semifinals.

  Bug Fixes:

  * Printing reports no longer incorrectly uses style sheet formats from
    previous reports.
  * Simplans now work properly with a next-best-time value greater than one.
  * Fixed a NPE bug in the Finish Line report (introduced in v1.0.0).
    This bug also prevented the ByEvent/Entries task from working.
  * The Schedule TwoColumn report now marks its PAGE_BREAK marks with
    style "page-break-after: always", the same as the other reports.
  * The Personal Results report no longer includes empty pages for
    team members with no Entries.
  * Competitors in an event who are scratched or alternate no longer share
    in points in group events (this would only have been a problem when one
    person in the group is scratched rather than removing the entry, and
    another is added, and they place high enough to earn points).

  Other Changes:

  * The line count on the Schedule TwoColumn report has been changed from
    37 to 40 to put a few more lines on each page.

===============================================================================

jraceman  v1.0.1  June 13, 2007  Bug fixes

  Enhancements:

  * Batch tasks, including running a server, can now be run in headless
    mode (i.e. without any graphics environment) by specifying
    "-Djava.awt.headless" as one of the arguments passed to the Java VM
    when starting JRaceman.  See the server.bat or server.sh scripts
    for an example.
  * The new scripts client.sh, server.sh, shutdown.sh and backup.sh can be
    used as-is or as starting points for your own scripts on Unix hosts.
  * The new command line option -backup does the same thing as pushing
    the Backup button.  The existing -textSnapShot command line option
    is similar, but takes a directory argument, whereas the -backup
    option uses the (possibly host-specific) Backup.directory option
    value from the database.  If you specify the "-Djava.awt.headless"
    Java VM option, you can set up a command in a Unix crontab that
    automatically creates a text snapshot backup file on a regular
    basis.

  Bug Fixes:

  * Adding a new entry using the Person Entries tab no longer gives
    a null data error on the alternate or scratched fields.
  * Entering a new person using the web interface no longer generates
    a null data error on the teamEdit field.
  * The month field of birthday and expiration in new entries made with
    the web interface now store the correct value.
  * The amount charged and amount paid for teams in the check out page
    of the web interface no longer show -$0.01 when there is nobody
    registered for events on that team.
  * Fixed a caching problem in the web interface that sometimes
    caused old data to be displayed, such as right after entering
    a new person.
  * The change-password function of the web interface is now
    case-insensitive, matching that aspect of the initial login.

===============================================================================

jraceman  v1.0.0  June 3, 2007  Improved Web Registration

  Enhancements:

  * The web registration interface has been rearranged in order to
    make it easier to navigate.
    + There are now four main pages, each with their own menus:
      Main Menu, Team Menu, Member Menu, and Check Out Menu.  The Team
      Menu and Member Menu are available only to people such as
      coaches who have the Team Edit privilege.
    + The Team Menu has three editing screens: Edit By Person, Edit By Event,
      and the new Import/Export.  When using any one of these three screens,
      the Team Menu includes buttons to go to each of the other two.
    + The navigation buttons on the main pages are now on the left
      side in a sidebar rather than across the top.
    + The new Check Out pages provide a cleaner summary page for printing
      and sending in with payment.
    + Upgraded to JSF 1.1_02.
  * The new Import/Export page in the Team Edit menu of the web registration
    interface allows you to download a team roster or a team entries list
    as a CSV file, edit that file on your own machine, and upload your
    changes, so that you can use tools of your choice to do the work
    of editing your team data.
  * The web registration interface now puts up a small warning dialog in
    the lower right corner of the screen one minute before the session
    expires, and then covers the screen with a transparent panel to prevent
    further interaction when the session expires.
  * Page breaks in reports are now properly printed by standard browsers
    that pay attention to a CSS style class (named PRINT_PAGEBREAK)
    with attribute "page-break-after: always".  If you create a custom
    style sheet and you want to preserve this behavior, be sure to include
    this class in your style sheet.

===============================================================================

jraceman  v0.9.4  April 24, 2007  Style Sheets for Reports

  Enhancements:

  * The Reports/General tab and the Reports task of the ByEvent tab
    now include a StyleSheet choice which modifies the formatting of
    those reports.  The currently available styles are:
    + Classic - the same format as in previous versions of JRaceman.
      Reports which do not implement the StyleSheet choice will appear
      in Classic style.  This style uses default HTML formatting.
    + Zebra - a more tightly packed style than Classic, intended to
      allow more data to be printed on each page in order to save paper.
      There is less space between each row, and when displayed by a browser
      (such as Firefox) rather than in JRaceman, no table borders between
      rows.  Each row alternates background color to improve readability.
      Reports in this format will print up to 50% more data per page, or
      equivalently will print in about 2/3 of the number of pages as
      in the Classic format when printed from JRaceman, with an
      additional 10% or so decrease when printed from a browser.
  * You can add your own custom report styles by defining some rows in
    the ContextOptions tab.  See the file data/sample-custom-style.txt,
    or see the Reports chapter of the Users Guide.
  * The Entries report now includes a count of the number of Alternate
    entries.
  * The new "View HTML Source" item in the Reports menu allows you to
    view the HTML for the currently displayed report.
  * You can enable the printing of Progression info at the bottom of
    the Race Lanes and similar reports by importing the JRaceman export
    file data/sample-print-prog-info.txt.

  Bug Fixes:

  * Fixed a subtle bug in progression definition that showed up for
    a progression with heats but no semifinals, as is the case in the
    Australian A progression.  There was some confusion as to when
    the progression definition used a stage number versus a round number.
    Added some unit tests for the Australian progression.
  * Fixed column order in Entries report to match the header labels.
  * Added a missing comment terminator in teamedit.jsp web page.

===============================================================================

jraceman  v0.9.3  August 13, 2006  nsProgMode=after progression mode

  Enhancements:

  * The Precise progressions (Complan and USACK) now include an attribute
    called nsProgMode (for non-scoring progression mode) which controls how
    non-scoring participants progress.  When unset or set to the default
    value of "with", no distinction is made between scoring and non-scoring
    participants.  When set to "after", all scoring participants are
    progressed first, after which non-scoring participants are progressed to
    the best available lanes as space allows.  Extra lanes, if any, are
    available to progress non-scoring participants.  Warning dialogs are
    displayed if a non-scoring participant can not be advanced to the round
    he would advance to if advanced with the scoring participants, in which
    case he is advanced to the best available lane in the next round.

    For USACK events with International paddlers, the International teams
    should be marked as non-scoring, two extra lanes should be used, and
    the nsProgMode=after option should be set for the progression used.
    This will work as follows:
    + For the purpose of determining how many heats to run and for assigning
      lanes in the heats, no distinction is made between International and
      American paddlers.
    + When progressing from heats or semis, all American paddlers will
      progress as if there were no International paddlers.
    + After the American paddlers have been progressed, International paddlers
      are progressed to the best available lane in the round to which they
      would have progressed if they were progressed without distinction
      from the American paddlers.
    + Assuming two extra lanes have been set up, at most two International
      paddlers will be progressed directly from heats to final.
    + Assuming two extra lanes have been set up, at least two International
      paddlers will be allowed to progress to the final, either directly
      from heats or from semis.
    + When an International paddler would progress from a heat to a final
      but there is no more room (i.e. assuming two extra lanes, two
      international paddlers have already progressed to the final), the
      International paddler will be progressed to the best available lane
      in the semis.
    + If there are no more available lanes (including extra lanes) in the
      next round, all remaining International paddlers who would otherwise
      progress are out.
    + When an International paddler can not be progressed to the desired
      round, a warning dialog is displayed.  The information is also
      displayed in the Messages tab in the lower half of the window.

  * The new "Nulls" check in the Database/Checks tab (on the right end of
    the button row with the Registrations button) looks for null values
    in database fields that might cause problems.  If it finds some nulls
    in, say table Events, field scratched, you can correct these by entering
    this command into the Debug/SQL tab and pushing the execute button:
       update Events set scratched=false where scratched is null
  * The Entries vs. Lanes check in the Database/Checks tab now checks for
    a database inconsistency where the event IDs in Entries and Races
    records should be the same (referenced by the same Lanes records)
    but are not.
  * The new context option Meets.WebReports.directory can be set on a
    per-host and per-meet basis, overriding the value set in the
    Web Reports Dir field of the Meets tab.
  * The directory and filename fields in the MeetSetup/Meets/Edit tab
    now have Browse buttons next to them.

  Bug Fixes:

  * The Awards report now works properly even if there are null values
    rather than "false" values for some data fields (such as the
    scratched fields in the Events and Entries tables).  The same fix
    was applied to a number of queries which were used in other reports,
    which may have displayed similar behavior in the event of null data.
  * Races with no scheduled start time are now excluded from the
    Personal Results report in order to avoid a "Can't format Object as date"
    exception that caused the report not to complete.
  * Database checks which do not use one or more of the Selections in
    that tab no longer abort with an error dialog; instead, they ignore the
    selection and run as if that selection was empty.  A message is logged
    to the message tab noting this.  This affects the following checks:
    Names, Plans, Nulls.
  * The Tabs/Edit menu, which had grown too large to fit on the screen,
    has been split into two menus: Edit and EditSetup.  A few other
    label problems in the Tabs menu have been fixed.

===============================================================================

jraceman  v0.9.2  July 10, 2006  Bug fixes in progressions

  Enhancements:

  * After confirmation of a tie problem on a progression, the relevant
    lane information is now printed as a status message so that it is
    available for reference when manually verifying or changing the
    progression.

  Bug Fixes:

  * Complan entries for best-time progression no longer cause an error.
  * When there is a best-time progression, lanes which are in a best-time
    group but are not fast enough to advance to any round now have OUT
    lanes assigned to them, the same as in the main progression.  This
    fixes a problem where, after progressing to semis when one such lane
    did not progress, JRaceman did not recognize that the event was ready
    to progress to the final after entering results for the semis.
  * When there is a tie in a best-time progression but the progression
    does not send all the entrants to the same round, it now puts up a
    confirmation dialog similar to when a tie happens in the regular part
    of the progression.
  * The confirmation message displayed when there is a tie and the tied
    racers advance to different rounds now displays the correct (possibly
    Complan) progression name rather than always displaying "USACK".

===============================================================================

jraceman  v0.9.1  June 24, 2006  Seedings

  Enhancements:

  * Seeding of races is now supported.
    + When drawing lanes for an Event for which a seeding list has been
      specified, entrants that are in the seeding list are assigned
      the preferred lanes in seeding order, smallest rank number first,
      after which entrants not in the seeding list are assigned lanes in
      random order.
    + Multiple seeding lists can be defined so that different Events can
      use different seeding lists if desired, or they can share the same
      seeding list.
    + The new Teams/Seedings tab allows setting up seeding lists to use
      for seeding lanes in races.
    + The Events tab now includes a Seeding List Name field to allow
      setting the name of the seeding list to use for that Event.
      If no seeding list name is set, seeding is not done for that Event.
    + When seeding a group event, the seeding rank for a group is
      calculated as the average (mean) of the seeding rank of all entrants
      in the group, including alternates.  If at least one entrant in the
      group is seeded, that group is included in the list of seeded groups.
      If some entrants in a seeded group are not in the seeding list, they
      are assigned a seeding rank of one larger than the largest assigned
      rank in the seeding list for the purposes of calculating the average
      rank for the group.
  * The Enter Places dialog now allows keyboard entry for the buttons
    for lanes 0 to 9.  Hold the Alt key and press one of the number keys.
  * The Person column in the Entries/Progress task of the ByEvent tab
    now has a wider default width so that most of the name is displayed.

  Bug Fixes:

  * The lower "Search Races" button (next to "Create Races") in the
    MeetSetup/Schedule tab no longer gives an error dialog complaining
    about "laneCount" not being found.
  * When an Entry is scratched before any lane assignments have been done,
    the By Event tab no longer says an Event is ready to Draw First Round
    when in fact the Event is ready to progress.
  * The ToResult column in the Entries/Progress task of the ByEvent tab
    now properly displays an exception (if set) else the result as a time.
  * The status message for the Add Time To Results command now properly
    displays Add versus Subtract, and the Results info is now updated
    immediately with the modified times.
  * When doing an auto-detected upgrade on startup, the main progress
    bar now correctly indicates the overall progress.
  * Switching to the Entries/Progress task in the ByEvent tab is now
    a little faster (although patience is still required for large events).

  Other Changes:

  * The lower "Search Races" button in the Schedule tab has been relabeled
    to "Search Event Races" to avoid confusion between the two buttons.

===============================================================================

jraceman  v0.9.0  June 3, 2006  Complans and Australian Progressions

  Enhancements:

  * The new Complan tabs allow specifying lane-precise progressions such
    as the USACK and ICF progressions.  These tabs are next to the Simplan
    tabs in the Plan Setup tab (formerly named Simplan Setup).
  * The Australian Canoeing progressions are now available as a Complan.
    Import the file data/complan-ac.txt to load those definitions.
  * The USACK and ICF progressions are now available as Complans.
    They should function identically to the previously available
    implementation, but since they are stored in the database, you
    can look at their data to see how they should progress lanes.
    Import the file data/complan-icf.txt or data/complan-usack.txt to
    get these definitions.
  * The new ContextOption Reports.ShowProgressionDescriptions can be set
    to "true" in the ContextOptions tab to cause the descriptions of
    progressions to be printed at the bottom of race reports.
  * The SportSetup/Progressions/Edit tab now includes an Edit Parameters
    button to assist in setting the parameters for a progression.
    The Edit Parameters dialog builds a string and places it into the
    Edit panel, after which you still need to press the Save button there.
  * You can now specify a date and race number (if desired) in the
    add-special-to-schedule dialog, rather than having to create the
    special schedule item in the dialog and then set the date in the sheet.
  * The new "Group Selected Entries (manual)" command in the ByEvent menu
    opens a dialog to allow you to select the group name to use for the
    selected entries.  You can choose any of the existing group names or
    enter a new group name.  The old "Group Selected Entries" menu item
    has been renamed to include "(auto)" on the end.
  * The new "Add Time To Results" menu item in the By Event menu allows
    adding a "plus time" to all lanes in a Race.  It also allows subtracting
    a time offset from all lanes in a Race.  This menu item is only
    available when the Task choice is set to Results.
  * The Export tabs now include an Export Format choice that allows you to
    select the format of the output file.  You can select the JRaceman format,
    which produces files in the same format as before, or the new CSV format,
    which produces files in the comma-separated-values format.
  * The new Load Properties button in the Debug/Properties tab allows quicker
    development of properties-based changes such as properties-based checks
    and reports.
  * There is now a DebugSql menu which appears when the Debug/Sql tab is
    selected.  This menu includes the new "Append Previous SQL" command, which
    allows you to browse through the last 50 SQL statements and select one
    to add to the sql text buffer, after which you can edit and execute it.

  Bug Fixes:

  * A memory leak in the Printing methods has been fixed.

===============================================================================

jraceman  v0.7.8  September 21, 2005  Faster Report Printing

  Enhancements:

  * The Print Preview window now allows entering a page number to go
    directly to that page.
  * The new report "Entry Count Per Level" shows how many people
    entered events at each level.
  * The USACK Awards report now includes the Canoe Burgee awards.
  * You can now use the "!include" command in an import file to include
    another file in the import.  Paths that are not absolute are relative
    to the location of the file containing the !include line.

  Bug Fixes:

  * Printing of reports (the Print command in the Reports menu) is now
    substantially faster and uses less memory, making it possible to
    print much larger reports.
  * When printing a report, a blank last page is no longer printed.
  * In the USACK Awards report, the people's names now appear properly
    in the table.
  * The progression class names in data/usack-sports.txt have been corrected.
  * The links that appear in the Tutorial Wizard now work.

===============================================================================

jraceman  v0.7.7  August 14, 2005  Used at USACK Sprint Nationals 2005

  Enhancements:

  * The ByEvent menu now includes a new command, Import Race Results.
    In order to use this command, you must set the ContextOption
    "ImportRaceResults.filename" to point to an Excel spreadsheet in
    the format used by the Omega finish-line system.
    The command reads a row, containing finish line results for each lane,
    from a spreadsheet, produced/managed by the Omega finish line system,
    and displays a confirm dialog with the lane numbers and results.
    When you accept the dialog, it inserts those results into the race
    and updates the places and scores.
  * The Database/Options tab now displays the local host name.
    This is the value you should enter into the host field of a
    row in the ContextOptions table that you want to be used only
    on that computer.
  * The Names check now looks for the same name on different teams as
    well as on the same team.
  * When specifying a list of number for an integer IN field (which
    includes Event Number, but unfortunately not Race Number), you can now
    specify ranges of numbers by separating them with a dash, as long
    as the numbers are not more than 100 apart.  For example,
    "1,4-7,9" is the same as "1,4,5,6,7,9".
  * The Entries report now includes an Alternate column.
  * There is now a set of OrderBy choices (Race Number, Event Number,
    Start Time) for the Race Lanes family of reports.  This includes:
    Race Lanes, Race Starter, Race Finish Line, Race Results, Race Score,
    Race Awards.
  * The AwardLabels tab now includes an option to use 1-2/3in round
    labels (Avery 5293), 24 per page.  If specified, the LeftImage
    for the meet is used as a background image.
  * The LeftImage and RightImage for AwardLabels can now be specified
    in a host-specific way by defining the ContextOptions
    Meets.Awards.labelImageLeft and labelImageRight.  If no matching
    ContextOption is found, it looks in the Meets record as before.
  * The USACK Awards report now includes the Francine Fox award for
    first place in K1 W Juv 500m.
  * There is now a Medal Count By Team report that shows the various
    different kinds of medals earned by eacn team.
  * The Web Lanes, Web Results By Race and Web Results By Levels reports
    now print the race start time next to each race link.
  * The Web Per Day report now uses the Two Column schedule format.

  Bug Fixes:

  * The Levels checks for non-group events using an average-age level now
    works.
  * Average age levels in the Levels check now display with only two
    fractional digits.
  * Converting the results of a Max Entries check to HTML no longer causes
    a null pointer exception.
  * The web Schedules index page now says "Schedules" instead of "Scores".
  * The Schedule TwoColumnNoTime report now sorts in the same order as
    the TwoColumn report.
  * The USACK Awards report now properly lists the Donald Dodge award as
    being for the 1000m race rather than the 500m race.
  * Backgrounds for report annotations (such as "Preliminary") now work on
    most of the Reports/General reports (formerly they only worked on
    the Race Lanes family of reports).

===============================================================================

jraceman  v0.7.6  August 8, 2005  Almost ready for Nationals 2005

  Enhancements:

  * The new Registration Summary report provides a summary of registration
    information for each team and meet.  This shows amount charged, paid,
    and due, and waiver and membership columns, plus a TOTAL line that
    gives the totals of all the per-person lines above it.
  * In the Race Entries reports, Alternate entries now display the race
    round, section and lane the same as the other members of the same
    group.  The name of the alternate is now shown in italics.
    The numbers of the first-round races are shown under the Event name.
  * The new ContextOptions table and Database/ContextOptions tab provide
    a location for context-specific options.  The first such option to
    be implemented is for the Backup button in the menu bar: it now looks
    for a row in the ContextOptions table with name='Backup.directory'
    and host the same as the name of the current host.  If found, it
    uses the value of that row; if not found, it uses the value of
    the 'Backup.directory0' in the Options table (the old way).
  * The Levels tab and table now includes a useGroupAverage column
    to specify that the age limits on a Level are to be applied to the
    average age of the group in a group event rather than the individual
    ages.  The Levels tab now also includes a Sheet tab.

  Bug Fixes:

  * The Registrations check now complains about blank membership numbers
    and expiration dates as well as nulls.
  * The Race Entries report now works on Races for which no start time
    has been set.

  Other Changes:

  * The Race Entries report no longer shows the time of the Race, only
    the date.

===============================================================================

jraceman  v0.7.5  Jul 29, 2005  More support for Registration

  Enhancements:

  * The new Group Selected Entries command in the By Event menu simplifies
    reworking groups: when using the Entries/Progress task in the By Event
    menu and the selected Event is a group event, you can now select multiple
    Entries rows (using control-click on Windows, or command-click on a Mac),
    then select the Group Selected Entries command from the By Event menu
    and it will put all of the selected Entries into one group, ensuring
    that group does not have any members other than the selected Entries.
  * The new Checks menu in the Database/Checks tab includes the new command
    All Checks CSV which runs all of the checks and outputs results to a
    file in CSV format.  You can run this once per team to collect one file
    per team with all of the checks for that team.
  * The Schedule menu now includes two new commands that help when creating
    Races for all Events.  The "Query Matching Events with No Entries"
    command displays in the Query Results tab all Events which match the
    selected criteria (Meet, Event#, Area) and have no Entries.  This can
    then be followed by the "Scratch all Query Results Events" command,
    which sets the Scratched flag on all Events displayed in the Query
    Results tab.  By doing this before running "Create Races for Matching
    Events" and thus scratching all Events with no Entries you can avoid the
    dialogs that pop up warning you of this situation when you create the
    Races.
  * The Registrations Sheet tab now includes a Team selector to allow
    displaying the Registrations for a single team.
  * The Registrations table now includes two new fields, "discount" and
    "surcharge".  These can be manually edited, and are used in the
    Registrations check when seeing who is fully paid.
  * In addition to the new discount and surchage fields, the Registrations
    tab now includes a Due field which displays the amount due as calculated
    from the other four amounts in the table, and an EntriesCount field which
    shows the count of Entries for the Person and Meet on that row.
  * The Registrations check now includes a check for people who have
    overpaid.
  * The Registrations check now checks for duplicate registrations.
  * Double-clicking on a row in the QueryResults after running a Check now
    opens the appropriate editing tab for that row (except for Max Entries
    checks).
  * The new -textsnapshot command line option is similar to the -exportdb
    option, but you specify only a directory, the filename is created
    automatically the same as when pushing the Text Backup button in the
    Database/Backup tab.  You can thus set up a crontab entry to create
    snapshots into your snapshot directory, compatible with the snapshots
    created interactively.
  * The new Debug/ForeignKeys tab allows simpler viewing and updating of
    foreign keys references.

  Bug Fixes:

  * The -help command line option now includes help for the -tuneprogress
    command line option.
  * There is now a newline after the header line (column names) when exporting
    a file.
  * The error message noting that an Event using USACK progression must be
    in an Area with exactly nine lanes now tells which Event it is.

===============================================================================

jraceman  v0.7.4  July 14, 2005  Fixes from Ted Houk 2005

  Enhancements:

  * The Person Entries dialog now has a tab that allows selecting between
    a compressed list of event buttons (the old way) or a full list of
    events allowing sorting on various columns.  The group list is now
    in the bottom half of the dialog (instead of at the right), allows
    editing more fields of the entry, and shows all entries entered
    (not just groups).  The bottom panel now also includes a label
    giving the number of entered and alternate events.
  * The Entries report now includes a column for Group, plus totals
    for the number of Events and the number of Groups.
  * The Database/Checks tab now includes a Team selection to allow running
    a check only against one team.
  * Query Results can now be output in CSV format.  The first line is the
    set of column names.  The tab-delimited format now also includes the
    column names as the first line.
  * The Races list in the Schedule tab now includes a Lanes column giving
    the number of Lanes used in that race.  This makes it easier to
    schedule concurrent races if desired.
  * Web Registration enhancements:
    + The Delete Person operation has been modified to make it simpler to
      delete many users.  Rather than having a push button to delete one user,
      there is now a check box next to each person, and a Submit Deletes button
      at the bottom.  This allows the user to click on all of the records to
      be deleted and delete them all with one button press.  There is a
      confirmation page, so it's actually two button presses.
    + The web registration module now supports having multiple meets accessed
      from different copies of the jraceman war file, based on the context
      path of each war file.  This is done by manually adding an option
      named "WebRegistration.context.XXX.MeetId", where XXX is the context
      path, to the Options table.  You can add a separate entry to the Options
      table for each different context path to access the different Meets.
      This mechanism (manually setting a row in the Options table with
      "context.XXX." after "WebRegistration" in the option name) will work
      for any of the WebRegistration options.
    + The below-account-blurb can now be customized for a Meet by manually
      adding the option WebRegistration.BelowAccountBlurb (or the
      context-specific version of same) to the Options table.  The value for
      this option can include resource values by referring to them with the
      same "{@XXX}" syntax as is used in report resource files.
  * In the Debug SQL tab, the Execute button now executes only the selected
    text, or (if no selection) the SQL command around the insert point,
    where multiple commands are separated by blank lines.
  * In the Debug SQL tab, the Get Last SQL button has been replaced by two
    new buttons: Clear, and Append Last SQL.
  * The new Debug/EditField tab simplifies editing database fields with
    large amounts of text in them.

  Bug Fixes:

  * Saving the results of Database/Checks now works again (broken in 0.5.5).
  * Some bugs in performing progressions have been fixed.
    + Simplan failed to progress when there was a BYE
    + Progression check failed to recognize that a race was ready to progress
      when there were exceptions like DNS.
  * Some bugs in Drawing Lanes have been fixed.
    + It no longer incorrectly complains about group errors
      (such as on non-group Events).
    + It now correctly complains about groups with too few people due to
      some group Entries being scratched.
    + The Event info is now given in the Group Error confirm and error dialogs,
      rather than just the Event id.
    + Lanes are no longer drawn for scratched Entries.
    + When part of a group has already been assigned a Lane, the Draw will
      now assign the same lane to the rest of the group.
  * The web registration interface now detects if the user has used the
    browser BACK button and is attempting to submit changes from an old page.
    If so, it does not take the action, but responds with an "Oops" page
    telling the user not to use the BACK button.
  * In the Schedule tab, when deleting a race with no race number, it now
    displays "(no number)" rather than "null" for the race number.
  * In ByEvents/Results, when displaying a scratched Entry, it is now
    displayed with a hash mark (#) before and after it rather than <strike>.

  Other Changes:

  * The Database tab has been moved to be just to right of the Reports tab.
    The Site Setup tab has been moved to the left of the Team Setup tab.

===============================================================================

jraceman  v0.7.3  June 11, 2005  Registration Management Improvements

  Enhancements:

  * Web registration can now be closed by setting the WebRegistration.IsOpen
    database option to false.  When registration is closed, existing web
    users can log in and view their data, but can not make changes.
    New registrations are not allowed.
  * The web registration pages now allow the user to select whether to
    display names last name first or first name first, with first as
    the default.
  * The web pages now show the session expiration time in the lower
    right corner.
  * The main box in the header on each web page is now a link to the
    web login page.
  * Web log prints now include a timestamp and the session identifier.
  * The Registrations tab now includes a read-only Team column.
  * The ByEvent/Entries tab now includes a Scratched column.
  * The new Entries report list Team, Person and Event for the
    selected Entries.
  * The Reports tab now includes an Order By choice for some reports.
  * The EntryCount reports now include the ability to order by the count
    values or the primary column.
  * The Personal Results report now includes the ability to order by
    Team and Person or just by Person.
  * The Levels check now also checks for no birthday specified.
  * The Groups check now also checks for group names with leading and
    trailing blanks.
  * The Registrations check now includes the Team in the output.
  * The new Names check checks for names with leading and trailing blanks,
    names in lower case, blank names, and duplicate names on a team.

  Bug Fixes:

  * Multiple simultaneous web users no longer get mixed up data.
  * The max-entries database check once again works when run before
    doing the lane draws. (bug introduced in v0.7.0)
  * The coloring (red/green) on the amounts in the Team Account box
    of the Team Edit web page has been corrected.
  * The red flags on the Team Edit web page no longer appear for
    people not entered into any events.
  * Registration records are no longer automatically created for
    every team member when the Team Edit web page is accessed.
    Instead, a registration record is automatically created when
    a person is entered into an event.

  Other Changes:

  * The web password check now ignores case.

===============================================================================

jraceman  v0.7.2  May 29, 2005  Web Registration Improvements

  Enhancements:

  * The Team Edit web registration page is now working: you can edit, add
    and delete records for any member on your team.  There is an Account
    information summary at the bottom of the Team Edit page that shows
    the total amounts charged, paid and due for all team members combined.
    There is now also a Team Edit By Event page that allows seeing and
    editing the data by event rather than by person.
  * The birthday and expiration date fields in web registration are now
    done with choice lists for month and day to prevent confusion about
    the input format.
  * The Expiration Date field now displays on the Web Registration
    summary page.  Both birthday and expiration date are displayed in
    MMM DD, YYYY format rather than in SQL standard format.
  * The Event Info display on the Web Registration summary page now
    appears to the right of the Person Info display in order to better
    use screen space.  The Logout button now appears at the top of the
    screen on the same line as the Welcome message.  The users name in
    the Welcome message is displayed in bold.
  * There is now a paying-by blurb at the bottom of the person and team
    web edit summary pages so that the user can print those pages, fill
    out the payment info, and send it in.
  * The new RegistrationFees tab in the MeetSetup tab allows setting up
    the amount to charge for registration based on the number of events
    a person has entered.  This information is now used by the Web
    Registration page to show the user how much he owes after he has
    entered some events.  If the Amount Due is negative, it is shown
    in light blue.
  * The web login page now has three sections for Login, Register and
    Forgotten Password.
  * There is now a timestamp printed in the footer of the web registration
    page to indicate when that page was generated.
  * There are now links to Payment Information and Waiver Information from
    the summary and team edit web registration pages.  These point to pages
    defined by two new options that can be set in the Options page for
    PaymentInfoUrl and WaiverInfoUrl.
  * The new Payment Notes field in the Registrations tab allows you to
    enter and view free-form notes about payments from a user.
  * The Options page now includes a MailHost setting for sending out
    web registration email.
  * The People Sheet now includes the email field.

  Bug Fixes:

  * The Add Team html page has been repaired to once again have the proper
    content rather than being a copy of the Edit Team Privileges html page.
  * The person info page in web registration now displays the
    membership expiration date.
  * The Membership OK status on the web registration page now displays the
    correct value.

===============================================================================

jraceman  v0.7.1  January 27, 2005  Fix a fatal windows bug

  Enhancements:

  * The web registration form now includes an account section that displays
    information from the Registrations table, including amount due, waiver
    signed (yes/no), and membership OK (yes/no).
  * The new jraceman.debug system property can be set when starting jraceman
    (by using the standard java -D option) for debugging.
  * The new jraceman.debug.html system property can be set to print out some
    information about the html base directory (for debugging).

  Bug Fixes:

  * The "index error" bug that prevented the Windows version from starting
    (introduced in version 0.7.0) has been fixed.
  * The output of the -help command line option has been updated to include
    some previously missing items.

===============================================================================

jraceman  v0.7.0  November 25, 2004  Registrations tab and Scratch flags

  Enhancements:

  * The new Registrations tab in the MeetSetup tab allows you to handle
    registration of people at meets if desired.  Using Registrations is
    optional: you can continue to use JRaceman without them, just as before.
    + You can query, add and edit Registrations using the
      MeetSetup/Registrations tab.
    + The new Registrations check in the Database/Checks tab checks for
      registration errors, which include the following:
      - Person entered into events but not registered.
      - (Person registered but not entered into events.)
      - Person has not yet fully paid up.
      - Signed waiver (release) has not been received.
      - Membership number or expiration date has not been entered.
      - Membership will expire before the end of the Meet.
  * The Events, Races and Entries tables now include "scratched" columns to
    allow you to scratch an Event, Race or Entry without deleting it.
    + You can edit the scratched flag for Events in the MeetSetup/Events tab.
    + You can edit the scratched flag for Races in the MeetSetup/Schedule tab.
    + You can edit the scratched flag for Entries in the MeetSetup/Entries tab.
    + In general, a scratched Event or Race shows up in strikeout text (with a
      line through it) where possible; where not, it is appended by "(SCR)"
      to indicate the scratch.
      Strikeout text is used in the following places:
      - In Schedule reports for scratched Events and Races.
      - In the body of the Race reports (Race Lanes, Race Results, etc.) for
        scratched Events, Races, and Entries.
      The "(SCR)" notation is used in the following places:
      - In Event lists in the Entries/Sheet tab, the ByEvent tab, and the
        Reports tab.
      - In the Race list in the ByEvent tab.
      - In the title of html reports, such as Web Race Lanes.
    + Scratched Events do not show up in the Entries/PersonEntries dialog.
    + Scratched Events and Races are ignored for all Checks.
    + In the Schedule tab, the "Create Races for Matching Events" and
      "Draw First Round for Matching Events" menu commands do not operate
      on scratched events.
    + The Awards reports do not include scratched Events, Races, or Entries.
    + The Score reports do not include scratched Events, Races, or Entries.
    + In reports, scratched Events, Races, or Entries, when printed, are shown
      in strikeout text.  When not explicitly shown, scratched Events, Races
      and Entries are excluded from calculations.  For example, in the
      Entry Count Per Event report, scratched Events are included and printed
      in strikeout text, but scratched Entries are excluded from the counts
      for both scratched and unscratched Events.  In the Entry Count Per Team
      and Per Person reports, scratched Events and scratched Entries are both
      excluded from the counts.
    + In the Personal Results report, scratched Events and Races appear in
      strikeout text.  A scratched Entry is indicated by strikeout text for
      the lane.  The score for an Event appears in strikeout text if any of
      Event, Race or Entry is scratched.
  * The new eventComment column in the Events table and the new raceComment
    column in the Races table allow you to enter comments for an Event
    or a Race.
    + These comments will appear under the Race name in the Schedule reports,
      whether or not the Race (or the Event for that Race) is scratched.
    + You can edit the eventComment in the MeetSetup/Events tab.
    + You can edit the raceComment by using a new menu command in the
      Schedule menu of the MeetSetup/Schedule tab.  This menu item is only
      selectable when a Race has been selected from the list of Races in
      the Schedule tab.
  * The new membershipExpiration column in the People table allows entering
    the expiration date for a person's membership.
  * The new teamEdit column in the People table allows specifying that a
    person is allowed to edit the Entries for all members of the same team
    when using the Web Registration interface.
  * The performance of sorting on a column in a sheet has been substantially
    improved.
  * The Concurrent Race Lanes check now prints each duplicate lane only
    once, rather than showing it in both directions (a=b and b=a).
  * This version includes a preliminary Web Registration interface.
    Because this is still very new, it is by default not delivered in a
    ready-to-run form.  If you want to play with it, you will have to unpack
    the source and build the "war" file (with the command "ant war").

  Bug Fixes:

  * The sort arrow icon in column headers once again works, showing which
    column is sorted and in which direction.  Various bugs having to do
    with column sorting have been fixed.
  * The group total in the "Entry Count Per Event" report has been corrected
    not to count each entry in the group separately.
  * The Usack Awards report has been corrected to show the team totals for
    the per-level awards.
  * When doing a Check Upgrade or Upgrade, the progress bar in the dialog
    now works properly, and it tells which module (tab) it is upgrading.

  Other Changes:

  * The version of Mckoi Database shipped with JRaceman has been upgraded
    to 1.0.3.  If you are interested in the changes to this version of
    Mckoi, see the Mckoi home page at <http://www.mckoi.com/database/>.
    (This version of JRaceman includes a patch to the mckoi1.0.3 jar file,
    a new Planner.java file, available from the mckoi CVS repository after
    November 19, 2004. This patch is necessary only for one of the parts
    of the Registration check.)
  * The report buttons in the MeetSetup/Events/Query tab have been removed.
    Use the reports in the Reports tab instead.
  * The header and footer lines in reports now include a link to the
    jraceman.org web site.
  * The Users Guide has been updated to reflect accumulated changes.

===============================================================================

jraceman  v0.5.5  August 8, 2004  User Interface improvements

  Enhancements:

  * Tables (and sheets) now display the full text of a cell when you let
    the pointer rest on that cell briefly.  If the cell is not editable,
    the text appears directly over the clipped text in the cell.  If the
    cell is editable, the text appears below the pointer so as not to get
    in the way of editing the cell.
  * You can now get directly to an entry in a ComboBox by quickly typing the
    first few letters of the entry.  As long as each keystroke is less than
    3/4 second after the previous keystroke, it will be collected into a
    search string, and the first entry matching that string will be selected.
    If the first character of input is an asterisk (*), the first entry
    containing the rest of the search string anywhere within its string
    will be selected.
  * The Checks tab now includes a Reason column with a brief description
    of the problem that caused that line to be displayed in the results.
  * This version of JRaceman includes batch scripts for use on Windows to
    start a JRaceman database server, start a JRaceman client, and shutdown
    the server.  When installing JRaceman on Windows, an additional option
    is presented which allows installing menus and shortcuts for these
    batch files, if the corresponding install-menus or install-shortcuts
    option is also selected.

  Bug Fixes:

  * International characters with accents (such as occur frequently in
    the Hungarian localization) are now displayed correctly.

===============================================================================

jraceman  v0.5.4  June 23, 2004  Fixes from Ted Houk 2004

  Enhancements:

  * The type choice list in the By Event tab now includes By Event Name
    along with the existing By Event and By Race choices (which have been
    renamed to By Event# and By Race#).
  * The Preliminary toggle in the Reports task of the ByEvents tab has
    been replaced by the Annotation choice, allowing you to specify either
    Preliminary or Revised from that tab.
  * The new Race Starter report in the Reports tab and the Reports task of
    the ByEvents tab is suitable for use by Starters with a stack of
    these reports, one race per page, on a clipboard: this report has a
    large margin on the top to ensure that no data is hidden under the
    clip even when a generous amount of paper is under the clip.
  * The new Debug/Generate tab allows you to generate random data to fill
    your database.  This is useful for testing, or to create some data
    if you just want to play with JRaceman and see how it works.
  * The Checks that show Event now include the Event Number.
  * Jraceman is going International!  This release includes some
    localization resources for Hungarian.

  Bug Fixes:

  * Fixed bugs in the Entries task of the By Events tab, in which using the
    Add and Delete buttons could cause the data to get mixed up.
  * Fixed a bug in the handling of Race reports in the Reports tab in which
    there was an obscure error message ("java.lang.String") when the
    criteria for Race selection happened to include specials (such as a Break).
    The workaround is to ensure that the selection criteria select only races,
    such as by selecting for specific Races or Events, or by setting the
    Round selection.
  * If you run a RaceXxx report from the Reports tab and your selection
    does not match any Races, you now get an error dialog telling you that.
  * Fixed a bug in scoring that would improperly do group score splitting
    if two consecutive finishers both had a blank (as opposed to null) group.
  * The code now treats a null "alternate" field as false.  This bug
    manifested in confusing ways, such as that JRaceman would assert
    that a team-boat race was complete when in fact no lanes had yet
    been assigned.  The workaround is to ensure that the "alternate"
    field contains no nulls.  To do this, after entering all Entries,
    go to the Debug/SQL tab and enter this command:
	update Entries set alternate=false where alternate is null
  * The site info on the Schedule report now prints properly if there
    is no city or state specified, rather than printing "null" there.
  * Specifying an Area on the Schedule TwoColumn report works once again.
  * Fixed the handling of importing so that backslashes (represented in
    an export file as a double-backslash) get properly imported, rather than
    being silently ignored.

  Other Changes:

  * The "Place" column in the Finish Line report has been changed to
    "Exception", and a comment has been added under the by-place box
    requesting that exceptions be written in that column.

===============================================================================

jraceman  v0.5.3  May 29, 2004  Report Enhancements

  Enhancements:

  * The "Preliminary" toggles in the Reports tab and in the Schedule tab
    have been replaced by an Annotation choice combobox.  In addition to
    being able to select the "Preliminary" annotation, you can now also
    select the "Revised" annotation.  The Revised annotation causes the
    report to have a light red "REVISED" watermark in the background.
  * For all reports in the Reports/General tab and for the Schedule
    Two-Column reports, the "Printed" date line now appears at both the
    start and the end of the report.  If an Annotation has been selected,
    that annotation appears at the right and left ends of the "Printed"
    lines, for example as "**Preliminary**" for the Preliminary annotation.
  * The new RaceEntries report shows all of the Entries for all of the
    Races in an Event, by Group, including Alternates.

  Bug Fixes:

  * Running the installer on Windows out of a directory that contains a
    dash in the name now works.
  * The Database/Transfer tab once again displays properly.

===============================================================================

jraceman  v0.5.2  April 22, 2004  Bug Fixes, Improved Dates

  Enhancements:

  * Date fields are now more lenient as to input format, allowing both
    the normalized SQL format (such as "2004-01-02" for Jan 2), or the
    localized format ("Jan 2, 2004" for the en locale and the default).
  * Localized date formats for the de and hu locales have been added.
  * The F3 and F4 keys now work in the Entries and Results tasks in the
    By Event tab, and in the Person Entries dialog.  As in the schedule
    sheet, F3 copies from above and moves to the right, while F4 copies
    from above and moves down.
  * The table name in an import file can now be quoted using double quotes.
  * For unit testing only, import files can contain additional commands:
    sql, sqlexpect, and sqlcheck allow loading and checking the contents
    of the database from an import file.

  Bug Fixes:

  * When editing cells in a table, errors are now caught and displayed
    rather than being sent to stdout (which is typically not seen when
    running under Windows).  For example, if you enter a result value
    with the Auto-update Scores toggle set, and there is no scoring system,
    that error message will now appear in a dialog.  In addition, the
    displayed values in the table are reset to prevent displaying an
    incorrect value (i.e. a value which may have been entered by the user,
    but which was not saved due to the error).
  * When Auto-update Scores is not set, it is now possible to enter scores
    that include a fractional part.
  * When adding a second new entry to an event after setting the name in the
    first new entry, the name of the first entry no longer disappears.
    Deleting an empty entry (one which was just added, but in which a name
    has not yet been set) no longer produces an error, but just deletes the
    empty row.
  * Changes to people made in the People tab (such as adding a new person
    or correcting a name) now show up in the Person choice list in the
    Entries task of the By Event tab immediately on return to that tab.
  * When printing a multiple page report with a Preliminary watermark, the
    watermark now appears on all pages (not just the first page).
  * The Options table (which replaced the Parameters table in v0.5.0) is
    now saved as part of a database text export.
  * The Concurrent Race Lanes button in the Check tab now has a tooltip.
  * When sorting strings where one string is a prefix of the other, the
    shorter string now comes first.

===============================================================================

jraceman  v0.5.1  January 16, 2004  Bug Fixes

  Enhancements:

  * The By Event tab now includes a Meet selection field immediately above
    the Event/Race selection field.  Selecting a Meet from the Meet selection
    field limits the Events and Races in those choice lists to the specified
    Meet.  You can turn off the Meet selection field with a toggle in the
    By Event menu, which hides that field.  When the Meet selection field is
    not visible, Events and Races for all Meets are displayed.
  * ResourceReports can now include a base "where" clause by including a
    resource of that name.

  Bug Fixes:

  * A number of bugs in Lane Assignment and Progressions have been fixed.
  * The Award Labels report works again, it no longer gives an error about
    class jimmc.util.Duration not being found.
  * The Race resource reports now excludes the special Race records (such as
    Break), fixing a null pointer exception when using the Reports tab to
    generate the Race reports (such as Race Lanes) for all races.
  * The Alternate column in the PersonEntries form is now a toggle field.
  * The PersonEntries form's maximum size has been reduced to try to account
    for a possible task bar at the bottom of the screen.
  * The label on the Alternate column in the Progress task of the By Event
    tab now says "Alt." rather than "Pos.".

===============================================================================

jraceman  v0.5.0  December 21, 2003  Internal/schema/GUI changes, Tutorial Wiz

  Enhancements:

  * JRaceman now includes a Tutorial Wizard, available from the Help menu,
    that steps you through the basics of using JRaceman.  The Tutorial
    Wizard automatically opens when JRaceman is first run.  It is also
    available as the first item in the Help menu.
  * The Reports.General tab (formerly RaceDay.Reports) has a number
    of enhancements:
    + New report formats:
      Race Lanes, Race Finish Line, Race Results, Race Score, and Race Awards
      are the same reports as are in the Reports task of the By Event tab
      and the same as in the Finish tab, with the addition of the "Race"
      prefix here in the Reports tab.
      Web Lanes By Race, Web Results By Race, and Web Results By Level
      are the same reports as in the Finish tab.
    + New selection fields:
      Event Number, Race, Race Number, Race Date, and Race Rounds.
      For Event Number and Race Number, you can select the IN
      operator and use a comma-separate list of numbers to allow selection of
      multiple Event or Race numbers.
    + New selections for existing reports:
      You can now select by Event Number in the Entries By XXX reports.
    + The new "Show Disabled Selection Fields" allows you to control whether
      the disabled selection fields are visible when disabled, or removed
      from the form when disabled.  The default for this control is off,
      which shows only the available selection fields.
  * The new Options tab in the Database tab allows you to specify the
    values of various options to control the behavior of JRaceman.
  * The "position" field in Entries has been changed to an "alternate"
    flag, which is either on (true) or off (false) for each entry.
    This is much easier to understand than the position number.
    When you upgrade an existing database, the new "alternate" column
    will automatically be filled in with the proper values as determined
    by examining the "position" column.  Similarly, when you import an
    older exported file that uses the "position" column rather than the
    "alternate" column, the value of the "alternate" column is determined
    based on the imported "position" value.
  * The "class" field in the Progressions tab is now a choice list rather
    than a text field, making it simpler to select a progression class.
  * When running the Upgrade and Check Upgrade commands from the Database
    menu, there is now a Progress Monitor which allows you to cancel the
    operation.  Messages from the operation appear in the Messages window
    as the operation progresses, rather than only appearing when the
    operation is done.

  Bug Fixes:

  * The Import command does more error checking than before.  If you import
    a file with a column it does not understand, it will complain about
    that column rather than giving an unusable error message.
  * Fixed a bug that would sometimes cause an ArrayIndexOutOfBounds error
    when viewing Results, especially in the DebugSql tab.
  * The Total #Teams field in the Entry Count Per Event report is now
    right-aligned like the rest of the number fields.
  * On export, a backslash in a string is now quoted by another backslash.

  Other Changes:

  * The Race Day tab is gone.  All of the subtabs which were in the Race Day
    tab have been moved into other tabs, as follows:
    - Progress: obsolete, moved into the Debug tab.  Use the Entries/Progress
      task in the By Event tab to handle progression of an Event.
    - Transfer: moved into the Database tab.
    - Finish: obsolete, moved into the Debug tab.  Use the Results task in
      the By Event tab to enter finish-line data for an Event; use the
      Reports.General tab to generate the reports that were formerly
      generated in the Finish tab.
    - Score: moved into the new Reports tab.
    - Award Labels: moved into the new Reports tab.
    - Reports: moved into the new Reports tab as Reports.General.
    - Races: moved into the Debug tab.
    - Lanes: moved into the Debug tab.
  * Building JRaceman now uses Apache Ant and a build.xml in the top level
    directory rather than "make" and a Makefile in each directory.
    This change should have no effect on the functionality of JRaceman.
  * The internal java packages in JRaceman have been rearranged to better
    conform to standards and to be more flexible.  This should have no effect
    on the functionality of JRaceman.  Progressions which previously used a
    class name starting with "jimmc.racer.progression" are automatically
    modified on upgrade to remove that old package prefix; the code now
    automatically adds the new default package prefix when needed if none is
    specified, so this should all "just work".
  * The Parameters table has been replaced by the Options table.
    If you have entered snapshot directories in the Database->Backup tab,
    you will have to reenter them.
  * In the Reports tab, the selection fields have been moved to the right-hand
    side of the tab.
  * JRaceman now uses JShortcut v0.3, which supports non-English characters.
  * A small collection of unit tests has been added.
  * The license for the documentation has been changed back to GPL.

===============================================================================

jraceman  v0.3.17  September 10, 2003  Bug fixes from Eric Hughes Regatta 2003

  Bug Fixes:

  * In the Progress task of the ByEvent tab, "out" is now displayed in the
    from-lane column rather than -3.
  * Fixed a recently introduced bug in ProgressManual that prevented a new
    database from being created.
  * Ages for the Levels check are now being calculated correctly.
  * It is now possible to clear the Position field in the Entries task of
    the By Event tab.

===============================================================================

jraceman  v0.3.16  August 24, 2003  Some post-Nationals enhancements

  Enhancements:

  * In the ByEvent tab, the Entries task has been merged into the Progress
    task.  When the From Round is set to 0:Draw, the button line
    includes the new Add Entry and Delete Entry buttons instead of the
    Progress button.  The Progress button appears when you switch the
    From Round choice to something other than 0:Draw.  The Person field
    is now editable.
  * The RaceDay/Reports tab now includes a text field that shows a brief
    description of the selected report.
  * When a report is selected in the RaceDay/Reports tab, only the selection
    fields that are available for that report are enabled; the rest are
    cleared and disabled.
  * The new Usack Awards report in the RaceDay/Reports tab provides a
    summary of the awards handed out at the USACK Sprint Canoe/Kayak Nationals.
  * The new "Entry Count Per Event" report in the RaceDay/Reports tab provides
    a count of the number of Entries per Event.  Similarly, the new
    "Entry Count Per Person" and "Entry Count Per Team" reports provide
    the number of entries per person and per team.  These last two reports
    replace the similar reports in the MeetSetup/Events/Query tab; they
    contain the same information, but allow more flexibility in selecting
    a subset of data on which to report.

  Bug Fixes:

  * The Preliminary toggle in the RaceDay/Reports tab now works.
  * The Paging choice in the RaceDay/Reports tab is now labeled.
  * The Users Guide has been updated to more closely match the program.

===============================================================================

jraceman  v0.3.15  August 11, 2003  Used at USACK Sprint Nationals 2003

  Enhancements:

  * The database location is now displayed in the Database/Backup tab.
  * The count of rows in a Sheet is now displayed in square brackets just
    to the left of the Search button.
  * The new Backup button in the menu bar makes it easy to make a quick
    backup from any spot in the program.
  * The new Race Number field in the Finish tab allows searching for
    Races by Race Number.  If a value is specified for either the Race
    Number or Race Date, a dialog asks for confirmation to search
    without using those values.
  * When entering results times, if the value is entered as just digits,
    without any punctuation, that number is now interpreted to be the
    values of the various fields run together; for example, 12345 means
    1:23.45.
  * When saving the Query Results data, the data is now ordered in the
    same rows and columns as displayed.
  * The Query Results menu includes two new commands:
    - "Display HTML in Report Tab" allows easier viewing of the HTML for
       the Query Results.  The generated HTML includes a
       "Printed" line with the date and time it was generated.
    - "Print HTML" displays the HTML in the Report Tab and then opens
      the print dialog for easier direct printing of Query Results.
  * When printing the QueryResults of a Database/Check, a title is now
    included telling what the results are for. (v0.3.14g,i)
  * The Progress Manual tab (and the Progress task in the By Event tab)
    now displays the From Round and From Lane along with the From Section.
    If the person has a bye for the From Round, the word "bye" appears in
    the From Lane column and the From Section column is cleared.
    If the person is out, the word "out" appears in the To Lane column.
    The word "out" is accepted for entry into the To Lane column.
    The new Group and Pos. columns provide information about the groups.
    The values in this column can be changed, which edits the Entry record.
  * The new RaceDay/Reports tab includes the new Personal Results report,
    which allows printing a page per person with the results of all of
    that person's races.  Results for specific meets can
    be done separately.
  * When there are group errors during a draw, rather than an error
    dialog which aborts the draw, there is a confirm dialog allowing
    the draw to continue in spite of the errors.
  * When using an Entries Sheet to delete an Entry, and there are Lanes
    referring to it, the confirm dialog now points that out, and confirming
    the delete also deletes the Lanes.
  * The "Event:" label in the By Event tab has been replaced by a choice
    of "By Event" or "By Race", which allows you to choose either by Event
    or by Race.
  * The "On Races" choice list in the Reports task of the By Event tab
    now includes choices to select all Races of a particular Stage (when
    there is more than one Race in that Stage) as well as All Races.
    If there is only one Race, the All Races entry does not appear.
    If there are no Races, the list says "No Races" and the Generate
    button is disabled.
  * The Checks tab now includes a new "Entries vs. Lanes" button which checks
    the consistency of Lane assignments against Entries.
  * The Checks tab now includes a new "Concurrent Race Lanes" button which
    checks the lane assignments of concurrent races to ensure that the Lanes
    in the separate concurrent events are all different.
  * When there is a Tie Problem in a USACK progression, the dialog now allows
    the progression to be canceled.
  * The Max Entries check in the Database/Check tab now does not count an
    Entry when the person scratched from the first round of the Event.
  * The Person, Teams, and Details Score reports now include an HTML title.

  Bug Fixes:

  * Groups are now properly progressed together rather than having each
    person progressed as an individual.
  * The F3, F4 and F6 keys once more work in sheets.  In particular, this
    means that the F6 auto-increment in the Schedule tab works.
  * Having multiple alternates in one group in a group Event is no longer
    flagged as an error (which previously would prevent a Draw from being
    done).
  * The Delete button in the Schedule tab now works for Specials, rather
    than throwing a NullPointerException.
  * In Schedule reports, specials which are not on the specified date are
    no longer included.
  * In the Database/Backup tab, paths with backslashes are now properly
    stored to the database, so that they appear properly when returning
    to the Backup tab.
  * The Entries Sheet and ByEvent/Entries task now disallow changing
    an existing Entry into a duplicate.
  * The Print dialog now has a slightly better message than
    "This panel is empty."
  * When trying to print from the Reports task in the By Event tab when
    there are no Races, it no longer throws a NullPointerException.
  * When printing the Teams And Levels report from Windows, it no longer
    throws a NullPointerException.

  Other Changes:

  * The PRELIMINARY watermark has been made lighter, and is now
    a grayscale image.
  * The Finish Line report has been modified to remove the Results column,
    and to move the Finish Line Results box up to the right of the list of
    paddlers.  The "Attach Results" message has been moved to under the
    Finish Line Results box.
  * The splash screen now uses a normal frame, which allows you to minimize
    it while the program is starting.  If you close the splash screen,
    JRaceman will exit.

===============================================================================

jraceman  v0.3.14  August 1, 2003  Off to Nationals

  Other Changes:

  * The PRELIMINARY image is now slightly larger, and is delivered as a
    PNG file rather than a JPG file to improve the image quality.
  * Unfortunately, the F3, F4 and F6 keys are not currently working in
    sheets.  I have not yet been able to figure out what the problem is
    or how to solve it.

===============================================================================

jraceman  v0.3.13  July 30, 2003  Improvements to Reports

  Enhancements:

  * The Event Entries Report and the Progress Report now include the number
    of groups as well as the number of entries for each Event.
  * All of the Entries reports (Team, Person and Event) and the Progress
    Report now include a footer line with the date and time they were
    generated.
  * The Event Entries Report (formerly available only in the
    MeetSetup/Events/Query tab) is now available in the Reports task of
    the By Event tab, where it can be used to generate an Entries report
    for a single Event.
  * The Finish tab, the Reports task in the By Events tab, and the
    Events/Query tab in Meet Setup now include a "Preliminary" toggle, which,
    if set, causes a PRELIMINARY watermark to appear splashed across the
    background of the report.  This setting has no effect on the Web reports.
  * The new By Event menu, which appears only when the By Event tab is
    selected, includes the Find Event command, which opens a dialog
    with a list of Races sorted by race number.  This allows for easy
    selecting of an Event in the By Event tab given only the Race number.

  Bug Fixes:

  * The Person Entries dialog no longer exceeds the height of the screen
    when there are too many Events.
  * Using the Save HTML As command in the Query Results menu for data
    produced by a Check no longer results in a NullPointerException
    (when run before doing any queries in other tabs), and now produces
    the right column headers (when run after doing a query in another tab).
  * Using the Event Entries Report button in the MeetSetup/Events/Query
    tab no longer results in a NullPointerException.  This bug was
    introduced (probably) in v0.3.11 when the Progress Monitors were
    added to reports.

  Other Changes:

  * The enhancement in v0.3.12 to include Competition, Level and Gender
    information in Event choice lists for Events with no name has been
    backed out because of problems interacting with sheets.

===============================================================================

jraceman  v0.3.12  July 27, 2003  Improved Importing

  Enhancements:

  * Importing a JRaceman file has been improved:
    + When there is a conflict on import, the message describing the differing
      fields is now a little easier to read.
    + A blank field (i.e. two commas with nothing between) is now imported
      as a null value, rather than causing an error.
  * Events using Simplan progressions now include a description of the
    progression at the bottom of the Lanes report.
  * In choice lists of Events, Events which have no name now display the
    name of the Competition, Level and Gender for that event.
  * In race reports, the section number is no longer printed if there is
    only one section in the round.
  * The "on" choicelist in the Finish tab has been split into two lists,
    the first ("on") with Selected/Matching/QueryResults, the second
    ("Paging") with Single/Double/Paged/Packed.  This adds the ability to
    generate reports on the Races or Events which are displayed in the
    Query Results tab.

  Bug Fixes:

  * Bugs fixed in the Import process:
    + The Import progress dialog is now closed when there is an error
      during the import.
    + When importing string data into an integer field, the string value
      is now converted to an integer value, rather than just putting zero
      into the database.  If the string does not properly convert to an
      integer, an error dialog appears.
    + When importing integer data into a string field, and importing the
      same data a second time, it no longer complains that the data is
      different from what exists in the database.
    + When importing data into a DateSpec field (such as People.birthday
      or Meet.startDate), illegal values are now rejected during the import.

===============================================================================

jraceman  v0.3.11  July 21, 2003  Draw and Progress improvements

  Enhancements:

  * The Progress Auto and Progress Manual tasks in the By Event tab have
    been merged into a single Progress task, which is the same as the
    Progress Manual tab with a few more buttons and labels at the top.
  * The Progress Report and the reports in the Schedule, Score and Awards
    tab now display a Progress Monitor.
  * The new Race Date field in the Finish tab allows selecting races based
    on their starting date, similar to the one in the Schedule tab.
    This field is not used for the Query Events button.  When using the
    Query Races button, or when using any of the Matching "on" selections
    during report generation, only Races with a starting time on the
    specified date will be included in the results.
  * The new Race Rounds combo box in the Finish tab allows selecting races
    based on their Round.  This field is not used for the Query Events button.
    When using the Query Races button, or when using any of the Matching "on"
    selections during report generation, only Races which match the selected
    Round criteria will be included in the results.  Note that a Race may
    be both a First Round and a Final Round when there is only a single
    Round in a Race.
  * The Lanes report now includes progression information at the bottom of
    the page if the selected progression is a USACK or ICF progression.
  * When the database includes only one meet, most of the Meet query fields
    now auto-select that meet, rather than starting off blank.
  * When entering times into the Finish tab (or Results task) for a group
    event, the cursor selection automatically moves to the first row of the
    next lane if you use Enter after keying in the new data.
  * There is now a busy indicator that appears when the program is busy
    doing something.  The indicator is in the menu bar just to the left
    of the Help menu, and displays the word BUSY in red letters.
  * The Debug Sql tab now supports executing a PREPARED statement.
    After pushing the Get Last SQL button, if the retrieved SQL is from
    a PreparedStatement, which is shown by the leading keyword PREPARED and
    trailing keyword PREPARED_VALUES following by a list of values, pressing
    the Execute button will now execute that query as a PreparedStatement.

  Bug Fixes:

  * When entering results for a group event, all of the entries for the
    group are now properly redisplayed with the new value.
  * Fixed another bug that prevented random assignment of lane numbers.
  * When doing initial lane assignment for an event using a USACK progression
    when there is no LaneOrder set, the lane ordering preference used is now
    5,4,6,3,7,2,8,1,9,10,0 (rather than 1,2,3...).

  Other Changes:

  * A Meet selection is now required in the Awards tab (to ensure that
    labels are available, if used).

===============================================================================

jraceman  v0.3.10  July 11, 2003  By Event tab

  Enhancements:

  * The new top-level By Event tab provides a simpler way to operate on
    an Event: in that tab, you select the Event, then select the task you
    want to perform on the Event.  There are no new capabilities in the
    By Event tab, but you may find it easier to use when you are focused
    on a single Event.  The available tasks are:
    + Entries - like the MeetSetup.Entries.Sheet tab, allows you to
      edit the Entries for the selected Event.
    + Create Races - like the Create Races box in the Schedule tab,
      allows you to create Races for the selected Event.
    + Progress Auto - like the RaceDay.Progress.Auto tab, allows you to
      automatically draw and progress lane assignments for the selected Event.
    + Progress Manual - like the RaceDay.Progress.Manual tab, allows you to
      manually draw and progress the lane assignments for the selected Event.
    + Results - like the RaceDay.Finish tab, allows you to enter the results
      for the selected Event.
    + Reports - allows you to generate reports for the event, including all
      of the report formats from the Finish tab plus the Progress report format
      from the Progress Auto tab.
  * The new "Undraw First Round" button in the Progress Auto tab allows you
    to delete all of the first-round Lane assignments if they do not yet
    have results.
  * On startup, JRaceman now checks the database to see if it needs to be
    upgraded, and if so, presents a dialog allowing the user to upgrade
    the database.  The upgrade is done early enough in the startup sequence
    to avoid problems caused by executing code that expects certain tables
    or columns to exist.
  * There are now a few more pre-defined progressions in the USACK sport
    definition file.  These include variations on the standard USACK
    progression with such options as multipleFinals.  You can see what
    the various combinations are by looking at the Progressions tab in
    the Sport Setup tab.  The "Simplan" progression has been changed to
    refer to the newly added "Ted" Simplan, which is a progression that
    has been used at the Ted Houk Memorial Regatta in Seattle.  The Simplan
    Ted definition has also been added to the USACK sport definition file.
  * Specifying the -debug command line option now adds a Details button to
    any UserException dialog.  This can be used to get a traceback in the
    event that the problem is actually a program bug and not a user error.
  * The Events sheet now includes the Scoring column.

  Bug Fixes:

  * Pressing the Cancel button on the Progress dialog during an Import now
    cancels the import rather than just closing the Progress dialog.
  * When there is a lane assignment problem during auto progression, the
    information is now shown in a dialog (previously, an error occurred when
    trying to display this information).
  * Random lane assignment now works (a bug was causing lanes always to
    be assigned in order).
  * Various bugs that could prevent automatic lane assignment in unusual
    situations have been fixed.
  * Sorting and sort arrows in sheets now work better.
  * When drawing the first round, the completion message now correctly
    displays the number of lanes created.

  Other Changes:

  * Some of the messages in the Progress Auto tab have changed, since that
    function is now also available in the By Event tab.  Similarly, some of
    the dialog behavior in the Progress Auto tab has changed.  These are
    both relatively minor changes.

===============================================================================

jraceman  v0.3.9  June 26, 2003  Lessons from Ted Houk 2003

  Upgrading:

  * This version of JRaceman includes some new fields in the Meets table
    (for award label images), and the new Parameters table (used by the
    new Backup tab).  To upgrade, choose only one of the following:
    - Start JRaceman, then run the Upgrade command from the Database menu.
    - Run "jraceman -upgrade".

  Enhancements:

  * The Progress Manual tab now includes a "Draw" choice in the "From Round"
    choice list, which allows you to do manual lane assignments of the
    first round (the "Draw"), or to edit the lane assignments created by
    the Draw First Round button in the Progress Auto tab.
  * The Draw First Round button now does a check of the groups data for
    the Entries for the selected Event, in order to prevent errors and
    strange behavior due to incorrect or inconsistent group info.
  * The Event# field in the MeetSetup->Events->Query tab now includes the
    IN operator, making it possible to select a set of events to use for
    the Event Entries report.  It is also possible to use other operators,
    such as "<" (less than) to select a set of events on which to report.
  * The new Database->Backup tab simplifies frequent manual backup snapshots.
    Fill out the directory location, then press the Text Backup button to
    create a text backup of the database into that directory, or press
    the Mckoi Backup button to create a backup database directory that
    can be directly used by JRaceman.  The file name within the snapshot
    directory is automatically generated using a pattern with the date
    and time of the backup.  The backup directory location is stored in
    the database, so you only need to fill it in once.
  * The new -user and -password command line options allow you to specify
    an alternate username and password on the command line.  If there is
    an authentication error, a dialog box opens allowing you to enter a
    different user name and password.
  * The Entries Sheet tab now checks to prevent the same person from being
    entered twice in one Event (the Entries Edit tab already checked).
  * The new Schedule menu, which appears only when the Schedule tab is
    selected, provides additional commands for manipulating the schedule.
    - The "Create Races for Matching Events" command allows you to set up
      a selection for a set of Events, then create Races for all of those
      Events using the number of Entries for each Event.
    - The "Draw First Round for Matching Events" command allows you to set
      up a selection for a set of Events, then draw the first-round Lane
      assignments for all of those Events.
    - The "Add Special to Schedule" command simplifies adding special items
      to the schedule, such as Lunch or a Break.
  * The new Delete Race button in the Schedule tab allows you to delete the
    currently selected Race.
  * It is now possible to include images in Award labels.  You can include
    an image on the left, and another on the right.  To do so, edit the Meets
    data for the desired meet and put either a path to a file or a URL into
    the Label Image Left or Label Image Right fields.  When printing Award
    labels, select the Meet before generating the labels.  The left image
    file, if defined, will appear on the left end of the label; the right
    image file, if defined, will appear on the right end of the label.
    Note that you must do a database upgrade on your database in order to
    get these two new fields into the Meets table.
  * The new "1in by 2-5/8in" label format is for 30 labels per page, which
    have margins, such as Avery type 5160.
  * The team short name now appears with the person's name on the award
    labels.
  * The "Enter Places by Lane" dialog in the Finish tab no longer includes
    Lanes for which an Exception has already been entered.

  Bug Fixes:

  * Time fields in sheets, such as the Scheduled Start time in the Schedule
    tab, now accept a time specification without a seconds value, as
    well as dates without a space after the comma.  Error checking and
    messages for those fields have also been improved.
  * Using the Create Races button on an event for which races already exist
    now works.
  * The Report->Save dialog title has been fixed.
  * Documentation has been added for the Progress Manual tab.
  * When a Sheet displays new data (such as when the Search button is pressed)
    and an editing operation with a pop-up choice list was in progress, the
    editing operation is now canceled, and no longer displays the wrong data
    in the newly displayed data.

  Other Changes:

  * String columns in tables and the list of strings in choice lists are
    now sorted with a "weak numeric sort", where numbers in the string
    are sorted numerically rather than lexicographically.  This usually
    matches more closely the sorting order people expect.  Negative numbers
    are not currently sorted as negative numbers, but are treated as a
    dash followed by a positive number, thus they appear after positive
    numbers, and in order of increasing magnitude.
  * The Two Column report in the Schedule tab now sorts by start time rather
    than race number.
  * The Help menu now appears at the right side of the menu bar.
  * The version of Mckoi Database shipped with JRaceman has been upgraded
    to 1.0.2.  If you are interested in the changes to this version of
    Mckoi, see the Mckoi home page at <http://www.mckoi.com/database/>.
    One of the changes is to move to a journaling system that improves
    data recoverability in case of system crashes.  No changes or upgrades
    to the JRaceman database are required.

===============================================================================

jraceman  v0.3.8  June 15, 2003  Used at 2003 Ted Houk Memorial Regatta

  Enhancements:

  * For the reports in the Events and Finish tab, which may take a while to
    complete, a Progress dialog now appears if the report will take more
    than a couple of seconds to appear.  You can cancel the report from
    this dialog.  Beware when canceling a web report: it may already have
    produced some of the results files, and canceling will not undo those.
  * The new "-repair" command line option can be used to run the Mckoi
    database repair tool if the database becomes corrupted, such as may
    happen if there is a power failure.  When the -repair command line argument
    is specified, the repair tool is run and then JRaceman exits.
  * The 11x3 awards label format now includes the event number.

  Bug Fixes:

  * Fixed an installer bug that prevented proper installation from a CD.
  * Fixed incorrect references to "groupId" in progressions, which prevented
    automatic lane assignments from completing (bug introduced in 0.3.7).
  * The Group column in the Finish tab once again correctly displays the
    group name (bug introduced in 0.3.7).
  * In the Finish tab, when the Matching/(anything) report layout is selected
    and there are no matching Races, the error dialog now says "No matching
    Races" rather than "No Race selected".
  * Event number query fields (in which the operator list included the IN
    operator) once more work properly.  This affected queries on Event
    number in many tabs.
  
  Other Changes:

  * The Awards report in the Finish tab is now sorted by Event number rather
    than by Race number.

===============================================================================

jraceman  v0.3.7  May 30, 2003  Schema changes, Person Entries tab

  Enhancements:

  * The new PersonEntries tab in the Meet.Entries tab provides a way to
    easily enter or edit all of the entries for one person on a single
    screen.  In that tab, select a meet and person, then press the
    Edit Entries button to open a dialog.  Select the events in which
    that person is entered; for any group events selected, enter the
    group and position in the table on the right side of the dialog
    (make sure to press Tab or Enter after editing a field in that table),
    then press OK to commit those changes.
  * The Groups table has been removed, and the groupId field of the Entries
    table has been renamed to group.  A group is simply defined as the set
    of all entries in an Event which have the same value in the group field.
    See the note below about upgrading from previous versions of JRaceman.
  * The Addresses table has been removed.  The tables which formerly had
    an addressId field (Sites, Teams, People) now have all of the address
    fields (street, street2, city, state, zip, country, phone, fax)
    directly in that table, and in the tab.  This matches the way people
    think about addresses better than having them in a separate table.
  * The error dialog now has a Details button instead of Print Traceback
    and Save Traceback buttons.  The Details button opens a dialog showing
    the traceback, with Print and Save buttons.
  * The installer now includes a debug flag that you can set if you are
    having trouble getting the installer started.  From a command window,
    use this command:
        java -Djraceman.install.debug -jar jraceman-0_3_7.jar

  Bug Fixes:

  * When saving a traceback to a file, the file dialog is now a Save
    dialog rather than an Open dialog.
  * A date in the format "MMM DD,YYYY" (without a space after the comma)
    is now accepted.
  * When the contents of a date field is not recognized, the value of the
    date string is now included in the error message.
  * The installer now works properly from a directory containing spaces
    somewhere in the path.

  Other Changes:

  * Long text strings in dialogs now appear in a scrolled window if the
    longest line is greater than 80 characters, or if there are more than
    30 lines (as opposed to previously, when any message with a total of
    80 characters would be displayed in a scrolled window).
  * The version of Mckoi Database shipped with JRaceman has been upgraded
    to 1.0.1.  If you are interested in the changes to this version of Mckoi,
    see the Mckoi home page at <http://www.mckoi.com/database/>.


  Upgrading From Previous Versions of JRaceman:

  * Due to the changes to the database schema (Addresses fields moved to
    Sites, Teams, and People tables, and groupId field renamed to group)
    you will need to upgrade your database.

    If you do not have any address information in your database, you can
    do the upgrade using the standard approach of saving a text file from
    the old version of JRaceman (using Database->Export Standard Data),
    then importing it into a blank new database using the new version of
    JRaceman, except that in this case you need to edit the file after
    exporting and before importing to make three changes: 1) delete the
    section which loads the "Groups" table; 2) delete the section which
    loads the "Addresses" table; 3) find the header for the Entries table
    and change the "groupId" field name to "group".

    Unfortunately, if you have any address information, things are more
    difficult.  You may still be able to edit your exported text file
    to carry the information back into the upgraded tables.  If you need
    to do this and are not sure how, contact me.

===============================================================================

jraceman  v0.3.6a  May 19, 2003  Mckoi 1.00A (1.00 with bug fixes)

  Bug Fixes:

  * Unfortunately, Mckoi 1.00 had a bug that caused JRaceman's date fields
    not to work, with the message "Can't Cast" appearing for any query of
    a table containing a date field.  This version includes an updated
    copy of Mckoi with a fix for that bug, but no other changes to the
    JRaceman code from v0.3.6.

===============================================================================

jraceman  v0.3.6  May 10, 2003  Client/Server support and Mckoi 1.00

  Enhancements:

  * JRaceman can now be run in client/server mode.  To start a server on the
    local machine, use the new -runserver command line option:

      jraceman -runserver

    You will typically want to run this in the background, and you may
    want to specify a -db option to point to your database.  Server output
    goes to the file debug.log in the log directory in the database directory.

    To run a client which connects to a server running on machine jserv,
    use the new -dbhost command line option:

      jraceman -dbhost jserv

    This is equivalent to specifying a jdbc URL like this:

      jraceman -db jdbc:mckoi://jserv

    Both the -runserver option and the -dbhost option assume the default Mckoi
    TCP/IP port number, which is 9157.

    To shut down the server, use the new -sql command line option with the
    SHUTDOWN command, along with the -dbhost command to specify the server:

      jraceman -dbhost jserv -sql SHUTDOWN

    *NOTE*: At the moment, the username and password are compiled into
    JRaceman, and are the same for all users.  This means if you run a
    database server, anyone with a copy of JRaceman and a connection to
    your network can access and modify your data.

  Bug Fixes:

  * Fixed a typo in the installer text.

  Other Changes:

  * The version of Mckoi Database shipped with JRaceman has been upgraded
    to 1.00, the first official release of Mckoi.  If you are interested
    in the changes to this version of Mckoi, see the Mckoi home page at
    <http://www.mckoi.com/database/>.

    For details on how to upgrade your database, see the note below,
    "Upgrading from previous version of JRaceman:" in the notes for v0.3.0.

===============================================================================

jraceman  v0.3.5  December 30, 2002  Progress bar on startup

  Enhancements:

  * The splash screen (startup window) now includes a progress bar
    displaying the progress of the program initialization.

  * JRaceman now uses JShortcut v0.2.  On installation on Windows,
    attributes of an existing JRaceman shortcut (such as an icon selected
    by the user) are now preserved.

  Bug Fixes:

  * Fix NullPointerException in ProgressEdit on startup in some JVMs.

===============================================================================

jraceman  v0.3.4  November 25, 2002  Create shortcut on Windows

  Enhancements:

  * The installer has been improved and now shows a single dialog with the
    current install location (editable) with a Browse button and a check
    box to auto-start JRaceman when the install is complete.  On Windows,
    there are also check boxes to ask it to create a JRaceman shortcut
    on the desktop and a JRaceman menu in the Start Menu (both true
    by default).
  * The default install location on Windows is now the logical Program Files
    directory.  This is typically C:\Program Files, which is what the old
    default was, so most users won't see the difference; but for users with
    different setup, the new default will be difference and more appropriate.
  * The default location for the database on Windows is now located in the
    personal directory, typically C:\My Documents.
  * If the database is empty when JRaceman starts, it now asks if you want
    to import a sport definition file and provides a list of possibilities
    (currently only one, USACK Sprint Canoe/Kayak).
  * When importing a file, a progress meter is now displayed.

  Bug Fixes:

  * When running for the first time on Windows, after it asks where you
    want to put the default database, it no longer opens another dialog
    asking you if you want to create the database there.
  * When creating a new database, all necessary parent directories are
    now created automatically.

  Miscellaneous Changes:

  * JRaceman no longer asks for confirmation on exit, it now obediently
    does it immediately.
  * JRaceman now includes jRegistryKey v1.0b, a modified version that
    knows how to find its DLL from the CLASSPATH.
  * JRaceman now includes the JShortcut library v0.1, which is how it can
    create shortcuts and menu items on Windows.

===============================================================================

jraceman  v0.3.3  November 9, 2002  Work on Windows 98

  Bug Fixes:

  * Fixed a database config problem that prevented the database from being
    created on Windows 98.

===============================================================================

jraceman  v0.3.2  November 1, 2002  Improved Installer

  Enhancements:

  * The install now includes an initial (simplified) dialog with a
    recommended install location.
  * On Unix, the JAR self-installer now allows you to start JRaceman directly
    from the installer. (This does not work on Windows due to a PATH bug that
    causes it not find jRegistryKey code - sorry, you must start JRaceman
    yourself, see the README.html file).
  * When running JRaceman for the first time on Windows, there is an
    initial (simplified) dialog with a recommended database location.
  * The new -setDefaultDB option on Windows allows you to change the
    default database location.
  * In the startup splash screen, the location of the database is now
    shown as it is being initialized.

  Bug Fixes:

  * Fixed the jarinst.exe program on the CD image to work with the
    new self-extracting jar files.
  * Fixed some array-index traceback bugs in the Debug tab.
  * Fixed a bug that caused lanes sometimes to be multiply assigned when
    additional entries were added to a race which already had some assigned
    lanes.
  * Fixed a bug where it was not possible to edit a record and set a
    foreign key from a value back to blank, due to foreign key database
    constraint errors.

===============================================================================

jraceman  v0.3.1  October 12, 2002  Used at the 2002 Eric Hughes Regatta

  Enhancements:

  * The new Two Column No Time report in the Schedule tab allows you to
    print up a preliminary schedule with dates but no times.  Useful for
    handing out at scratch meetings when you don't want people walking
    away with a schedule that has the wrong times on it.
  * The new Finish Line report in the Finish tab prints out a report
    suitable for use by the Finish Line judges.  It is similar to a Lane
    report, but with the addition of a table below the lane list with
    boxes in which the judges can write the lane order of the finishers.
  * The Two Column schedule reports and all of the Finish tab reports now
    include a footer line with a "Printed" date.
  * The Print Preview window now includes a scale choice with values
    ranging from 50% to 200%.
  * The version of Mckoi Database shipped with JRaceman has been upgraded
    to 0.94g.  If you are interested in the changes to this version of
    Mckoi, see the Mckoi home page at <http://www.mckoi.com/database/>.

  Bug Fixes:

  * When printing a report generated using explicit page breaks (anything
    other than /packed) and something that should fit on one page takes
    more than one page, all such pages are now printed.
  * Fixed a number of bugs that showed up in Sheets when columns were
    rearranged or rows were sorted.
  * Column tyes in Sheets are now more well-behaved, especially when
    first entering data into an empty Sheet.
  * The "Open" level and "Mixed" gender fixes from 0.1.8 got lost in
    0.1.13; they have been put back in for this release.
  * Auto-increment on Float columns (such as Race# in the Schedule tab)
    using F6 now works.
  * The IN operator on the Event# field in the Finish tab now works.
    The Event# field now works to select a single Event as well.
  * Sheets once again preserve the user's changes to the size and order
    of columns when the Search button is pressed (this capability was
    lost in 0.3.0 with the switch to Mckoi 0.94f).
  * Fixed a bug that caused first-round draw on group events to say there
    were no lanes to draw.
  * Fixed a bug on award labels that caused the fractional part of times
    not to be printed.

===============================================================================

jraceman  v0.3.0  October 4, 2002  Self-extracting JAR file

  Enhancements:

  * JRaceman is now delivered in a self-extracting JAR file rather than
    either a ZIP or a compressed tar (tgz) file.  The unzip.java previously
    used has been replaced by a modified ZipSelfExtractor from
    Java World's Tip #120.
  * The version of Mckoi Database shipped with JRaceman has been upgraded
    to 0.94f.  If you are interested in the changes to this version of
    Mckoi, see the Mckoi home page at <http://www.mckoi.com/database/>.
  * The new Transfer tab in the Race Day tab provides the capability to
    send files to and receive files from the FinishLynx finish-line timing
    system (http://www.finishlynx.com).  The files are read and written
    to a transfer directory specified in the Meets tab.
  * The TBD sections of the Users Guide have been filled in.

  Bug Fixes:

  * Fixed export/import to work properly with JDBC escapes for date and
    time values, such as {dt '2002-09-22 09:40:12.0'}.
  * In the startup screen status, the real labels of the tabs are now
    displayed in the "Creating" messages rather than using the internal
    tab name.
  * Packed reports once more print properly (probably broken in v0.1.9).
    Reports which include explicit page breaks (all others besides Packed)
    still lose anything which doesn't fit on each page.  Be careful using
    the Double and Paged selections; check them with Preview before printing.

  Miscellaneous Changes:

  * JRaceman now requires Java 1.4.0 or later.

  Upgrading from previous version of JRaceman:

  * If you are using an earlier version of JRaceman with its default
    version of Mckoi (0.92), you will need to upgrade your database.
    There are two approaches to do this:
    1) Use Mckoi's tools to upgrade the database.  To do this, see
       Mckoi's README.txt file.  After running Mckoi's upgrade, use
       JRaceman's -upgrade command line option.
    2) Use JRaceman's export and import.  To do this, run the old version
       of JRaceman and use the Export Standard Data command in the
       Database menu to create a JRaceman text file.  To work around a
       bug in the export format in previous versions of JRaceman, edit
       the file and look for the string "{dt" (without the quotes).
       This will be followed by a date and time string.  Put single quotes
       around the whole date and time string.  Do this for every occurrence
       of the {dt date-time} sequence.  Save the file.  Run the new
       version of JRaceman, create a new and empty database, import the
       new standard sport definition file, then import your data file.
       You do not need to use the -upgrade command line option.

===============================================================================

jraceman  v0.1.14  September 22, 2002  Improved Users Guide

  Enhancements:

  * The Users Guide has been improved:
    + It is now generated from XML source, so it has a table of contents,
      an index, and next and previous page links, making it easier to
      navigate on-line.
    + New material has been added, including a section on how to use the
      user interface components.  Some new sections do not yet have any
      text in them; these are indicated with "TBD" (To Be Documented)
      in the text, and will be filled out in a future release.
    + In addition to the many-pages html format in which the Users Guide
      has been delivered in the past, the guide is now also available as
      a PDF file (doc/pdf/userguide.pdf) and as an all-in-one HTML file
      (doc/html/userguide.html).
    + The XML source for the Users Guide is included in the new file xml.zip.
      You can unzip this file if you want to build the PDF or HTML for the
      Users Guide from the XML source.  Otherwise, you can ignore xml.zip.
  * The new Scoring tab in the Sport Setup tab allows you to specify a
    customized scoring table for your Events.  The usack-sports.txt file
    includes two scoring tables, USACK2001 and USACK2002.  The Meets tab
    has a new field, Scoring, in which you select the scoring system you
    want to use for your meet.  There is also a Scoring field in the Events
    tab which you can use to override the scoring system for individual
    Events.
  * The new Lane Order tab in the Site Setup tab allows you to specify
    a custom lane ordering for an Area for use by first-round draw and
    Simplan progressions.  For example, you could enter a lane ordering
    to specify using lane 9 first, then 8 etc. down to lane 1.
  * After doing a Upgrade or CheckUpgrade from the Database menu, the
    Messages tab is now raised to show the results of that command.

===============================================================================

jraceman  v0.1.13  September 9, 2002  Custom and Manual Progressions

  Enhancements:

  * The new Simplan Setup tab allows you to define custom progression plans.
    Simplan is short for "SIMple progression PLAN".  The three subtabs
    (Simplans, SimplanStages, and SimplanRules) allow you to define multiple
    systems of progression plans, each system containing a set of plans
    for different numbers of entries.  Each plan tells how many finishers
    advance from each stage to following stages.  In addition, a specified
    number of "next best times" can also be advanced.  To use your Simplan
    for an Event, you select Simplan from the Progression choicelist in the
    Event, and enter "system=yourSystemName" into the Progression State
    field of the Event.
  * The Progression tab has been split into Auto (the previously existing
    functionality) and Manual (a new tab).  The Progression.Manual tab
    allows you to easily do a manual progression on a specific race,
    or to modify the lane assignments created by the automatic progression.

  Bug Fixes:

  * Exporting and importing boolean fields now works.
  * Fixed a bug in the new non-scoring code that caused an error traceback
    when auto-calculating scores.
  * The Stages tab now includes a boolean "isFinal" field which is set
    to "true" for the final stage.  The Awards and Progression code now
    uses this flag to determine if a round is a final round, rather than
    using the name of the stage.  The usack-sports.txt file has been updated
    to include this field.
  * The Stages tab now includes a "number" field which is set to the
    progression number for that stage (e.g. 1 for Heat, 2 for Semifinal,
    3 for Final).  The Progression code now uses this number rather than
    the round number, so that it works even when additional rounds have
    been added in the middle for reraces (the rerace rounds are not included
    in the automatic progressions, so must be handled manually).
    The usack-sports.txt file has been updated to include this field.
  * In the Progress.Manual tab, the Person column no longer shows up as
    editable (i.e. with bold header) when the tab is first opened.
  * Exporting a SportSetup file now includes the Competitions.maxAlternate
    field.
  * When printing a Progress report for an event with a group that has an
    alternate entry, that group now properly prints the lane/results info.
    The alternate is now listed at the end of the group rather than the start.

  Miscellaneous Changes:

  * The top level Races tab has been renamed to "Race Day" to avoid
    confusion between it and the second level "Races" tab within it.
  * The "Open" gender in the usack-sports.txt file has been changed to
    "Mixed".  It now includes an "Open" Level.  The Competitions table
    now includes maxAlternate values.
  * The fields in the Progressions form are a little bit shorter.

===============================================================================

jraceman  v0.1.12  August 24, 2002  Non-Scoring Teams

  Enhancements:

  * JRaceman now supports non-scoring teams, such as international athletes
    competing in national championships.  The Teams tab now includes a
    "nonScoring" field which can be set to "true" on teams for which no
    scores are to be awarded.  For example, you could create a team called
    "International" into which all international athletes could be placed.
    When calculating scores, JRaceman first derives a "scorePlace" value
    by taking the existing place values and discarding any lanes containing
    people on nonScoring teams.  The resulting scorePlace values are used
    to calculate team points, rather than the regular place value which
    includes all competitors.  The Lanes tab includes the new scorePlace
    field.  You can also see the scorePlace values in the Finish tab, and
    you can edit those values if the Auto-Update Scores toggle is unset.
    In the Finish tab reports (Lanes, Results, and Score), if there is a
    difference between the score place and the overall place, two columns
    are printed in the report.
  * The new Awards report in the Finish tab produces a report, to be used
    when handing out awards, listing the first three finishers in an Event.
    If there are non-scoring competitors who finished in the top three places,
    the report will have two sections: in the first section, the top three
    scoring finishers are listed; in the second section, non-scoring finishers
    in the top three overall places are listed.  Awards reports are only
    generated for races which are Final-1 races.
  * The Award Labels tab now includes a "Labels For" choice that allows you
    to choose to print labels for Scoring finishers only, Non-Scoring
    finishers only, or both.  When printing both, Scoring finishers are listed
    before Non-Scoring (matching the order in which they are printed by the
    new Awards report in the Finish tab).  The place listed for Scoring
    finishers is the score place; the place for Non-Scoring finishers is
    the overall place, followed by "(Non-Scoring)".
  * When moving the cursor over a link in the Help window, the link location
    is now displayed in the status line.
  * The date/time formats in the Finish tab reports and the web schedule
    index have been improved.

  Bug Fixes:

  * Query tab operators other than "=" work once again.
  * Score points are no longer awarded for Final sections other than Final 1.
  * Award Labels are no longer printed for Final sections other than Final 1.
  * Fixed a resource-name problem that prevented the Scores web index from
    listing any links.
  * Fixed a null pointer exception bug when creating a Results By Level
    web report when some races have bad data.
  * Web reports in the Finish tab no longer include event numbers for special
    events with negative numbers.
  * Web reports in the Finish tab no longer include races with no lanes.
  * The Place column of the Score Details report now prints a blank instead
    of a random number for team and person summary rows.
  * Award Labels for events with no date on the Final1 race no longer print
    "null" for the date, but leave it blank.
  * The output of Upgrade and Check Upgrade commands from the Database menu
    now appears in the Messages tab rather then being lost.

  Miscellaneous Changes:

  * The order of levels in the Results By Level and the Score by Team and Level
    reports has been modified so that the Open (any age) level comes first.
  * The order of fields in the Lanes tab has changed.
  * The Awards tab has been renamed to Award Labels.
  * The order of columns in the Lanes, Results, and Score reports (in the
    Finish tab) has changed: the Result column now comes before Place.

===============================================================================

jraceman  v0.1.11  August 11, 2002  Web Reports

  Enhancements:

  * The Meets tab now includes a "Web Reports Directory" field for specifying
    the root directory for web reports.  There are various Web Reports (see
    below) which create HTML files directly into this directory hierarchy,
    complete with all necessary links and index pages to easily navigate
    the reports using a web browser.
  * The new "Web Per-Day" report format in the Schedule tab generates a set
    of files in the "schedule" subdirectory of the Web Reports Directory
    (see above) with the schedule of races for the selected meet.  There is
    one page for each day of the meet, plus a schedule index page that
    points to all of the per-day pages.  Note that Races with scheduledStart
    times outside of the start/end times of the meet will not be listed.
  * The new "Web Lanes By Race" report format in the Finish tab generates
    a set of files in the "lanesByRace" subdirectory of the Web Reports
    Directory (see above) with the lane assignments for all selected races.
    Each race is listed in a separate file, and an index file is created
    with pointers to each file.  You can select one race at a time and
    generate the lane assignments for it, and it will be added to the
    previously generated reports in the lanesByRace directory.
  * The new "Web Results By Race" report format in the Finish tab generates
    a set of files in the "resultsByRace" subdirectory of the Web Reports
    Directory (see above) with the results for all selected races.
    Each race is listed in a separate file, and an index file is created
    with pointers to each file.  You can select one race at a time and
    generate the results for it, and it will be added to the previously
    generated reports in the reportsByRace directory.
  * The new "Web Results By Level" report format in the Finish tab generates
    a set of files in the "resultsByLevel" subdirectory of the Web Reports
    Directory (see above) with the results for all selected races.
    All results for races in the same level are listed in one file,
    and an index file is created with pointers to all of the level files.
  * The new "Web Teams", "Web People", and "Web Details" reports in the
    Score tab produce the corresponding reports directly into the "scores"
    subdirectory of the Web Reports Directory (see above).
  * The new "Teams and Levels" report in the Score tab produces a table
    with one line for each team listing the total points for that team at
    each level, plus the total for all levels.  The last line of the table
    gives totals for each column of the table.  The "Web" version of this
    report generates output directly into the "scores" subdirectory of the
    Web Reports Directory (see above).
  * In the Finish tab, there are now four options for controlling the paging
    when printing reports for multiple races: Matching/Single (one per page,
    formerly called Matching/Paged), Matching/Double (two per page),
    Matching/Pages (as many as will fit on each page without splitting a
    report across pages), and Matching/Packed (least use of paper, but races
    may get split across pages).
  * The new Enter Places By Lane button in the Finish tab simplifies entering
    the finish order (places) based on the lane.  If you are recording which
    lane came in first, which lane came in second, etc., then this new button
    will allow you to quickly enter that information, then move on to entering
    the times by place order.
  * The F4 key can now be used when editing data in the table in any Sheet
    tab in order to copy the contents of the cell above, then move down to
    the next row in the column.  This makes it easy to fill in a column or a
    section of a column with the same values by repeatedly pushing F4.

  Bug Fixes:

  * When saving Query Results as html, the column headers as displayed are
    now used in the HTML rather than the column names from the database.

  Miscellaneous Changes:

  * The button rows in the Finish tab have been rearranged: the report row
    is now on the bottom.
  * The formats of the Lanes, Results, and Score reports in the Finish tab
    have been modified.  The new format uses a smaller tinted header, and
    horizontal lines rather than full boxes in the body of the table.
  * The multiple report buttons in the Score tab have been replaced by a
    report format choice list and a single Generate button.

===============================================================================

jraceman  v0.1.10  July 20, 2002  Improved Finish tab

  Enhancements:

  * The Finish tab now includes Meet and Event selection fields, which are
    used by the new Query Events and Query Races buttons to make it easier
    to find and select a Race to be edited.
  * In the Finish tab, you can now report on multiple Races at once.
    The new "on" choice lets you choose whether to report on the Selected
    Race, or all Matching Races.  If reporting on multiple Races, you can
    choose to have each Race report appear on its own page (Matching/Paged),
    or pack them all together without explicit page breaks in order to reduce
    the total number of pages printed (Matching/Packed).
  * In the Finish tab, the Auto-Update Places toggle has been replaced by a
    ComboBox with a new choice, Results By Place.  When this option is
    selected, changes to the Place and Result values cause a check to ensure
    that the time values are sorted in the proper order to correspond to the
    place values.  If not, an error dialog is presented pointing out the first
    location where a sorting error is found.  This helps catch errors in the
    common situation where results are entered by first noting the lanes
    for each place (by filling in the Place values), then entering the Results
    by Place.
  * When a table is sorted by a column, that column is now marked with a
    down-arrow or up-arrow to indicate ascending (top to bottom) and
    descending (bottom to top) sort, rather than a plus or a minus.
  * An error dialog which displays a scrolled text box can now be resized
    in order to more easily read the error text.

  Bug Fixes:

  * The TwoColumn schedule report format no longer specifies a height value
    on the HTML tables, so browsers won't stretch out columns with less than
    a full set of rows.
  * Exceptions thrown from the Query Results browser (such as attempting to
    delete a row that has already been deleted) now appear in a dialog
    rather than being printed as a traceback to stdout.
  * When rearranging columns in the Query Results tab or in Sheet tabs, the
    sorting indicator (+ or - in the column header) now marks the right column.
  * The Event Number column in the Races display of the Schedule tab is now
    correctly labeled, rather than incorrectly displaying a duplicate
    "Race Number" label.
  * The editing table in the Finish tab no longer sorts itself after every
    data entry.  If you want to sort it after making changes, you must click
    on one of the headers, or reselect the Race.
  * Column types in display tables do a better job of getting the correct
    data display type in the face of null values in the column, as long as
    there is at least one non-null value in the column.  If you edit a value
    into a column which previously contained all nulls, the type may be wrong.
    If you can enter one such value and then re-query or re-search, the
    table should then display using the correct data type.

  Miscellaneous Changes:

  * The menu items dealing with the Query Results tab have been moved
    from the File menu into a new Query Results menu.
  * The menu items dealing with the Report tab have been moved
    from the File menu into a new Report menu.
  * The Print Help command has been moved from the File menu to the Help menu.
  * The Search Events button in the Progress tab has been renamed to
    Query Events.
  * The three separate report buttons in the Finish tab (Lanes Report,
    Results Report, and Score Report) have been replaced by a choice list.
  * When clicking on a column to sort it, each click on the same column
    toggles the direction of the sort.  Using the shift key is no longer
    required (and no longer works) to force a descending sort.

===============================================================================

jraceman  v0.1.9  June 29, 2002  Improved Scheduling Capabilities

  Enhancements:

  * The Schedule tab now includes an Event text field and operator, including
    an IN operator to allow querying on a set of Events.
  * The Schedule tab now includes a Race Date text field, to allow you to
    select only Races on a specific date.  This field is not used when
    the Query Events button is pressed.
  * The new Query Events button in the Schedule tab allows you to more easily
    get a list of Events into the Query Browser, from which you can select
    an Event in order to use the new Create Races button to create Races
    for the Event.
  * The Schedule tab now includes a Create Races subpanel just below the
    query fields.  This subpanel displays information about the currently
    selected Event and allows you to quickly get the list of Races for
    that event. The Create Races button allows you to create new Races
    for that Event for a specified number of entries or groups.
  * The Create Races functionality is now much smarter: it can create,
    delete, or modify existing Races as necessary to bring them in line with
    the new desired entry count, as long as the Event hasn't yet started.
    If there are results for any Races for the Event, JRaceman will refuse
    to automatically create or delete any Races for that Event.
  * There are now multiple report formats available for Schedule Reports,
    selected by a choice list in the Schedule tab.  The WithArea and
    WithoutArea formats are the old formats.  The new TwoColumn format
    prints out a more compact schedule with fewer details per race but more
    races per page.  Most people will find this format better for printing.
  * It is now possible to enter special non-race Events, such as Break or
    Lunch, to appear in the Schedule reports.  If you enter an Event with
    a negative event number, then you are not required to fill out the rest
    of the fields in the Events record.  You can then create a Race record,
    assign it a start time and race number but leave the other fields blank,
    and that will appear in the schedule reports.  If you have multiple items
    of the same type (such as multiple breaks), you can use one Event with
    multiple Race records for it.
  * Searches against DateSpec values now match against the entire timespan of
    the DateSpec; for example, you can find all people born in 1986 by
    entering just "1986" in the birthday field of the People Query tab.
  * The new Open Page command in the Help menu allows you to view any URL
    in the Help tab.
  * The new Print Help command in the File menu allows you to print the
    contents of the Help tab.
  * When printing HTML pages, special sequences are used to control printing.
    These are not standard HTML, so will not be recognized by other browsers.
    Most of the special controls are comments, so will be ignored by other
    browsers.  You will see these special PRINT comments if you save a report
    which uses them.  For example, generate a Two Column schedule report to
    see the use of the PAGEBREAK class marker and the MARGIN comment.

  Bug Fixes:

  * The text box in the error dialog is no longer so small.
  * Printing reports with more than one page of data now prints the whole
    report, rather than only printing (or previewing) the first page.
  * Print Preview no longer prints in the margin area for long pages,
    in order to match the actual printed output.

  Miscellaneous Changes:

  * The Schedule tab is now in the Meet Setup tab.

===============================================================================

jraceman  v0.1.8  June 17, 2002  Tested at 2002 Ted Houk Memorial Regatta

  Enhancements:

  * You can now directly edit the Place and Score values in the Finish tab
    by turning off the corresponding auto-update toggle.
  * When selecting a different race in the Finish tab, any changes you have
    made to the size and ordering of the columns in the lanes table are now
    preserved.
  * The Database->Checks tab now includes a "Max Alternate Entries" check
    to tell which people are entered as alternates into more than the maximum
    allowed number of events.
  * The Person and Event columns in the Lanes tab are now editable.  This makes
    it much easier to use that tab to edit Lanes entries.  Changing the Entry
    column for a row will update the Person and Event columns for that row;
    changing the Person or Event column will update the Entry column.  If
    there is no matching Entry for a Person/Event combination, the Entry column
    will be blank.  This is your clue to pick a different Person/Event
    combination, or to switch to the Entries tab and add an Entry record for
    that Person/Event.  Note that the Race column does not automatically get
    updated; if you change the Event (or if you change the Entry and it changes
    the Event), make sure you change the Race to match that Event.
  * The USACK sports definition now includes a Rerace stage.  When the
    progression can't resolve a tie by placing all tied racers into the
    same next-stage race, it will tell you with a dialog.  At this point,
    you can add a rerace: using the Races/Races tab, select the desired event,
    edit the existing races that come after the rerace to change their
    round number (this part is optional; it makes the Progress report look
    better), then add a new race for the rerace with the right round number.
    Use the Lanes tab to create Lanes entries for the racers in the rerace.
    Use the Finish tab to enter the times for the rerace, then use the Lanes
    tab to edit the lanes for the lanes into which the rerace finishers will
    progress.
  * There is now an "Open" level in the USACK sports definition, with no age
    limits.
  * The File command now includes a "Save Query Results HTML As" which saves
    the contents of the Query Results tab as an HTML file with a table in it.
  * The File command now includes a "Save Query Results Tab Delimited As"
    which saves the contents of the Query Results tab as a tab-delimited file.
  * When importing, the dialog for changed data now includes
    Yes/YesAll/No/Cancel buttons, rather than just OK/Cancel.  The cancel
    button now cancels the whole import, rather than just the current row.
    The No button skips the current row (which is what the Cancel button did).
  * The Races table now includes a number field to allow a schedule to include
    race numbers.  The Races/Races tab and Schedule tab can be used to edit
    this number.  The Race Number is included in the Schedule, Lane and
    Result Reports and in the header of the Finish tab.
  * The F6 key can now be used when editing data in the table in any Sheet
    tab in order to copy the value of the cell above plus 1, then advance to
    the same column in the next row.  This makes it easy to fill in a column
    with incrementing values by repeatedly pushing F6.
  * In the Schedule tab, a text field allows you to set the number of minutes
    to use for the F6 auto-increment key when used in the Scheduled Start or
    Actual Start columns.  This makes it easier to set up a schedule where
    each race is the same number of minutes apart.
  * The Lane column in the Finish tab is now editable.
  * The Entries tab now includes a Sheet tab to simplify entering and editing
    Entries.
  * The Lanes Report and the Results Report in the Finish tab no longer
    include the Score column.  The new Score Report includes that column,
    so is like the Results Report used to be.

  Bug Fixes:

  * When calculating the score for an event with more than one person in
    a group using ProgressionUsack, a group where all members are on the
    same team gets additional points equal to the size of the group divided
    by two (i.e. C2 and K2 get 1 extra point, C4 and K4 get 2 extra points).
  * When rearranging the columns in a table with some editable columns
    (such as in the Finish tab), the highlighted headers for the editable
    columns now properly follow the moved columns rather than highlighting
    the wrong column.
  * When creating a Lanes or Results report, null score values no longer
    prevent the report from being generated, but are replaced by 0.
  * When editing records with dates (such as the Birthday field of a person
    record), it no longer incorrectly claims the date has changed when it
    has not.
  * Creating or upgrading no longer dies with a strange null table name
    error.
  * Export no longer gives a null pointer exception (this bug was introduced
    in 0.1.7 when the Browse button was added).
  * Foreign key choice lists in Query and Sheet tabs now update properly
    when the foreign key data changes.
  * The "Save Query Results SQL" command now gets confirmation before
    overwriting an existing file.
  * Import update now works on table with multi-column keys.
  * When importing data and a row is missing some key data, the error message
    now specifically says that.
  * When printing a Lane report and the first lane is null, it no longer gets
    into an infinite loop doing nothing.
  * When selecting a new Event in the Progress tab, the info area on the right
    side of the input tab now scrolls to the origin.
  * Entering results and doing Progressions are now faster due to use of a
    single transaction for the entire operation.

  Miscellaneous Changes:

  * When resizing a Sheet, all of the resizing area now goes to (or comes
    from) the bottom (table) half of the sheet.
  * When resizing the top of the Schedule tab, all of the resizing area
    now goes to (or comes from) the bottom (table) half of the table.
  * The "Open" gender has been changed to "Mixed" in the USACK sports
    definition.

===============================================================================

jraceman  v0.1.7  June 1, 2002

  Enhancements:

  * The new Groups check in the Database.Checks tab checks for problems
    in the entries for group events, such as duplicate or missing
    positions or too many alternates.
  * The new Levels check in the Database.Checks tab checks for competitors
    racing in a level at which they are not allowed to race.
  * It is now possible to edit the results of most of the Database Checks.
    Double-click on a row to edit that row.
  * The Sheet tabs now include a Delete button to delete the selected item.
  * There is now a Preview button available in the Print Report dialog.
  * The Exception dialog now includes a "Save Traceback To File" button,
    making it easier to save an error traceback to send along with the
    description of a problem.
  * The Export tabs now include a Browse button next to the Output File field.
  * There are now tool prompts for the menu items: when you mouse over a
    menu item, a longer description of that menu item appears in the status
    line at the bottom of the window.
  * "Disqualified" (DQ) has been added as an Exception.

  Bug Fixes:

  * The minimum age for the Master class in usack-sports.txt has been
    corrected (from 18 to 30).

  Miscellaneous Changes:

  * In order to support the new Levels check, the Levels table now includes
    two new columns, minEntryAge and maxEntryAge, which define the age range
    of competitors allowed to race at each Level.
  * The default scoring points have been changed from 10,6,3,2,1 to 6,4,3,2,1
    (to match new USACK rules for 2002).

===============================================================================

jraceman  v0.1.6  May 18, 2002  First publicly announced version

  Enhancements:

  * The new Database tab and Database.Checks tab give you the ability to
    run consistency checks on the database in order to find data entry
    errors and constraint violations.  The Checks tab includes these checks:
    Genders; EntryCounts.
  * The Awards tab now includes a Preview button to let you see what the
    labels look like before you print them.
  * The new command line option "-database" (or the equivalent "-db")
    allows you to specify an alternate database to use.
  * The new command line option "-exportDb" allows you to export the
    standard tables from a database.
  * The alternate (/2) USACK and ICF progressions are now available.
    To select the alternate progressions, use the progression option
    "useAlternateProgressions".

  Bug Fixes:

  * In the Entries tab, duplicate entries (same Person and Event) are
    now detected and not allowed.

  Miscellaneous Changes:

  * If you cancel the startup dialog asking you if you want to create a
    database, it no longer shows you a "no database" dialog, but just exits
    immediately.
  
===============================================================================

jraceman  v0.1.5  May 3, 2002  First public links on the web

  Enhancements:

  * The new Awards tab in the Races tab provides a place to print labels
    for awards.  See the help-on-tab for details.
  * The Lanes tab has been reworked to make it possible to edit Lanes with it.
    It does not display as much information as before, so it may not be
    quite as useful for searches as before, but it is also less cluttered.
  * The new Sheet tab in the Lanes tab allows easier editing of groups
    of Lanes, such as if you need to manually assign lanes.
  * The Races tab has been reworked to make it better for editing Races.
  * The new Sheet tab in the Races tab allows easier editing of groups
    of Races, such as if you need to manually create races.
  * The F3 key can now be used when editing data in the table in any Sheet
    tab in order to copy the contents of the cell above, then advance to
    the next column in the row.  This makes it easy to fill in a row from
    the one above it by repeatedly pushing F3.
  * The Events tab now includes a Name field.  You can use this to override
    the default name of the event, which is generated from the various
    fields of the event.  If specified, the name will be used in reports.
    (You may need to run "jraceman -upgrade" on an existing database in order
    to add this new field.)
  * The "Changes Made" dialog now includes a Details button which shows the
    fields which have changed, including their old and new database values.
    (These values are not always the same as the displayed values, but are
    the actual values stored in the database.)
  * If you have a directory called .jraceman in your home directory (as
    defined by Java's user.home system property), then when JRaceman exits
    with an error message it will store a Java traceback in a file called
    error.txt in that .jraceman directory.  This is useful for debugging.
  * The Debug SQL tab now includes a "Get Last SQL" button that will load
    the most recent SQL statement executed by the program into the SQL text
    area.  That text area now has scroll bars when the text exceeds the size
    of the window.
  * The kit now includes a sample database (data/usack-nat2001-db.txt) with
    partial data from the USACK 2001 Nationals at Lake Natoma.

  Bug Fixes:

  * The addition of the Sheet tabs caused some bugs due to improper
    interaction with the Edit tab, the main visible symptom being the
    spurious opening of a "Changes Made" dialog when in fact no changes
    had been made.  This has been corrected.
  * Fixed a rounding bug in durations which would for example make the
    number 1.30 appear as 1.210.
  * The results browser in the Results tab no longer has an extra level of
    scroll bar.
  * The Save Report file dialog now remembers its directory between uses
    (within one execution of the program).

  Miscellaneous Changes:

  * The file data/canoe.sql is no longer included in the kit.  It has been
    replaced by data/usack-sports.txt, a JRaceman import file.

===============================================================================

jraceman  v0.1.4  April 21, 2002

  Enhancements:

  * The new Sheet tab in some second-level tabs allows adding and editing
    the records of that tab all on one page, like a spreadsheet.
    The new Tabs->Sheet menu allows you to quickly navigate to these tabs.
    The tabs which now have a Sheet tab for editing are:
    TeamSetup.Teams, TeamSetup.People, TeamSetup.Groups, MeetSetup.Events.
  * Date columns, such as the birthday field of the People table, can now
    accept partial date specifications, with only a year, a year and a month,
    or a year, month and day.  Date/time specifications can be made to the
    hour, the minute, the second, or fraction of a second.
  * During database initialization, upgrade messages now show up in
    the splash screen message line.
  * The various File Dialog boxes now display a prompt as the title.

  Bug Fixes:

  * Handling of date or date/time columns, such as is used in the
    Schedule tab, is improved.
  * The editing table in the Schedule tab no longer has an extra level of
    scroll bar.
  * The Import SQL file dialog now remembers its directory between uses
    (within one execution of the program).

  Miscellaneous Changes:

  * The "Sheet" commands have all been renamed to "Report" commands.
    Internal use of "sheet" within the program was also changed to "report".
  * The database type of the date columns (People.birthday, Meets.startDate,
    Meets.endDate, Meets.ageDate) has been changed from Date to String.
    The application handles converting this value to a DateSpec (partially
    specified date).
  * The short name now appears before the full name in the Teams tab.
  * The event number now appears just after the Meet in the Events tab.

===============================================================================

jraceman  v0.1.3  April 6, 2002  First release on the web

  Enhancements:

  * The new Details Score Sheet in the Score tab prints one line for each
    person and event for which points were scored, sorted by team, person,
    and event.  If a person scored in more than one event, a total line
    is printed for that person.  If a team has scores from more than one
    event or person, a total line is printed for that team.
  * The new Team Entries Sheet in the Events Query tab prints a summary of
    Entries with one line per team giving the team short and long names,
    team location, and total number of entered people and Entries for that
    team.  A final line gives overall totals for number of teams, people,
    and Entries.
  * The new Person Entries Sheet in the Events Query tab prints a summary
    of Entries with one line per person giving the team short name, the
    person name, and the number of Entries for that person.  A team total
    line for each team gives the total number of entered people and Entries
    for that team, and a final line gives overall totals for number of
    teams, people, and Entries.
  * The Help->About menu now includes three new items: Copyright, License,
    and History.  These commands display the files of the same name (but
    in upper case) in the main JRaceman directory.
  * The new Tabs menu makes it easier to find tabs with specific functionality.
    In particular, the Export and Sheet submenus in the Tabs menu allow you
    to quickly find and select the tabs which have those functions.
  * The new Export Standard command in the Database menu will export all
    of the standard data in the database (not included any additional tables
    and columns of which the program is not aware) to a JRaceman export file.
    This file can be imported using the Database->Import command into a new
    database in order to recreate the original database.

  Bug Fixes:

  * The secondary sort on the Team and Person Score Sheets is now in forward
    alphabetical order rather than reverse.
  * Importing fields with negative numbers now works.
  * Errors on import now include the line number of the error.

  Miscellaneous Changes:

  * The Entries Sheet button in the Events Query tab has been renamed to
    Event Entries Sheet to better distinguish it from the new Team Entries
    Sheet and Person Entries Sheet.
  * Exported files now include a version number and a line with application
    info.

===============================================================================

jraceman  v0.1.2  March 22, 2002  Limited release via CD

  Enhancements:

  * The Progress tab now allows selecting a Race as well as an Event.
    If a Race is selected, it uses the Event referenced by that Race.
  * The Progress tab now includes a Progress Sheet button which generates
    a report sheet showing all of the progress information for an event:
    lane assignments, results, and places.  This can be used to verify
    that the progression software is assigning lanes properly.
  * The Import command is now implemented.  You can now Import files that
    were previously exported with an Export command.  New rows are added,
    lines that match existing rows are ignored, and lines that will change
    an existing row present a confirm dialog.

  Bug Fixes:

  * Fixed a bug in ProgressionUsack in which it was assigning the wrong
    progression table, and was thus creating lane assignments as if there
    were more racers than there actually were.
  * The progress buttons in the right panel of the Progress pane are now
    more intelligent about when they are enabled, which should prevent the
    problem where buttons are disabled when they should be enabled.
  * The info area in the Progress tab now always updates when the tab is
    selected, to avoid stale data (and incorrect buttons enabled) after
    editing results in the Finish tab.
  * Scores now apply only to section 1 of the Final round, not all Races.
  * Format errors in a "results" value in the Finish tab now appear in
    a popup dialog.

  Miscellaneous Changes:

  * The Lanes table now includes records for OUT and BY lanes.  These are
    displayed in the Progress Sheet, and are used to help keep track of
    progressions.

===============================================================================

jraceman  v0.1.1  March 11, 2002  Limited release via email

  Enhancements:

  * Added Person Score Sheet in Races.Score tab
  * Improved installer on Windows.
  * Windows version allows the user to specify where the database goes, and
    stores its location in the Registry, rather than putting the database
    in the Windows directory.
  * Added Export tabs in SportSetup.Competitions, TeamSetup.Teams, and
    MeetSetup.Meets (for future Import command).
  * The remaining primary USACK progressions (BB1 and CC1) have been added.
    Progression AA has been renamed to AA1.
  * The ProgressionUsack progression now parses its options.
    The "multipleFinals" boolean option specifies that multiple final rounds
    are to be run.  If false or omitted, only one final round race is set up.
    The "useExtraLanes" boolean option specifies that, when there are 10
    entrants, they should all be run in a direct final.
  * The ICF progressions have been added to the ProgressionUsack progression.
    Use the "useIcfProgressions" boolean option to select these progressions.

  Bug Fixes:

  * The Place value in Score Sheets now handles ties correctly.
  * Input format errors (such as letters in a number field) now tell
    which field is in error.
  * Improved Date fields.
  * Clear the status line on any Button or Menu action, or when switching
    to a new tab.
  * The ProgressionUsack progression now handles best-time progressions
    properly. (coded; needs to be tested!)

  Miscellaneous Changes:

  * The mckoidb.jar file is no longer packaged into jraceman.jar, but is
    delivered as a separate file, unmodified from the Mckoi distribution.
  * The source files are now packaged up as src.zip, and the API documentation
    files are packaged up as apidoc.zip, which considerably reduces the
    size of the distribution.  These files are only needed for people
    who want to look at the source, so most people won't need to worry
    about unpacking them.  Instructions are included in README.html.
  * Renamed Version file to VERSION; renamed COPYING file to LICENSE.
  * The source kit now includes the unzip and jarinst sources.

===============================================================================

jraceman  v0.0.1  January 19, 2002  First release - limited release via CD

jraceman  v0.0.0  October 4, 2001  Project started
