CKEDITOR.plugins.autocomplete.view
Class representing the autocomplete view.
In order to use a different view, implement a new view class and override the CKEDITOR.plugins.autocomplete.getView method.
myAutocomplete.prototype.getView = function() {
return new myView( this.editor );
};
You can also modify this autocomplete instance on the fly.
myAutocomplete.prototype.getView = function() {
// Call the original getView method.
var view = CKEDITOR.plugins.autocomplete.prototype.getView.call( this );
// Override one property.
view.itemTemplate = new CKEDITOR.template( '<li data-id={id}><img src="{iconSrc}" alt="..."> {name}</li>' );
return view;
};
Note: This class is marked as private, which means that its API might be subject to change in order to provide further enhancements.
Filtering
Properties
-
The document to which the view is attached. It is set by the append method.
-
The editor instance.
-
The view's main element. It is set by the append method.
-
The panel's item template used to render matches in the dropdown.
You can use data item properties to customize the template.
A minimal template must be wrapped with a HTML
lielement containing thedata-id="{id}"attribute.var itemTemplate = '<li data-id="{id}"><img src="{iconSrc}" alt="{name}">{name}</li>'; -
The ID of the selected item.
Static properties
Methods
constructor( editor ) → viewCKEDITOR.plugins.autocomplete.view#constructorCreates the autocomplete view instance.
Parameters
editor : editorThe editor instance.
Returns
view
append()CKEDITOR.plugins.autocomplete.view#appendAppends the main element to the DOM.
appendItems( itemsFragment )CKEDITOR.plugins.autocomplete.view#appendItemsRemoves existing items and appends given items to the element.
Parameters
itemsFragment : documentFragmentThe document fragment with item elements.
attach()CKEDITOR.plugins.autocomplete.view#attachAttaches the view's listeners to the DOM elements.
capture()CKEDITOR.plugins.autocomplete.view#captureRegister event handler under the capturing stage on supported target.
close()CKEDITOR.plugins.autocomplete.view#closeCloses the panel.
createItem( item ) → elementCKEDITOR.plugins.autocomplete.view#createItemCreates the item element based on the itemTemplate.
Parameters
item : itemThe item for which an element will be created.
Returns
element
define( name, meta )CKEDITOR.plugins.autocomplete.view#definePredefine some intrinsic properties on a specific event name.
Parameters
name : StringThe event name
meta : Object
fire( eventName, [ data ], [ editor ] ) → Boolean | ObjectCKEDITOR.plugins.autocomplete.view#fireFires an specific event in the object. All registered listeners are called at this point.
someObject.on( 'someEvent', function() { ... } ); someObject.on( 'someEvent', function() { ... } ); someObject.fire( 'someEvent' ); // Both listeners are called. someObject.on( 'someEvent', function( event ) { alert( event.data ); // 'Example' } ); someObject.fire( 'someEvent', 'Example' );Parameters
eventName : StringThe event name to fire.
[ data ] : ObjectData to be sent as the CKEDITOR.eventInfo.data when calling the listeners.
[ editor ] : editorThe editor instance to send as the CKEDITOR.eventInfo.editor when calling the listener.
Returns
Boolean | ObjectA boolean indicating that the event is to be canceled, or data returned by one of the listeners.
fireOnce( eventName, [ data ], [ editor ] ) → Boolean | ObjectCKEDITOR.plugins.autocomplete.view#fireOnceFires an specific event in the object, releasing all listeners registered to that event. The same listeners are not called again on successive calls of it or of fire.
someObject.on( 'someEvent', function() { ... } ); someObject.fire( 'someEvent' ); // Above listener called. someObject.fireOnce( 'someEvent' ); // Above listener called. someObject.fire( 'someEvent' ); // No listeners called.Parameters
eventName : StringThe event name to fire.
[ data ] : ObjectData to be sent as the CKEDITOR.eventInfo.data when calling the listeners.
[ editor ] : editorThe editor instance to send as the CKEDITOR.eventInfo.editor when calling the listener.
Returns
Boolean | ObjectA booloan indicating that the event is to be canceled, or data returned by one of the listeners.
getItemById( itemId ) → elementCKEDITOR.plugins.autocomplete.view#getItemByIdGets the item element by the item ID.
Parameters
itemId : Number | String
Returns
elementThe item element.
getViewPosition( range ) → ObjectCKEDITOR.plugins.autocomplete.view#getViewPositionReturns the view position based on a given
range.Indicates the start position of the autocomplete dropdown. The value returned by this function is passed to the setPosition method by the updatePosition method.
Parameters
range : rangeThe range of the text match.
Returns
ObjectRepresents the position of the caret. The value is relative to the panel's offset parent.
hasListeners( eventName ) → BooleanCKEDITOR.plugins.autocomplete.view#hasListenersChecks if there is any listener registered to a given event.
var myListener = function() { ... }; someObject.on( 'someEvent', myListener ); alert( someObject.hasListeners( 'someEvent' ) ); // true alert( someObject.hasListeners( 'noEvent' ) ); // falseParameters
eventName : StringThe event name.
Returns
Boolean
isItemElement( node ) → BooleanCKEDITOR.plugins.autocomplete.view#isItemElementon( eventName, listenerFunction, [ scopeObj ], [ listenerData ], [ priority ] ) → ObjectCKEDITOR.plugins.autocomplete.view#onRegisters a listener to a specific event in the current object.
someObject.on( 'someEvent', function() { alert( this == someObject ); // true } ); someObject.on( 'someEvent', function() { alert( this == anotherObject ); // true }, anotherObject ); someObject.on( 'someEvent', function( event ) { alert( event.listenerData ); // 'Example' }, null, 'Example' ); someObject.on( 'someEvent', function() { ... } ); // 2nd called someObject.on( 'someEvent', function() { ... }, null, null, 100 ); // 3rd called someObject.on( 'someEvent', function() { ... }, null, null, 1 ); // 1st calledNote: CKEditor's event system has a limitation that one function cannot be used as a listener for the same event more than once. Hence, to reuse it with multiple listeners, it should be wrapped into additional wrapper function:
function listener( evt ) { ... }; someObject.on( 'someEvent', function() { listener(); } ); someObject.on( 'someEvent', function( evt ) { listener( evt ); } );Parameters
eventName : StringThe event name to which listen.
listenerFunction : FunctionThe function listening to the event. A single CKEDITOR.eventInfo object instanced is passed to this function containing all the event data.
[ scopeObj ] : ObjectThe object used to scope the listener call (the
thisobject). If omitted, the current object is used.[ listenerData ] : ObjectData to be sent as the CKEDITOR.eventInfo.listenerData when calling the listener.
[ priority ] : NumberThe listener priority. Lower priority listeners are called first. Listeners with the same priority value are called in registration order.
Defaults to
10
Returns
ObjectAn object containing the
removeListenerfunction, which can be used to remove the listener at any time.
once()CKEDITOR.plugins.autocomplete.view#onceSimiliar with on but the listener will be called only once upon the next event firing.
open()CKEDITOR.plugins.autocomplete.view#openOpens the panel.
removeAllListeners()CKEDITOR.plugins.autocomplete.view#removeAllListenersRemove all existing listeners on this object, for cleanup purpose.
removeListener( eventName, listenerFunction )CKEDITOR.plugins.autocomplete.view#removeListenerUnregisters a listener function from being called at the specified event. No errors are thrown if the listener has not been registered previously.
var myListener = function() { ... }; someObject.on( 'someEvent', myListener ); someObject.fire( 'someEvent' ); // myListener called. someObject.removeListener( 'someEvent', myListener ); someObject.fire( 'someEvent' ); // myListener not called.Parameters
eventName : StringThe event name.
listenerFunction : FunctionThe listener function to unregister.
scrollElementTo( itemElement )CKEDITOR.plugins.autocomplete.view#scrollElementToselectItem( itemId )CKEDITOR.plugins.autocomplete.view#selectItemSelects the item in the panel and scrolls the list to show it if needed. The currently selected item is deselected first.
Parameters
itemId : Number | StringThe ID of the item that should be selected.
setPosition( rect )CKEDITOR.plugins.autocomplete.view#setPositionSets the position of the panel. This method only performs the check for the available space below and above the specified
rectand positions the panel in the best place.This method is used by the updatePosition method which controls how the panel should be positioned on the screen, for example based on the caret position and/or the editor position.
Parameters
rect : ObjectRepresents the position of a vertical (e.g. a caret) line relative to which the panel should be positioned.
updateItems( items )CKEDITOR.plugins.autocomplete.view#updateItemsupdatePosition( range )CKEDITOR.plugins.autocomplete.view#updatePositionUpdates the position of the panel.
By default this method finds the position of the caret and uses setPosition to move the panel to the best position close to the caret.
Parameters
range : rangeThe range of the text match.
-
Static methods
-
Implements the CKEDITOR.event features in an object.
var myObject = { message: 'Example' }; CKEDITOR.event.implementOn( myObject ); myObject.on( 'testEvent', function() { alert( this.message ); } ); myObject.fire( 'testEvent' ); // 'Example'Parameters
targetObject : ObjectThe object into which implement the features.
Events
change-selectedItemId( evt )CKEDITOR.plugins.autocomplete.view#change-selectedItemIdclick-item( evt )CKEDITOR.plugins.autocomplete.view#click-item