summaryrefslogtreecommitdiffstats
path: root/lib/jython/Lib/xml/dom/html/HTMLTextAreaElement.py
blob: 3489f145af892e2db9f23dad5c771a815dbf8b49 (plain)
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
########################################################################
#
# File Name:            HTMLTextAreaElement
#
# Documentation:        http://docs.4suite.com/4DOM/HTMLTextAreaElement.html
#

### This file is automatically generated by GenerateHtml.py.
### DO NOT EDIT!

"""
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 import Node
from xml.dom.html.HTMLElement import HTMLElement

class HTMLTextAreaElement(HTMLElement):

    def __init__(self, ownerDocument, nodeName="TEXTAREA"):
        HTMLElement.__init__(self, ownerDocument, nodeName)

    ### Attribute Methods ###

    def _get_accessKey(self):
        return self.getAttribute("ACCESSKEY")

    def _set_accessKey(self, value):
        self.setAttribute("ACCESSKEY", value)

    def _get_cols(self):
        value = self.getAttribute("COLS")
        if value:
            return int(value)
        return 0

    def _set_cols(self, value):
        self.setAttribute("COLS", str(value))

    def _get_defaultValue(self):
        if not self.firstChild:
            return
        if self.firstChild == self.lastChild:
            return self.firstChild.data
        self.normalize()
        text = filter(lambda x: x.nodeType == Node.TEXT_NODE, self.childNodes)
        return text[0].data

    def _set_defaultValue(self, value):
        text = None
        for node in self.childNodes:
            if not text and node.nodeType == Node.TEXT_NODE:
                text = node
            else:
                self.removeChild(node)
        if text:
            text.data = value
        else:
            text = self.ownerDocument.createTextNode(value)
            self.appendChild(text)

    def _get_disabled(self):
        return self.hasAttribute("DISABLED")

    def _set_disabled(self, value):
        if value:
            self.setAttribute("DISABLED", "DISABLED")
        else:
            self.removeAttribute("DISABLED")

    def _get_form(self):
        parent = self.parentNode
        while parent:
            if parent.nodeName == "FORM":
                return parent
            parent = parent.parentNode
        return None

    def _get_name(self):
        return self.getAttribute("NAME")

    def _set_name(self, value):
        self.setAttribute("NAME", value)

    def _get_readonly(self):
        return self.hasAttribute("READONLY")

    def _set_readonly(self, value):
        if value:
            self.setAttribute("READONLY", "READONLY")
        else:
            self.removeAttribute("READONLY")

    def _get_rows(self):
        value = self.getAttribute("ROWS")
        if value:
            return int(value)
        return 0

    def _set_rows(self, value):
        self.setAttribute("ROWS", str(value))

    def _get_tabIndex(self):
        value = self.getAttribute("TABINDEX")
        if value:
            return int(value)
        return 0

    def _set_tabIndex(self, value):
        self.setAttribute("TABINDEX", str(value))

    def _get_type(self):
        return "textarea"

    def _get_value(self):
        if not self.firstChild:
            return
        if self.firstChild == self.lastChild:
            return self.firstChild.data
        self.normalize()
        text = filter(lambda x: x.nodeType == Node.TEXT_NODE, self.childNodes)
        return text[0].data

    def _set_value(self, value):
        text = None
        for node in self.childNodes:
            if not text and node.nodeType == Node.TEXT_NODE:
                text = node
            else:
                self.removeChild(node)
        if text:
            text.data = value
        else:
            text = self.ownerDocument.createTextNode(value)
            self.appendChild(text)

    ### Methods ###

    def blur(self):
        pass

    def focus(self):
        pass

    def select(self):
        pass

    ### Attribute Access Mappings ###

    _readComputedAttrs = HTMLElement._readComputedAttrs.copy()
    _readComputedAttrs.update({
        "accessKey" : _get_accessKey,
        "cols" : _get_cols,
        "defaultValue" : _get_defaultValue,
        "disabled" : _get_disabled,
        "form" : _get_form,
        "name" : _get_name,
        "readonly" : _get_readonly,
        "rows" : _get_rows,
        "tabIndex" : _get_tabIndex,
        "type" : _get_type,
        "value" : _get_value
        })

    _writeComputedAttrs = HTMLElement._writeComputedAttrs.copy()
    _writeComputedAttrs.update({
        "accessKey" : _set_accessKey,
        "cols" : _set_cols,
        "defaultValue" : _set_defaultValue,
        "disabled" : _set_disabled,
        "name" : _set_name,
        "readonly" : _set_readonly,
        "rows" : _set_rows,
        "tabIndex" : _set_tabIndex,
        "value" : _set_value
        })

    _readOnlyAttrs = filter(lambda k,m=_writeComputedAttrs: not m.has_key(k),
                     HTMLElement._readOnlyAttrs + _readComputedAttrs.keys())