diff -r 4af48d75956f o.n.swing.outline/apichanges.xml --- a/o.n.swing.outline/apichanges.xml Wed Feb 23 06:34:39 2011 +0300 +++ b/o.n.swing.outline/apichanges.xml Wed Feb 23 18:46:11 2011 +0100 @@ -108,6 +108,21 @@ + + + Ability to listen on changes of Quick Filter + + + + + +

New property PROP_QUICK_FILTER + is fired when quick filter is changed. +

+
+ + +
Possibility to define comparator for sorting the rows diff -r 4af48d75956f o.n.swing.outline/manifest.mf --- a/o.n.swing.outline/manifest.mf Wed Feb 23 06:34:39 2011 +0300 +++ b/o.n.swing.outline/manifest.mf Wed Feb 23 18:46:11 2011 +0100 @@ -1,5 +1,5 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.swing.outline OpenIDE-Module-Localizing-Bundle: org/netbeans/swing/outline/Bundle.properties -OpenIDE-Module-Specification-Version: 1.12 +OpenIDE-Module-Specification-Version: 1.13 diff -r 4af48d75956f o.n.swing.outline/src/org/netbeans/swing/etable/ETable.java --- a/o.n.swing.outline/src/org/netbeans/swing/etable/ETable.java Wed Feb 23 06:34:39 2011 +0300 +++ b/o.n.swing.outline/src/org/netbeans/swing/etable/ETable.java Wed Feb 23 18:46:11 2011 +0100 @@ -134,6 +134,12 @@ * @author David Strupl */ public class ETable extends JTable { + /** Property that is fired when calling {@link #setQuickFilter(int, java.lang.Object)} or + * {@link #unsetQuickFilter()}. + * @since 1.13 + */ + public static final String PROP_QUICK_FILTER = "quickFilter"; + /** Action key for up/down focus action */ private static final String ACTION_FOCUS_NEXT = "focusNext"; //NOI18N @@ -780,6 +786,7 @@ resetPermutation (); filteredRowCount = -1; // force to recompute the rowCount super.tableChanged(new TableModelEvent(getModel())); + firePropertyChange(PROP_QUICK_FILTER, null, null); } /** @@ -812,6 +819,7 @@ filteredRowCount = -1; resetPermutation (); super.tableChanged(new TableModelEvent(getModel())); + firePropertyChange(PROP_QUICK_FILTER, null, null); } /** diff -r 4af48d75956f o.n.swing.outline/test/unit/src/org/netbeans/swing/etable/ETableTest.java --- a/o.n.swing.outline/test/unit/src/org/netbeans/swing/etable/ETableTest.java Wed Feb 23 06:34:39 2011 +0300 +++ b/o.n.swing.outline/test/unit/src/org/netbeans/swing/etable/ETableTest.java Wed Feb 23 18:46:11 2011 +0100 @@ -45,6 +45,8 @@ import java.awt.event.InputEvent; import java.awt.event.KeyEvent; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.Properties; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; @@ -96,6 +98,26 @@ assertEquals("Sort reorder (3) not ok", 3, t.convertRowIndexToModel(0)); assertEquals("Sort reorder (4) not ok", 4, t.convertRowIndexToModel(5)); } + + public void testFirePropertyChangeForQuickFilter() { + ETable t = new ETable(); + class L implements PropertyChangeListener { + int cnt; + + @Override + public void propertyChange(PropertyChangeEvent evt) { + assertEquals("quickFilter", evt.getPropertyName()); + cnt++; + } + + } + L listener = new L(); + t.addPropertyChangeListener(listener); + t.setQuickFilter(1, new Object()); + assertEquals("One filter change", 1, listener.cnt); + t.unsetQuickFilter(); + assertEquals("Second change", 2, listener.cnt); + } /**