Changeset 2274
- Timestamp:
- 03/17/08 09:51:46 (2 months ago)
- Files:
-
- gaphor/trunk/gaphor/UML/elementfactory.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphor/trunk/gaphor/UML/elementfactory.py
r2225 r2274 54 54 self._elements = odict.odict() 55 55 self._observers = list() 56 self._app = None 56 57 57 58 def init(self, app): … … 62 63 def shutdown(self): 63 64 # unregister after flush: the handler is needed to empty the _elements 64 self._app.unregister_handler(self._element_notify) 65 if self._app: 66 self._app.unregister_handler(self._element_notify) 65 67 self.flush() 66 self._app.unregister_handler(self._element_deleted) 68 if self._app: 69 self._app.unregister_handler(self._element_deleted) 67 70 68 71 def create(self, type): … … 71 74 """ 72 75 obj = self.create_as(type, uniqueid.generate_id()) 73 self._app.handle(ElementCreateEvent(self, obj)) 76 if self._app: 77 self._app.handle(ElementCreateEvent(self, obj)) 74 78 return obj 75 79 … … 157 161 Flush all elements (remove them from the factory). 158 162 """ 159 self._app.handle(FlushFactoryEvent(self)) 160 161 self._app.register_subscription_adapter(ElementChangedEventBlocker) 163 if self._app: 164 self._app.handle(FlushFactoryEvent(self)) 165 self._app.register_subscription_adapter(ElementChangedEventBlocker) 166 162 167 try: 163 168 # First flush all diagrams: … … 170 175 value.unlink() 171 176 finally: 172 self._app.unregister_subscription_adapter(ElementChangedEventBlocker) 177 if self._app: 178 self._app.unregister_subscription_adapter(ElementChangedEventBlocker) 173 179 174 180 assert len(self._elements) == 0, 'Still items in the factory: %s' % str(self._elements.values()) … … 189 195 ModelFactoryEvent event from gaphor.UML.event. 190 196 """ 191 self._app.handle(ModelFactoryEvent(self)) 197 if self._app: 198 self._app.handle(ModelFactoryEvent(self)) 192 199 193 200 @component.adapter(IElementEvent) … … 197 204 by (class, event). 198 205 """ 199 self._app.handle(event.element, event) 206 if self._app: 207 self._app.handle(event.element, event) 200 208 201 209 @component.adapter(IElementDeleteEvent)
