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. -Optimized TreeTableHeader. -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 3.6.9.6 ------------------------------- -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 3.6.9.4 ------------------------------- -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 3.6.9.1 ------------------------------- -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 3.6.5.13 ------------------------------- -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 3.6.5.2 ------------------------------- -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 3.6.4.2 ------------------------------- -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 3.4.7.14 ------------------------------- -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 3.4.7.12 ------------------------------- -Fixed a bug in PopupFilterHeaderModel throwing a null pointer exception when the headermodel was removed from the table. 24/7/2007 - version 3.4.7.11 ------------------------------- -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 3.4.7.5 ------------------------------- -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 3.4.7.4 ------------------------------- -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 3.4.7.2 ------------------------------- -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. -Improved SortTableModel. 23/4/2007 - version 3.4.5.8 ------------------------------- -Added a method in JDateChooser for assigning the default time when the chooser first appears (setDefaultTime). 17/4/2007 - version 3.4.5.7 ------------------------------- -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 3.4.5.6 ------------------------------- -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 3.4.5.4 ------------------------------- -Fixed a bug with DistinctDatabaseTableModel not correctly returning the row count when null values are present. 29/3/2007 - version 3.4.5.3 ------------------------------- -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 3.4.5.1 ------------------------------- -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 3.4.4.3 ------------------------------- -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 3.4.2.1 ------------------------------- -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 3.4.0.1 ------------------------------- -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 3.3.5.7 ------------------------------- -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 3.3.5.6 ------------------------------- -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 3.3.5.4 ------------------------------- -DefaultMutableTreeTableModel is now editable (via the setEditable(boolean) method). -TableReorder now also restores column selections. -Added ListTreeTableModel. -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 3.3.5.2 ------------------------------- -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 3.3.5.1 ------------------------------- -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 2.4.1.1 ------------------------------- -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 -Row/column filtering -Auto-adjustment of column widths -Various visual enhancements -Treetable component 14/2/2005 - version 1.0b ------------------------------- Beta version of the library.