Пример #1
0
 def _removeObserverForAttribute(self, attribute):
     for eventType in self._getSortEventTypes(attribute):
         if eventType.startswith('pubsub'):
             pub.unsubscribe(self.onAttributeChanged, eventType)
         else:
             patterns.Publisher().removeObserver(self.onAttributeChanged_Deprecated, 
                                                 eventType=eventType)
Пример #2
0
 def _removeObserverForAttribute(self, attribute):
     for eventType in self._getSortEventTypes(attribute):
         if eventType.startswith('pubsub'):
             pub.unsubscribe(self.onAttributeChanged, eventType)
         else:
             patterns.Publisher().removeObserver(
                 self.onAttributeChanged_Deprecated, eventType=eventType)
Пример #3
0
 def __stopObserving(self, eventTypes):
     # Collect the event types that the currently visible columns are
     # interested in and make sure we don't stop observing those event types.
     eventTypesOfVisibleColumns = []
     for column in self.visibleColumns():
         eventTypesOfVisibleColumns.extend(column.eventTypes())
     for eventType in eventTypes:
         if eventType not in eventTypesOfVisibleColumns:
             if eventType.startswith('pubsub'):
                 pub.unsubscribe(self.onAttributeChanged, eventType)
             else:
                 self.removeObserver(self.onAttributeChanged_Deprecated, eventType=eventType)
Пример #4
0
 def __stopObserving(self, eventTypes):
     # Collect the event types that the currently visible columns are
     # interested in and make sure we don't stop observing those event types.
     eventTypesOfVisibleColumns = []
     for column in self.visibleColumns():
         eventTypesOfVisibleColumns.extend(column.eventTypes())
     for eventType in eventTypes:
         if eventType not in eventTypesOfVisibleColumns:
             if eventType.startswith('pubsub'):
                 pub.unsubscribe(self.onAttributeChanged, eventType)
             else:
                 self.removeObserver(self.onAttributeChanged_Deprecated,
                                     eventType=eventType)
Пример #5
0
    def detach(self):
        ''' Should be called by viewer.container before closing the viewer '''
        observers = [self, self.presentation()]
        observable = self.presentation()
        while True:
            try:
                observable = observable.observable()
            except AttributeError:
                break
            else:
                observers.append(observable)
        for observer in observers:
            try:
                observer.removeInstance()
            except AttributeError:
                pass  # Ignore observables that are not an observer themselves

        for popupMenu in self._popupMenus:
            try:
                popupMenu.clearMenu()
                popupMenu.Destroy()
            except wx.PyDeadObjectError:
                pass

        pub.unsubscribe(self.onBeginIO, 'taskfile.aboutToRead')
        pub.unsubscribe(self.onBeginIO, 'taskfile.aboutToClear')
        pub.unsubscribe(self.onEndIO, 'taskfile.justRead')
        pub.unsubscribe(self.onEndIO, 'taskfile.justCleared')

        self.presentation().detach()
        self.toolbar.detach()
Пример #6
0
    def detach(self):
        ''' Should be called by viewer.container before closing the viewer '''
        observers = [self, self.presentation()]
        observable = self.presentation()
        while True:
            try:
                observable = observable.observable()
            except AttributeError:
                break
            else:
                observers.append(observable)
        for observer in observers:
            try:
                observer.removeInstance()
            except AttributeError:
                pass  # Ignore observables that are not an observer themselves

        for popupMenu in self._popupMenus:
            try:
                popupMenu.clearMenu()
                popupMenu.Destroy()
            except wx.PyDeadObjectError:
                pass

        pub.unsubscribe(self.onBeginIO, 'taskfile.aboutToRead')
        pub.unsubscribe(self.onBeginIO, 'taskfile.aboutToClear')
        pub.unsubscribe(self.onEndIO, 'taskfile.justRead')
        pub.unsubscribe(self.onEndIO, 'taskfile.justCleared')

        self.presentation().detach()
        self.toolbar.detach()
Пример #7
0
 def unmonitorClass(self, klass):
     if klass in self._classes:
         for name in klass.monitoredAttributes():
             eventType = getattr(klass, '%sChangedEventType' % name)()    
             if eventType.startswith('pubsub'):
                 pub.unsubscribe(self.onAttributeChanged, eventType)
             else:
                 self.removeObserver(self.onAttributeChanged_Deprecated, eventType)
         if issubclass(klass, ObservableComposite):
             self.removeObserver(self.onChildAdded, klass.addChildEventType())
             self.removeObserver(self.onChildRemoved, klass.removeChildEventType())
         if issubclass(klass, CategorizableCompositeObject):
             self.removeObserver(self.onCategoryAdded, klass.categoryAddedEventType())
             self.removeObserver(self.onCategoryRemoved, klass.categoryRemovedEventType())
         if issubclass(klass, Task):
             pub.unsubscribe(self.onEffortAddedOrRemoved, Task.effortsChangedEventType())
             pub.unsubscribe(self.onPrerequisitesChanged, Task.prerequisitesChangedEventType())
         if issubclass(klass, NoteOwner):
             self.removeObserver(self.onOtherObjectAdded, klass.noteAddedEventType())
             self.removeObserver(self.onOtherObjectRemoved, klass.noteRemovedEventType())
         if issubclass(klass, AttachmentOwner):
             self.removeObserver(self.onOtherObjectAdded, klass.attachmentAddedEventType())
             self.removeObserver(self.onOtherObjectRemoved, klass.attachmentRemovedEventType())
         if issubclass(klass, Effort):
             pub.unsubscribe(self.onEffortTaskChanged, Effort.taskChangedEventType())
         self._classes.remove(klass)
Пример #8
0
 def unmonitorClass(self, klass):
     if klass in self._classes:
         for name in klass.monitoredAttributes():
             eventType = getattr(klass, '%sChangedEventType' % name)()
             if eventType.startswith('pubsub'):
                 pub.unsubscribe(self.onAttributeChanged, eventType)
             else:
                 self.removeObserver(self.onAttributeChanged_Deprecated,
                                     eventType)
         if issubclass(klass, ObservableComposite):
             self.removeObserver(self.onChildAdded,
                                 klass.addChildEventType())
             self.removeObserver(self.onChildRemoved,
                                 klass.removeChildEventType())
         if issubclass(klass, CategorizableCompositeObject):
             self.removeObserver(self.onCategoryAdded,
                                 klass.categoryAddedEventType())
             self.removeObserver(self.onCategoryRemoved,
                                 klass.categoryRemovedEventType())
         if issubclass(klass, Task):
             pub.unsubscribe(self.onEffortAddedOrRemoved,
                             Task.effortsChangedEventType())
             pub.unsubscribe(self.onPrerequisitesChanged,
                             Task.prerequisitesChangedEventType())
         if issubclass(klass, NoteOwner):
             self.removeObserver(self.onOtherObjectAdded,
                                 klass.noteAddedEventType())
             self.removeObserver(self.onOtherObjectRemoved,
                                 klass.noteRemovedEventType())
         if issubclass(klass, AttachmentOwner):
             self.removeObserver(self.onOtherObjectAdded,
                                 klass.attachmentAddedEventType())
             self.removeObserver(self.onOtherObjectRemoved,
                                 klass.attachmentRemovedEventType())
         if issubclass(klass, Effort):
             pub.unsubscribe(self.onEffortTaskChanged,
                             Effort.taskChangedEventType())
         self._classes.remove(klass)
 def __stop_observing_attribute(self):
     try:
         pub.unsubscribe(self.onAttributeChanged, self.__changedEventType)
     except pub.UndefinedTopic:
         pass
     patterns.Publisher().removeObserver(self.onAttributeChanged_Deprecated)
Пример #10
0
 def __stop_observing_attribute(self):
     try:
         pub.unsubscribe(self.onAttributeChanged, self.__changedEventType)
     except pub.UndefinedTopic:
         pass
     patterns.Publisher().removeObserver(self.onAttributeChanged_Deprecated)
Пример #11
0
 def detach(self):
     super(SortableViewerMixin, self).detach()
     pub.unsubscribe(self.onSortOrderChanged,
                     self.presentation().sortEventType())
Пример #12
0
 def detach(self):
     super(SortableViewerMixin, self).detach()
     pub.unsubscribe(self.onSortOrderChanged,
                     self.presentation().sortEventType())