Changeset 2337
- Timestamp:
- 07/16/08 07:00:51 (5 months ago)
- Files:
-
- gaphor/trunk/gaphor/UML/element.py (modified) (10 diffs)
- gaphor/trunk/gaphor/UML/elementfactory.py (modified) (14 diffs)
- gaphor/trunk/gaphor/diagram/simpleitem.py (modified) (1 diff)
- gaphor/trunk/gaphor/services/backupservice.py (added)
- gaphor/trunk/gaphor/services/tests/test_backupservice.py (added)
- gaphor/trunk/setup.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphor/trunk/gaphor/UML/element.py
r2332 r2337 1 1 #!/usr/bin/env python 2 # vim:sw=4:et3 2 """ 4 3 Base class for UML model elements. … … 12 11 from gaphor.misc import uniqueid 13 12 from properties import umlproperty, association 13 14 14 15 15 class Element(object): … … 36 36 self.__in_unlink = mutex.mutex() 37 37 38 38 39 id = property(lambda self: self._id, doc='Id') 40 39 41 40 42 factory = property(lambda self: self._factory, 41 43 doc="The factory that created this element") 44 42 45 43 46 def umlproperties(self): … … 53 56 yield prop 54 57 58 55 59 def save(self, save_func): 56 60 """ … … 59 63 for prop in self.umlproperties(): 60 64 prop.save(self, save_func) 65 61 66 62 67 def load(self, name, value): … … 73 78 prop.load(self, value) 74 79 80 75 81 def postload(self): 76 82 """ … … 79 85 for prop in self.umlproperties(): 80 86 prop.postload(self) 87 81 88 82 89 def unlink(self): … … 102 109 return isinstance(self, class_) 103 110 111 104 112 def isTypeOf(self, other): 105 113 """ … … 107 115 """ 108 116 return type(self) == type(other) 117 118 119 def __getstate__(self): 120 d = dict(self.__dict__) 121 try: 122 del d['_factory'] 123 except KeyError: 124 pass 125 return d 109 126 110 127 … … 116 133 psyco.bind(Element) 117 134 135 # vim:sw=4:et gaphor/trunk/gaphor/UML/elementfactory.py
r2276 r2337 71 71 def create(self, type): 72 72 """ 73 Create a new model element of type type.73 Create a new model element of type ``type``. 74 74 """ 75 75 obj = self.create_as(type, uniqueid.generate_id()) … … 89 89 return obj 90 90 91 def bind(self, element): 92 """ 93 Bind an already created element to the element factory. 94 The element may not be bound to another factory already. 95 """ 96 if hasattr(element, '_factory') and element._factory: 97 raise AttributeError, "element is already bound" 98 if self._elements.get(element.id): 99 raise AttributeError, "an element already exists with the same id" 100 101 element._factory = self 102 self._elements[element.id] = element 103 104 91 105 def size(self): 92 106 """ … … 95 109 return len(self._elements) 96 110 111 97 112 def lookup(self, id): 98 113 """ … … 101 116 return self._elements.get(id) 102 117 118 103 119 __getitem__ = lookup 120 104 121 105 122 def __contains__(self, element): 106 123 return self.lookup(element.id) is element 124 107 125 108 126 def select(self, expression=None): … … 118 136 yield e 119 137 138 120 139 def lselect(self, expression=None): 121 140 """ … … 124 143 return list(self.select(expression)) 125 144 145 126 146 def keys(self): 127 147 """ … … 130 150 return self._elements.keys() 131 151 152 132 153 def iterkeys(self): 133 154 """ … … 136 157 return self._elements.iterkeys() 137 158 159 138 160 def values(self): 139 161 """ … … 142 164 return self._elements.values() 143 165 166 144 167 def itervalues(self): 145 168 """ … … 147 170 """ 148 171 return self._elements.itervalues() 172 149 173 150 174 def is_empty(self): … … 156 180 else: 157 181 return True 182 158 183 159 184 def flush(self): … … 194 219 element.__class__ = new_class 195 220 221 196 222 def notify_model(self): 197 223 """ … … 202 228 self._app.handle(ModelFactoryEvent(self)) 203 229 230 204 231 @component.adapter(IElementEvent) 205 232 def _element_notify(self, event): … … 210 237 if self._app: 211 238 self._app.handle(event.element, event) 239 212 240 213 241 @component.adapter(IElementDeleteEvent) gaphor/trunk/gaphor/diagram/simpleitem.py
r1795 r2337 121 121 } 122 122 123 def __init__(self, id ):123 def __init__(self, id=None): 124 124 super(Ellipse, self).__init__() 125 125 self.style = Style(Ellipse.__style__) gaphor/trunk/setup.py
r2307 r2337 180 180 'element_factory = gaphor.UML.elementfactory:ElementFactory', 181 181 'file_manager = gaphor.services.filemanager:FileManager', 182 'backup_service = gaphor.services.backupservice:BackupService', 182 183 'diagram_export_manager = gaphor.services.diagramexportmanager:DiagramExportManager', 183 184 'action_manager = gaphor.services.actionmanager:ActionManager',
