Revision: 1303
Author: mathiasbr
Date: 2006-08-16 15:03:56 -0700 (Wed, 16 Aug 2006)
ViewCVS: http://svn.sourceforge.net/spring-rich-c/?rev=1303&view=rev
Log Message:
-----------
support to redefine filter constraint
Modified Paths:
--------------
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/list/FilteredListModel.java
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/list/FilteredListModelTests.java
Modified:
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/list/FilteredListModel.java
===================================================================
---
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/list/FilteredListModel.java
2006-08-16 15:18:25 UTC (rev 1302)
+++
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/list/FilteredListModel.java
2006-08-16 22:03:56 UTC (rev 1303)
@@ -33,7 +33,7 @@
*/
public class FilteredListModel extends AbstractFilteredListModel implements
Observer {
- private final Constraint constraint;
+ private Constraint constraint;
private int[] indexes;
@@ -52,15 +52,40 @@
*/
public FilteredListModel(ListModel listModel, Constraint constraint) {
super(listModel);
+ setConstraint(constraint);
+ }
+
+ /**
+ * Defines the constraint which is applied to the list model elements
+ *
+ * @param constraint
+ * the constraint to set
+ *
+ * @throws IllegalArgumentException
+ * if constraint is null
+ */
+ public final void setConstraint(Constraint constraint) {
Assert.notNull(constraint);
- this.constraint = constraint;
- if (this.constraint instanceof Observable) {
- ((Observable) this.constraint).addObserver(this);
+ if (!constraint.equals(this.constraint)) {
+ if (this.constraint instanceof Observable) {
+ ((Observable) constraint).deleteObserver(this);
+ }
+ this.constraint = constraint;
+ if (constraint instanceof Observable) {
+ ((Observable) constraint).addObserver(this);
+ }
+ reallocateIndexes();
}
- reallocateIndexes();
}
/**
+ * @return the constraint
+ */
+ public Constraint getConstraint() {
+ return constraint;
+ }
+
+ /**
* Internally called to reallocate the indexes. This method should be
called when the filtered model changes its
* element size
*/
Modified:
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/list/FilteredListModelTests.java
===================================================================
---
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/list/FilteredListModelTests.java
2006-08-16 15:18:25 UTC (rev 1302)
+++
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/list/FilteredListModelTests.java
2006-08-16 22:03:56 UTC (rev 1303)
@@ -86,6 +86,18 @@
assertEquals("4", filteredModel.getElementAt(1));
}
+ public void testRedefineFilter() throws Exception {
+ filter.elements = Arrays.asList(new Object[] { "2", "4", "9999" });
+ FilteredListModel filteredModel = new FilteredListModel(listModel,
filter);
+ assertEquals(2, filteredModel.getSize());
+ assertEquals("2", filteredModel.getElementAt(0));
+ assertEquals("4", filteredModel.getElementAt(1));
+ TestConstraint newFilter = new TestConstraint();
+ newFilter.filter = false;
+ filteredModel.setConstraint(newFilter);
+ assertEquals(listModel.getSize(), filteredModel.getSize());
+ }
+
public void testFilterWithUpdatingModel() throws Exception {
filter.elements = Arrays.asList(new Object[] { "2", "4", "9999" });
ListModel filteredModel = new FilteredListModel(listModel, filter);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
spring-rich-c-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs