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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
########################################################################
#
# File Name: HTMLIFrameElement.py
#
# Documentation: http://docs.4suite.com/4DOM/HTMLIFrameElement.py.html
#
"""
WWW: http://4suite.com/4DOM e-mail: support@4suite.com
Copyright (c) 2000 Fourthought Inc, USA. All Rights Reserved.
See http://4suite.com/COPYRIGHT for license and copyright information
"""
import string
from xml.dom.html.HTMLElement import HTMLElement
class HTMLIFrameElement(HTMLElement):
def __init__(self, ownerDocument, nodeName="IFRAME"):
HTMLElement.__init__(self, ownerDocument, nodeName)
self.__content = None
### Attribute Methods ###
def _get_align(self):
return string.capitalize(self.getAttribute("ALIGN"))
def _set_align(self, value):
self.setAttribute("ALIGN", value)
def _get_contentDocument(self):
if not self.__content:
source = self._get_src()
import os.path
ext = os.path.splitext(source)
if string.find(ext, 'htm') > 0:
from xml.dom.ext.reader import HtmlLib
self.__content = HtmlLib.FromHtmlUrl(source)
elif string.lower(ext) == '.xml':
from xml.dom.ext.reader import Sax2
self.__content = Sax2.FromXmlUrl(source)
return self.__content
def _get_frameBorder(self):
return string.capitalize(self.getAttribute("FRAMEBORDER"))
def _set_frameBorder(self, value):
self.setAttribute("FRAMEBORDER", value)
def _get_height(self):
return self.getAttribute("HEIGHT")
def _set_height(self, value):
self.setAttribute("HEIGHT", value)
def _get_longDesc(self):
return self.getAttribute("LONGDESC")
def _set_longDesc(self, value):
self.setAttribute("LONGDESC", value)
def _get_marginHeight(self):
return self.getAttribute("MARGINHEIGHT")
def _set_marginHeight(self, value):
self.setAttribute("MARGINHEIGHT", value)
def _get_marginWidth(self):
return self.getAttribute("MARGINWIDTH")
def _set_marginWidth(self, value):
self.setAttribute("MARGINWIDTH", value)
def _get_name(self):
return self.getAttribute("NAME")
def _set_name(self, value):
self.setAttribute("NAME", value)
def _get_scrolling(self):
return string.capitalize(self.getAttribute("SCROLLING"))
def _set_scrolling(self, value):
self.setAttribute("SCROLLING", value)
def _get_src(self):
return self.getAttribute("SRC")
def _set_src(self, value):
self.setAttribute("SRC", value)
def _get_width(self):
return self.getAttribute("WIDTH")
def _set_width(self, value):
self.setAttribute("WIDTH", value)
### Attribute Access Mappings ###
_readComputedAttrs = HTMLElement._readComputedAttrs.copy()
_readComputedAttrs.update({
"align" : _get_align,
"contentDocument" : _get_contentDocument,
"frameBorder" : _get_frameBorder,
"height" : _get_height,
"longDesc" : _get_longDesc,
"marginHeight" : _get_marginHeight,
"marginWidth" : _get_marginWidth,
"name" : _get_name,
"scrolling" : _get_scrolling,
"src" : _get_src,
"Width" : _get_width
})
_writeComputedAttrs = HTMLElement._writeComputedAttrs.copy()
_writeComputedAttrs.update({
"align" : _set_align,
"frameBorder" : _set_frameBorder,
"height" : _set_height,
"longDesc" : _set_longDesc,
"marginHeight" : _set_marginHeight,
"marginWidth" : _set_marginWidth,
"name" : _set_name,
"scrolling" : _set_scrolling,
"src" : _set_src,
"Width" : _set_width
})
_readOnlyAttrs = filter(lambda k,m=_writeComputedAttrs: not m.has_key(k),
HTMLElement._readOnlyAttrs + _readComputedAttrs.keys())
|