1 /*
  2 Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
  3 For licensing, see LICENSE.html or http://ckeditor.com/license
  4 */
  5 CKEDITOR.dialog.add( 'textarea', function( editor )
  6 {
  7 	return {
  8 		title : editor.lang.textarea.title,
  9 		minWidth : 350,
 10 		minHeight : 220,
 11 		onShow : function()
 12 		{
 13 			delete this.textarea;
 14 
 15 			var element = this.getParentEditor().getSelection().getSelectedElement();
 16 			if ( element && element.getName() == "textarea" )
 17 			{
 18 				this.textarea = element;
 19 				this.setupContent( element );
 20 			}
 21 		},
 22 		onOk : function()
 23 		{
 24 			var editor,
 25 				element = this.textarea,
 26 				isInsertMode = !element;
 27 
 28 			if ( isInsertMode )
 29 			{
 30 				editor = this.getParentEditor();
 31 				element = editor.document.createElement( 'textarea' );
 32 			}
 33 			this.commitContent( element );
 34 
 35 			if ( isInsertMode )
 36 				editor.insertElement( element );
 37 		},
 38 		contents : [
 39 			{
 40 				id : 'info',
 41 				label : editor.lang.textarea.title,
 42 				title : editor.lang.textarea.title,
 43 				elements : [
 44 					{
 45 						id : '_cke_saved_name',
 46 						type : 'text',
 47 						label : editor.lang.common.name,
 48 						'default' : '',
 49 						accessKey : 'N',
 50 						setup : function( element )
 51 						{
 52 							this.setValue(
 53 									element.data( 'cke-saved-name' ) ||
 54 									element.getAttribute( 'name' ) ||
 55 									'' );
 56 						},
 57 						commit : function( element )
 58 						{
 59 							if ( this.getValue() )
 60 								element.data( 'cke-saved-name', this.getValue() );
 61 							else
 62 							{
 63 								element.data( 'cke-saved-name', false );
 64 								element.removeAttribute( 'name' );
 65 							}
 66 						}
 67 					},
 68 					{
 69 						type : 'hbox',
 70 						widths:['50%','50%'],
 71 						children:[
 72 							{
 73 								id : 'cols',
 74 								type : 'text',
 75 								label : editor.lang.textarea.cols,
 76 								'default' : '',
 77 								accessKey : 'C',
 78 								style : 'width:50px',
 79 								validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
 80 								setup : function( element )
 81 								{
 82 									var value = element.hasAttribute( 'cols' ) && element.getAttribute( 'cols' );
 83 									this.setValue( value || '' );
 84 								},
 85 								commit : function( element )
 86 								{
 87 									if ( this.getValue() )
 88 										element.setAttribute( 'cols', this.getValue() );
 89 									else
 90 										element.removeAttribute( 'cols' );
 91 								}
 92 							},
 93 							{
 94 								id : 'rows',
 95 								type : 'text',
 96 								label : editor.lang.textarea.rows,
 97 								'default' : '',
 98 								accessKey : 'R',
 99 								style : 'width:50px',
100 								validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
101 								setup : function( element )
102 								{
103 									var value = element.hasAttribute( 'rows' ) && element.getAttribute( 'rows' );
104 									this.setValue( value || '' );
105 								},
106 								commit : function( element )
107 								{
108 									if ( this.getValue() )
109 										element.setAttribute( 'rows', this.getValue() );
110 									else
111 										element.removeAttribute( 'rows' );
112 								}
113 							}
114 						]
115 					},
116 					{
117 						id : 'value',
118 						type : 'textarea',
119 						label : editor.lang.textfield.value,
120 						'default' : '',
121 						setup : function( element )
122 						{
123 							this.setValue( element.$.defaultValue );
124 						},
125 						commit : function( element )
126 						{
127 							element.$.value = element.$.defaultValue = this.getValue() ;
128 						}
129 					}
130 
131 				]
132 			}
133 		]
134 	};
135 });
136