Download
TableFilter is available in source and binary formats, with versions for Java 5 and Java 6. The license is MIT open source, please look below for the complete details.
The last versions are available for download:
Version 2.2.0 ( 12th April 2010 )
- Download for Java 6 or later
- Binary distribution (without sources, tests not included)
- Binary distribution with sources (useful for debug purposes)
- Source distribution (with sources, and tests are included)
- Download for Java 5
- Binary distribution (without sources, tests not included)
- Binary distribution with sources (useful for debug purposes)
- Source distribution (with sources, and tests are included)
- This version reintroduces compatibility with Java 5, temporarily excluded on version 2.1,
although not all features are available in the old Java version; more specifically, autoselection
will not be supported under Java 5. In addition, many tests for the Java 5 version have been
rewritten, as they contained important bugs
Concerning Java 6, this release solves a minor bug, as not all resources would be released when a new table model was applied to a table filter.
Version 2.1.2 ( 26th January 2010 )
- Binary distribution (without sources, tests not included)
- Binary distribution with sources (useful for debug purposes)
- Source distribution (with sources, and tests are included)
- Added a new singleton instance to facilitate updating the default settings of the library (what can be achieved, anyway, using system properties).
- Added an autoselection mode, enabled by default. If the current filtering filters out all rows in the table but one, that row become automatically selected. Likewise, selected rows are automatically de-selected when they are filtered out (this is the usual operation mode in the Java 6 table sorter)
- Modified the default behaviour of the filters, to use wildcard expressions when the user does not specify any operator.
- All the filter editor constructors where the filter position (table's column) was specified, are now deprecated.
- Solved bugs related to setting the header visible or hidden, and enabled or disabled
- Added new Position type NONE, to ensure that the header is not automatically placed -if that is so required-.
Version 2.0.1 ( 13th November 2009 )
- Download for Java 6 or later
- Binary distribution (without sources, tests not included)
- Binary distribution with sources (useful for debug purposes)
- Source distribution (with sources, and tests are included)
- Download for Java 5
- Binary distribution (without sources, tests not included)
- Binary distribution with sources (useful for debug purposes)
- Source distribution (with sources, and tests are included)
- This version is limited to defining properly the properties that
define the default behaviour. Although already partially included in
version 2.0.0, the inclusion was not complete and buggy in the case of
some of these properties.
The full list of system properties that can be defined to override the default TableFilter behavior is listed here.
A new example is provided to test the extended behaviour.
Version 2.0.0 ( 1st September 2009 )
- Download for Java 6 or later
- Binary distribution (without sources, tests not included)
- Binary distribution with sources (useful for debug purposes)
- Source distribution (with sources, and tests are included)
- Download for Java 5
- Binary distribution (without sources, tests not included)
- Source distribution (with sources, and tests are included)
- This version extends some public interfaces, adding functionality. However,
it means that users that implemented their own table filter editors or text parsers
must now implement
the new interfaces, so the compatibility is broken. Most users uniquely use the existing
table filter editors and parsers, and will not face any compatibiliy issues:
- Changed interface on
ITableFilterEditor
- It is possible to retrieve the applied filter on any table's column
- It is also possible to set dynamically the filter on any column
- Its is supported, through the use of the new ITableFilterEditorObserver interface, to be notified of changes on the filter's editor.
- Changed interface on
IFilterTextParser,
including two methods already defined in the generic implementation in
FilterTextParser:
- Define a type builder for specific user types.
- Define a comparator for any type.
- Added interface on ITableFilterHeaderObserver, to observe events on the TableFilterHeader.
- Dates are now automatically handled in the library.
- The user can provide properties that override some default behaviours. These properties have been later redefined in 2.0.1.
- Bug solved: usage of renderers on TableChoiceFilterEditor would likely drive to AWT exceptions.
- Bug solved: changing the table or the model, using the TableChoiceFilterEditor on a column with boolean or enumeration types, would hide all the elements, as if they would not validate the filter -even if empty-
- UserFilters are automatically enabled
- Extended examples to show how to listen for events on the table editors
- Changed interface on
ITableFilterEditor
Version 1.5.0 ( 7th August 2009 )
- Changes; this release improves on the usage of the
TableChoiceFilterEditor,
that is, the editor filter that offers the user a list of the different options
as found in the table model:
- The choices are automatically updated when new entries are included in the table. That is, new values are added to the filter's choices; however, old values, that are removed or replaced out of the table model, are not removed from the filter's choices.
- In addition, the comparator function used to set the order among the choices in the editor, is replaced, to use automatically the comparison method supplied on Comparable classes (if supplied, that is)
Version 1.4.1 ( 4th July 2009 )
- Changes:
- Bug solution: in specific conditions, the header would fail to display.
- Bug solution: filters could be added to the default TableFilterHeader, but it would be needed to invoke reportFilterUpdatedToObservers(), a protected method: therefore, clients had to be defined as separate classes. Adding now a user filter triggers automatically the report method.
- Added commodity class UserFilter to create external filters.
- Added serialization ids to all serializable classes.
Version 1.4.0 ( 10th June 2009 )
- Changes:
- The whole namespace is migrated from byteslooser.com to coderazzi.net
- Removing Java compilations warnings from source.
Version 1.3.0 ( 17th February 2009 )
- Changes:
- Automatic layout management for the filter header.
On previous versions, the user had to place manually the header in the Gui container,
as detailed here, while now is is enough to
instantiate the header and set the associated table:
TableFilterHeader filterHeader = new TableFilterHeader(table);
- Version 1.3.0 keeps backwards compatibility: if the TableFilterHeader is explicitely included in some Gui container, the default behaviour to automatically setup the filter header close by the table header is deactivated.
- Automatic layout management for the filter header.
On previous versions, the user had to place manually the header in the Gui container,
as detailed here, while now is is enough to
instantiate the header and set the associated table:
License
TableFilter is available under the MIT license.
Copyright (c) 2007 Luis M. Pena - lu@coderazzi.net Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The source distribution contains, in addition to the library's source code, some tests. These tests make usage of a general icon library (FamFamFam), and, in case of the Java 1.5 version, of a open source class called TableSorter.java, which retains the original copyright.
As of version 1.2.0, there are also icons in the library, to facilitate its usage under Gui editors. These icons come from the FamFamFam silk icon library, licensed under a Creative Commons Attribution 2.5 License.
Support
Would you require commercial support on this library, or specific customizations, please contact lu@coderazzi.net