docs: function( dialog, elementDefinition, htmlList ) {
  				if ( arguments.length < 3 )
  					return;
  
  				var _ = initPrivateObject.call( this, elementDefinition );
  
  				if ( elementDefinition.validate )
  					this.validate = elementDefinition.validate;
  
  				_.inputId = CKEDITOR.tools.getNextId() + '_select';
  
  				var innerHTML = function() {
  						var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, {
  							id: elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select'
  						}, true ),
  							html = [],
  							innerHTML = [],
  							attributes = { 'id': _.inputId, 'class': 'cke_dialog_ui_input_select', 'aria-labelledby': this._.labelId };
  
  						html.push( '<div class="cke_dialog_ui_input_', elementDefinition.type, '" role="presentation"' );
  						if ( elementDefinition.width )
  							html.push( 'style="width:' + elementDefinition.width + '" ' );
  						html.push( '>' );
  
  						// Add multiple and size attributes from element definition.
  						if ( elementDefinition.size != undefined )
  							attributes.size = elementDefinition.size;
  						if ( elementDefinition.multiple != undefined )
  							attributes.multiple = elementDefinition.multiple;
  
  						cleanInnerDefinition( myDefinition );
  						for ( var i = 0, item; i < elementDefinition.items.length && ( item = elementDefinition.items[ i ] ); i++ ) {
  							innerHTML.push( '<option value="', CKEDITOR.tools.htmlEncode( item[ 1 ] !== undefined ? item[ 1 ] : item[ 0 ] ).replace( /"/g, '&quot;' ), '" /> ', CKEDITOR.tools.htmlEncode( item[ 0 ] ) );
  						}
  
  						if ( typeof myDefinition.inputStyle != 'undefined' )
  							myDefinition.style = myDefinition.inputStyle;
  
  						_.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );
  
  						html.push( '</div>' );
  
  						return html.join( '' );
  					};
  
  				CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
  			}