Changeset 1066

Show
Ignore:
Timestamp:
11/06/06 23:07:59 (2 years ago)
Author:
arjanmol
Message:

Load/save partially works

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/branches/new-canvas/gaphor/UML/element.py

    r1057 r1066  
    8181        """ 
    8282        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) 
    9192 
    9293    def unlink(self): 
  • gaphor/branches/new-canvas/gaphor/diagram/elementitem.py

    r1057 r1066  
    2626    def load(self, name, value): 
    2727        if name == 'matrix': 
    28             self.matrix(*eval(value)
     28            self.matrix = eval(value
    2929        else: 
    3030            DiagramItem.load(self, name, value) 
  • gaphor/branches/new-canvas/gaphor/parser.py

    r988 r1066  
    178178            id = attrs['id'] 
    179179            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 
    180182            self.elements[id] = e 
    181183            self.push(e, name == 'Diagram' and DIAGRAM or ELEMENT) 
     
    191193            id = attrs['id'] 
    192194            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 
    193197            self.elements[id] = c 
    194198            self.peek().canvasitems.append(c) 
  • gaphor/branches/new-canvas/gaphor/storage.py

    r1057 r1066  
    9898        gaphas.Canvas (which contains canvas items). 
    9999        """ 
     100        log.debug('saving element: %s|%s %s' % (name, value, type(value))) 
    100101        if isinstance (value, (UML.Element, gaphas.Item)): 
    101102            save_reference(name, value) 
     
    113114        The extra attribute reference can be used to force UML  
    114115        """ 
    115         #log.debug('saving canvasitem: %s|%s %s' % (name, value, type(value))) 
     116        log.debug('saving canvasitem: %s|%s %s' % (name, value, type(value))) 
    116117        if reference: 
    117118            save_reference(name, value) 
     
    162163 
    163164    log.debug(_('Loading %d elements...') % len(elements)) 
     165    from pprint import pprint 
     166    pprint(elements) 
    164167 
    165168    # The elements are iterated three times: 
     
    176179    version_0_7_2(elements, factory, gaphor_version) 
    177180 
     181    log.debug("Still have %d elements" % len(elements)) 
     182 
    178183    # First create elements and canvas items in the factory 
    179184    # The elements are stored as attribute 'element' on the parser objects: 
     
    181186        yield update_status_queue() 
    182187        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) 
    189191        elif isinstance(elem, parser.canvasitem): 
    190192            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)
    192194            elem.element = diagram.create_as(cls, id) 
    193195        else: 
     
    195197 
    196198    #log.info('0% ... 33%') 
     199 
     200    log.debug("Still have %d elements" % len(elements)) 
    197201 
    198202    # load attributes and create references: 
     
    290294        loader = parser.GaphorLoader() 
    291295        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 
    296301        elements = loader.elements 
    297302        gaphor_version = loader.gaphor_version 
     
    307312        factory.flush() 
    308313        gc.collect() 
     314        log.info("Read %d elements from file" % len(elements)) 
    309315        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 
    314321        gc.collect() 
     322        yield 100 
    315323    except Exception, e: 
    316324        log.info('file %s could not be loaded' % filename, e) 
  • gaphor/branches/new-canvas/gaphor/tests/test_storage.py

    r1064 r1066  
    113113        # TODO: check load/save of other canvas items. 
    114114 
    115     def load_x_gaphor(self): 
     115    def test_load_x_gaphor(self): 
    116116        storage.load('x.gaphor') 
    117117