Added a check to the transaction editor, which does not allow years less than 1900 or greater than 3000. If someone has a need of this, let me know and I can extend the dates a bit. This is added to prevent people from typing '08' as '2008', and having their transactions turn out being from 2000 years ago.

Added ability to customize the CSS for reports. If the files 'screen.css' and 'print.css' exist in the Buddi data folder (~/Library/Application Support/Buddi on a Mac, C:\Documents and Settings\\Application Data\Buddi on Windows, ~/.buddi on Unix), then we use those files instead of the default ones.

Removed crash notification - for months, the only crashes I have seen reported are either a) out of my control (in a third party library), or b) due to a known multi-threading issue which I am working on. Will re-enable this if I branch to Development again.

This is the first minor stable release since the 3.0 branch. It includes some incremental improvements over the 3.0 branch, including better performance, improved UI and HCI, and some bug fixes.

For now, I am combining the Development and Stable branches into this 3.2 branch. The reason for this is because the majority of my large / disruptive plans for Buddi are already implemented, and there is currently no point in maintaining two separate revisions. If, in the future, I see a need to make some major changes, I will branch out a new Development version.

Changed Moss to improve encryption / decryption across platforms. In particular, this should fix the problem with Leopard upgrades not being able to open the data files. ***IMPORTANT*** While you can open files created before this version, you may not be able to open files created with this version (or later) with previous versions of Buddi. Please make a backup of your data file before saving your files in this.

Added a check for background saves when quitting - if you try to quit when a background save thread is running, we block until the save is completed. Normally this will be within a second or two at most, but for large (> 100,000 transactions) it can be substantially longer.

(Windows Installer Only) Added an 'Uninstall from Registry' script for the Windows installer. This script will remove associations between Buddi and data files, translations, and plugins. You will still need to manually delete the rest of the program files, preferences, etc.

Added method List getBudgetedDates() in BudgetCategory (and associated API objects). This allows plugins to return a list of all dates for the given budget category which have a budget set to anything other than zero.

Added clone() method to Document. This will do a deep clone of the document, resulting in an entirely new Document object (with all associated component objects), but with all the user defined values (names, amounts, etc) being the same. Hidden values (UID, modified time, etc) may not be identical. The new object and the old object are guaranteed to not be identical (newObject != oldObject) and are guaranteed not to be equal (newObject.equals(oldObject) == false).

Added a "Data File Stats" option in the View menu to see how many transactions, accounts, etc are defined. This can help to diagnose performance issues, if there are tens of thousands of transactions.

Fixed bug #1859806 (Set the max VM memory to 512 MB for all packaged installations - this includes Windows, OS X, Debian, Slackware, and the generic .tgz. If running from source or from .jar, you must include the VM argument '-Xmx512m' to set this. This is only a problem for large data files, but there has been at least one reported case of this happening, so I figured I may as well increase the memory. The memory will only be used as needed, so you don't need to worry about Buddi using more memory than it did before.)

Fixed bug #1858672 (Even when tooltips are disabled, it still showed a tooltip for transactions).

Fixed a bug which may prevent new or updated transactions from using the currently entered date. The JXDatePicker widget does not 'commit' the date until focus is lost; this means that if you enter / change a date, and hit the OK button immediately, you will be using the last committed date, instead of the currently entered one. This can potentially affect both the transaction editor panel, as well as custom report date pickers.

Fixed a bug which did not correctly sum account type totals on the "My Accounts" tab, if the sum of all accounts of that type was more than about $14 million. I am not aware of anyone running into this bug in real life - if someone has, I would be happy to take the extra money which causes this bug to manifest itself! 8-)

Fixed a bug in which a NPE may be thrown when comparing transactions with null descriptions.

Fixed a bug in which an IllegalArgumentException may be thrown if an invalid value has been saved to Prefs for a filter state.

Fixed another bug which incorrectly caused a "Crash Report" email to be sent, when there was no reason to do so.

Updated French translation for 3.0 (Thanks to Jean-Jos? Mayol for this)

Updated the Russian translation for 3.0 (Thanks to Michael Krekin for this)

Fixed bug #1888523 (Thanks to Bryan Larson for submitting the patch for this)

Fixed NPE bug when launching Buddi for the first time

Fixed a bug in Moss which could result in a NPE when using SmartFileChooser

When upgrading to this version, we disable the sending of crash reports. Users can re-enable this manually if they choose to. The reason I am doing this is because there are currently a few types of uncaught exceptions which will trigger the crash report, but which don't actually *do* anything. While I am working on the root cause of these problems, there is no point in keeping people worried (and taking more of my time) by sending these.

Much more powerful budgeting capabilities. You can now specify different budgets for different months, as well as have multiple budget periods (e.g., Month, Quarter, Week, etc) for different budget items.

Many improvements to the user interface, and the UI architecture

Complete re-write of the backup / restore interface

New plugin API, which models the actual data much more closely than before, and should allow for more powerful plugins

New installer for Windows, which can set up Buddi and associate data files, translations, and plugins with the program.

Fixed memory / listener leak by using weak references in document listener list. This means that once all references to the object which created the document change listener are removed, the object can be GC'd. Before, the listener list itself counted as a reference, so all filtered lists and wrapper lists would not be GC'd.

Fixed bug #1837673 (Massive performance enhancements to transactions screen. The delay when adding transactions, as well as the auto complete box with lots of transactions, have been improved considerably as far as performance goes. Also I now cache the plugins, which greatly speeds the program up in the event of many active plugins)

Fixed a few more potential performance issues (thanks to Andrew Nichols for pointing these out)

Fixed bug #1843584 (Set both C / R when one of the To / From sources is a Budget Category or Prepaid account. These sources do not logically have their own separate cleared / reconciled flag, so it makes no sense to include that it in the model.)

Fixed bug #1843332 (Revert to Saved in Windows with one data file open exits Buddi)

ixed bug #1842787 (Opened windows too close to corner)

ixed bug with newer SwingX distros, which removed cell renderers from the table columns (thanks greatly to the good folks on the java.net forums for showing me the ColumnFactory, which solved the issue).