00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 from SvgView import SvgView
00029 from Koo.View.AbstractParser import *
00030 from Koo.Fields.FieldWidgetFactory import *
00031 from PyQt4.QtCore import *
00032 from PyQt4.QtGui import *
00033 
00034 from Koo.Common import Common
00035 
00036 import os
00037 
00038 
00039 class SvgParser(AbstractParser):
00040 
00041         def create(self, viewId, parent, viewModel, rootNode, fields, filter=None):
00042                 self.viewModel = viewModel
00043                 self.filter = filter
00044                 self.widgetList = []
00045                 
00046                 self.view = SvgView( parent )
00047                 self.view.id = viewId
00048                 self.view
00049                 directory = os.path.abspath(os.path.dirname(__file__))
00050 
00051                 for node in rootNode.childNodes:
00052                         if node.localName == 'field':
00053                                 attributes = Common.nodeAttributes(node)
00054                                 name = attributes['name']
00055                                 type = attributes.get('widget', fields[name]['type'])
00056                                 fields[name].update(attributes)
00057                                 fields[name]['model'] = viewModel
00058 
00059                                 
00060                                 widget = FieldWidgetFactory.create( type, None, self.view, fields[name] )
00061                                 if not widget:
00062                                         continue
00063                                 self.view.widgets[name] = widget
00064 
00065                 self.view.fields = fields
00066 
00067                 self.view.setSvg( os.path.join( directory, 'restaurant.svg' ) )
00068                 return self.view
00069 
00070 
00071