This file contains the versioning-information for Jacoto. Jacoto helps managing SGF-files. It displays their properties in a table and allows manipulating them in several ways. For more information on the features of Jacoto and for the newest release please check its web-page at http://www.gungfu.de/go/coding/Jacoto. If you encounter a bug or (even worse) a problem with Jacoto, please feel free to contact its author under jacoto@gungfu.de. Thanks for using Jacoto! Steffen Glückselig ------------------------------------------------------------------------------------- This file does not cover the changes prior to version 1.0. ------------------------------------------------------------------------------------- 1.00 ;-) 23rd of October 2001 B Now cascading windows opened with the "new"-command works correctly and nicely. B Got rid of this ugly display-error when "load"ing a table. Now the whole window gets redrawn correclty. Interestingly this is achieved by making it invisible for a longer time when loading. I wanted to make that time as short as possible ;-| B On "load"ing the current window used to change its size and position according to the restored settings from the last session. Now the propably differing (after resizing e.g.) settings of the current window are used. B Searching for the selected player does work now. B Statistics by color played does work now. B Sorting results is now more robust. It currently sorts "[Color] + by resign/time" correctly now, too. - The comboBox for the ViewerCommand, introduced in 0.29, is now expandable and entries can be removed, too. These changes are permanently stored in the preferences. When removing the window does not get closed. It just gets closed after clicking "Ok" or "Cancel". So it is more convenient now to remove entries. - Added "Reviewer"-column for records taken from the GoTeachingLadder. The table can be sorted with this criterion, too. - Jacoto now uses XML instead of object-serialization as format in which tables are stored. - Loading a table the records will get displayed in the order they were when the table was saved. U Robust when no name was selected but statistics were demanded. U Used to deadlock on startup if spezified FavoriteTable did not exist. This is now fixed. - Added possibility to retrieve informations on a reviewer from GTL's webpage automatically. A proxy can be used. - Available as InstallAnywhere-versions now (Windows, Mac and Unix supported). - The TablePopUp-menu is now shrinked. Somewhen it will get more context-sensitive allowing more entries totally. -> I am not able to produce big errors any more. I think the 1.0 is justified :-) Well, after more(!) than 30 versioning-steps anyway. 1.01 23rd October 2001 (later that day ;-)) - The text of dialogs for saving table/settings on program-termination is now better understandable. B The behaviour is now more bullet-proof, i.e. e.g. if the table couldn't be saved, though wished, the program will not terminate. - Adding a single file from a different directory than the recordsDirectory will now evoke the question wether that directory should become the new recordsDirectory. U This "Add" is now robust against the filechooser-selection not being a file. R The information wether the settings have been changed since last saved is now generated and memorized in FIT itself not in Jacoto. Same goes for Preferences. 1.02 November 5th 2001 U Added a JavaWebStart-version (using the nice unrecognizable ;-) Go-warrior-icon). B Now does not ask to save settings on exit even though the settings have not changed. (Bug occured due to R in last version...) 1.03 November 7th 2001 - Added the "What?"-menu-entry under "Help". 1.04 December 21st 2001 B Actually this has not been a real bug. Anyways... now jacoto.prefs, the configuration-file, gets stored in the user's home-directory. This is especially useful for the JavaWebStart-version since before this fix the config-file got stored on the desktop. 1.1.0 August 8th 2002 R Changed the system behind the version-numbers. a.b.c gives 'a' for main version, 'b' for changes and 'c' for fixes/small changes. - Introduced the SelectablePropertiesDialog-class which displays changed properties on program-exit and makes it possible to choose the ones that should get saved. - On scrolling over the comments-column the current comment gets displayed as a tooltip. And hey, this tooltip is capable of displaying several lines! (done with html) - The popup-menu is now context-sensitive. It differentiates between the Reviewer-column and the rest. - Reviewer is now as searchable as player's name. - Comments are now searchable. - Comments are editable in a separate dialog. This closes on pressing ESC, too. R All settings are now stored in the Singleton-class 'Preferences'. No other class has copies of these values. Standard-values for the entries in the preference-file are now kept centrally there, too. R 'SearchNext' got the usual F3-shortcut for "find next". U The keyboard-shortcut for Opening is now mapped to STRG+O, not L. This is more convenient, I think. U Well, not actually user-proof (see Legend). But the text displayed via the Help-menu gets wrapped into a JTextField so it is selectable and therefore easy to copy&paste into another application, e.g. a browser or email-program. Hope this helps getting feedback ;-) - Added SplashScreen which closes after everything (e.g. FavoriteTable) is loaded and ready for display. The SplashScreen can be turned on and off via a Settings-menue-entry. - All exceptions get caught and displayed. I hope by getting mailed these information to improve Jacoto faster. - Added Icon for window an taskbar. - The header of the column which is the criterion for sorting gets marked via a darker background-color. R Searching for a player now comes up with exact matches and no longer with matches that just contain the searched name, too. B Some settings got always saved. B The Popup-menu now always gets displayed fully . It happened to vanish at the right and bottom borders of the table if one of these happens to be the screen boarder ;-) R The FileInfos now get stored in a Vector. R The separate JacotoTableModel got merged into FileInfoTable resulting in FileInfoTableModel. This separation was simply too much. Most information had to be stored twice. The merging should speed up large tables and be better style. R Now uses own Tokenizer instead of StringTokenizer. (speedup) R Now uses a central SorterRegistry. All Sorters extend AbstractSorter. A new Sorter gets created via the Registry and the appropriate Sorter gets returned. So the Singleton-pattern gets used here heavily. This way every sorter gets instanciated just ones. This saves object-instanciations and should therefore (speedup) things a bit. This design (inheritance from AbstractSorter) helped to get rid of quite some code, mainly the one to find out which Sorter to use. R The Sorters are now visible in their package only. They can be accessed via the SorterRegistry by public static final strings containing their class-name. R Internally the keys for the java.util.Properties-subclass Preferences now are integers. This should (speedup) the comparison comparing to the formerly used Strings. These integers are static finals in Preferences. R Preferences stores these integers in an IntegerList if the value gets changed via the setProperty(int, String)-method. This list works like a set, so that canceling on exit (or any other action causing 'copies') won't cause dublicate entries. R Instead of 'PlayerBlack' and 'PlayerWhite' in the columnHeadings there are Images of black and white stones. This is done via the new class ColorHeaderCellRenderer. - Additionally to according to what column the table should be sorted now the DIRECTION of SORTING gets stored into the Preferences, too. That is: descending or ascending. U Now one does not have to select a row/column (via left mouse-click) in order to search for a player or get info on a reviewer over the popup-menu but the place where the right-clicked occured to open the popup gets considered, too. B It was not noticed when one of a comboBox in the settings-menu got deselected. R In the main-classes Jacoto, FileInfoTableModel, Preferences and FileInfo all Objectvariables got a leading underscore and are private now. Same goes for former protected-methods. B If a table got loaded into a new Window (the second open window) and the window got closed, the first window got a close-event, too. This was due to registering WindowClosing-Adaptor twice (cf. Jacoto.initFrame() -> LOADing) R Some classes moved into other (partly new) packages. (R The public-class FileInfo lost its public-status. This is better, layer-oriented style.) R The methods responsible for calculating statistics got extracted from Jacoto.java into a separate class. - The directory in which Jacoto got started gets written into .jacoto.prefs the preference-file. This should help remember where this file belongs to. ? It seems like ancestors of JDialog should use show to get displayed. At least this gives them the keyFocus for which I formerly had to struggle (and didn't succeed). If the dialog is modal show() will not return until the dialog is hidden or disposed (see API-Doc). R Commandline-options are no longer supported. B Jim Watson made the suggestion to not change the look&feel for Jacoto running on a Mac. He provided code now included in Jacoto.main(). Jim also put my attention to a problem occuring with sgf-filenames starting with digits in FileInfo.readSGFInfo(String content). The quick&dirty solution was to cover it in a StringIndex...Exception-block. R Changed Boolean.toString(boolean) to (new Boolean(boolean)).toString(). Wrapped global exception-handling in method Jacoto.globalExceptionHandling(RuntimeException). Both for compatibility with Java version 1.3.1 (thanks to Jim Watson). R Replaced the String.replaceAll-method with de.gungfu.jacoto.auxiliary.StringExtension.replaceAll() to work with java1.3.1. (Jim Watson) - On Mac OSX the preference-file now gets saved in a place the OS expects it. (Jim Watson) F The "This will replace the current table."-dialog changed from just an informational one to a dialog that could cause canceling loading a new table. R To speed things up FileInfoTableModel.extractShownInfos() now stores the result of its last call. Because it is often called using the same parameters, this is quite appropriate. - For the first run Jacoto's mainWindow will get displayed directly 'behind' the splashScreen, i.e. centered on the screen. The window now has almost the size of the splashScreen. B Actually this is a workaround for a bug in Mac's java-implementation. JCheckBoxMenuItem seem to fire twice. Jim Watson provided this workaround implemented in MainMenu.java and marked with //osx... 1.2.0 August 20th 2002 - Added drag&drop support for single SGFs, whole directories (recursive) and existing tables (jac-files). (thanks to Jim Watson) - Jacoto got a home @ sourceforge.net, too. This is mainly used for CVS. - Reintroduced commandline-switch: table to load on startup. - Added support for dynamic shortcuts (like the GIMP uses). 1.2.1 August 2002 - The recursion into subdirectories (for drag&drop) can be turned off via the settings. R Some refactoring to scale down those mammoth-classes. - Introduction of 'playlist'. A list of open tables to the left. The user can 'zap' through them. - Playlist supports drag&drop of jac-files and single table-entries (move row from one table to the other). 1.2.3 September 15th 2002 R XML-database got redone. (Jim Watson) B Sorting by clicking the table-headers now works again. (Event problem) - The changed properties displayed on exit now get lexicographically sorted. 1.2.4 September 17th 2002 B Fixed bug that would cause Jacoto to crash on fresh installs and/or missing preference file due to then empty tablemodel. 1.2.5 September 19th 2002 - Added icon for comment-column in main table. Put all icons into hashtable with id as key. R Implemented the playlist with an underlaying JTable now. This will later make it possible to edit entries easily. 1.2.6 September 23rd 2002 B Fixed bug in XML-reader due to some static-variables. 1.2.7 October 1st 2002 R Changed TextField in CommentEditingDialog.java into a TextPane. R JacotoTableCellRenderer went Singleton-pattern. B Tooltips in the table always showed "comment". - Now showing tooltips for all table-cells. R Abandoned using Threads to load the jac-files on startup into the playlist. Using threads won't make file-IO faster! 1.2.8 October 2nd 2002 B Tooltips only for cells with content. For empty cells tooltip is set to null. 1.2.9 October 6th 2002 R Little bit of refactoring and bugremoving in FileInfoTable. 1.2.10 October 16th 2002 R Replaced all the Vector-based stuff with ArrayList. Vector is a very old class, included in Java since version 1.0. I was told ArrayList is a 'better' (design -> implementing List-interface and such) implementation. 1.2.11 October 24th 2002 R Moved shortcut-package into Jacoto/de/gungfu/auxiliary/gui from ../auxiliary/ B Jacoto would crash on exit when saving new shortcuts. 1.2.12 October 27th 2002 R Beautified code. Removed unnecessary javadocs. 1.2.13 October 31st 2002 R Renamed all interfaces to start with 'I'. 1.2.14 March 11th 2002 Long time no see ;-| B Invoking an external viewer did not work correctly on Windows-Systems. (thanks to ralfdennerlein for pointing this out!) --------------------------- Legend: -: Feature added B: Bug removed U: Made user-proof ;-) R: Refactoring --------------------------- ToDos: (sorted in order of likeliness of implementation and/or importance) # throw Exceptions instead of nulls or empty Strings when errors occur! -> JUnit ' Add Buttons "Select all" and "Select none" to SelectablePropertiesDialog. - It would be nice to be able to edit the record-settings (e.g. to correct spelling mistakes) and write that changes back into the record-file. - Search over filename? - Statistik-Dialoge überarbeiten (OK-Button) - jeder Dialog sollte auch über ESC zu schliessen sein. - Grösse und Position von allen Dialogen sollen gespeichert und wiederverwendet werden. - Remember directory from last time using "Add". - viewerLocation gets treaten like viewerCommand (i.e. saved) and keep the both consistent (numeration). - Creating a new SGF directly from Jacoto, adding it to the current table. - Internationalize! * Automatic versioning-control over the internet. (**> JavaWebStart) - Add more defaults to the comboBox for viewerCommand (help from users needed). - Treat "Reviewer"-column more comfortable (e.g. searching). - There should be the option to open an extra window with all the games of a selected player. This could e.g. be interesting for browsing the GoTeachingLadder-archives. - Perhaps it would be better to store paths internally relative to jacoto's home-directory than to use absolute paths. That way jac-files could be exchanged between different computers and/or users. - "statistics by color played" and "win/lost/jigo" should become robust against differing names. E.g. "Takemiya Masaki" and "Takemiya Masaki 9dan" should find their way into the same statistic. I am not sure if this is really a must for the statistics, though. # Parser -> LinkedList (can't remember what this was supposed to mean) --------- If you have a point to add, please contact me - Steffen Glückselig - at jacoto@gungfu.de Would be great!