10/4/2017 - version 4.9
-Introduced LockedJTextField, an editor suitable for locked rows and columns.
-AdvancedJTable now assigns suitable editors for locked rows and columns, by default.
-TreeTable no longer needs its own StyleModel (DefaultTreeStyleModel), the style is applied internally from within the table.
5/4/2017 - version 4.8.6
-Fixed some mouse issues with editors under locked columns.
20/3/2017 - version 4.8.5
-Added a vertical line before the filter icon in DefaultFilterRenderer, in inline mode.
14/3/2017 - version 4.8.4
-The background selection color of ListRowHeader can now be changed.
9/3/2017 - version 4.8.3
-Fixed a bug with DefaultSortTreeTableModel throwing an exception when the structure of a node changes.
3/3/2017 - version 4.8.2
-Fixed a bug with DefaultSortTreeTableModel throwing an exception when the root node changes.
1/3/2017 - version 4.8.1
-Fixed a bug with ListRowHeader not adding mouse handlers.
22/2/2017 - version 4.8
-Fixed a bug with AdvancedJTable not giving the focus to a jcombox editor while editing.
14/2/2017 - version 4.7
-Added option in ListRowHeader to extend table column selection to all columns when a row is selected in the list.
-SortTableModel now notifies SorterListeners whenever the sort states change, sorting is about to start or has ended.
27/1/2017 - version 4.6
-ListRowHeader is now synchronized with the table, highlighting rows that are selected.
20/1/2017 - version 4.5
-Further optimized sorting and filtering.
22/12/2016 - version 4.4
-Fixed a painting issue when moving a grouped column that cannot be moved.
-Optimized performance of sorting and filtering for very large number of rows.
6/12/2016 - version 4.3
-Fixed a bug with FilterHeaderModel not applying custom filters correctly.
-DefaultFilterTreeRenderer can now use JTableHeader's default renderer for drawing the filter arrow.
-Fixed some scrolling issues with AdvancedJScrollPane.
-DefaultListRowHeaderRenderer can now use the TableCellRenderer of a JTableHeader for cell painting.
-Fixed some issues with TableCellResizer.
2/12/2016 - version 4.2.9
-Fixed a bug with AdvancedJScrollPane having trouble scrolling to the last column when left columns are set.
-Added ability in SortTableDefaultRenderer to change the sort icons and customize their painting position.
1/12/2016 - version 4.2.8
-Added SortTableDefaultRenderer, a SortTableRenderer implementation that uses JTableHeader's default renderer for drawing the sorting columns.
-DefaultFilterRenderer can now use JTableHeader's default renderer for drawing the filter arrow.
-Fixed a number of bugs when dragging group columns and locked columns are used.
21/11/2016 - version 4.2.6
-Fixed a bug with FilterHeaderModel not applying filters correctly in some cases.
-AdvancedJTable now never scrolls to the last dummy column.
18/11/2016 - version 4.2.5
-"Custom" option is now available for "free selections" in PopupFilterHeaderModel.
-AdvancedJScrollPane now paints faster when locked columns/rows are in place.
-Fixed some painting bugs with AdvancedJScrollPane when used with locked columns/rows.
-Prevented IllegalComponentStateException from being thrown from within the GUI classes.
-Fixed a bug in AdvancedJTable with the mouse behaving erratically when dragging cells and locked columns are present.
-Fixed some scrolling issues with TableReorder and subclasses.
-Fixed a bug with DefaultSortTreeTableModel throwing an exception when a row is being shown, after it has been updated while hidden.
11/8/2016 - version 4.2.4
-Added option in PopupFilterHeaderModel for selecting any filter value in the popup menu for multiple selections.
13/7/2016 - version 4.2.3
-Added methods in SortTableModel and FilterTableModel for controlling whether incremental sorting and filtering will be used.
8/7/2016 - version 4.2.2
-Optimized SortTableModel with incremental sorting.
27/6/2016 - version 4.2.1
-Optimized FilterTableModel by implementing incremental filtering, where appropriate.
27/5/2016 - version 4.2
-Optimized PopupFilterHeaderModel for a large number of filter data.
-Painting of the remaining space in the viewport, according to its color.
21/2/2016 - version 4.1.59
-Added option in TableAssistant to not resize columns if their width is already zero.
-Fixed a bug with TableCellResizer not resetting the cursor when the mouse leaves the table.
-Better handling of column additions in TreeColumnNodeMask.
-Added methods for showing/hiding a column in TreeTableHeader, by setting their width to zero.
2/2/2016 - version 4.1.58
-Improved resetColumns method of TableAssistant, so that it takes into account group columns as well.
13/1/2016 - version 4.1.57
-Mouse event absolute coordinates are now not changed during translations due to locked rows/columns.
4/1/2016 - version 4.1.56
-Fixed a bug with TableComboBoxEditor not displaying the popup in the correct position when locked rows/columns are in place.
-Optimized AdvancedJScrollPane's painting routines.
-Added method resetColumns to TableAssistant to synchronize the columns of the column model with the selection popup and dialog.
16/6/2015 - version 4.1.55
-Optimized painting behaviour of AdvancedJScrollPane, when locked rows/columns are in use.
-Optimized drawing of spanned cells.
20/3/2015 - version 4.1.54
-Fixed a bug with PopupFilterHeaderModel not running properly under java 1.4.
-Fixed a bug with TableAssistant clearing all columns from the column popup, when the same table model is assigned twice.
10/3/2015 - version 4.1.53
-Fixed a bug with PopupFilterHeaderModel not releasing the filter button after a custom filter is selected.
3/3/2015 - version 4.1.52
-Fixed a bug with PopupFilterHeaderModel not correctly capturing mouse events on the filter popup, in some jvms.
10/1/2015 - version 4.1.51
-Fixed a bug with ColumnFilterHeaderModel not showing the filter control under some columns.
9/1/2015 - version 4.1.50
-Added method in PopupFilterHeaderModel to control the minimum width of the filter popup menu.
-Added controls in PagingPanel to change the page size and current page number.
18/12/2014 - version 4.1.49
-Added an implementation for page navigation inside a table.
3/11/2014 - version 4.1.48
-Fixed a bug with the table not being painted properly after a sort event and when row heights are changed.
3/10/2014 - version 4.1.47
-Improved performance of PopupFilterHeaderModel when a filter popup opens, containing a large number of entries.
29/9/2014 - version 4.1.46
-TableAssistant now keeps the 'show children' property of group columns when these are hidden from the view.
31/7/2014 - version 4.1.45
-Fixed an issue with AdvancedJScrollPane not scrolling to the correct cell when locked columns are in place and a new row has been added.
30/7/2014 - version 4.1.43
-Fixed sorting with the keyboard for grouped columns.
1/7/2014 - version 4.1.42
-Fixed an issue with AdvancedJScrollPane not scrolling to the correct cell when locked columns are in place.
4/6/2014 - version 4.1.41
-SortTableModel can now be sorted using the space key, when a column is in focus. Having the ctrl key also pressed, adds a sorting column, whereas holding the shift down, releases it from sorting.
2/6/2014 - version 4.1.40
-PopupFilterHeaderModel now shows columns that are in focus.
-The filter popup menu of PopupFilterHeaderModel is now displayed when the down arrow key is pressed inside a focused column, and can be navigated with the left and right arrow keys.
-Optimized painting of moving grouped columns.
-SortTableRenderer now shows focused columns.
27/5/2014 - version 4.1.39
-The filter popup menu of PopupFilterHeaderModel can now be navigated with the arrow keys.
-Fixed an issue where the popup menu of PopupFilterHeaderModel was wrongly assigned as the first focusable component of an AdvancedJTable.
-CheckComboBox's items can now be selected with the 'space' key.
-AdvancedTableHeader can now show which columns are in focus.
23/5/2014 - version 4.1.38
-Fixed an issue where some components were not updated properly after the UI had changed.
-Added method shouldShowFilter to PopupTreeFilterHeaderModel for determining when a filter indicator should be shown on the column header.
21/5/2014 - version 4.1.37
-PopupTreeFilterHeaderModel now uses a single instance of a FilterTreeRenderer to paint the filterable header component.
-GroupTableHeader now uses a row index of -1 for its header component, when a column is not grouped.
13/5/2014 - version 4.1.36
-Fixed a bug with the combobox editor not being cleared properly when using spanned cells.
-DefaultSortTreeTableModel now clears affected cells only, after a tree structure change event.
12/5/2014 - version 4.1.35
-Fixed a bug with TableAssistant not being cleared properly after the structure of the table has been changed.
-Fixed a bug with DefaultSortTreeTableModel not refreshing its indices after its structure has changed.
-Added method to SortTableModel (#setReturnToStringComparator) for determining whether a Comparator that compares strings is returned for objects that do not implement the comparable interface.
-Made the popup menu of a cell's combobox editor to be displayed after a different cell in the same column is being edited.
8/5/2014 - version 4.1.34
-Improved painting for TableComboBoxEditor.
-Added GenericEditor for validating edited cell values before committing them.
-Added method setDefaultEditors to AdvancedJScrollPane that assigns editors for use with locked columns.
7/5/2014 - version 4.1.33
-Fixed a painting issue when a JCombobox is used as an editor, in combination with locked columns.
1/5/2014 - version 4.1.32
-Fixed an issue with JCombobox editor stopping editing, when the editing column is inside a locked column.
24/4/2014 - version 4.1.31
-Fixed some painting issues with TreeTable.
-Fixed a bug with TableAssistant displaying duplicate columns when the table's data model is reassigned.
25/3/2014 - version 4.1.30
-AdvancedTableHeader now clears columns of any listeners, when its table is set to null.
11/3/2014 - version 4.1.29
-Fixed a bug in TableAssistant not showing group columns after these had been hidden.
6/3/2014 - version 4.1.28
-Added method in TableAssistant for checking whether a column is hidden from the view or it does not exist at all in the table model.
17/2/2014 - version 4.1.27
-The filter popup menu is now reduced in size, when a column's width is very large.
-The filter popup menu now displays properly for non-frozen columns.
-Added option to DefaultFilterTreeTableModel to assign the maximum number of entries that the model can present as its filter values.
14/2/2014 - version 4.1.26
-Fixed a bug with DynamicTreeTableModel erroneously creating an ungrouped row when a comparator's setAlwaysCreategroup variable is set to false.
7/2/2014 - version 4.1.25
-Fixed a bug with TableAssistant not creating the column popup menu properly after a column has been removed or added, and there were deselected columns in the model.
5/1/2014 - version 4.1.24
-Fixed a bug with a null pointer exception being thrown from PopupFilterHeaderModel in some extreme cases.
9/12/2013 - version 4.1.23
-Fixed a bug with converting filters between different library versions.
27/11/2013 - version 4.1.21
-SortTableModel and FilterTableModel now return an iterable list of rows.
16/9/2013 - version 4.1.19
-Changed GroupingPanel and NodeGroupingPanel so that developer can define the columns and order that grouping is provided.
29/8/2013 - version 4.1.17
-DefaultSortTreeTableModel can now accept user's SortTableModel for custom node sorting.
21/8/2013 - version 4.1.16
-SortTableModel can now be set whether to sort null values in a general way or delegate null-value sorting to the comparators.
12/7/2013 - version 4.1.15
-Fixed a bug with SortTableModel and FilterTableModel, when searching their list of objects.
1/7/2013 - version 4.1.14
-Changed the way dragged group columns are painted.
-Fixed a bug with the column chooser dialog, when selecting multiple columns holding the CTRL key.
13/6/2013 - version 4.1.13
-Fixed a bug with DynamicTreeTableModel not creating nodes properly when a custom comparator is used.
22/5/2013 - version 4.1.12
-Added a property change listener to the view of an AdvancedJScrollPane that gets notified every time a bound property changes.
20/5/2013 - version 4.1.11
-Fixed a bug in GroupTableHeader that didn't allow the moving of group columns in some cases.
-Fixed a bug in the filtering of columns that showed the dummy column as a valid choice.
18/4/2013 - version 4.1.10
-Fixed a bug in TableAssistant that wrongly deselects a group column that shares the same name with another one.
6/3/2013 - version 4.1.9
-Added option in SortTableModel for specifying the position of null values, beginning or end, during sorting.
27/2/2013 - version 4.1.8
-Added option in DefaultFilterRenderer for showing the filter icon inline in the header, instead of using a separate component.
-TreeTableModelAdapter now updates a single row, instead of the whole table, when a treeNodesChanged is received from the TreeTableModel.
29/1/2013 - version 4.1.7
-Fixed a bug with TableAssistant not being able to discriminate between group columns sharing the same header value.
24/1/2013 - version 4.1.6
-Fixed a problem with GroupTableHeader throwing a NullPointerException when the table argument to the getTableCellRendererComponent method of a TableCellRenderer is null.
22/1/2013 - version 4.1.5
-Fixed a problem with AdvancedTableHeader not setting header renderers correctly.
21/1/2013 - version 4.1.4
-Added methods to FilterHeaderModel for assigning and retrieving filters.
15/1/2013 - version 4.1.3
-AbstractTreeTableModel now makes sure to notify JTree's UI listeners first before anything else, after a model update.
-Improved AdvancedJScrollPane's painting performance when columns are being added or removed to the table.
-FilterHeaderModel is now repainted after a filter is added or removed from a column.
-A filter event is now propagated to listeners when a filter is removed from FilterHeaderModel.
9/1/2013 - version 4.1.2
-Fixed a bug in FilterHeaderModel throwing an exception when a filter is added to a column that does not have a filter installed.
7/1/2013 - version 4.1.1
-Added SingleTreeTableModel for easily displaying a treetable with a single column.
-ListRowHeader's updateUI method is now only called when the L&F changes.
-Fixed a bug with the table not being repainted correctly when the column selection changes in some cases where right fixed columns are used.
-Renamed DefaultPivotTableModel in the com.citra.table.db package to DefaultCrosstabTableModel, so that the names do not clash with classes from the pivot library.
21/12/2012 - version 4.1
-Removed the need for components modifying a table header, like FilterHeaderModel, TreeTableHeader, ViewableResizer, to use a renderer on each column. TableCellRenderers are now provided by specialized factory classes. This mechanism improves on memory, speed, manageability and simplicity.
-ListRowHeader's UI is now refreshed when the applications UI is updated, if the component is not visible.
-Improved performance of creating the column popup when a popup order of VIEW_ORDER is used.
-AdvancedJScrollPane now paints faster when locked rows/columns are used.
7/12/2012 - version 4.0.42
-Added methods to GroupTableColumnModelListener for notifying listeners when a group column's structure has changed.
-Fixed a bug with CheckBoxTreeSelectionModel not correctly adding selection paths when partial selection is enabled.
7/12/2012 - version 4.0.41
-Added method in DefaultTreeTableHeaderRenderer for returning the icon to be used at a given node in the header.
-TreeTableColumnModelMap now correctly invalidates the previous column count when an event is received from the underlying model.
-TreeTableModelMask now re-evaluates the root node when this changes from the underlying model.
3/12/2012 - version 4.0.40
-Improved performance of CheckBoxTree when partial selection is enabled.
19/11/2012 - version 4.0.39
-Buttons in TableAssistant's column dialog are resized to their preferred widths.
-Ensured that TableAssistant's column dialog always has the application frame as owner.
16/11/2012 - version 4.0.38
-Removed flicker from AdvancedJScrollPane when a fixed column exists on the right of the table and columns are added, removed or moved.
-ListRowHeader now starts counting from one, instead of zero.
-Fixed a bug with TreeModelMaps not correctly assigning a new underlying TreeModel.
13/11/2012 - version 4.0.37
-Fixed a bug with TableAssistant not correctly processing columns visibility if they share the same name with their group column parents.
12/11/2012 - version 4.0.36
-CheckComboBox's real renderer now changes whenever a new renderer is assigned.
10/11/2012 - version 4.0.35
-Removed reference to demo classes from the library, added by mistake.
6/11/2012 - version 4.0.34
-Improved performance of CheckComboBox.
-Fixed a bug with PopupFilterHeaderModel's filter popup not being displayed after the ok and cancel buttons were clicked.
20/10/2012 - version 4.0.33
-SortTableModel now by default uses a Comparator that compares objects according to their string values, if the objects do not implement the Comparable interface.
19/10/2012 - version 4.0.32
-Fixed a bug with AdvancedJScrollPane not respecting the ALWAYS horizontal scrollbar policy.
16/10/2012 - version 4.0.31
-Fixed a bug with LevelColumnFilterHeaderModel not correctly applying filters at the root level.
10/10/2012 - version 4.0.30
-TableAssistant's column dialog is now disposed for it to be garbage collected.
3/10/2012 - version 4.0.29
-Added support for converting filters from older table versions to the current one, as well as from .sciapp package filters to .citra (see FilterHeaderModel.convertFilterState).
28/9/2012 - version 4.0.28
-Added CheckComboBox, a combobox with checkboxes for selecting multiple values.
-Fixed a bug with TableAssistant reverting the widths of visible columns when another column was hidden and subsequently shown.
22/9/2012 - version 4.0.27
-Improved scrolling performance of the table header.
3/9/2012 - version 4.0.26
-Fixed a bug with the table state not being applied properly when the column dialog has not yet been initialized.
24/8/2012 - version 4.0.25
-TreeNodeComparator can now be serialized.
-Fixed a problem with NodeGroupingPanel not correctly synching with the model.
-Modified TreeFilterHeaderModel to use columns' model index parameter instead of the view index.
-Added support in TreeFilterHeaderModel for having filter controls in group columns as well.
-Added feature to TreeTableHeader that controls a parent's column visibility when this is expanded (see TreeTableHeader.setHideColumnOnExpansion).
29/7/2012 - version 4.0.24
-Fixed a bug with TableAssistant not behaving correctly when showing columns under a column group.
11/7/2012 - version 4.0.22
-Fixed a bug with the binary distribution throwing a NullPointerException when a PopuFilterHeaderModel is used.
6/7/2012 - version 4.0.21
-Fixed a bug with the mutiple selection filter in PopupFilterHeaderModel not showing correctly in some older java versions.
4/7/2012 - version 4.0.20
-Added a property in CheckBoxTree for notifying when the checkboxtree selection model changes.
-The buttons in TableAssistant's column chooser now always get updated whenever the table's row selection changes, no matter if the table has the focus.
2/7/2012 - version 4.0.19
-Improved performance of TreeTableHeader when synchronizing level and node filters.
29/6/2012 - version 4.0.18
-Level and node filters for the columns of a TreeTableHeader are now synchronized with each other.
25/6/2012 - version 4.0.17
-Fixed a bug in SpanDrawer when using a cellspan with a row or column span of ALL_ROWS or ALL_COLUMNS respectively, and the spanned row or column is not 0.
21/6/2012 - version 4.0.16
-Introduced ColumnNodeFilterMapper for filtering the nodes of a treetable column model at each node.
20/6/2012 - version 4.0.15
-Improved the performance of PopupFilterHeaderModel's multiple selection filter.
19/6/2012 - version 4.0.14
-Fixed a problem with FilterTableModel not behaving properly under java 1.7.
16/6/2012 - version 4.0.13
-Fixed a bug with LevelColumnFilterHeaderModel throwing an exception when the column levels is one.
-Added TableColumnFilter for filtering the table columns based on their model index attribute.
6/6/2012 - version 4.0.12
-Added method for loading and saving the filter state of a DefaultFilterTreeTableModel.
-The filters of a PopupTreeFilterHeaderModel can now be easily saved and restored by using the above DefaultFilterTreeTableModel methods.
31/5/2012 - version 4.0.11
-Fixed a bug with the table state not being applied properly when a TreeTableHeader is used.
-Fixed a bug with SortTableModel throwing a null pointer exception in some extreme cases.
20/4/2012 - version 4.0.10
-Fixed a bug with TreeTable not expanding and selecting nodes properly after a model update, if the root is shown.
13/4/2012 - version 4.0.9
-Fixed a bug in SortTableModel entering a loop when a DefaultSortTreeTableModel is used and the table's columns are being reconstructed due to an event.
29/3/2012 - version 4.0.8
-You can now assign a table header in SortTableModel at any given point.
16/3/2012 - version 4.0.7
-Fixed a bug with numerical filters not filtering out null values.
20/2/2012 - version 4.0.6
-Fixed a bug in SortTableModel and FilterTableModel not sorting/filtering correctly when they are in a not-allow sort/filter state respectively.
25/1/2012 - version 4.0.5
-PopupFilterHeaderModel now allows the selection of multiple filter values via a checkbox popup filter.
-Added options "is in" and "is not in" to the visual filters for selecting multiple filter values.
-Removed deprecated methods and variables from JAutoFilter and PopupFilterHeaderModel.
-Fixed a bug in AdvancedJTable with tooltips not displaying properly when the table's model changes and the tooltip is about to show.
19/1/2012 - version 4.0.4
-Added option in VisualFilters for having a text or a combo box as input for the filter values.
-Custom AutoFilterPanels can now be assigned without the need for subclassing JAutoFilter.
-Added options "is empty" and "is not empty" to the visual filters.
-Added GenericVisualFilter that is used by GenericAutoFilterPanel for filtering objects other than strings, dates, booleans or numbers.
-Added method in CustomPopupFilterHeaderModel for installing custom filters programmatically.
-Improved AutoFilterPanels by copying instead of assigning the various Filter objects.
-Custom filter selection in the autofilter dialog is cancelled, and not removed, when the custom filter dialog is closed by clicking on the 'X' top right close button.
-VisualFilters are now not applied when the filter value is empty. The options "is empty" and "is not empty" can be used instead.
-Fixed a bug with ListRowHeader not correctly displaying tooltips.
-Added a few modifications to the Demo classes.
14/1/2012 - version 4.0.3
-TristateCheckBox is now enabled only with the left mouse button.
-The order of both visible and invisible columns is now persisted when saving and restoring the table state of an AdvancedJTable.
-Added modes in ListRowHeader so that the preferred width is calculated, according to the first, last or all of its rows.
-Added a checkbox in the column dialog of TableAssistant, for selecting/deselecting all columns with one click.
-Fixed some issues in the column dialog regarding the key search functionality.
-The buttons in the column dialog are now updated only when the user finalizes the column selection.
-Fixed a bug in TableAssistant not correctly building the column popup menu, when a mode of PUSH_INVISIBLE_TO_END is used.
-The group column state can now be saved and restored in GroupTableHeader.
12/1/2012 - version 4.0.2
-PopupFilterHeaderModel can now be garbage collected without the need for calling the removeFromTable() method.
-Fixed a bug in SortTableModel and FilterTableModel not working properly when assigning a new underlying model.
-When removing sort columns in SortTableModel by holding down the Alt key, menus in the application frame do not become selected.
-When hiding columns using the column dialog, TableAssistant makes sure that at least one column will be visible, no matter if the last column is present.
-When hiding the only visible column using the column dialog, that column remains visible, instead of showing the first one in the table.
10/1/2012 - version 4.0.1
-Fixed a bug with SpanDrawer not taking into account the updateSelections flag when selecting merged cells.
8/1/2012 - version 4.0
-Renamed packages from com.sciapp. to com.citra.
25/11/2011 - version 3.9.55
-AdvancedJTable now correctly repaints the selections when using merged cells.
-Added method to TableAssistant for repositioning the columns in the column dialog according to the order in the column popup (TableAssistant#orderDialogToPopup)
22/11/2011 - version 3.9.54
-Fixed a bug in DefaultSortTreeTableModel and DefaultFilterTreeTableModel throwing an exception when the underlying models are updated and the affected nodes are not visible.
-Added GenericAutoFilterPanel for filtering objects other than strings, dates, boolean and numbers. This panel uses a java.text.Format in order to convert the filterable objects to strings and vice-versa.
-Updated StringFilter to keep the object assigned as the filter pattern, instead of converting it to a string.
26/9/2011 - version 3.9.53
-Fixed a bug with GroupTableHeader not updating columns correctly when they are moved programmatically.
6/9/2011 - version 3.9.52
-Fixed a bug with TreeTable not updating correctly when a tree node is removed from an expanded node.
5/9/2011 - version 3.9.51
-Fixed a bug in SortTableModel and FilterTableModel throwing an exception when a ListTableModelWrapper is used as the underlying model.
-Fixed a bug in DefaultFilterTreeTableModel throwing an exception when a child is inserted to a node that is not visible.
25/8/2011 - version 3.9.49
-Fixed crash in AdvancedJScrollPane in jre 1.7.
-Improved searching by adding the ability to search for values other than the ones returned from the table (e.g. values in renderer).
18/8/2011 - version 3.9.48
-Fixed notifications sent from underlying TreeTableModels in TreeTableModelMasks, when the notification is a node changed event.
21/7/2011 - version 3.9.47
-Fixed a bug with JTable crashing when a row is removed and the row height is being changed for the first time.
20/7/2011 - version 3.9.46
-Created ColumnChooser class that contains the dialog for managing the columns of a table.
-The column dialog is now properly resized.
-Key presses on the table of the column dialog will now find the next possible column name match.
21/6/2011 - version 3.9.45
-Previously expanded nodes and cell selections are now restored in a TreeTable, after a model update.
17/6/2011 - version 3.9.44
-After cell editing, the edited cell is now selected.
-Fixed a bug in TreeTable not repainted correctly after a data update.
18/4/2011 - version 3.9.43
-Dialog in CustomPopupFilterHeaderModel is now disposed after being closed, so that it can be garbage collected.
5/4/2011 - version 3.9.42
-Added method to CheckBoxTree to determine whether the checkbox of a given tree path can be selected/deselected from the UI.
15/3/2011 - version 3.9.41
-Optimized table painting routines when the table's selection changes.
28/2/2011 - version 3.9.40
-Fixed a bug in TableAssistant not correctly populating the column dialog when group columns are defined.
17/2/2011 - version 3.9.39
-DefaultSortTreeTableModel and DefaultFilterTreeTableModel now send a more indicative tree model event, when nodes have been removed.
15/2/2011 - version 3.9.38
-Fixed a bug with moving a column at the beginning, when AdvancedJTable has the first column fixed.
-TableCellResizer and TableAssistant now take into consideration the cell spans when auto-resizing columns.
-When the treetable is expanded, selections are disabled until the mouse is released.
-Fixed a bug with the COMMIT_EDIT mode of the table, that was causing duplicate calls to setValueAt.
13/2/2011 - version 3.9.37
-Optimized cell rendering when a viewable resizer is in use.
-Optimized cell rendering when merged cells are present.
1/2/2011 - version 3.9.35
-Defined editing behaviour in AdvancedJTable when the table is editing and its data model changes. Default behaviour is to discard any changes made.
15/12/2010 - version 3.9.32
-Fixed a bug with columns not being correctly moved, added or removed in a TreeTableHeader.
11/12/2010 - version 3.9.31
-Updated some javadoc comments.
-Added method in TableAssistant for recreating the column popup and dialog.
-Fixed a few bugs with the acceptNull property of Filters.
-CustomPopupFilterHeaderModel is initialized with the filter currently assigned.
17/11/2010 - version 3.9.26
-Added method for invalidating the columns of a TreeTableColumnModel.
-The component of DndSupport can now be changed anytime.
11/11/2010 - version 3.9.25
-Some minor improvements regarding spanned cell rendering.
26/10/2010 - version 3.9.24
-Included an option to SpanDrawer to make it make the table's cell grid lines itself, instead of the table (see setBorderPainted).
19/10/2010 - version 3.9.23
-Improved the rendering of TreeTableHeader.
14/10/2010 - version 3.9.18
-Now able to get the height of a group column as it appears in the header.
-Added method groupLevelAtPoint in GroupTableHeader, to get the level of the group column at a specified point.
-Reorganized classes in the com.sciapp.table.group package.
-Fixed an issue with eclipse hanging when using the library in design time.
8/10/2010 - version 3.9.15
-CheckBoxTree now uses a WrapperCellRendererPane instead of a JPanel for its renderer.
-Fixed a bug in TreeColumnModelMask when the underlying's model root is changed.
6/10/2010 - version 3.9.14
-Added method in DefaultFilterTreeTableModel for clearing the filtering states.
-Added option in NodeTreeTableModelMap to show the node's children.
30/09/2010 - version 3.9.13
-Added column listener to ViewableResizer for attaching it to columns that have been added.
-Improved the design of the TreeHeaderControl, so that events are processed by the renderers.
23/09/2010 - version 3.9.11
-Fixed a problem with setting a new style to TableStyleSelector.
22/09/2010 - version 3.9.10
-Implemented 'column mode' search for the search panel.
13/09/2010 - version 3.9.9
-Added option to SearchPanel to control whether the search should be reset when the search text changes.
7/09/2010 - version 3.9.8
-TreeTable now repaints itself appropriately when the icons of the tree cellrenderer change.
6/09/2010 - version 3.9.7
-TableAssistant: the column header's value is now not casted into String.
-SortTableModel: added method for setting the SortTableModel's renderer.
1/09/2010 - version 3.9.6
-DefaultVetoableColumnModel now uses the columns's model listenerlist for the vetoable column model listeners.
-CheckBoxTree repaints itself when the partial selection mode changes.
31/08/2010 - version 3.9.5
-The TreeTable tree's UI now remains unchanged after the tree is made visible.
26/08/2010 - version 3.9.3
-Fixed a bug with ListRowHeader not registering with the table's datamodel, if this has been changed.
-Modified SortTableModel so that developers can have control before/after a mouse is clicked on the sortable header.
-Fixed a bug in TableAssistant not behaving correctly when two or more columns have the same name.
-The LockedTableModelEvent now includes the previous amount of fixed rows/columns in use.
-Modified SearchPanel's behaviour so that a match is found when there is a single match in the table.
25/08/2010 - version 3.9.2
-Added methods for converting row indexes between the model and the view for TableModels that are wrapped with a SortTableModel and/or a FilterTableModel (TableUtils).
-Fixed a bug with the 'alt' key not being passed to the mouse event on the header in some cases, when fixed columns are in place.
-Fixed a bug with the column popup not being updated correctly when reordering group columns with the mouse.
10/08/2010 - version 3.9.1
-Added option for 'not equal' for comparison filters.
-The box for the custom filters is now limited to 200 pixels in width.
-Fixed a bug with GroupTableHeader throwing a null pointer exception when it is removed from the view.
18/06/2010 - version 3.9
-Organized imports in source code classes.
17/06/2010 - version 3.8.47
-Added method in WrapperCellRendererPane for getting the wrapped component.
16/06/2010 - version 3.8.46
-Sorting with SortTableModel is now not invoked if the user clicks on the group of a sortable column.
-The expanded nodes in the column dialog of TableAssistant are now maintained when the user clicks on the 'ok' button.
-Groups in the column dialog of TableAssistant can now be created even for single columns.
-Users can now reorder group columns in a GroupTableHeader with the mouse.
19/5/2010 - version 3.8.45
-PopupFilterHeaderModel now uses a separate renderer in order to layout the filterable header component.
17/5/2010 - version 3.8.44
-Added methods to PopupFilterHeaderModel for setting/getting the filtered/unfiltered color to use for the filter arrow.
-Added method to TreeTable for evaluating the amount to displace the editing component of a cell by, due to the presence of the tree icon.
20/4/2010 - version 3.8.43
-Added string for defining the text of the 'Clear' button in TableLibraryBundle.properties
-If TableResourceManager cannot find a string translation, it returns the default value
-The dialog for the date chooser panel now uses the CLEAR_BUTTON string in TableLibraryBundle.properties
-Added methods to DateEditor and DateVisualFilter for controlling whether the current system date should be displayed, if the selected date is null.
-Added methods to JDateChooser for controlling whether the selected date should be kept, as the user changes the month or year.
-Added method to AdvancedJTable and AdvancedTableHeader for handling mouse events, before they are passed to any mouse listeners.
-The rendering and control of TreeTableHeader's expandable columns is now being delegated to a TreeHeaderControl.
16/4/2010 - version 3.8.42
-Made appropriate changes to the library so that it will work with the pivot table api.
10/4/2010 - version 3.8.41
-Certain SortTableButtonRenderer's optimizations.
-Added option to DefaultTreeTableHeaderRenderer to control whether a separate component is used to layout the tree's expansion control on the header.
8/4/2010 - version 3.8.40
-Fixed a bug with the custom dialog throwing a NullPointerException when the sources were compiled with jdk 1.5 or higher.
-Added IF_LARGER_RESIZE resize mode to TableAssistant that resizes columns only if the calculated size is larger than then current one.
26/3/2010 - version 3.8.39
-Modified TableAssistant so that if all columns under a group column are made hidden, a subsequent showing of the hidden column group will make all columns visible under that group column.
24/3/2010 - version 3.8.38
-Fixed some issues with TableAssistant's behaviour when making columns under a group column visible/invisible.
-TableAssistant's column dialog now uses a partial CheckBoxTree to display the visibility status of a TableColumn.
23/3/2010 - version 3.8.36
-Fixed a bug with AdvancedTableHeader's getComponentAtPoint method.
-NumericalVisualFilter now uses a NumberFormat in order to display numbers in its textbox.
-JDateChooser now updates the months when the system locale is changed.
-Filter values of the custom filter dialog are now loaded faster.
08/3/2010 - version 3.8.35
-TableAssistant now does not update the ui after a change in the more column dialog.
04/3/2010 - version 3.8.34
-Custom filters on a CustomPopupFilterHeaderModel are now not applied to the header, if the filter is invalid.
-Fixed a bug in AdvancedJTable when the getColumnName method is called on a column representing the dummy column.
-Fixed a bug in GroupTableHeader when the group table column model is changed.
-ViewableResizer now behaves correctly when the header's group table column model is changed.
-Fixed a rendering error when using ViewableResizer.
02/2/2010 - version 3.8.33
-Fixed table key navigation with merged cells and when the table uses a single selection mode.
01/2/2010 - version 3.8.32
-Fixed an issue with AdvancedJScrollPane not painting correctly when columns are being resized.
-SpanDrawer now correctly paints merged cells when the table uses a single selection mode.
27/1/2010 - version 3.8.31
-Fixed a bug with the table's merged cells not being repainted correctly after a selection event.
25/1/2010 - version 3.8.29
-Fixed a bug with TableAssistant throwing a NullPointerException when moving colums and a TreeTableHeader is used.
23/1/2010 - version 3.8.28
-Removed deprecated methods and classes.
-Setting the table state now works even if group columns are present.
-TableAssistant now won't allow removal of all columns either from the column popup or the dialog.
-Added methods to CheckBoxTree that allow to control the checkbox displayed at each path.
14/12/2009 - version 3.8.26
-Fixed a bug with group columns not painting correctly when they are part of locked columns.
05/12/2009 - version 3.8.25
-Added option to ListRowHeader to select whether automatic resizing is enabled.
-Optimized drawing of spanned cells while dragging a column with the mouse.
04/12/2009 - version 3.8.24
-Fixed a bug with ViewableResizer setting its opaque property to false, having as result background colors not being painted.
03/12/2009 - version 3.8.23
-TableAssistant will now revert changes made to the column positions using the column dialog, if the new positions cannot be applied (e.g. due to the presence of a VetoableTableColumnModel)
01/12/2009 - version 3.8.22
-Added option to TreeTable for assigning a different column for the tree, other than the first.
-Added DynamicTreeMapReorder that is suitable when using DefaultSortTreeTableModel with a DynamicTreeTableModel.
-Added reset button to the column dialog, for undoing changes such as grouping, renaming etc.
-ListRowHeader now automatically resizes to its contents.
-Fixed a minor paint issue in AdvancedJScrollPane when locked columns are in place.
-Added methods to TableAssistant for defining the order in which the columns appear in the column popup.
24/11/2009 - version 3.8.20
-Added method in DefaultSortTreeTableModel for clearing the sorting states.
20/11/2009 - version 3.8.19
-Exceptions (if any) are now being printed out, when FilterHeaderModel loads or saves the filter state.
-The limitation for having the default cursor on the header has now been lifted.
16/11/2009 - version 3.8.17
-Fixed a bug with the column's renderer background color not being applied.
10/11/2009 - version 3.8.16
-Certain AdvancedJScrollPane optimizations.
-SortTableModel getDefaultComparator method now scans super interface hierarchy if supplied class is an interface.
-Added methods to TableCellResizer to determine whether a cell is resizable.
-Added method to TableAssistant to determine whether columns in the column dialog are reorderable.
-Made ViewableResizer work for locked columns/rows.
-Added method to SpanDrawer that determines whether the table uses a fixed row height, in which drawing is faster.
-Refactored remove method of com.sciapp.table.cache.Cache to return the object that was removed from the cache.
-Added class TreeTableModelMask that enables a TreeTableModel to be constructed, based on an underlying TreeTableModel instance.
-Fixed a bug with DynamicTreeTableModel not resetting the value of the root node after a table structure event.
-Fixed a few bugs in TreeTableHeader, relating to the structure of a node in the model having changed.
-Added class TreeTableColumnModelMask that wraps around any TreeTableModel in order to provide for a TreeTableColumnModel.
-Introduced caching of column count and column enumeration in DefaultTreeTableColumnModelAdapter for faster drawing.
06/10/2009 - version 3.8.4
-Fixed a bug with FilterTreeTableModel throwing an exception when a node's value is changed.
-Fixed a bug with TreeTableHeader not expanding nodes via the header, when a ViewableResizer is in use.
22/9/2009 - version 3.8
-Table cells and header columns can now be resized to their viewable dimensions while being painted, via a ViewableResizer.
-Fixed a bug with TreeTable not working properly when the tree's root is visible.
-Table Assistant can now be released from a previously assigned JTable.
13/8/2009 - version 3.7
-TableAssistant now exposes methods used to calculate the cell's preferred width.
-AdvancedJTable now contains method for assigning your own TableAssistant object.
-The 'More' column dialog now does not include reorder buttons if the table header is not reorderable.
-Fixed a bug with SortTableModel converting underlying model's structure change events to data changed events.
-Fixed a bug with TreeTable consuming key events when a row is not selected.
-Fixed a bug with TreeTableModelAdapter firing invalid inserted and deleted table model events when a node is expanded/collapsed respectively and the node does not have any children.
23/6/2009 - version 22.214.171.124
-Fixed a bug with JDateChooser not updating the calendar panel to the correct year when the year is entered by hand and the year text field loses focus.
-AdvancedJScrollPane now displays locked columns even if the dummy column is not present.
-Fixed a bug with AdvancedJScrollPane sometimes painting 'bogus' data outside the painting region in Java 1.5.
15/5/2009 - version 126.96.36.199
-Fixed a problem with the internal list returned from TableModel and TreeTableModel wrappers, such as SortTableModel, ComparableTreeTableModel etc.
-Improved GroupTableHeader rendering.
-Fixed a bug with GroupTableHeader when moving a group column within a group.
-Added method isReorderingAllowed(Point) to AdvancedTableHeader, to decide whether reordering of a column should be initiated.
7/5/2009 - version 188.8.131.52
-Fixed a bug with FilterTableModel and TreeTableModelAdapter giving out an exception when inserting new rows to the table.
6/5/2009 - version 3.6.9
-Fixed an issue that appeared recently in Java 1.6.10, causing AdvancedJScrollPane to keep a high CPU usage.
-Optimizations in ComparableTreeTableModel.
-Fixed a bug in TableAssistant's more dialog, that was causing inconsistencies between the dialog and the table view, when making columns invisible.
-Added option to TableAssistant to resize a column using both its cell and header contents.
23/3/2009 - version 3.6.6
-Made most classes serializable.
-TreeTableModelAdapter now fires more indicative TableModelEvents upon tree expansions or model changes, instead of a general update.
-Fixed a bug with TableAssistant's column dialog not applying the column width when the 'Enter' key is pressed.
11/12/2008 - version 184.108.40.206
-Added option to turn on/off column renaming in the 'more...' dialog of the column popup.
-Optimized FilterTableModel and SortTableModel.
-Fixed a bug in AdvancedJTable with setting the column table state.
-Fixed a bug in TableReorder when reselecting rows and columns after a model refresh.
-Fixed a bug in AdvancedJScrollPane to correctly convert the y-ordinates when locked rows are used.
-DynamicTreeTableModel now takes the alwayscreategroup value of a TreeTableComparator into account.
28/7/2008 - version 220.127.116.11
-Fixed tooltip in column header not appearing when a PopuFilterHeaderModel is used.
-Made available the ok and cancel buttons in AutoFilterDialog.
-Fixed a bug where a table search ended up in an endless loop.
-Updated com.sciapp.tree.TreeTable to incorporate the latest changes in cell spanning.
-Added AggregateTreeTableModel and TreeNodeAggregator in the com.sciapp.treetable package that provides an easy way to evaluate aggregates in a treetable.
-Fixed a memory leak bug in SortTableModel.
-Fixed a bug in TableAssistant not showing a group column that was removed via the column popup and subsequently added.
-Fixed table scrolling when locked cells are in place.
-Fixed bug in AdvancedJScrollPane not showing correctly when it is inside an InternalFrame.
2/4/2008 - version 18.104.22.168
-Fixed a bug with reselecting the checkboxes of a CheckBoxTree inside a TreeTable when the underlying model changes and the CheckBoxTree has partial selection set to true.
-Greatly improved the cell spanning drawing performance.
-Fixed a bug in AdvancedJScrollPane not correctly painting the viewport when locked rows/columns are in place.
-Improved FilterTableModel's performance and added a flag to determine whether the model will assume that all data have changed when a fireTableDataChanged event has been issued from the underlying model (see setClearOnDataChanged method).
-Added methods in SortTableModel for comparing the rows of the underlying TableModel.
3/3/2008 - version 3.6.3
-Fixed a bug with reselecting the checkboxes of a CheckBoxTree inside a TreeTable when the underlying model changes.
-Fixed a bug with RowHeader not resizing its cells when the row heights change.
-Fixed a bug with TableCellResizer allowing to resize cells that are part of a cell span.
29/2/2008 - version 3.6.2
-Optimized span drawing painting.
-Fixed a problem with AdvancedJTable showing tooltips at a displaced location when locked columns/rows are used.
-Added the ability to apply filters by pressing the 'enter' key on the custom filter dialog.
4/1/2008 - version 3.6
-Added TristateCheckBox that adds a 'partial-selection' state to JCheckBox.
-CheckBoxTree now uses a TristateCheckBox for showing partial node selections. The mode can be controlled with the setPartialSelection method.
-Added TableCellResizer, a class used to resize rows and columns of a table by dragging the mouse over a cell border.
-Added NonContiguousSelectionModel, a class that enables non-contiguous cell selection for a JTable.
-Added ListRowHeader which is a replacement for JTableRowHeader.
-Incorporated NonContiguousSelectionModel and TableCellResizer into AdvancedJTable and its subclass, TreeTable.
-Corrected a bug with AdvancedJScrollPane not correctly converting the x-coordinates of mouse events when a row header is present.
14/12/2007 - version 3.5
-Added methods to GroupTableColumnModel for easily interrogating a group column structure.
-Reshaped GroupTableColumnModelEvent and GroupTableColumnModelListener in order to get more information about group column changes.
-Implemented the required methods of GroupTableColumnModel in DefaultGroupTableColumnModel.
-AdvancedJTable now also converts the y-ordinate of mouse events when locked columns/rows are used.
-Added method canMove to AdvancedTableHeader and made it implement VetoableTableColumnModelListener in order to be able to easily
prevent the moving of columns.
-Optimized GroupTableHeader's drawing routines and added the ability for group columns to use their own TableCellRenderer.
-Optimized TreeTableHeader's drawing routines and added the ability for expandable columns to use their own renderer, ie TreeTableHeaderRenderer.
-Added an abstract TreeTableColumnModelAdapter implementation to serve as a basis for implementing a column model for a TreeTableHeader.
-Optimized PopupFilterHeaderModel drawing routines.
-Removed methods and classes with deprecated warnings.
11/12/2007 - version 3.4.8
-Fixed tooltips not showing when using spanned cells.
-Fixed mouse and keyboard navigation for locked rows/columns.
25/9/2007 - version 22.214.171.124
-Fixed a bug in AdvancedJTable cancelling the editing of a cell, when it received a tableChanged event.
-Improved SearchTablePanel by using different background/foreground colors when the search text is not found and by setting the focus to the requesting search field.
8/8/2007 - version 126.96.36.199
-Fixed a bug in PopupFilterHeaderModel throwing a null pointer exception when the headermodel was removed from the table.
24/7/2007 - version 188.8.131.52
-Fixed a few bugs with TableSearch.
-SearchPanel is now able to track changes to a TableModel upon which search highlight actions are initiated (see SearchPanel.register).
-The checkboxtree's selections of a dynamic treetablemodel are now restored after the model changes.
-Added refreshPopup() method in TableAssistant for reinitializing the column popup with values from the column model.
10/7/2007 - version 184.108.40.206
-Fixed a bug with SortTableModel not generating a TableModelEvent properly.
-Fixed the search style so that it is correctly updated when columns are moved inside the table.
-The table is now updated when selections are made with CheckBoxTree programmatically.
-The CheckBoxTree now clears its selections when the tree structure is updated.
3/7/2007 - version 220.127.116.11
-Fixed a bug with the DOES NOT END WITH option of a string filter.
-Made AdvancedJScrollPane accept a JPanel as the row or column header.
-Fixed a few bugs with SortTableModel and FilterTableModel.
-Made DefaultFilterTreeTableModel and DefaultSortTreeTableModel to behave properly when getAllowFilter/getAllowSort is false respectively.
-TableStyleSelector's style is only applied for cells that are highlighted.
-The search panel's string filter can now discern between strings, dates and booleans so that it can filter values appropriately.
-The cell selection after a sucessfull search now stops at the first cell found.
-Fixed a bug with TableStyleSelector looping indefinitely on some occasions.
15/6/2007 - version 18.104.22.168
-Added highlight feature in search panel.
13/6/2007 - version 3.4.7
-Introduced the com.sciapp.table.search package for searching the rows of a JTable.
-Fixed some issues with AdvancedJScrollPane not painting properly if locked columns are installed and the row/column headers are not JTableHeaders.
15/5/2007 - version 3.4.6
-Declared public method for showing the more panel in TableAssistant.
23/4/2007 - version 22.214.171.124
-Added a method in JDateChooser for assigning the default time when the chooser first appears (setDefaultTime).
17/4/2007 - version 126.96.36.199
-SortTableModel and FilterTableModel now leave the modified sort/filter indexes intact when the underlying model changes completely and getAllowSort/getAllowFilter is false.
13/4/2007 - version 188.8.131.52
-Fixed a bug with AdvancedJTable not correctly assigning the auto resize mode when the last column is not visible in the table.
-Fixed a bug with AdvancedJTable not removing the first column when this is fixed.
11/4/2007 - version 184.108.40.206
-Fixed a bug with DistinctDatabaseTableModel not correctly returning the row count when null values are present.
29/3/2007 - version 220.127.116.11
-Added DistinctDatabaseTableModel for retrieving the unique values from a database into a table model.
-Fixed a bug with AdvancedJScrollPane not correctly converting x-ordinates when locked columns are present.
-Updated FilterHeaderModel so that it is now possible to install table filters for columns that are not visible in the table.
-Updated JDateChooser to optionally show the seconds in the time box.
19/3/2007 - version 18.104.22.168
-Added syncWithModel method in DatabaseGroupingPanel for synchronizing the model with the panel.
13/3/2007 - version 3.4.5
-Added methods in VisualFilter subclasses for retrieving the various UI components used.
-Fixed some drawing bugs with FilterHeaderModel.
-Fixed a bug with DefaultSortTreeTableModel raising an ArrayIndexOutOfBounds exception when the underlying model changes.
1/3/2007 - version 22.214.171.124
-Fixed a bug with DefaultDatabaseTreeTableModel not using filters correctly.
-Fixed a bug with DirectoryTreeTable not initializing.
-Improved GroupTableHeader to make the paint procedure more optimized and to accept a JPanel as a TableCellRenderer.
-The components that make use of the resource bundle can now be re-initialized with new property values, when their UI is updated, without having to reload the application.
28/12/2006 - version 3.4.4
-Added a method to FilterHeaderModel in order to iterate over the installed filters.
-Changed the TreeTableColumnModelAdapter class to an interface.
-Fixed a bug with the TableAssistant's select method.
-Added ListTableModelWrapper for providing sorting/filtering capabilities to a TableModel that does not implement the ListTableModel interface.
1/12/2006 - version 3.4.3
-Fixed a bug with TableReorder throwing an exception when trying to select rows in the table that do not exist.
-Added an option in TreeFilterHeaderModel to define whether a filter on a column will be removed if the column is no longer visible in the table.
-Added options in PopupTreeFilterHeaderModel for the arrow button's color and position.
-Improved the design of ColumnFilterMapper.
-Improved DefaultFilterTreeTableModel so that it updates only nodes whose filter is changed.
-Added NodeTreeTableModelMap for showing a single branch of a TreeTableModel.
-Added UniqueTreeTableModel for building a set of unique tree nodes at each tree level.
-Fixed some issues with TreeTableHeader not correctly displaying columns when the underlying TreeTableColumnModel changes.
-Added TreeTableColumnModelMap for wrapping around a TreeTableColumnModel in order to provide sorting and filtering capabilities.
-Added PopupTreeFilterHeaderModel suclasses in the com.sciapp.table.group package that allow the filtering of table columns via a drop down button that is installed on each column.
21/11/2006 - version 126.96.36.199
-Fixed an issue with TreeTableModelAdapter throwing an exception if the root node is null.
-Fixed a repaint issue in TreeTable with a CheckBoxTree if non-scrollable columns are in use.
20/11/2006 - version 3.4.2
-Introduced TreeFilterHeaderModel and associated classes for providing a filterable column header component for TreeTableModels.
-Introduced CheckBoxTree, a JTree subclass that shows a checkbox for every node in the tree.
-Improved the design of TreeTable and TreeTableModelAdapter so that any JTree can be assigned to a TreeTable, such as a CheckBoxTree.
-Added an option in PopupFilterHeaderModel to show or hide the popup menu after a value selection is made.
-Added ListTableFilter and ValuesTableFilter for filtering the rows of a TableModel based on a list of rows and values respectively.
-Fixed a bug with TreeTable not setting a new TableReorder correctly.
-Fixed some issues with DefaultSortTreeTableModel and DefaultFilterTreeTableModel crashing when the underlying data model changed.
-Added methods in FilterTreeTableModel for allowing the assignment of TableFilters at each node or tree level.
-Added TreeNodeEnumeration and LevelNodeEnumeration for enumerating through the nodes of a TreeModel.
-Implemented the new methods specified by FilterTreeTableModel in DefaultFilterTreeTableModel.
30/10/2006 - version 3.4.1
-Fixes a bug with TreeTable not expanding/collapsing rows when locked columns are used.
-Added setRows method to ObjectTableModel.
-Fixed a bug with SortTableModel and FilterTableModel throwing an IndexOutOfBoundsException in some cases.
-SortTableModel and FilterTableModel now override the tableChanged method instead of fireTableChanged.
27/10/2006 - version 188.8.131.52
-Fixed a bug with AdvancedJScrollPane not locking the right portion of fixed columns correctly.
-Fixed a rendering bug in TreeTableHeader when columns at higher tree levels were added.
-Included updated manual covering TreeTableHeader and VetoableColumnModel in release.
26/10/2006 - version 3.4
-Introduced TreeTableHeader, a JTableHeader subclass capable of displaying table columns in a hierarchical structure.
-Introduced VetoableTableColumnModel, a TableColumnModel which can 'veto' (prevent) table columns from being added, removed or moved.
-Tooltips are now visible on the first column of a treetable.
-Included an option to enable/disable column grouping from TableAssistant's column dialog.
-Column width, visibility and moving of columns in the column dialog can now occur for multiple selections.
-Added a method to TableAssistant to make the column dialog visible programmatically.
4/10/2006 - version 184.108.40.206
-Fixes a bug with SortTableModel not sorting null values properly.
-DateFilter can now be serialized.
-TreeTable's selections are now preserved when a node is expanded.
-Added key navigation for the TreeTable.
-TreeTable's selections are preserved when the expand/collapse icon is clicked with the mouse.
-DefaultFilterTreeTableModel and DefaultSortTreeTableModel now correctly update themselves when the underlying model changes.
-Added shouldFilter and shouldSort methods in DefaultFilterTreeTableModel and DefaultSortTreeTableModel respectively to allow the behaviour of the filtering and sorting to be easily modified.
27/9/2006 - version 220.127.116.11
-Fixed a bug in ArrowButton not setting the correct color in the constuctor
-Added methods in TableAssistant to select the resizing function to perform when the user double-clicks on a column border.
-Fixed a bug in CachedTableModel not correctly setting the cache store.
-Added method in AbstractTreeTableModel that assigns the root node.
-Fixed a bug in TreeTableModelMap returning null instead of the node's value in some cases.
8/9/2006 - version 18.104.22.168
-DefaultMutableTreeTableModel is now editable (via the setEditable(boolean) method).
-TableReorder now also restores column selections.
-Fixed a bug with scrolling the table while having frozen columns.
-Added the ability to SortTableModel and FilterTableModel to specify whether sorting and filtering respectively should be performed when the underlying data changes.
-Fixed a bug with moving group columns with the mouse.
-Added methods to TableAssistant for resizing the columns to the header or column contents.
-Addded TABLE_ASSISTANT_GROUP_NAME key in TableLibraryBundle.properties that identifies the text to display when creating a group column at runtime.
21/7/2006 - version 22.214.171.124
-GroupTableColumns can now be reordered with the mouse.
-FilterTableModel and SortTableModel now behave properly after the underlying model has been updated.
-Fixed some paint bugs regarding AdvancedJScrollPane and locked rows/columns.
-ObjectTableModel now implements ReorderModel for sending a map of how the rows have changed after an update, in case this is not possible with any of AbstractTableModel's fire methods (like the removal of non-consecutive rows).
-Added methods in ObjectTableModel for inserting rows to the model.
10/7/2006 - version 126.96.36.199
-Modified the com.sciapp.filter and com.sciapp.filter.auto packages in order to make available the combo box instances of the filter table panels.
-Added the feature to group/ungroup columns at runtime via TableAssistant's 'More' panel.
29/6/2006 - version 3.3.5
-TreeTable now does not allow cell editing in the first (tree) column if the user clicks with the mouse on the expand/collapse (+/-) icon.
-Fixes some paint problems with the GroupTableHeader.
-TableAssistant's 'More' panel has been extended to include setting the column width, showing/hiding the columns and changing their order and name.
-There is now the option in JDateChooser to hide/show the date and time selection panels.
-Added the moveNode method in MutableTreeTableModel that moves one or more nodes within the same node.
-Fixes a bug in SortTableModel that wasn't sorting properly when table columns were reordered.
-TreeTableModelMap overrides the isHeader,isFooter and isAggregate methods for delegating them to the underlying treetable model.
21/6/2006 - version 3.3.4
-DefaultFilterTreeTableModel and DefaultSortTreeTableModel can now wrap any TreeTableModel implementation.
-FilterTableModel and SortTableModel now convert the TableModelEvent received from the underlying TableModel according to the (row) transformation performed.
-Included the shouldToggleExpand method in TreeTable that defines when a node should be expanded/collapsed.
19/6/2006 - version 3.3.3b
-Added TableDefinition class for easy defining the structure of a table model.
30/5/2006 - version 3.3.3
-Added ExportManager for exporting the data of a tablemodel to an OutputStream.
25/5/2006 - version 3.3.1
-Improved the non-scrollable rows/columns framework (still experimental).
18/5/2006 - version 3.3
-DirectoryTreeTableModel now extends MutableTreeTableModel instead of AbstractTreeTableModel.
-Fixed a bug with TreeTableModelAdapter not expanding the root node when nodes are inserted.
-Added methods to MutableTreeTableModel for adding columns and defining their class.
-Introduced ComparableTreeTableModel, a MutableTreeTableModel subclass, whose tree structure is dictated by a set of TreeTableComparators.
-Added TreeNodeComparator for comparing the nodes of a treetable model.
-Added NodeGroupingPanel, a panel through which users can dynamically control the structure of a ComparableTreeTableModel.
-TreeTableComparator now defines if a group node should be created if there is only one child at its corresponding tree level.
4/5/2006 - version 3.2
-Modified Filters, SortTableModel and DynamicTreeTableModel so that it is possible to easily save and load their states.
-Added SizeRenderer which displays the length of a file on a table's cell.
-Made StatusPanel show text retrieved from the resource file.
-Added DirectoryTreeTableModel and related classes for displaying a directory structure.
-Added SortTreeTableModel, FilterTreeTableModel that provide a sortable and filterable representation of a treetable model respectively.
-Added MutableTreeTableModel for dynamically adding and removing tree nodes, independent of any underlying data.
-Added DefaultTreeTableReorder that takes care of row selections when the data of a treetable model are reordered in some way.
-Moved the methods of AggregateRow that deal with aggregate data to its superclass, TreeTableRow.
-Added the isRangedModel method to CacheableTableModel and CacheableTreeTableModel that determines whether data can be fetched in ranges.
-Added a special PivotTableModel implementation, MSAccessPivotTableModel, for dealing with pivot tables with Microsoft Access Databases.
-Modified SQLFilterConverter to be able to convert a BooleanFilter to an sql statement.
17/4/2006 - version 3.1
-Provided a fix for the time field of the JDateChooser by disabling the deletion keystrokes.
-Modified DateFilter to return the date comparator used when filtering
-Added ignore time option in DateVisualFilter.
-Modified DateVisualFilter to display the time as well, when the filter is set not to ignore time differences.
-Provided an experimental package for adding locked rows/columns (com.sciapp.table.locked).
-For a GroupTableHeader, made it possible to control the visibility of the columns underneath a group column.
-Modified TableAssistant to limit the number of columns in the column popup and to provide a dialog for more column options.
-Fixed a bug with SortTableModel not showing the data when it is initialized with a ListTableModel that contains some data.
3/4/2006 - version 3.0.1
-Fixed a bug with JDateChooser throwing a NullPointerException when resetting to a null value
-Fixed a bug with JTableRowHeader shifting rows one pixel to the right with Java 1.4
-Modified DefaultRemoteTableModel and DefaultRemoteTreeTableModel to return a Boolean pending value for Boolean values.
-DefaultDatabaseTableDefinition now includes a method for adding independent column definitions
-DefaultDatabaseTableModel and DefaultPivotTableModel are now able to do joined queries
-DefaultPivotTableModel is now able to evaluate a complex aggregate function from the database
-Added a demo for the database components
29/3/2006 - version 3.0
This is a major update:
-added a groupable table header.
-fixed some bugs with FilterHeaderModel throwing a NullPointerException in some extreme cases.
-FilterTableHeader now extends GroupTableHeader.
-fixed a bug with OrTableFilter.
-added a factory for creating TableCellRenderers.
-added a TableCellRenderWrapper class for encapsulating a TableCellRenderer.
-fixed a bug with AdvancedJTable throwing an exception when stopping the edition of a cell in some cases.
-table assistant was modified to make it work with a GroupTableHeader: The column popup now includes only top level group columns.
-better designed and modified the com.sciapp.table.cache package
-added RemoteTableModel and RemoteTreeTableModel that asynchronously retrieve data from a CacheableTableModel and CacheableTreeTableModel respectively.
-added a PivotTableModel, which displays cross-tab (pivot) database queries.
-provided a better design for a TreeTable and a TreeTableModel. The new classes now reside in the com.sciapp.treetable package.
-implemented a basic database-enabled TreeTableModel that is able to display data from a database in a tree-like structure.
10/2/2006 - version 2.5
-Introduced a caching mechanism for TableModels (com.sciapp.table.cache).
-Created DatabaseTableModel for fetching data from a database (com.sciapp.table.db).
-Added ThreadedListTableModel which can be used to make a ListTableModel 'thread safe'.
-Added internationalization support through resource bundles (TableResourceManager).
3/2/2006 - version 188.8.131.52
-Fixed a bug with SortTableModel throwing an exception when the table model's data is cleared.
-Fixed a bug with SpanDrawer not drawing correctly the spanned branch nodes.
17/1/2006 - version 2.4.1
-Added a table cell editor that provides multiple possible values for a cell through a combo box.
-Added a progress bar table cell renderer.
-Added interface FilterListModel which all table models that filter the data of a table must implement.
-Made SortTableModel remember the original ordering of the row data, after a sort has taken place.
-Redesigned the com.sciapp.table.span package. A SpanDrawer object is now used to draw the spanned cells of the table, while a SpanModel defines which cells will be spanned.
8/12/2005 - version 2.4
-Added ability to merge/split cells.
-Added a row table header.
-Introduced style objects for easy cell rendering.
-Added filtering support for Double, Long and Float objects.
18/11/2005 - version 2.3
-AdvancedTableHeader now has a method for querying whether a column can be reordered (with the mouse).
-FilterHeaderModel now updates itself correctly when the data model of the associated table is changed. Also,
it does not throw an exception when null cell values are present in a column.
-exposed private methods sortData and filterData, of SortTableModel and FilterTableModel respectively, to the API.
-Included a method to make the first column of the table not movable.
-Introduced fading in popup menus.
-the date editor can now accept null values without throwing an exception.
27/10/2005 - version 2.2
-Improved the header-filter by adding a dynamic custom filter.
19/10/2005 - version 2.1
-Implemented excel-like filtering using the columns of the table's header.
-Incorporated the skinnable look-and-feel library by l2fprod.com
30/9/2005 - version 2.0
-Redesigned the com.sciapp.filter package.
-Greatly improved treetable component with multi-level trees, headers, footers and aggregate functions.
-Various improvements and optimizations.
16/6/2005 - version 1.1
First commercial version of the library.
Most important features:
-Multiple column sorting
-Auto-adjustment of column widths
-Various visual enhancements
14/2/2005 - version 1.0b
Beta version of the library.