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
|
/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
</copyright> */
/**
@module "montage/ui/textarea.reel"
@requires montage/ui/component
@requires montage/ui/text-input
*/
var Montage = require("montage").Montage,
Component = require("ui/component").Component,
TextInput = require("ui/text-input").TextInput;
/**
* Wraps the a <textarea> element with binding support for the element's standard attributes. Uses an ArrayController instance to manage the element's contents and selection.
@class module:"montage/ui/textarea.reel".Textarea
@extends module:montage/text-input.TextInput
*/
var Textarea = exports.Textarea = Montage.create(TextInput, /** @lends module:"montage/ui/textarea.reel".Textarea# */ {
select: { value: function() { this._element.select(); } },
/**
The text display by the Textarea component's element.
@type {string}
@default ""
*/
textContent: {
get: function() {
return this.value;
},
set: function(v) {
this.value = v;
}
}
});
Textarea.addAttributes( /** @lends module:"montage/ui/textarea.reel".Textarea# */ {
/**
Specifies whether the element should be focused as soon as the page is loaded.
@type {boolean}
@default false
*/
autofocus: {dataType: 'boolean'},
/**
The maximum number of characters per line of text to display.
@type {number}
@default null
*/
cols: null,
/**
The name of the field that contains that value that specifies the element's directionality.
@type {string}
@default null
*/
dirname: null,
/**
When true, the textarea element is disabled to user input, and "disabled" is added to the element's CSS class list.
@type {boolean}
@default false
*/
disabled: {dataType: 'boolean'},
/**
The value of the <code>id</code> attribute of the form with which to associate the component's element.
@type string}
@default null
*/
form: null,
/**
The maximum allowed value length of the element.
@type {number}
@default null
*/
maxlength: null,
/**
The name associated with the textarea element.
@type {string}
@default null
*/
name: null,
/**
Placeholder text to display in the textarea before the user has entered any text.
@type {string}
@default null
*/
placeholder: null,
/**
Specifies if this control is readonly.
@type {boolean}
@default false
*/
readonly: {dataType: 'boolean'},
/**
When true, the user will be required to enter a value in the textarea before submitting the form.
@type {string}
@default false
*/
required: {dataType: 'boolean'},
/**
The number of lines of text the browser should render for the textarea.
@type {number}
@default null
*/
rows: null,
/**
If the value of this property is "hard", the browser will insert line breaks such that each line of user input has no more characters than the value specified by the <code>cols</code> property. If the value is "soft" then no line breaks will be added.
@type {string}
@default
*/
wrap: null
});
|