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