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]