File: widget_parse.py

package info (click to toggle)
tinyerp-client 3.4.2-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,832 kB
  • ctags: 1,024
  • sloc: python: 7,566; sh: 2,253; makefile: 81
file content (37 lines) | stat: -rw-r--r-- 827 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import interface
import xml.dom.minidom

import form_gtk
import tree_gtk

from form import ViewForm
from list import ViewList

parsers = {
	'form': form_gtk.parser_form,
	'tree': tree_gtk.parser_tree,
}


parsers2 = {
	'form': ViewForm,
	'tree': ViewList
}

class widget_parse(interface.parser_interface):
	def parse(self, screen, root_node, fields):
		widget = None
		for node in root_node.childNodes:
			if not node.nodeType == node.ELEMENT_NODE:
				continue
			if node.localName in parsers:
				widget = parsers[node.localName](self.window, self.parent, self.attrs)
				wid, child, buttons, on_write = widget.parse(screen.resource, node, fields)
				screen.set_on_write(on_write)
				res = parsers2[node.localName](screen, wid, child, buttons)
				res.title = widget.title
				return res
			else:
				pass
		return widget