1 /* 2 Copyright (c) 2003-2009, 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 : 150, 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.getAttribute( '_cke_saved_name' ) || 54 element.getAttribute( 'name' ) || 55 '' ); 56 }, 57 commit : function( element ) 58 { 59 if ( this.getValue() ) 60 element.setAttribute( '_cke_saved_name', this.getValue() ); 61 else 62 { 63 element.removeAttribute( '_cke_saved_name' ); 64 element.removeAttribute( 'name' ); 65 } 66 } 67 }, 68 { 69 id : 'cols', 70 type : 'text', 71 label : editor.lang.textarea.cols, 72 'default' : '', 73 accessKey : 'C', 74 style : 'width:50px', 75 validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ), 76 setup : function( element ) 77 { 78 var value = element.hasAttribute( 'cols' ) && element.getAttribute( 'cols' ); 79 this.setValue( value || '' ); 80 }, 81 commit : function( element ) 82 { 83 if ( this.getValue() ) 84 element.setAttribute( 'cols', this.getValue() ); 85 else 86 element.removeAttribute( 'cols' ); 87 } 88 }, 89 { 90 id : 'rows', 91 type : 'text', 92 label : editor.lang.textarea.rows, 93 'default' : '', 94 accessKey : 'R', 95 style : 'width:50px', 96 validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ), 97 setup : function( element ) 98 { 99 var value = element.hasAttribute( 'rows' ) && element.getAttribute( 'rows' ); 100 this.setValue( value || '' ); 101 }, 102 commit : function( element ) 103 { 104 if ( this.getValue() ) 105 element.setAttribute( 'rows', this.getValue() ); 106 else 107 element.removeAttribute( 'rows' ); 108 } 109 } 110 ] 111 } 112 ] 113 }; 114 }); 115