1: // README
2: //
3: // There are two steps to adding a property:
4: //
5: // 1. Create a member variable to store your property
6: // 2. Add the get_ and set_ accessors for your property
7: //
8: // Remember that both are case sensitive!
9:
10:
11: /// <reference name="MicrosoftAjaxTimer.debug.js" />
12: /// <reference name="MicrosoftAjaxWebForms.debug.js" />
13: /// <reference name="AjaxControlToolkit.ExtenderBase.BaseScripts.js" assembly="AjaxControlToolkit" />
14:
15:
16: Type.registerNamespace('AJAXControls.TextAreaResizer');
17:
18: AJAXControls.TextAreaResizer.TextAreaResizerBehavior = function(element) {
19: AJAXControls.TextAreaResizer.TextAreaResizerBehavior.initializeBase(this, [element]);
20:
21: // TODO : (Step 1) Add your property variables here
22: this._Width = 0;
23: this._Height = 0;
24: this._CurrentRows = 0;
25: this._MinRows = 0;
26: }
27: AJAXControls.TextAreaResizer.TextAreaResizerBehavior.prototype = {
28: initialize: function() {
29: AJAXControls.TextAreaResizer.TextAreaResizerBehavior.callBaseMethod(this, 'initialize');
30:
31: // TODO: Add your initalization code here
32: Sys.UI.DomEvent.addHandler(this.get_element(), 'keyup',
33: Function.createDelegate(this, this._onkeyup));
34: this._MinRows = this.get_element().rows;
35: var Rows = this.get_element().value.split('\n');
36: this._CurrentRows = Rows.length;
37: var NumberCols = this.get_element().cols;
38: for (var x = 0; x < Rows.length; ++x) {
39: var Line = Rows[x];
40: if (Line.length >= NumberCols) {
41: this._CurrentRows += Math.floor(Line.length / NumberCols);
42: }
43: }
44: if (this._CurrentRows + 2 >= this._MinRows) {
45: this.get_element().rows = this._CurrentRows + 2;
46: }
47: else {
48: this.get_element().rows = this._MinRows;
49: }
50: },
51:
52: _onkeyup: function() {
53: var OldNumberRows = this.get_element().rows;
54: var Rows = this.get_element().value.split('\n');
55: this._CurrentRows = Rows.length;
56: var NumberCols = this.get_element().cols;
57: for (var x = 0; x < Rows.length; ++x) {
58: var Line = Rows[x];
59: if (Line.length >= NumberCols) {
60: this._CurrentRows += Math.floor(Line.length / NumberCols);
61: }
62: }
63: if (this._CurrentRows + 2 >= this._MinRows) {
64: this.get_element().rows = this._CurrentRows + 2;
65: }
66: else {
67: this.get_element().rows = this._MinRows;
68: }
69: },
70:
71: dispose: function() {
72: // TODO: Add your cleanup code here
73:
74: AJAXControls.TextAreaResizer.TextAreaResizerBehavior.callBaseMethod(this, 'dispose');
75: }
76: }
77: AJAXControls.TextAreaResizer.TextAreaResizerBehavior.registerClass('AJAXControls.TextAreaResizer.TextAreaResizerBehavior', AjaxControlToolkit.BehaviorBase);