On Sat, 7 Jun 2003, Stephen Colebourne wrote: > Proposal #3 (Colebourne - merged from #1 and #2): > -------------------------- > public boolean addAll(int index, Collection c){ > if (preAddAll(index, c)) { > result = backingList.addAll(index, c); > postAddAll(index, c, result); > } > return result; > }
I might be missing something here, but in order to support oldSize/newSize in the event object in this design, I think I'd have to pass some state from the pre to the post method, e.g. class AbstractXxxCollection extends AbstractCollectionDecorator { public boolean add(Object o) { boolean result = false; if (preAdd(o)) { result = super.add(o); postAdd(o); } return result; } protected boolean preAdd(Object o) { return true; } protected void postAdd(Object o) {} } class ObservableCollection extends AbstractXxxCollection { protected boolean preAdd(Object o) { int oldSize = size(); return true; } protected void postAdd(Object o) { fireElementAdded(oldSize, size(), o); } } something like, protected boolean preAdd(Object o, Map ctx) { ctx.put("oldSize", new Integer(size())); return true; } protected void postAdd(Object o, Map ctx) { int oldSize = ((Integer) ctx.get("oldSize")).intValue(); fireElementAdded(oldSize, size(), o); } michael --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]