Hi Florent

> -----Original Message-----
> From: Florent Guillaume [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, December 01, 2005 4:24 PM
> To: [EMAIL PROTECTED]
> Cc: zope3-dev
> Subject: Re: ObjectMover events
> 
> Florent Guillaume wrote:
> >> I dont' know if this affect the events itself but there is also a 
> >> problem in the ObjectMover.
> >>
> >> If you use the ObjectMover from copypastemove on IDependable 
> >> (registered) objects, it's not possible to move a object 
> because of 
> >> the order the move process is implemented.
> >>
> >> ---
> >> target[new_name] = obj
> >> del container[orig_name]
> > 
> > 
> > Doh. I hadn't looked at that code.
> > 
> >> if the ObjectAdded Event will add a dependency to the 
> object we can't 
> >> delete them in the container.
> >>
> >> If this should be fixed, I'm not sure if the ObjectMover 
> should copy
> >> dependable objects, then the order should be:
> >>
> >> ---
> >> del container[orig_name]
> >> target[new_name] = obj
> >>
> >>
> >> This means the events order in this usecase looks like:
> >>
> >> IObjectRemovedEvent
> >> IObjectAddedEvent
> >> IObjectMovedEvent
> >>
> >> Where the IObjectMovedEvent notifies about the sucessful move.
> >> Anyway, add a object to a container where is at the same time in
> >> a second container is a bad idea in my point of view.
> > 
> > 
> > I think ObjectMover doesn't care about events but it 
> should. It should 
> > do whatever is necessary so that only one IObjectMovedEvent is 
> > generated. I'll look at that.
> 
> Actually the ObjectMover code is correct, it doesn't send the 
> events you say 
> it sends. I added a test for this:
> http://svn.zope.org/?rev=40445&view=rev
> 
> Florent

Yes, that's correct. 

Sorry I wasn't clear. I was describing another problem
only indirect related to events. The ObjectMover itself doesn't 
send events. 

My problem is, that the ObjectMover doesn't work with objects 
where have adependency (IDependable), because the order is wrong 
how they copy objects.

This produce a mess with the __parent__:
----
target[new_name] = obj
del container[orig_name]
----


I really prefere this:
-----
del container[orig_name]
target[new_name] = obj
-----

What do you think?


Regards
Roger Ineichen

_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to