Changeset 1066
- Timestamp:
- 11/06/06 23:07:59 (2 years ago)
- Files:
-
- gaphor/branches/new-canvas/gaphor/UML/element.py (modified) (1 diff)
- gaphor/branches/new-canvas/gaphor/diagram/elementitem.py (modified) (1 diff)
- gaphor/branches/new-canvas/gaphor/parser.py (modified) (2 diffs)
- gaphor/branches/new-canvas/gaphor/storage.py (modified) (8 diffs)
- gaphor/branches/new-canvas/gaphor/tests/test_storage.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphor/branches/new-canvas/gaphor/UML/element.py
r1057 r1066 81 81 """ 82 82 for name in dir(type(self)): 83 try: 84 prop = getattr(type(self), name) 85 except AttributeError, e: 86 raise AttributeError, "'%s' has no property '%s'" % \ 87 (type(self).__name__, name) 88 else: 89 if isinstance(prop, umlproperty): 90 prop.postload(self) 83 if not name.startswith('_'): 84 try: 85 prop = getattr(type(self), name) 86 except AttributeError, e: 87 raise AttributeError, "'%s' has no property '%s'" % \ 88 (type(self).__name__, name) 89 else: 90 if isinstance(prop, umlproperty): 91 prop.postload(self) 91 92 92 93 def unlink(self): gaphor/branches/new-canvas/gaphor/diagram/elementitem.py
r1057 r1066 26 26 def load(self, name, value): 27 27 if name == 'matrix': 28 self.matrix (*eval(value))28 self.matrix = eval(value) 29 29 else: 30 30 DiagramItem.load(self, name, value) gaphor/branches/new-canvas/gaphor/parser.py
r988 r1066 178 178 id = attrs['id'] 179 179 e = element(id, name) 180 assert id not in self.elements.keys(), '%s already defined' % (id)#, self.elements[id]) 181 print 'Add model element %s' % id 180 182 self.elements[id] = e 181 183 self.push(e, name == 'Diagram' and DIAGRAM or ELEMENT) … … 191 193 id = attrs['id'] 192 194 c = canvasitem(id, attrs['type']) 195 assert id not in self.elements.keys(), '%s already defined' % (id) #, self.elements[id]) 196 print 'Add item %s' % id 193 197 self.elements[id] = c 194 198 self.peek().canvasitems.append(c) gaphor/branches/new-canvas/gaphor/storage.py
r1057 r1066 98 98 gaphas.Canvas (which contains canvas items). 99 99 """ 100 log.debug('saving element: %s|%s %s' % (name, value, type(value))) 100 101 if isinstance (value, (UML.Element, gaphas.Item)): 101 102 save_reference(name, value) … … 113 114 The extra attribute reference can be used to force UML 114 115 """ 115 #log.debug('saving canvasitem: %s|%s %s' % (name, value, type(value)))116 log.debug('saving canvasitem: %s|%s %s' % (name, value, type(value))) 116 117 if reference: 117 118 save_reference(name, value) … … 162 163 163 164 log.debug(_('Loading %d elements...') % len(elements)) 165 from pprint import pprint 166 pprint(elements) 164 167 165 168 # The elements are iterated three times: … … 176 179 version_0_7_2(elements, factory, gaphor_version) 177 180 181 log.debug("Still have %d elements" % len(elements)) 182 178 183 # First create elements and canvas items in the factory 179 184 # The elements are stored as attribute 'element' on the parser objects: … … 181 186 yield update_status_queue() 182 187 if isinstance(elem, parser.element): 183 try: 184 cls = getattr(UML, elem.type) 185 #log.debug('Creating UML element for %s' % elem) 186 elem.element = factory.create_as(cls, id) 187 except: 188 raise 188 cls = getattr(UML, elem.type) 189 log.debug('Creating UML element for %s (%s)' % (elem, elem.id)) 190 elem.element = factory.create_as(cls, id) 189 191 elif isinstance(elem, parser.canvasitem): 190 192 cls = getattr(items, elem.type) 191 #log.debug('Creating canvas item for %s' % elem)193 log.debug('Creating canvas item for %s (%s)' % (elem, elem.id)) 192 194 elem.element = diagram.create_as(cls, id) 193 195 else: … … 195 197 196 198 #log.info('0% ... 33%') 199 200 log.debug("Still have %d elements" % len(elements)) 197 201 198 202 # load attributes and create references: … … 290 294 loader = parser.GaphorLoader() 291 295 for percentage in parser.parse_generator(filename, loader): 292 if percentage: 293 yield percentage / 2 294 else: 295 yield percentage 296 pass 297 ## if percentage: 298 ## yield percentage / 2 299 ## else: 300 ## yield percentage 296 301 elements = loader.elements 297 302 gaphor_version = loader.gaphor_version … … 307 312 factory.flush() 308 313 gc.collect() 314 log.info("Read %d elements from file" % len(elements)) 309 315 for percentage in load_elements_generator(elements, factory, gaphor_version): 310 if percentage: 311 yield percentage / 2 + 50 312 else: 313 yield percentage 316 pass 317 ## if percentage: 318 ## yield percentage / 2 + 50 319 ## else: 320 ## yield percentage 314 321 gc.collect() 322 yield 100 315 323 except Exception, e: 316 324 log.info('file %s could not be loaded' % filename, e) gaphor/branches/new-canvas/gaphor/tests/test_storage.py
r1064 r1066 113 113 # TODO: check load/save of other canvas items. 114 114 115 def load_x_gaphor(self):115 def test_load_x_gaphor(self): 116 116 storage.load('x.gaphor') 117 117
