On 12 Sep 2015, at 17:34, Nicolai Hess <nicolaihess@web.de> wrote:2015-09-09 14:32 GMT+02:00 Yuriy Tymchuk <yuriy.tymchuk@me.com>:Hi,
as NautilusMethodSelected contains also an information about protocol, class, package;
NautilusProtocolSelected contains an information about class and package;
.
.
.
I���ve inherited NautilusClassSelected from NautilusPackageSelected and NautilusProtocolSelected from NautilusClassSelected��� to remove duplication. But as announcement subscription also includes it���s subclasses, if you subscribe to NautilusPackageSelected, you end up receiving also NautilusClassSelected, NautilusProtocolSelected and NautilusMethodSelected.
What is a good way to resolve this (I can simply separate all the classes, but maybe there is something important from conceptual point of view)?I didn't know announcments are working that way, but it may make sense if you want to group announcments (register once for "WindowAnnouncement" and receiving all kind ofsubannouncements (WindowClosed/WindowOpened ���)
What we could do (maybe this is a bit overkill):- make an announcements hierarchy (NautilusPackageAnnouncement -> NautiulusClassAnnouncement ...) but never subscribe to this Announcemnts- create sub classes for every "kind"NautilusPackageAnnouncement subclass: NautilusPackageChangedAnnouncement
NautilusPackageAnnouncement subclass: NautilusPackageSelectedAnnouncement
NautilusClassAnnouncement subclass: NautilusClassSelectedAnnouncement
NautilusClassAnnouncement subclass: NautilusClassChangedAnnouncementAnd only subscribe to this subclasses.That way we are using the hierarchy of Announcement classes for removing of duplicated code, but onlyregister and announce the "leaf"-nodes (NautilusClassChangedAnnouncement / NautilusPackageChangedAnnouncement...)what do you think?
Uko